軟件開(kāi)發(fā)領(lǐng)域那些經(jīng)典的技術(shù)之爭(zhēng).doc_第1頁(yè)
軟件開(kāi)發(fā)領(lǐng)域那些經(jīng)典的技術(shù)之爭(zhēng).doc_第2頁(yè)
軟件開(kāi)發(fā)領(lǐng)域那些經(jīng)典的技術(shù)之爭(zhēng).doc_第3頁(yè)
軟件開(kāi)發(fā)領(lǐng)域那些經(jīng)典的技術(shù)之爭(zhēng).doc_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

開(kāi)發(fā)技術(shù)之爭(zhēng)第一位:PHP對(duì)Node.js作為一款從未受到計(jì)算機(jī)科學(xué)家青睞的語(yǔ)言,PHP受到想為自身網(wǎng)站增添一點(diǎn)智能元素的開(kāi)發(fā)人員的熱烈追捧。這些包含激情的技術(shù)人員為我們帶來(lái)了眾多令人贊賞的框架,例如WordPress、Drupal以及Joomla等等。時(shí)至今日,大多數(shù)Web內(nèi)容都由PHP所構(gòu)建?,F(xiàn)在這套已經(jīng)相當(dāng)成熟的模式面臨著新的挑戰(zhàn)者。剛剛?cè)腴T(mén)的新人們更推崇Node.js,這是一套基于JavaScript的服務(wù)器端編程機(jī)制。幾乎在一夜之間,程序員們已經(jīng)可以編寫(xiě)出有能力運(yùn)行在客戶端或者服務(wù)器端的代碼,而且根本不需要額外再學(xué)習(xí)一門(mén)新語(yǔ)言。Node.js擁有自己的獨(dú)特風(fēng)格,但眾多出色的現(xiàn)有框架已經(jīng)能夠使其獲得可與各類(lèi)最佳PHP堆棧相比肩的功能特性。下一代開(kāi)發(fā)人員是否會(huì)出于編寫(xiě)便捷性考量而選擇且只選擇JavaScript?又或者,他們會(huì)繼續(xù)堅(jiān)持使用更易于嵌入至HTML當(dāng)中的編碼方式?很明顯,原本喜愛(ài)JavaScript的開(kāi)發(fā)人員會(huì)毫不猶豫地投身于Node懷抱,而希望使用WordPress或者Drupal等源自PHP的穩(wěn)定堆棧的從業(yè)者則將與這場(chǎng)Node.js普及風(fēng)暴謹(jǐn)慎地保持距離。開(kāi)發(fā)技術(shù)之爭(zhēng)第二位: MySQL對(duì)PostgreSQL在過(guò)去近二十年當(dāng)中,這兩款堪稱(chēng)偉大的開(kāi)源數(shù)據(jù)庫(kù)方案一直在爭(zhēng)斗不休、而且時(shí)至今日我們也看不到雙方握手言和的可能性。在一方面,MySQL在Web基礎(chǔ)工作負(fù)載領(lǐng)域擁有無(wú)可匹敵的巨大份額占比,這要?dú)w功于其簡(jiǎn)便易行的安裝與配置機(jī)制。而在另一方面,PostgreSQL長(zhǎng)久以來(lái)則始終承諾提供更理想的事務(wù)處理機(jī)制、從而保護(hù)數(shù)據(jù)免受潛在漏洞的威脅。這兩位重量級(jí)選手都在向?qū)Ψ綄W(xué)習(xí)優(yōu)勢(shì)與長(zhǎng)處,現(xiàn)在MySQL已經(jīng)擁有更出色的事務(wù)處理功能、而PostgreSQL也對(duì)自身的初次啟動(dòng)流程進(jìn)行了大刀闊斧的精簡(jiǎn)。不過(guò)歷史的慣性仍然推動(dòng)著二者在當(dāng)下保持著對(duì)立關(guān)系。PostgreSQL通常被視為更具“穩(wěn)定性”的解決方案,而MySQL的長(zhǎng)處則在于“快捷性”。不過(guò)平心而論,這兩種差異如今更多地反映在固有印象而非實(shí)際表現(xiàn)層面。所謂積重難返,這兩套軟件包可能還將在未來(lái)二十年中繼續(xù)這種激烈的對(duì)抗,而杰出的技術(shù)大牛與甲骨文反對(duì)者們的鼎力支持似乎讓PostgreSQL擁有更為順?biāo)斓陌l(fā)展前景。開(kāi)發(fā)技術(shù)之爭(zhēng)第三位:Objective-C對(duì)Swift蘋(píng)果長(zhǎng)久以來(lái)一直將Objective-C這款C語(yǔ)言精簡(jiǎn)化版本且具備面向?qū)ο缶幊痰拈_(kāi)發(fā)方案作為獨(dú)苗而呵護(hù)有加。然而時(shí)過(guò)境遷,現(xiàn)在Swift已經(jīng)閃亮登場(chǎng)并為開(kāi)發(fā)人員帶來(lái)更具現(xiàn)代特色的語(yǔ)法體系,允許大家在擺脫大量規(guī)范束縛的前提下更輕松地為蘋(píng)果的移動(dòng)平臺(tái)創(chuàng)建代碼。誠(chéng)然,從C語(yǔ)言起步學(xué)習(xí)開(kāi)發(fā)技術(shù)的從業(yè)者們并不介意面對(duì)一大堆未分類(lèi)文件,但從Python、Ruby甚至是Java領(lǐng)域轉(zhuǎn)向iOS平臺(tái)的新手們紛紛表示這種機(jī)制簡(jiǎn)直反人類(lèi)。那么Swift的簡(jiǎn)潔化架構(gòu)能否牢牢抓住蘋(píng)果開(kāi)發(fā)人員的心呢?Python與Ruby開(kāi)發(fā)人員又是否會(huì)大量涌向iOS環(huán)境,并給傳統(tǒng)Objective-C開(kāi)發(fā)人員造成沖擊甚至是排擠壓力呢?又或者,久經(jīng)考驗(yàn)的Objective-C程序員也許能憑借著自身驚人的開(kāi)發(fā)效率繼續(xù)在新形勢(shì)下保持統(tǒng)治地位?新的代碼庫(kù)及各類(lèi)功能特性會(huì)通過(guò)Swift還是Objective-C加以創(chuàng)建?蘋(píng)果公司已經(jīng)公開(kāi)表示,兩款編程語(yǔ)言完全可以共存,所以開(kāi)發(fā)人員無(wú)論如何選擇、都能找到屬于自己的立足空間。那些喜愛(ài)Python或者Java的從業(yè)者將投向Swift的懷抱,而以C語(yǔ)言為起點(diǎn)的老鳥(niǎo)們則不妨繼續(xù)堅(jiān)持自己的Objective-C之路。開(kāi)發(fā)技術(shù)之爭(zhēng)第四位: Python對(duì)Ruby很久很久以前,有一款腳本語(yǔ)言堪稱(chēng)軟件領(lǐng)域的萬(wàn)能膠。如果大家需要將多個(gè)大型項(xiàng)目接駁在一起,那么只需要在操作系統(tǒng)當(dāng)中簡(jiǎn)單編寫(xiě)一些代碼、任務(wù)就能得到順利完成。以此為起點(diǎn),喜愛(ài)這些小型語(yǔ)言的開(kāi)發(fā)者們開(kāi)始拓展其規(guī)模、旨在進(jìn)一步發(fā)揮其已經(jīng)得到證明的出色效果。Ruby在與Rails框架牽手之后爆發(fā)出了強(qiáng)大的能量二者的結(jié)合體讓開(kāi)發(fā)人員能夠以短短幾行代碼即將復(fù)雜的前端與數(shù)據(jù)庫(kù)對(duì)接起來(lái)。與此同時(shí),Python也找到了自己的粉絲團(tuán)體計(jì)算機(jī)科學(xué)家。如今它已經(jīng)在世界各地的科學(xué)實(shí)驗(yàn)室中成為當(dāng)之無(wú)愧的天王巨星。而隨著統(tǒng)計(jì)分析技術(shù)在全球各大企業(yè)當(dāng)中不斷涌現(xiàn),作為領(lǐng)頭羊的Python在數(shù)據(jù)科學(xué)實(shí)驗(yàn)室的強(qiáng)力推動(dòng)之下、順利在業(yè)務(wù)環(huán)境中找到了施展的平臺(tái)。那么新生代的開(kāi)發(fā)人員是否會(huì)由于Python框架那允許使用空格的簡(jiǎn)便特性而投身其中?Ruby又能否超越Rails,在發(fā)展道路上更進(jìn)一步?Python的內(nèi)置功能是否會(huì)使其成為凌駕于Ruby之上的理想選擇?相比之下,與科學(xué)家和與Web技術(shù)牛人為伍,哪邊更酷、更具吸引力?也許這條戰(zhàn)線還將延續(xù)下去甚至永無(wú)休止,其中Web大師們會(huì)繼續(xù)堅(jiān)持自己的Rails道路、而科學(xué)家則安然隱居在Python庫(kù)所構(gòu)建起的象牙塔中。開(kāi)發(fā)技術(shù)之爭(zhēng)第五位: SQL對(duì)NoSQL審視本輪比試的兩位選手,大家會(huì)發(fā)現(xiàn)其中之一居然是我們祖父輩的技術(shù)人就在使用的解決方案。數(shù)據(jù)能夠很好地填充到表當(dāng)中,而數(shù)據(jù)庫(kù)則通過(guò)執(zhí)行外部查詢操作將其匹配到對(duì)應(yīng)的表以及正確的行。在另一方面,NoSQL顯然代表著一股新生勢(shì)力,它承諾在速度與并行效率上帶來(lái)飛躍性提升。不過(guò)它也有自己的缺陷有時(shí)候表現(xiàn)會(huì)比較糟糕,數(shù)據(jù)庫(kù)將返回錯(cuò)誤或者前后不一的查詢結(jié)果。經(jīng)驗(yàn)豐富、久經(jīng)考驗(yàn)的傳統(tǒng)數(shù)據(jù)庫(kù)方案能夠運(yùn)用其多年沉淀而成的事務(wù)處理機(jī)制為我們的數(shù)據(jù)提供理想保護(hù)?又或者,大家更傾向于選擇一款速度更快、成本更低廉且更具現(xiàn)代特性的工具,從而將工作負(fù)載高效地傳播到整套設(shè)備集群中去?當(dāng)然,一致性與準(zhǔn)確性也同樣值得關(guān)注,但這些對(duì)于一份來(lái)自互聯(lián)網(wǎng)的、內(nèi)容完全隨機(jī)的數(shù)據(jù)表而言明顯毫無(wú)意義。我們有必要對(duì)一切信息都像數(shù)據(jù)科學(xué)家那樣加以嚴(yán)格保護(hù)嗎?答案(通常)是:只有銀行或者航空公司等對(duì)一致性要求極高的企業(yè)才需要利用傳統(tǒng)SQL數(shù)據(jù)庫(kù)來(lái)保障真實(shí)事務(wù)處理的可靠性。除此之外,其它用戶不妨選擇速度更快、使用更便捷且更具可擴(kuò)展性的NoSQL方案。開(kāi)發(fā)技術(shù)之爭(zhēng)第六位: JavaScript對(duì) Dart與Go (或者說(shuō)是對(duì)抗谷歌本身)JavaScript也許在谷歌公司內(nèi)部也擁有一部分堅(jiān)定的支持者,但從技術(shù)巨頭無(wú)休止地打造自有方案來(lái)看、我們絲毫體會(huì)不到其對(duì)于JavaScript的高度肯定與依賴。最初,谷歌拿出了GWT(即Google Web Toolkit),這是一款頗具智能特性的跨界式編譯器,能夠?qū)ava代碼轉(zhuǎn)換為JavaScript。如果大家查看過(guò)Gmail或者其它谷歌產(chǎn)品的代碼堆棧,就會(huì)發(fā)現(xiàn)其并非利用JavaScript進(jìn)行手工編寫(xiě)。接下來(lái),谷歌公司又創(chuàng)造出了Dart與Go兩款編程語(yǔ)言,它們的誕生意義很明確有朝一日在瀏覽器環(huán)境下徹底取代JavaScript。Dart與Go二者都擁有正確的發(fā)展思路與存在價(jià)值。它們的作用在于修復(fù)JavaScript以及瀏覽器堆棧當(dāng)中所固有的突出問(wèn)題,但很多人對(duì)此表示并不在乎。JavaScript在服務(wù)器端已經(jīng)獲得了爆炸式的份額增長(zhǎng),而這完全要?dú)w功于Node.js。好了,這就是開(kāi)發(fā)人員關(guān)注的一切其它的,管它呢。即使傾盡所有力量,谷歌也仍然面臨著一場(chǎng)非常艱難的苦戰(zhàn)。規(guī)模龐大的程序員群體很久以前就開(kāi)始學(xué)習(xí)JavaScript,如今也有意愿利用這款語(yǔ)言對(duì)自己的服務(wù)器堆棧進(jìn)行重寫(xiě)。要與人的習(xí)慣思維對(duì)抗真的非常困難,但或許早期采納者們的贊揚(yáng)之聲以及Dart與Go那清晰的語(yǔ)法和簡(jiǎn)潔的模型真能讓這兩位后起之秀在群眾中得到一定程度的關(guān)注至少不會(huì)徹底被人們所忽視。開(kāi)發(fā)技術(shù)之爭(zhēng)第七位: Chef對(duì)Puppet很久以前,一家企業(yè)只需要在機(jī)房里部署幾臺(tái)服務(wù)器、并為其安裝新軟件即可,多么輕松、多么簡(jiǎn)便。然而云計(jì)算隨后席卷而來(lái),每一家網(wǎng)站無(wú)論有無(wú)必要都被迫運(yùn)行規(guī)模龐大的設(shè)備集群,并為之配備更為強(qiáng)勁的維護(hù)團(tuán)隊(duì)。這意味著要在N臺(tái)設(shè)備上重復(fù)N次同樣的操作,但又不能出現(xiàn)任何誤差或者紕漏。Chef與Puppet是兩款已經(jīng)擁有極高人氣的工具,旨在幫助管理員們以統(tǒng)一化方式對(duì)大量云設(shè)備進(jìn)行配置。DevOps專(zhuān)家們對(duì)于Chef作為一款配置管理工具的卓越靈活性贊不絕口,它允許大家利用Ruby編寫(xiě)指令并實(shí)現(xiàn)設(shè)備創(chuàng)建?!按蠹铱梢暂p松發(fā)揮Ruby的全部功能,”他們感嘆道。Puppet的作用同樣在于集群配置,但卻專(zhuān)門(mén)使用一種類(lèi)似于JSON的語(yǔ)言、希望能集中辦好一類(lèi)工作。盡管Puppet的新型版本也開(kāi)始部分引入Ruby,但其基礎(chǔ)語(yǔ)言仍然占據(jù)著統(tǒng)治地位?,F(xiàn)在問(wèn)題就在大家面前:到底是為任務(wù)創(chuàng)建一套定制化語(yǔ)法好呢,還是將一款受眾廣泛、用途多樣的編程語(yǔ)言的一切能力(但也包括危險(xiǎn))直接塞給用戶好?開(kāi)發(fā)技術(shù)之爭(zhēng)第八位: Hudson對(duì)Jenkins持續(xù)集成的核心思路在于以自動(dòng)化方式對(duì)提供到資源庫(kù)內(nèi)的所有新代碼進(jìn)行測(cè)試與部署。而在這類(lèi)方案收到良好效果之后,人們就開(kāi)始對(duì)這筆寶貴的遺產(chǎn)加以爭(zhēng)奪。此輪對(duì)抗的一方是Hudson,屬于Eclipse基金會(huì)的官方分支項(xiàng)目,且由眾多原本效力于Sun、后因收購(gòu)而轉(zhuǎn)投甲骨文旗下的技術(shù)人員負(fù)責(zé)運(yùn)作。他們擁有一流企業(yè)所特有的審慎態(tài)度,構(gòu)建出了一套穩(wěn)定且值得信賴的企業(yè)級(jí)工具。另一方則是Jenkins,眾多技術(shù)人員最喜愛(ài)的實(shí)驗(yàn)性環(huán)境。Jenkins的發(fā)展節(jié)奏與前者相比要快得多,其幾乎每個(gè)禮拜都會(huì)推出新版本。這場(chǎng)Hudson與Jenkins之間的對(duì)抗象征著開(kāi)發(fā)人員領(lǐng)域即將爆發(fā)的一場(chǎng)規(guī)模更大的爭(zhēng)斗:一方是堅(jiān)持對(duì)提交代碼進(jìn)行嚴(yán)格測(cè)試、重視穩(wěn)定性的保守派,另一方則是重視快速開(kāi)發(fā)、快速修復(fù),希望能從規(guī)?;_(kāi)發(fā)者社區(qū)獲取更龐大代碼貢獻(xiàn)數(shù)量的激進(jìn)派。開(kāi)發(fā)技術(shù)之爭(zhēng)第九位: MySQL對(duì)MariaDB說(shuō)起甲骨文所支持項(xiàng)目面臨的選擇難題,我們就不能不提到MariaDB與MySQL之間的恩怨情仇。當(dāng)初甲骨文買(mǎi)下MySQL時(shí),開(kāi)源擁護(hù)者們擔(dān)心這位以獨(dú)斷專(zhuān)行著稱(chēng)的紅色巨人會(huì)打造出一款強(qiáng)大但專(zhuān)有的工具。盡管他們的擔(dān)心在很大程度上并沒(méi)有什么實(shí)質(zhì)性依據(jù),但這并沒(méi)有阻止Monty WideniusMySQL項(xiàng)目的創(chuàng)始人之一從頭開(kāi)始建立自己的fork版本。MariaDB所提供的語(yǔ)法與功能與MySQL幾乎如出一轍,但現(xiàn)在它已經(jīng)擁有眾多新特性與存儲(chǔ)引擎,能夠帶來(lái)更理想的運(yùn)行速度至少在MariaDb的支持者們看來(lái)是如此。那么市場(chǎng)會(huì)選擇斗志旺盛、充滿活力的MariaDB,還是堅(jiān)持規(guī)模龐大且多年以來(lái)一直占據(jù)主導(dǎo)地位的MySQL?全世界的開(kāi)發(fā)人員會(huì)選擇規(guī)模較小但創(chuàng)新能力極強(qiáng)的新生力量,還是穩(wěn)固可靠的企業(yè)集團(tuán)?開(kāi)發(fā)技術(shù)之爭(zhēng)第十位: 編譯對(duì)腳本編譯化與腳本化之間的區(qū)別并不像當(dāng)初的即時(shí)編譯器與優(yōu)化器之間的差異那樣明顯,但這種不同在程序員們看來(lái)仍然非常重要。他們希望自己的代碼被剖析、調(diào)整、優(yōu)化并翻譯成更為簡(jiǎn)單的機(jī)器碼?還是更希望以相對(duì)輕松的方式讓計(jì)算機(jī)在運(yùn)行時(shí)中進(jìn)行代碼解釋僅僅偶爾允許代碼對(duì)自身進(jìn)行修改?一方面的代表性角色有C以及

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論