你應(yīng)該學(xué)習(xí)哪種編程語言?
學(xué)習(xí)一門新的編程語言是在你的職業(yè)生涯中繼續(xù)前進的好方法,但是應(yīng)該學(xué)習(xí)哪一門呢?
如果你想要開始你的編程生涯或繼續(xù)前進,那么學(xué)習(xí)一門新語言是一個聰明的主意。但是,大量活躍使用的語言引發(fā)了一個問題:哪種編程語言是***的?要回答這個問題,讓我們從一個簡單的問題開始:你想做什么樣的程序?
如果你想在客戶端進行網(wǎng)絡(luò)編程,那么特定語言 HTML、CSS 和 JavaScript(看似無窮無盡的方言之一)是必須要學(xué)習(xí)的。
如果你想在服務(wù)器端進行 Web 編程,那么選擇包括常見的通用語言:C++、Golang、Java、C#、 Node.js、Perl、Python、Ruby 等等。當(dāng)然,服務(wù)器程序與數(shù)據(jù)存儲(例如關(guān)系數(shù)據(jù)庫和其他數(shù)據(jù)庫)打交道,這意味著 SQL 等查詢語言可能會發(fā)揮作用。
如果你正在為移動設(shè)備編寫原生應(yīng)用程序,那么了解目標平臺非常重要。對于 Apple 設(shè)備,Swift 已經(jīng)取代 Objective C 成為***語言。對于 Android 設(shè)備,Java(帶有專用庫和工具集)仍然是主要語言。有一些特殊語言,如與 C# 一起使用的 Xamarin,可以為 Apple、Android 和 Windows 設(shè)備生成特定于平臺的代碼。
那么通用語言呢?通常有各種各樣的選擇。在動態(tài)或腳本語言(如 Perl、Python 和 Ruby)中,有一些新東西,如 Node.js。而 Java 和 C# 的相似之處比它們的粉絲愿意承認的還要多,仍然是針對虛擬機(分別是 JVM 和 CLR)的主要靜態(tài)編譯語言。在可以編譯為原生可執(zhí)行文件的語言中,C++ 仍在使用,還有后來出現(xiàn)的 Golang 和 Rust 等。通用的函數(shù)式語言比比皆是(如 Clojure、Haskell、Erlang、F#、Lisp 和 Scala),它們通常都有熱情投入的社區(qū)。值得注意的是,面向?qū)ο笳Z言(如 Java 和 C#)已經(jīng)添加了函數(shù)式構(gòu)造(特別是 lambdas),而動態(tài)語言從一開始就有函數(shù)式構(gòu)造。
讓我以 C 語言結(jié)尾,它是一種小巧、優(yōu)雅、可擴展的語言,不要與 C++ 混淆?,F(xiàn)代操作系統(tǒng)主要用 C 語言編寫,其余部分用匯編語言編寫。任何平臺上的標準庫大多數(shù)都是用 C 語言編寫的。例如,任何打印 Hello, world!
這種問候都是通過調(diào)用名為 write
的 C 庫函數(shù)來實現(xiàn)的。
C 作為一種可移植的匯編語言,公開了其他高級語言有意隱藏的底層系統(tǒng)的詳細信息。因此,理解 C 可以更好地掌握程序如何競爭執(zhí)行所需的共享系統(tǒng)資源(如處理器、內(nèi)存和 I/O 設(shè)備)。C 語言既高級又接近硬件,因此在性能方面***,當(dāng)然,匯編語言除外。***,C 是編程語言中的通用語言,幾乎所有通用語言都支持某種形式的 C 調(diào)用。
有關(guān)現(xiàn)代 C 語言的介紹,參考我的書籍《C 語言編程:可移植的匯編器介紹》。無論你怎么做,學(xué)習(xí) C 語言,你會學(xué)到比另一種編程語言多得多的東西。
你認為學(xué)習(xí)哪些編程語言很重要?你是否同意這些建議?在評論告知我們!