監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 簽約案例 | 購買價格 | 在線試用 | 手機APP | 產品資料
X 關閉

幫你節(jié)省項目開發(fā)的7種正在流行編程語言

申請免費試用、咨詢電話:400-8352-114

文章來源:泛普軟件

在企業(yè)應用編程領域,談到主流的編程語言可以用博大精深來形容?,F實世界里的應用程序代碼絕大多數是用少數幾種主要編程語言中的某一種編寫而成的。對一些公司來說這種編程語言是Java,而對另一些公司來說這種編程語言則可能是C#或PHP。有時候為了滿足諸如游戲等應用程序對性能的要求,企業(yè)編程人員也用C++或其他一些常用語言來編程,而這些語言最后幾乎無一例外地都要用標準化的SQL語言來和數據庫聯系。

如果程序員想在企業(yè)部門謀得職位,又沒有掌握該公司所主要使用的那些主流編程語言,那是很不明智的。不過讓人驚訝的是,許多小眾語言正在企業(yè)界迅速嶄露頭角??纯催@些非主流的編程語言,你會發(fā)現有幾種語言的運用尤其普及,被用來解決各種常見的問題,另有一些傳統(tǒng)的小眾語言則是一直牢牢占據穩(wěn)固地位。因為它們都提供了極具吸引力的功能,因而編程員有必要學習這些新興編程語言中的一種或者幾種,掌握這些語言如何使用字母、括號、花括號及其他標點符號來完成任務。

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

1.Python:適合科學計算

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

與Stephen Wolfram為數學家們開發(fā)的數學軟件Mathematica不一樣,Python從不提供明顯為了滿足科學家要求而調整的任何數據結構或元素,但是這種語言在科學實驗室當中居然有很高的人氣,實在有點費解。Python的開發(fā)者Guido von Rossum認為,Python之所以能在實驗室環(huán)境流行起來,是因為“科學家們在試圖解釋結果時,往往需要即時給出某種初步的解釋,所以讓他們可以非常迅速地工作并且?guī)缀趿⒓纯梢圆榭唇Y果的動態(tài)語言很有吸引力。”

當然,Python方面有許多函數庫可以滿足科學家們的大部分要求。NumPy和SciPy只是最有名的函數庫中的兩個而已。這些函數庫作為開源項目日益得到豐富,并專門針對科學計算進行了調整。

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

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

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

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

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

許多生產級Ruby網站運行Jruby,這種用Java編寫的Ruby就駐留在Java虛擬機(JVM)上。Jruby用戶在同時處理多個線程時可獲得JVM的所有本領,這個優(yōu)點對有許多并發(fā)用戶的生產級環(huán)境非常重要。

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

MATLAB是為數學家們解決線性方程系統(tǒng)而編寫的語言,它在企業(yè)界越來越受關注要歸因于如今的企業(yè)需要分析數量龐大的數據。許多比較先進的統(tǒng)計方法要將人與廣告、歌曲或網頁對應起來,而它們依賴一些算法的強大功能,比如MATLAB提供的那些算法。

隨著日志文件變得更龐大,預計MATLAB的應用會更廣泛。人們查看瀏覽的最熱門頁面列表是一回事,但從一組復雜的路徑提取想法卻需要強大的統(tǒng)計功能:人們在星期一還是在星期五更有可能購買衣服?產品瑕疵與生產線之間是否存在什么關聯?

MATLAB背后的MathWorks公司提供了一大堆白皮書,介紹工程師們在如何搜尋統(tǒng)計解決方案。比如,豐田車隊在風洞及其他實驗室分析預測其參加美國納斯卡(NASCAR)汽車賽的結果、加拿大的生物診斷研究所在尋找治療燒傷的最佳藥物等。

與MATLAB近似的還有眾多的開源語言,包括Octave、Scilab、Sage和PySci(PySci是上面提到的Python庫之一)。所有這些工具都有助于處理復雜的統(tǒng)計分析工作,如公司想了解客戶買過什么、該客戶將來想買什么等,用MATLAB進行這種復雜的分析工作現已很常見。

4.JavaScript:每個瀏覽器都會用到

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

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

不過,JavaScript從來不缺新的應用。比如,開源的面向文檔的數據庫CouchDB沒有使用SQL語言來查詢,而是采用Map函數和Reduce函數這兩個JavaScript函數,前者用于選擇,后者用于歸并。

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

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

5.R:專為統(tǒng)計分析而生

如今,統(tǒng)計分析工作越來越多地用R語言來完成,不過一些純粹主義者還是用S這個最初的名稱來稱呼這種語言。Tibco公司銷售一款名為S-Plus的商業(yè)版產品。

以后恐怕不會有S++了,因為這種語言更多地是一種LISP語言或Scheme語言,只是多了計算統(tǒng)計函數,以及通過漂亮圖片顯示結果的功能。要是公司老板希望計算機快速處理數10億行日志文件,查找模式、聚類和預測變量,那么R或S是一種備受喜愛的解決辦法。

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

6.Erlang:面向跨多個服務器的應用開發(fā)

你的服務器需要同時響應許多不同的獨立消息嗎?需要把這些請求分配給不同的處理器核心或在世界上不同地方的服務器嗎?這實際上是企業(yè)計算難度最大的地方。Erlang就擅長處理這些任務,這種開源語言最先由愛立信計算實驗室的科學家們開發(fā)而成。

這種語言將傳統(tǒng)的函數式編程與已經編譯成本地機器碼的現代虛擬機結合起來,這種語言結構有利于編程員們開發(fā)出更容易跨多個處理器核和多個虛擬機的程序代碼。許多Web服務器和CouchDB實際上是用Erlang實現的。這很合理:要求接收用JavaScript而不是用SQL編寫的查詢語句的數據庫本身就是用Erlang編寫的。

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

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

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

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

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

發(fā)布:2007-04-21 11:06    編輯:泛普軟件 · xiaona    [打印此頁]    [關閉]
長沙OA系統(tǒng)
聯系方式

成都公司:成都市成華區(qū)建設南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢

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

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