個(gè)人覺(jué)得這么些語(yǔ)言值得學(xué)習(xí):
C: 沒(méi)啥說(shuō)的,碼農(nóng)不懂 C 都不好意思自稱 IT 工作者。錦上添花可以折騰 下 C++,我個(gè)人很不喜歡 C++。 Java: 碼農(nóng)必備屠龍技,類似的還有 C#,選一個(gè)就可以了。流行的依賴虛擬機(jī) 運(yùn)行時(shí)、字節(jié)碼形式發(fā)布應(yīng)用的語(yǔ)言實(shí)現(xiàn),值得了解。 構(gòu)建在 jvm 上的 scala 可以試試,據(jù)說(shuō)有點(diǎn)意思。 Perl: 類似的有 Python/Ruby,至于 Tcl 就不提了,語(yǔ)言設(shè)計(jì)的比較簡(jiǎn)陋,PHP 則 一般不當(dāng)作通用的腳本語(yǔ)言用。作為碼農(nóng)密技,還是很有必要備一個(gè)的。 OCaml: 實(shí)用的函數(shù)式編程語(yǔ)言,就我所知好像是唯一比較流行的能順利生成很小的高效 可執(zhí)行程序的函數(shù)式語(yǔ)言實(shí)現(xiàn)。Haskell 這方面還比較差,一個(gè) Hello world 都能有 12 MB。 類似的還有 F#,MS 出品,據(jù)說(shuō)是 OCaml 的改良品。 Lisp: 彪悍的語(yǔ)言不需要評(píng)論。 Erlang: 語(yǔ)法很樸實(shí),重點(diǎn)在于編寫(xiě)應(yīng)用的框架、思路,很值得學(xué)習(xí)。 JavaScript:在一個(gè)啥編程環(huán)境都沒(méi)裝的機(jī)器上,無(wú)聊之余十有八九能在瀏覽器里堆砌 JS 自?shī)首詷?lè),把玩 jQuery 等 JS 庫(kù)。 1.每一種程序都有其發(fā)展的歷程,沒(méi)有任何一種程序是萬(wàn)能的,比如說(shuō)我們都知道的C語(yǔ)言,開(kāi)發(fā)C的初衷就是為了讓程序員能脫離那種原始的匯編的環(huán)境,可以在高級(jí)語(yǔ)言環(huán)境中對(duì)內(nèi)存地址進(jìn)行控制,所以C語(yǔ)言在底層操作上來(lái)講要優(yōu)越于其他高級(jí)語(yǔ)言;比如Pasical語(yǔ)言的初衷就是為了程序設(shè)計(jì)中的教學(xué)使用,所以Pasical語(yǔ)言的語(yǔ)法結(jié)構(gòu)很嚴(yán)謹(jǐn);比如Fortran語(yǔ)言,開(kāi)發(fā)的初衷就是為了工程計(jì)算,所以他的數(shù)學(xué)邏輯工程邏輯功能模塊就相當(dāng)強(qiáng)大,等等………… 2.現(xiàn)在的語(yǔ)言已經(jīng)發(fā)展到面向?qū)ο蟮母呒?jí)語(yǔ)言,像我們現(xiàn)在所熟知的Java、.Net、Delphi 等語(yǔ)言,他們開(kāi)發(fā)應(yīng)用軟件來(lái)說(shuō)基本沒(méi)有太大的區(qū)別,因?yàn)樗麄兊膸?kù)都已經(jīng)很豐富,我們開(kāi)發(fā)起來(lái)也相對(duì)較簡(jiǎn)單一些,他們的差距也就緊緊在于市場(chǎng)占有率和所在公司開(kāi)發(fā)選擇問(wèn)題上了。還有另外一個(gè)就是一些數(shù)據(jù)庫(kù)編程的語(yǔ)言比如SQL、PB等語(yǔ)言,他們的數(shù)據(jù)庫(kù)功能相當(dāng)強(qiáng)大,由于微軟產(chǎn)品的市場(chǎng)占有,所以大家比較傾向于SQL語(yǔ)言,因?yàn)樗膽?yīng)用面要廣一些,但是不乏有些朋友會(huì)基于一些其他的想法選擇其他類型的數(shù)據(jù)庫(kù)編程語(yǔ)言。解釋類語(yǔ)言,作為B/S開(kāi)發(fā)模式的語(yǔ)言,也是根據(jù)其市場(chǎng)占有規(guī)模來(lái)分,一般來(lái)講市場(chǎng)占有率越高的語(yǔ)言程序,那么它的庫(kù)要豐富一些,我們操作起來(lái)要相對(duì)容易些。所以說(shuō),現(xiàn)在流行的應(yīng)用軟件開(kāi)發(fā)的語(yǔ)言來(lái)講,我們一般考慮的是市場(chǎng)占有率高的,就會(huì)有更多的工作機(jī)會(huì)來(lái)等待我們;但是一些市場(chǎng)占有率稍低的開(kāi)發(fā)語(yǔ)言(有自己特色的),工作機(jī)會(huì)自然少一些,但是報(bào)酬相對(duì)要高一些,物以稀為貴嘛! 3. 各種語(yǔ)言的選擇 如果編寫(xiě)對(duì)性能要求苛刻,或和操作系統(tǒng)結(jié)合緊密的程序,必然選擇C。 如果編寫(xiě)到處可用的程序,選Java。 如果編寫(xiě)大程序,可能的話盡量用腳本語(yǔ)言如Python、Ruby,不行了再用Java和C。因?yàn)槟_本語(yǔ)言帶來(lái)了生產(chǎn)力。 編寫(xiě)文本的處理程序用Perl或Ruby。 編寫(xiě)知識(shí)的處理程序用prolog。 編寫(xiě)最靈活,最模糊的程序用Lisp。 編寫(xiě)office程序用vba。 編寫(xiě)服務(wù)器端程序,PHP、(采用自己熟悉的語(yǔ)言來(lái)寫(xiě),例如Perl、Python、Ruby)CGI、ASP、(熟悉Java就用)JSP都是選擇。 編寫(xiě)數(shù)據(jù)庫(kù)程序用vb或delphi。 如果要追求性能和程序的能力,要完全發(fā)揮操作系統(tǒng)的能力,使用C/C++語(yǔ)言是合適的。在Windows環(huán)境下用VC,在Unix-like環(huán)境下用gcc。 如果不是追求和操作系統(tǒng)完美結(jié)合,而只是性能,又要追求跨平臺(tái)性,那么仍然選擇C,但可以選擇跨平臺(tái)的庫(kù),如qt、gtk、fox、wxWindows。如果要編寫(xiě)游戲也有跨平臺(tái)選擇:SDL。 如果不滿意C領(lǐng)域標(biāo)準(zhǔn)的不統(tǒng)一,不滿意C的容易出錯(cuò),不滿意C的面向?qū)ο筇卣鞑粡氐?。如果不在乎跨平臺(tái),Windows平臺(tái)可以選擇C#,maC平臺(tái)可以選擇CoCo。如果需要跨平臺(tái),可以選擇Java。 如果需要跨平臺(tái),又要廣泛的支持的話,選擇Java。 在Unix-like下,最方便的工具語(yǔ)言是Perl,它有強(qiáng)大的社區(qū)和代碼庫(kù)的支持。 如果只作為簡(jiǎn)單應(yīng)用的工具語(yǔ)言,Python和Ruby是更好的選擇,他們的跨平臺(tái)移植性好,應(yīng)用也比較廣泛。其中Python更適合入門和交流,長(zhǎng)期使用也不錯(cuò)。Ruby是對(duì)Python不滿意的另一個(gè)選擇,它提供了很多額外的功能。 如果要選擇一個(gè)程序的嵌入語(yǔ)言,原來(lái)有Lisp、Basic和Java,現(xiàn)在還可以選擇Python和Ruby。 如果在要求動(dòng)態(tài)解釋執(zhí)行語(yǔ)言,而又不想學(xué)其他語(yǔ)言的話,C程序員的選擇是pike,Java程序員的選擇是beanshell。 在Java平臺(tái),又想用腳本語(yǔ)言的話,可以用Python。 最正統(tǒng)的基于文檔的語(yǔ)言或叫動(dòng)態(tài)頁(yè)面語(yǔ)言是JavaScript。 最專門的服務(wù)器端語(yǔ)言是PHP,當(dāng)然也有很多其他選擇。 XML語(yǔ)言以XUL為最著名,dtml也算一個(gè),你自己也可以用XML作為自己特殊用途的語(yǔ)言。比如jedit就用XML作為一種模式定制語(yǔ)言。XML語(yǔ)言是一種比較先進(jìn)的趨勢(shì),比現(xiàn)有的語(yǔ)言在特殊領(lǐng)域更高效。 要找容易實(shí)現(xiàn)的語(yǔ)言,Lisp和Tcl是選擇。 Lisp的數(shù)據(jù)和程序融為一體的能力和自由是其他語(yǔ)言都沒(méi)有的?,F(xiàn)在出現(xiàn)了一個(gè)Lisp的現(xiàn)代化的變種:REBOL。 如果有基于事實(shí)的編程的需要的話,prolog和Clips是必然。 4.其實(shí)說(shuō)到最后,也許大家都已經(jīng)迷糊了,因?yàn)槲易约阂裁院耍ú灰游?!誰(shuí)?。吭趺催€有雞蛋?!*—%##*),不過(guò)只需要一個(gè)簡(jiǎn)單的道理:選擇什么方向(數(shù)據(jù)庫(kù)、應(yīng)用軟件、底層開(kāi)發(fā)等等),那要看我們對(duì)什么感興趣,對(duì)什么有一種親切感;選擇好了方向,在選擇需要那個(gè)具體的語(yǔ)言,那就要看市場(chǎng)占有,公司發(fā)展前景,我們需要得到的利潤(rùn)回報(bào)等因素(不過(guò),作為同種類的語(yǔ)言,一個(gè)真正的程序員是可以很好的跨越這種平臺(tái)的,也就是說(shuō)你最好不要只學(xué)習(xí)一種語(yǔ)言)! 5.如果你為了掙錢,就學(xué)Java C# VB 之類的快速開(kāi)發(fā)工具; 如果你是為了掙錢還想搞搞技術(shù), 就學(xué)C++之類的語(yǔ)言; 如果你想搞系統(tǒng)開(kāi)發(fā), 你就要從硬件,匯編,一點(diǎn)一點(diǎn)學(xué)起了. |
|
來(lái)自: rookie > 《技術(shù)帖》