各種編程語言的演變
素材來源:21ic電子網(wǎng)
學編程的過程中,總是有小伙伴糾結(jié)我到底是該學C語言呢?還是Python呢?或者學Java?
那到底為什么編程需要這么多編程語言呢?
編程語言的起源是怎樣的?
其實編程語言并不是一開始就有這么豐富以及好用的語言的,而是經(jīng)過幾十年的發(fā)展才逐漸有今天這樣多樣的語言。
迄今為止,我們一般認為編程語言的發(fā)展主要有三個階段:
1、機器語言
2、匯編語言
3、高級語言
一、機器語言
機器語言是第一代機器語言,是0和1代碼。因為計算機的CPU只能識別0和1,所以最初編程用的就是0和1。
比較典型的設(shè)備是雅卡爾提花機的織布機:
我們可以看到,寫代碼就是要在紙上打孔,這樣寫程序不僅很麻煩,而且程序還不好理解,我們也只看到了一個個的洞,不知道這是干嘛的。
為了能讓我們在偷懶情況下,更好完成工作,科學家們經(jīng)過不斷地摸索試驗,使得編程進入了下一個階段——匯編編程。
二、匯編語言
匯編語言相對于機器語言有什么差別呢?首先就是匯編能讓人更好理解了。
比如表示3+2,機器語言可能是10111100 00000011 00000010。
而匯編就可以寫成add 3, 2。
add表示加,后面是兩個數(shù)字。
這樣只要懂一點英文單詞,就能夠明白這個語句的意思。
匯編語言就是將以前機器語言的命令,用一些簡單的英文單詞來表示,這樣不僅很直觀,對編程人員的要求也大大降低了。
但是用匯編語言寫的程序不能直接在計算機上運行的,需要經(jīng)過編譯器,把匯編語言轉(zhuǎn)換成機器語言。
所以科學家們創(chuàng)造了一個接近人類語言習慣的編程語言——高級語言。
三、高級語言
高級語言的表達方式和人類語言的表達方式很接近了,而且也沒有那么多的英文單詞需要去記了。
高級語言的種類有很多C、C++、Python、Java等等。
每種高級語言都至少有一個編譯器,編譯器就是把對應(yīng)的語言轉(zhuǎn)換成機器語言。迄今為止,編程語言發(fā)展最高的是高級語言。
也許過幾年、幾十年,說不定有更好的語言出現(xiàn),我們也期待有更好的語言出現(xiàn)。
四、那么為什么要有那么多的編程語言呢?
1、應(yīng)用領(lǐng)域不同,導(dǎo)致需要不同的編譯效率和代碼質(zhì)量以及執(zhí)行速度的要求。
2、使用的領(lǐng)域不同,導(dǎo)致側(cè)重點不同。
比如:PHP是面對應(yīng)用領(lǐng)域的開發(fā)語言,要求快速看到效果,就不太在乎比C語言多損耗了點編譯性能和多集成一些庫了。
所以,它最大特點就是:把N多常用的庫都集成進來了,用起來就簡單的多。
但這并不能說明PHP就比C語言好,只是對開發(fā)者友好而已,只是他們用的領(lǐng)域不同。
3、開發(fā)時間決定
比如:PHP重要的是應(yīng)用,應(yīng)該在短時間內(nèi)開發(fā)出應(yīng)用,那就不能從頭到尾的寫,否則內(nèi)容太多。
所以學習什么和實際怎么使用之間還有一個篩選的過程。
4、體驗度、友好性決定
C語言編程經(jīng)常會被報告指針不能讀和寫!
PHP,不會動不動彈出指針錯誤的那種恐怖窗口,因為它做了很多包容性好的異常處理。
但這并不能說明PHP就比C語言好,也不能說明C語言比PHP好。在他們各自擅長的領(lǐng)域,他們比誰都好。
每門語言因為自己定位在不同的應(yīng)用領(lǐng)域,所以它的編譯器,即使語法功能沒做得那么智能和強大,也不會去升級,否則就失去了它的應(yīng)用定位。
其實這么多的語言,編程思想上沒什么區(qū)別。只要掌握編程思想,一切語言都通了。
STM32Cube生態(tài)系統(tǒng)更新的那些實用功能
長按前往圖中包含的公眾號關(guān)注
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!