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