監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢(xún)管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購(gòu)買(mǎi)價(jià)格 | 在線(xiàn)試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

幫你節(jié)省項(xiàng)目開(kāi)發(fā)的7種正在流行編程語(yǔ)言

申請(qǐng)免費(fèi)試用、咨詢(xún)電話(huà):400-8352-114

文章來(lái)源:泛普軟件

在企業(yè)應(yīng)用編程領(lǐng)域,談到主流的編程語(yǔ)言可以用博大精深來(lái)形容?,F(xiàn)實(shí)世界里的應(yīng)用程序代碼絕大多數(shù)是用少數(shù)幾種主要編程語(yǔ)言中的某一種編寫(xiě)而成的。對(duì)一些公司來(lái)說(shuō)這種編程語(yǔ)言是Java,而對(duì)另一些公司來(lái)說(shuō)這種編程語(yǔ)言則可能是C#或PHP。有時(shí)候?yàn)榱藵M(mǎn)足諸如游戲等應(yīng)用程序?qū)π阅艿囊螅髽I(yè)編程人員也用C++或其他一些常用語(yǔ)言來(lái)編程,而這些語(yǔ)言最后幾乎無(wú)一例外地都要用標(biāo)準(zhǔn)化的SQL語(yǔ)言來(lái)和數(shù)據(jù)庫(kù)聯(lián)系。

如果程序員想在企業(yè)部門(mén)謀得職位,又沒(méi)有掌握該公司所主要使用的那些主流編程語(yǔ)言,那是很不明智的。不過(guò)讓人驚訝的是,許多小眾語(yǔ)言正在企業(yè)界迅速嶄露頭角??纯催@些非主流的編程語(yǔ)言,你會(huì)發(fā)現(xiàn)有幾種語(yǔ)言的運(yùn)用尤其普及,被用來(lái)解決各種常見(jiàn)的問(wèn)題,另有一些傳統(tǒng)的小眾語(yǔ)言則是一直牢牢占據(jù)穩(wěn)固地位。因?yàn)樗鼈兌继峁┝藰O具吸引力的功能,因而編程員有必要學(xué)習(xí)這些新興編程語(yǔ)言中的一種或者幾種,掌握這些語(yǔ)言如何使用字母、括號(hào)、花括號(hào)及其他標(biāo)點(diǎn)符號(hào)來(lái)完成任務(wù)。

值得一提的是,雖然下面這幾種小眾語(yǔ)言都提供了主流語(yǔ)言所沒(méi)有的功能特性,但有許多還是依賴(lài)主流語(yǔ)言而存在的。比如,一些小眾語(yǔ)言運(yùn)行在Java虛擬機(jī)上,實(shí)際上利用了Java團(tuán)隊(duì)的開(kāi)發(fā)技術(shù)。而在微軟開(kāi)發(fā)出C#之后,它就明確表示想把虛擬機(jī)向其他語(yǔ)言開(kāi)放。這些細(xì)節(jié)也許可能讓這類(lèi)應(yīng)用程序的部署更容易,但是對(duì)編程人員實(shí)際編寫(xiě)程序來(lái)說(shuō)不太重要。不管怎樣,下面這幾種語(yǔ)言正在企業(yè)應(yīng)用開(kāi)發(fā)領(lǐng)域贏得越來(lái)越多的追隨者是事實(shí),也許到了該分析一下它們的優(yōu)點(diǎn)的時(shí)候了。

1.Python:適合科學(xué)計(jì)算

喜歡Python的人似乎有兩種:一種是討厭括號(hào)的人,另一種就是科學(xué)家。前一種人開(kāi)發(fā)了更容易解讀、不像C的派生語(yǔ)言那樣到處是左括號(hào)和右括號(hào)的Perl,從而幫助開(kāi)發(fā)出了Python這一語(yǔ)言。沒(méi)過(guò)幾年,由于這種解決辦法非常好,結(jié)果成為出現(xiàn)在谷歌App Engine上的第一種語(yǔ)言——這清楚地表明,Python擁有在云環(huán)境易于擴(kuò)展的那種結(jié)構(gòu),而擴(kuò)展性正是企業(yè)級(jí)計(jì)算面臨的最大難題之一。

與Stephen Wolfram為數(shù)學(xué)家們開(kāi)發(fā)的數(shù)學(xué)軟件Mathematica不一樣,Python從不提供明顯為了滿(mǎn)足科學(xué)家要求而調(diào)整的任何數(shù)據(jù)結(jié)構(gòu)或元素,但是這種語(yǔ)言在科學(xué)實(shí)驗(yàn)室當(dāng)中居然有很高的人氣,實(shí)在有點(diǎn)費(fèi)解。Python的開(kāi)發(fā)者Guido von Rossum認(rèn)為,Python之所以能在實(shí)驗(yàn)室環(huán)境流行起來(lái),是因?yàn)椤翱茖W(xué)家們?cè)谠噲D解釋結(jié)果時(shí),往往需要即時(shí)給出某種初步的解釋?zhuān)宰屗麄兛梢苑浅Q杆俚毓ぷ鞑⑶規(guī)缀趿⒓纯梢圆榭唇Y(jié)果的動(dòng)態(tài)語(yǔ)言很有吸引力?!?/P>

當(dāng)然,Python方面有許多函數(shù)庫(kù)可以滿(mǎn)足科學(xué)家們的大部分要求。NumPy和SciPy只是最有名的函數(shù)庫(kù)中的兩個(gè)而已。這些函數(shù)庫(kù)作為開(kāi)源項(xiàng)目日益得到豐富,并專(zhuān)門(mén)針對(duì)科學(xué)計(jì)算進(jìn)行了調(diào)整。

將Python用于研究項(xiàng)目的并不是只有像制藥公司這樣的科研和工程企業(yè)。華爾街的許多公司現(xiàn)在高度依賴(lài)數(shù)學(xué)分析,還經(jīng)常從大學(xué)請(qǐng)來(lái)科學(xué)家,而他們帶來(lái)了用Python編寫(xiě)代碼的習(xí)慣。如今Python在華爾街非常流行,甚至有公司提議要求債券招股章程里面列入Python算法,用于明確誰(shuí)可以拿到怎樣的投資回報(bào)。

2.Ruby:用于快速建立原型

一些人可能認(rèn)為,Ruby和Python根本不是“小眾”語(yǔ)言,但從企業(yè)角度來(lái)看,它們的確是常常被擠向邊緣的新興工具這卻是不爭(zhēng)的事實(shí)。話(huà)雖如此,Ruby(或者更準(zhǔn)確地說(shuō)Ruby on Rails,即Ruby與Rails框架的結(jié)合體)越來(lái)越經(jīng)常被用于建立軟件原型。它是在Web 2.0迅猛發(fā)展之后進(jìn)入企業(yè)領(lǐng)域的,許多網(wǎng)站最初都是用Ruby編寫(xiě)的試驗(yàn)品。Ruby的眾多支持者之一37signals公司實(shí)際上就是使用Ruby來(lái)部署代碼的。

Ruby成功的秘訣在于采用“約定優(yōu)于配置”(convention over configuration)軟件設(shè)計(jì)模式:命名一個(gè)變量為foo后,數(shù)據(jù)庫(kù)中的相應(yīng)列也自動(dòng)被命名為foo。正因?yàn)槿绱?,Ruby on Rails是一款適合建立原型的出色工具,這給了用戶(hù)鍵入foo、將變量命名為foo的唯一理由。Ruby on Rails可為用戶(hù)處理數(shù)據(jù)的增、刪、改等常規(guī)任務(wù)。

Ruby on Rails站點(diǎn)致力于登記分類(lèi)可存儲(chǔ)在數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。有名的例子包括像37Signals公司的Basecamp、Backcamp和Campfire這些Web應(yīng)用軟件,以及把小組討論、辯論和時(shí)間表組合起來(lái)的一批網(wǎng)站。Ruby on Rails可處理這些數(shù)據(jù)庫(kù)表的格式編排工作,還能處理好決定該顯示哪些信息。如果使用Ruby on Rails的命名約定,不需要大量重復(fù)性工作,就能快速開(kāi)發(fā)出用于生產(chǎn)環(huán)境的優(yōu)質(zhì)代碼。

許多生產(chǎn)級(jí)Ruby網(wǎng)站運(yùn)行Jruby,這種用Java編寫(xiě)的Ruby就駐留在Java虛擬機(jī)(JVM)上。Jruby用戶(hù)在同時(shí)處理多個(gè)線(xiàn)程時(shí)可獲得JVM的所有本領(lǐng),這個(gè)優(yōu)點(diǎn)對(duì)有許多并發(fā)用戶(hù)的生產(chǎn)級(jí)環(huán)境非常重要。

3.MATLAB:為解線(xiàn)性方程系統(tǒng)而編寫(xiě)

MATLAB是為數(shù)學(xué)家們解決線(xiàn)性方程系統(tǒng)而編寫(xiě)的語(yǔ)言,它在企業(yè)界越來(lái)越受關(guān)注要?dú)w因于如今的企業(yè)需要分析數(shù)量龐大的數(shù)據(jù)。許多比較先進(jìn)的統(tǒng)計(jì)方法要將人與廣告、歌曲或網(wǎng)頁(yè)對(duì)應(yīng)起來(lái),而它們依賴(lài)一些算法的強(qiáng)大功能,比如MATLAB提供的那些算法。

隨著日志文件變得更龐大,預(yù)計(jì)MATLAB的應(yīng)用會(huì)更廣泛。人們查看瀏覽的最熱門(mén)頁(yè)面列表是一回事,但從一組復(fù)雜的路徑提取想法卻需要強(qiáng)大的統(tǒng)計(jì)功能:人們?cè)谛瞧谝贿€是在星期五更有可能購(gòu)買(mǎi)衣服?產(chǎn)品瑕疵與生產(chǎn)線(xiàn)之間是否存在什么關(guān)聯(lián)?

MATLAB背后的MathWorks公司提供了一大堆白皮書(shū),介紹工程師們?cè)谌绾嗡褜そy(tǒng)計(jì)解決方案。比如,豐田車(chē)隊(duì)在風(fēng)洞及其他實(shí)驗(yàn)室分析預(yù)測(cè)其參加美國(guó)納斯卡(NASCAR)汽車(chē)賽的結(jié)果、加拿大的生物診斷研究所在尋找治療燒傷的最佳藥物等。

與MATLAB近似的還有眾多的開(kāi)源語(yǔ)言,包括Octave、Scilab、Sage和PySci(PySci是上面提到的Python庫(kù)之一)。所有這些工具都有助于處理復(fù)雜的統(tǒng)計(jì)分析工作,如公司想了解客戶(hù)買(mǎi)過(guò)什么、該客戶(hù)將來(lái)想買(mǎi)什么等,用MATLAB進(jìn)行這種復(fù)雜的分析工作現(xiàn)已很常見(jiàn)。

4.JavaScript:每個(gè)瀏覽器都會(huì)用到

JavaScript絕不是一種默默無(wú)聞的編程語(yǔ)言。正好相反,它可能是世界上被編譯次數(shù)最多的編程語(yǔ)言,那完全是由于每當(dāng)有人打開(kāi)網(wǎng)頁(yè),每個(gè)瀏覽器都會(huì)下載相應(yīng)代碼、重新編譯。盡管有上述優(yōu)勢(shì),同時(shí)采用AJAX技術(shù)的網(wǎng)頁(yè)也越來(lái)越普及,但JavaScript還是很少被認(rèn)為是在大型機(jī)上運(yùn)行的語(yǔ)言。

倒不是說(shuō)這方面沒(méi)有做過(guò)努力。早在1996年,網(wǎng)景公司就試圖讓JavaScript成為其服務(wù)器平臺(tái)上的通用語(yǔ)言,但最后只是在瀏覽器端站穩(wěn)了腳跟。最近熱捧JavaScript的公司之一Aptana眼看開(kāi)源AJAX Web服務(wù)器Jaxer根本不成氣候,只好叫停了開(kāi)發(fā)工作。小型試驗(yàn)公司AppJet使用由Java編寫(xiě)的Rhino JavaScript庫(kù),以簡(jiǎn)化服務(wù)器端的代碼編寫(xiě)工作。該公司后來(lái)在2009年被谷歌收購(gòu),現(xiàn)在似乎致力于其他項(xiàng)目。

不過(guò),JavaScript從來(lái)不缺新的應(yīng)用。比如,開(kāi)源的面向文檔的數(shù)據(jù)庫(kù)CouchDB沒(méi)有使用SQL語(yǔ)言來(lái)查詢(xún),而是采用Map函數(shù)和Reduce函數(shù)這兩個(gè)JavaScript函數(shù),前者用于選擇,后者用于歸并。

Node.js算是最近冒出來(lái)的讓人比較興奮的服務(wù)器端JavaScript框架之一,它重新激起了昔日的夢(mèng)想:讓客戶(hù)端編程和服務(wù)器端編程彼此協(xié)調(diào)。其軟件包采用谷歌為谷歌瀏覽器開(kāi)發(fā)的V8 JavaScript引擎,讓該引擎決定如何為發(fā)出去的數(shù)據(jù)編排格式。

一般而言,凡是有需要用到少量腳本的地方,JavaScript都能找到新的用武之地。如果大型應(yīng)用程序的開(kāi)發(fā)人員想要讓用戶(hù)能夠編寫(xiě)子應(yīng)用程序,JavaScript也算是最簡(jiǎn)單的方法之一。JavaScript將在企業(yè)領(lǐng)域繼續(xù)發(fā)展壯大,而每次只需要一小段代碼。

5.R:專(zhuān)為統(tǒng)計(jì)分析而生

如今,統(tǒng)計(jì)分析工作越來(lái)越多地用R語(yǔ)言來(lái)完成,不過(guò)一些純粹主義者還是用S這個(gè)最初的名稱(chēng)來(lái)稱(chēng)呼這種語(yǔ)言。Tibco公司銷(xiāo)售一款名為S-Plus的商業(yè)版產(chǎn)品。

以后恐怕不會(huì)有S++了,因?yàn)檫@種語(yǔ)言更多地是一種LISP語(yǔ)言或Scheme語(yǔ)言,只是多了計(jì)算統(tǒng)計(jì)函數(shù),以及通過(guò)漂亮圖片顯示結(jié)果的功能。要是公司老板希望計(jì)算機(jī)快速處理數(shù)10億行日志文件,查找模式、聚類(lèi)和預(yù)測(cè)變量,那么R或S是一種備受喜愛(ài)的解決辦法。

R可以說(shuō)是數(shù)值和統(tǒng)計(jì)方法領(lǐng)域的一把瑞士軍刀,可快速理清龐大的數(shù)據(jù)集——這種數(shù)據(jù)集太大了,也許稱(chēng)之為瑞士軍用大砍刀更合適。Tibco公司Spotfire S-Plus的產(chǎn)品管理高級(jí)主管Lou Bajuk-Yorgan表示,現(xiàn)在有許多客戶(hù)在使用其軟件,用來(lái)幫助他們研究商業(yè)或工程項(xiàng)目如何運(yùn)作或者項(xiàng)目為什么會(huì)失敗,其中一個(gè)例子就是分析氣候模式,找出風(fēng)力發(fā)電機(jī)建在哪里最合適。

6.Erlang:面向跨多個(gè)服務(wù)器的應(yīng)用開(kāi)發(fā)

你的服務(wù)器需要同時(shí)響應(yīng)許多不同的獨(dú)立消息嗎?需要把這些請(qǐng)求分配給不同的處理器核心或在世界上不同地方的服務(wù)器嗎?這實(shí)際上是企業(yè)計(jì)算難度最大的地方。Erlang就擅長(zhǎng)處理這些任務(wù),這種開(kāi)源語(yǔ)言最先由愛(ài)立信計(jì)算實(shí)驗(yàn)室的科學(xué)家們開(kāi)發(fā)而成。

這種語(yǔ)言將傳統(tǒng)的函數(shù)式編程與已經(jīng)編譯成本地機(jī)器碼的現(xiàn)代虛擬機(jī)結(jié)合起來(lái),這種語(yǔ)言結(jié)構(gòu)有利于編程員們開(kāi)發(fā)出更容易跨多個(gè)處理器核和多個(gè)虛擬機(jī)的程序代碼。許多Web服務(wù)器和CouchDB實(shí)際上是用Erlang實(shí)現(xiàn)的。這很合理:要求接收用JavaScript而不是用SQL編寫(xiě)的查詢(xún)語(yǔ)句的數(shù)據(jù)庫(kù)本身就是用Erlang編寫(xiě)的。

CouchDB僅僅是個(gè)開(kāi)頭。許多處理“龐大數(shù)據(jù)”的項(xiàng)目經(jīng)理在構(gòu)建用一種可以擴(kuò)展的方式來(lái)存儲(chǔ)大量數(shù)據(jù)的系統(tǒng)。Gemini Mobile公司的開(kāi)源項(xiàng)目Hibari提供了一致、可擴(kuò)展的聚類(lèi),用來(lái)存儲(chǔ)在故障后可自行修復(fù)的鍵值對(duì)。有了功能式框架讓編程員可以更容易開(kāi)發(fā)出能高效處理多個(gè)連接的大型應(yīng)用程序。

7.CUDA擴(kuò)展:適合大規(guī)模并行任務(wù)處理

CUDA擴(kuò)展其實(shí)是函數(shù)庫(kù),用于對(duì)視頻卡編程,以便處理大規(guī)模并行任務(wù)。嚴(yán)格上來(lái)說(shuō),它不是一種語(yǔ)言,只是C語(yǔ)言的擴(kuò)展而已。不過(guò),一些企業(yè)的程序員還是開(kāi)始探究將這種大規(guī)模并行架構(gòu)用于游戲領(lǐng)域制作場(chǎng)面逼真的血液噴濺效果。這里需重新編寫(xiě)循環(huán)語(yǔ)句以便實(shí)現(xiàn)大規(guī)模并行處理,這意味著,重新考慮來(lái)自C或C++編程方面的許多慣用手法,CUDA擴(kuò)展因而顯得更加重要。

用到CUDA擴(kuò)展的機(jī)會(huì)很多,包括機(jī)器視覺(jué)、大規(guī)模模擬和海量統(tǒng)計(jì)計(jì)算。數(shù)據(jù)分析的許多問(wèn)題天生具有大規(guī)模并行的特點(diǎn),使得GPU處理器值得關(guān)注。最近,知名GPU廠(chǎng)商英偉達(dá)(Nvidia)舉辦了一次專(zhuān)門(mén)探討CUDA應(yīng)用的會(huì)議,有幾場(chǎng)分會(huì)就專(zhuān)門(mén)介紹計(jì)算流體動(dòng)力學(xué)、計(jì)算機(jī)視覺(jué)、數(shù)據(jù)庫(kù)及數(shù)據(jù)挖掘、金融動(dòng)力學(xué)及分子動(dòng)力學(xué)。光這方面的應(yīng)用就非常廣泛,足以解釋為什么大企業(yè)的編程員們對(duì)CUDA很好奇。

英偉達(dá)高級(jí)副總裁Dan Vivoli出席了英偉達(dá)舉辦的那次大會(huì),科學(xué)家們?cè)跁?huì)上介紹了探討GPU的并行計(jì)算機(jī)制如何適用于這些領(lǐng)域的論文后,他說(shuō):“顯然,GPU在應(yīng)用方面進(jìn)入了廣闊的天地。現(xiàn)在,GPU處理器遍及所有不同的學(xué)科和行業(yè)領(lǐng)域,因此CUDA大有用武之地。”

發(fā)布:2007-04-21 11:06    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:

泛普長(zhǎng)沙OA軟件行業(yè)資訊其他應(yīng)用

長(zhǎng)沙OA 長(zhǎng)沙新聞動(dòng)態(tài) 長(zhǎng)沙OA信息化 長(zhǎng)沙OA快博 長(zhǎng)沙OA軟件行業(yè)資訊 長(zhǎng)沙軟件開(kāi)發(fā)公司 長(zhǎng)沙門(mén)禁系統(tǒng) 長(zhǎng)沙物業(yè)管理軟件 長(zhǎng)沙倉(cāng)庫(kù)管理軟件 長(zhǎng)沙餐飲管理軟件 長(zhǎng)沙網(wǎng)站建設(shè)公司