當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 湖南OA系統(tǒng) > 長沙OA系統(tǒng) > 長沙OA軟件行業(yè)資訊
幫你節(jié)省項(xiàng)目開發(fā)的7種正在流行編程語言
在企業(yè)應(yīng)用編程領(lǐng)域,談到主流的編程語言可以用博大精深來形容。現(xiàn)實(shí)世界里的應(yīng)用程序代碼絕大多數(shù)是用少數(shù)幾種主要編程語言中的某一種編寫而成的。對(duì)一些公司來說這種編程語言是Java,而對(duì)另一些公司來說這種編程語言則可能是C#或PHP。有時(shí)候?yàn)榱藵M足諸如游戲等應(yīng)用程序?qū)π阅艿囊?,企業(yè)編程人員也用C++或其他一些常用語言來編程,而這些語言最后幾乎無一例外地都要用標(biāo)準(zhǔn)化的SQL語言來和數(shù)據(jù)庫聯(lián)系。
如果程序員想在企業(yè)部門謀得職位,又沒有掌握該公司所主要使用的那些主流編程語言,那是很不明智的。不過讓人驚訝的是,許多小眾語言正在企業(yè)界迅速嶄露頭角??纯催@些非主流的編程語言,你會(huì)發(fā)現(xiàn)有幾種語言的運(yùn)用尤其普及,被用來解決各種常見的問題,另有一些傳統(tǒng)的小眾語言則是一直牢牢占據(jù)穩(wěn)固地位。因?yàn)樗鼈兌继峁┝藰O具吸引力的功能,因而編程員有必要學(xué)習(xí)這些新興編程語言中的一種或者幾種,掌握這些語言如何使用字母、括號(hào)、花括號(hào)及其他標(biāo)點(diǎn)符號(hào)來完成任務(wù)。
值得一提的是,雖然下面這幾種小眾語言都提供了主流語言所沒有的功能特性,但有許多還是依賴主流語言而存在的。比如,一些小眾語言運(yùn)行在Java虛擬機(jī)上,實(shí)際上利用了Java團(tuán)隊(duì)的開發(fā)技術(shù)。而在微軟開發(fā)出C#之后,它就明確表示想把虛擬機(jī)向其他語言開放。這些細(xì)節(jié)也許可能讓這類應(yīng)用程序的部署更容易,但是對(duì)編程人員實(shí)際編寫程序來說不太重要。不管怎樣,下面這幾種語言正在企業(yè)應(yīng)用開發(fā)領(lǐng)域贏得越來越多的追隨者是事實(shí),也許到了該分析一下它們的優(yōu)點(diǎn)的時(shí)候了。
1.Python:適合科學(xué)計(jì)算
喜歡Python的人似乎有兩種:一種是討厭括號(hào)的人,另一種就是科學(xué)家。前一種人開發(fā)了更容易解讀、不像C的派生語言那樣到處是左括號(hào)和右括號(hào)的Perl,從而幫助開發(fā)出了Python這一語言。沒過幾年,由于這種解決辦法非常好,結(jié)果成為出現(xiàn)在谷歌App Engine上的第一種語言——這清楚地表明,Python擁有在云環(huán)境易于擴(kuò)展的那種結(jié)構(gòu),而擴(kuò)展性正是企業(yè)級(jí)計(jì)算面臨的最大難題之一。
與Stephen Wolfram為數(shù)學(xué)家們開發(fā)的數(shù)學(xué)軟件Mathematica不一樣,Python從不提供明顯為了滿足科學(xué)家要求而調(diào)整的任何數(shù)據(jù)結(jié)構(gòu)或元素,但是這種語言在科學(xué)實(shí)驗(yàn)室當(dāng)中居然有很高的人氣,實(shí)在有點(diǎn)費(fèi)解。Python的開發(fā)者Guido von Rossum認(rèn)為,Python之所以能在實(shí)驗(yàn)室環(huán)境流行起來,是因?yàn)椤翱茖W(xué)家們在試圖解釋結(jié)果時(shí),往往需要即時(shí)給出某種初步的解釋,所以讓他們可以非常迅速地工作并且?guī)缀趿⒓纯梢圆榭唇Y(jié)果的動(dòng)態(tài)語言很有吸引力?!?/P>
當(dāng)然,Python方面有許多函數(shù)庫可以滿足科學(xué)家們的大部分要求。NumPy和SciPy只是最有名的函數(shù)庫中的兩個(gè)而已。這些函數(shù)庫作為開源項(xiàng)目日益得到豐富,并專門針對(duì)科學(xué)計(jì)算進(jìn)行了調(diào)整。
將Python用于研究項(xiàng)目的并不是只有像制藥公司這樣的科研和工程企業(yè)。華爾街的許多公司現(xiàn)在高度依賴數(shù)學(xué)分析,還經(jīng)常從大學(xué)請來科學(xué)家,而他們帶來了用Python編寫代碼的習(xí)慣。如今Python在華爾街非常流行,甚至有公司提議要求債券招股章程里面列入Python算法,用于明確誰可以拿到怎樣的投資回報(bào)。
2.Ruby:用于快速建立原型
一些人可能認(rèn)為,Ruby和Python根本不是“小眾”語言,但從企業(yè)角度來看,它們的確是常常被擠向邊緣的新興工具這卻是不爭的事實(shí)。話雖如此,Ruby(或者更準(zhǔn)確地說Ruby on Rails,即Ruby與Rails框架的結(jié)合體)越來越經(jīng)常被用于建立軟件原型。它是在Web 2.0迅猛發(fā)展之后進(jìn)入企業(yè)領(lǐng)域的,許多網(wǎng)站最初都是用Ruby編寫的試驗(yàn)品。Ruby的眾多支持者之一37signals公司實(shí)際上就是使用Ruby來部署代碼的。
Ruby成功的秘訣在于采用“約定優(yōu)于配置”(convention over configuration)軟件設(shè)計(jì)模式:命名一個(gè)變量為foo后,數(shù)據(jù)庫中的相應(yīng)列也自動(dòng)被命名為foo。正因?yàn)槿绱?,Ruby on Rails是一款適合建立原型的出色工具,這給了用戶鍵入foo、將變量命名為foo的唯一理由。Ruby on Rails可為用戶處理數(shù)據(jù)的增、刪、改等常規(guī)任務(wù)。
Ruby on Rails站點(diǎn)致力于登記分類可存儲(chǔ)在數(shù)據(jù)庫表中的數(shù)據(jù)。有名的例子包括像37Signals公司的Basecamp、Backcamp和Campfire這些Web應(yīng)用軟件,以及把小組討論、辯論和時(shí)間表組合起來的一批網(wǎng)站。Ruby on Rails可處理這些數(shù)據(jù)庫表的格式編排工作,還能處理好決定該顯示哪些信息。如果使用Ruby on Rails的命名約定,不需要大量重復(fù)性工作,就能快速開發(fā)出用于生產(chǎn)環(huán)境的優(yōu)質(zhì)代碼。
許多生產(chǎn)級(jí)Ruby網(wǎng)站運(yùn)行Jruby,這種用Java編寫的Ruby就駐留在Java虛擬機(jī)(JVM)上。Jruby用戶在同時(shí)處理多個(gè)線程時(shí)可獲得JVM的所有本領(lǐng),這個(gè)優(yōu)點(diǎn)對(duì)有許多并發(fā)用戶的生產(chǎn)級(jí)環(huán)境非常重要。
3.MATLAB:為解線性方程系統(tǒng)而編寫
MATLAB是為數(shù)學(xué)家們解決線性方程系統(tǒng)而編寫的語言,它在企業(yè)界越來越受關(guān)注要?dú)w因于如今的企業(yè)需要分析數(shù)量龐大的數(shù)據(jù)。許多比較先進(jìn)的統(tǒng)計(jì)方法要將人與廣告、歌曲或網(wǎng)頁對(duì)應(yīng)起來,而它們依賴一些算法的強(qiáng)大功能,比如MATLAB提供的那些算法。
隨著日志文件變得更龐大,預(yù)計(jì)MATLAB的應(yīng)用會(huì)更廣泛。人們查看瀏覽的最熱門頁面列表是一回事,但從一組復(fù)雜的路徑提取想法卻需要強(qiáng)大的統(tǒng)計(jì)功能:人們在星期一還是在星期五更有可能購買衣服?產(chǎn)品瑕疵與生產(chǎn)線之間是否存在什么關(guān)聯(lián)?
MATLAB背后的MathWorks公司提供了一大堆白皮書,介紹工程師們在如何搜尋統(tǒng)計(jì)解決方案。比如,豐田車隊(duì)在風(fēng)洞及其他實(shí)驗(yàn)室分析預(yù)測其參加美國納斯卡(NASCAR)汽車賽的結(jié)果、加拿大的生物診斷研究所在尋找治療燒傷的最佳藥物等。
與MATLAB近似的還有眾多的開源語言,包括Octave、Scilab、Sage和PySci(PySci是上面提到的Python庫之一)。所有這些工具都有助于處理復(fù)雜的統(tǒng)計(jì)分析工作,如公司想了解客戶買過什么、該客戶將來想買什么等,用MATLAB進(jìn)行這種復(fù)雜的分析工作現(xiàn)已很常見。
4.JavaScript:每個(gè)瀏覽器都會(huì)用到
JavaScript絕不是一種默默無聞的編程語言。正好相反,它可能是世界上被編譯次數(shù)最多的編程語言,那完全是由于每當(dāng)有人打開網(wǎng)頁,每個(gè)瀏覽器都會(huì)下載相應(yīng)代碼、重新編譯。盡管有上述優(yōu)勢,同時(shí)采用AJAX技術(shù)的網(wǎng)頁也越來越普及,但JavaScript還是很少被認(rèn)為是在大型機(jī)上運(yùn)行的語言。
倒不是說這方面沒有做過努力。早在1996年,網(wǎng)景公司就試圖讓JavaScript成為其服務(wù)器平臺(tái)上的通用語言,但最后只是在瀏覽器端站穩(wěn)了腳跟。最近熱捧JavaScript的公司之一Aptana眼看開源AJAX Web服務(wù)器Jaxer根本不成氣候,只好叫停了開發(fā)工作。小型試驗(yàn)公司AppJet使用由Java編寫的Rhino JavaScript庫,以簡化服務(wù)器端的代碼編寫工作。該公司后來在2009年被谷歌收購,現(xiàn)在似乎致力于其他項(xiàng)目。
不過,JavaScript從來不缺新的應(yīng)用。比如,開源的面向文檔的數(shù)據(jù)庫CouchDB沒有使用SQL語言來查詢,而是采用Map函數(shù)和Reduce函數(shù)這兩個(gè)JavaScript函數(shù),前者用于選擇,后者用于歸并。
Node.js算是最近冒出來的讓人比較興奮的服務(wù)器端JavaScript框架之一,它重新激起了昔日的夢想:讓客戶端編程和服務(wù)器端編程彼此協(xié)調(diào)。其軟件包采用谷歌為谷歌瀏覽器開發(fā)的V8 JavaScript引擎,讓該引擎決定如何為發(fā)出去的數(shù)據(jù)編排格式。
一般而言,凡是有需要用到少量腳本的地方,JavaScript都能找到新的用武之地。如果大型應(yīng)用程序的開發(fā)人員想要讓用戶能夠編寫子應(yīng)用程序,JavaScript也算是最簡單的方法之一。JavaScript將在企業(yè)領(lǐng)域繼續(xù)發(fā)展壯大,而每次只需要一小段代碼。
5.R:專為統(tǒng)計(jì)分析而生
如今,統(tǒng)計(jì)分析工作越來越多地用R語言來完成,不過一些純粹主義者還是用S這個(gè)最初的名稱來稱呼這種語言。Tibco公司銷售一款名為S-Plus的商業(yè)版產(chǎn)品。
以后恐怕不會(huì)有S++了,因?yàn)檫@種語言更多地是一種LISP語言或Scheme語言,只是多了計(jì)算統(tǒng)計(jì)函數(shù),以及通過漂亮圖片顯示結(jié)果的功能。要是公司老板希望計(jì)算機(jī)快速處理數(shù)10億行日志文件,查找模式、聚類和預(yù)測變量,那么R或S是一種備受喜愛的解決辦法。
R可以說是數(shù)值和統(tǒng)計(jì)方法領(lǐng)域的一把瑞士軍刀,可快速理清龐大的數(shù)據(jù)集——這種數(shù)據(jù)集太大了,也許稱之為瑞士軍用大砍刀更合適。Tibco公司Spotfire S-Plus的產(chǎn)品管理高級(jí)主管Lou Bajuk-Yorgan表示,現(xiàn)在有許多客戶在使用其軟件,用來幫助他們研究商業(yè)或工程項(xiàng)目如何運(yùn)作或者項(xiàng)目為什么會(huì)失敗,其中一個(gè)例子就是分析氣候模式,找出風(fēng)力發(fā)電機(jī)建在哪里最合適。
6.Erlang:面向跨多個(gè)服務(wù)器的應(yīng)用開發(fā)
你的服務(wù)器需要同時(shí)響應(yīng)許多不同的獨(dú)立消息嗎?需要把這些請求分配給不同的處理器核心或在世界上不同地方的服務(wù)器嗎?這實(shí)際上是企業(yè)計(jì)算難度最大的地方。Erlang就擅長處理這些任務(wù),這種開源語言最先由愛立信計(jì)算實(shí)驗(yàn)室的科學(xué)家們開發(fā)而成。
這種語言將傳統(tǒng)的函數(shù)式編程與已經(jīng)編譯成本地機(jī)器碼的現(xiàn)代虛擬機(jī)結(jié)合起來,這種語言結(jié)構(gòu)有利于編程員們開發(fā)出更容易跨多個(gè)處理器核和多個(gè)虛擬機(jī)的程序代碼。許多Web服務(wù)器和CouchDB實(shí)際上是用Erlang實(shí)現(xiàn)的。這很合理:要求接收用JavaScript而不是用SQL編寫的查詢語句的數(shù)據(jù)庫本身就是用Erlang編寫的。
CouchDB僅僅是個(gè)開頭。許多處理“龐大數(shù)據(jù)”的項(xiàng)目經(jīng)理在構(gòu)建用一種可以擴(kuò)展的方式來存儲(chǔ)大量數(shù)據(jù)的系統(tǒng)。Gemini Mobile公司的開源項(xiàng)目Hibari提供了一致、可擴(kuò)展的聚類,用來存儲(chǔ)在故障后可自行修復(fù)的鍵值對(duì)。有了功能式框架讓編程員可以更容易開發(fā)出能高效處理多個(gè)連接的大型應(yīng)用程序。
7.CUDA擴(kuò)展:適合大規(guī)模并行任務(wù)處理
CUDA擴(kuò)展其實(shí)是函數(shù)庫,用于對(duì)視頻卡編程,以便處理大規(guī)模并行任務(wù)。嚴(yán)格上來說,它不是一種語言,只是C語言的擴(kuò)展而已。不過,一些企業(yè)的程序員還是開始探究將這種大規(guī)模并行架構(gòu)用于游戲領(lǐng)域制作場面逼真的血液噴濺效果。這里需重新編寫循環(huán)語句以便實(shí)現(xiàn)大規(guī)模并行處理,這意味著,重新考慮來自C或C++編程方面的許多慣用手法,CUDA擴(kuò)展因而顯得更加重要。
用到CUDA擴(kuò)展的機(jī)會(huì)很多,包括機(jī)器視覺、大規(guī)模模擬和海量統(tǒng)計(jì)計(jì)算。數(shù)據(jù)分析的許多問題天生具有大規(guī)模并行的特點(diǎn),使得GPU處理器值得關(guān)注。最近,知名GPU廠商英偉達(dá)(Nvidia)舉辦了一次專門探討CUDA應(yīng)用的會(huì)議,有幾場分會(huì)就專門介紹計(jì)算流體動(dòng)力學(xué)、計(jì)算機(jī)視覺、數(shù)據(jù)庫及數(shù)據(jù)挖掘、金融動(dòng)力學(xué)及分子動(dòng)力學(xué)。光這方面的應(yīng)用就非常廣泛,足以解釋為什么大企業(yè)的編程員們對(duì)CUDA很好奇。
英偉達(dá)高級(jí)副總裁Dan Vivoli出席了英偉達(dá)舉辦的那次大會(huì),科學(xué)家們在會(huì)上介紹了探討GPU的并行計(jì)算機(jī)制如何適用于這些領(lǐng)域的論文后,他說:“顯然,GPU在應(yīng)用方面進(jìn)入了廣闊的天地。現(xiàn)在,GPU處理器遍及所有不同的學(xué)科和行業(yè)領(lǐng)域,因此CUDA大有用武之地?!?/P>
- 1廈門OA軟件
- 2合肥OA軟件行業(yè)資訊
- 3杭州OA軟件
- 4鄭州OA軟件
- 5濟(jì)南OA軟件
- 6青島OA軟件
- 7太原OA軟件
- 8上海OA軟件
- 9上海OA軟件行業(yè)資訊
- 10石家莊OA軟件
- 11天津OA軟件
- 12沈陽OA軟件
- 1云計(jì)算 讓分離之憂不再
- 2做不見面的互聯(lián)網(wǎng)的OA軟件公司才是最好的
- 3用開源軟件建垂直搜索引擎
- 4高性能計(jì)算平臺(tái)要貼近應(yīng)用
- 5電子簽名與認(rèn)證:網(wǎng)商應(yīng)用知多少?
- 6六大方法讓云計(jì)算部署如虎添翼
- 7如何選擇數(shù)字光端機(jī)以及光端機(jī)使用保養(yǎng)
- 8vSphere、Hyper-V與XenServer 你選哪個(gè)?
- 9多租戶架構(gòu)對(duì)云很重要
- 10部署適用于云的多租戶基礎(chǔ)結(jié)構(gòu)
- 11Novell: IWM為云計(jì)算護(hù)航
- 122011年統(tǒng)一通信十大趨勢
- 13三種3G技術(shù)的優(yōu)勢分別是什么?
- 14OA軟件的綜合事務(wù)處理與會(huì)議管理功能
- 15協(xié)同OA辦公系統(tǒng)的培訓(xùn)前準(zhǔn)備工作
- 16左右托管式VoIP通話質(zhì)量的五大因素
- 17信息技術(shù)與電子政務(wù)的“融合”
- 18EDA 和 SOA 的融合以及實(shí)踐
- 19自動(dòng)分層存儲(chǔ)越精細(xì)越好?
- 20配置VLAN讓HYPER-V環(huán)境更加靈活
- 21Windows 7操作系統(tǒng)下的備份與還原
- 22如何讓IaaS服務(wù)免受DNS漏洞的威脅?
- 23網(wǎng)絡(luò)視頻監(jiān)控發(fā)展的5大驅(qū)動(dòng)勢力
- 24長沙OA軟件房地產(chǎn)行業(yè)解決方案
- 252010年數(shù)據(jù)中心網(wǎng)絡(luò):雙層網(wǎng)絡(luò)來臨
- 26微軟HPC Server 2008 R2 Beta2四“新”
- 27基于SOA模式的企業(yè)架構(gòu)設(shè)計(jì)
- 28中國聯(lián)通北京手機(jī)支付商用親體驗(yàn)
- 29科技世博會(huì) 精彩IT
- 30選購重復(fù)數(shù)據(jù)刪除方案的五個(gè)指標(biāo)
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓