原帖地址:
http://www.runpc.com.tw/content/168/168E18_1.aspx
2008年必須知道的新技術(shù)——軟體開發(fā)篇 [zz]
2008年必須知道的新技術(shù)─軟件開發(fā)篇
文/蔡學(xué)鏞.匯整/編輯部
________________________________________
新 技術(shù)不斷出現(xiàn),其中某些技術(shù)很可能會成為我們不可避免的挑戰(zhàn),因此每隔幾年,我們
都應(yīng)該審視我們未來應(yīng)該注意的技術(shù)有哪些。透過本文章,和大家分享我的技 術(shù)觀察與建
議。 當(dāng)然對大多數(shù)的開發(fā)者來說,Visual Studio 2008是今年的重頭戲,這也是Windows
Vista推出之后的第一個全新的Visual Studio版本,不容我們輕忽。但依照慣例,微軟還是
會用大量的技術(shù)資料、研討會、資源…等,把我們喂得飽飽的。我就不用在此多介紹了。
另外RIA也是今年的重點,最值得注意的RIA技術(shù)當(dāng)然是WPF/Sliverlight和AIR/Flash。關(guān)于
RIA,許多文章都已經(jīng)有提及,我也 不在此贅述。我想在這篇文章中帶領(lǐng)大家認(rèn)識的,是比
較不一樣的新挑戰(zhàn)。
多核心與網(wǎng)絡(luò)運算
穆爾定律觀察到,每隔兩年,在單一芯片上能做的事會加倍。但是穆爾定律繞道而行,不是
產(chǎn)生越來越快的處理器(這幾年CPU頻率的增加已經(jīng)趨緩), Intel與AMD等公司的作法是產(chǎn)
生多核心的裝置:單一芯片內(nèi)包含兩個、四個、甚至更多個處理器。如果你的程序沒有共時
(concurrent),則一 次只會在單一個處理器上執(zhí)行,使用者會認(rèn)為你的程序很慢。對于
編程員來說,如何充分運用多核心的運算威力,變成一個重要的課題。 而網(wǎng)絡(luò)的連結(jié),造
成分布式的環(huán)境;如何用更有效的方式進行分布式編程,也會越來越重要。 結(jié)合了上面了
兩點因素,Erlang正開始獲得大家的重視。
Erlang解決了現(xiàn)今開發(fā)者面對的最迫切問題之一:如何寫出可靠、共時(concurrent)、高
效能的系統(tǒng)。Erlang已經(jīng)在世界各地被許多公司 廣泛地采用,這些公司用它來產(chǎn)生可靠、
有效率、具規(guī)模彈性的應(yīng)用。 Erlang是一個編程語言,它的設(shè)計目的,正是為了幫助我們
建立極度平行、分散、容錯(fault-tolerant)的系統(tǒng)。它已經(jīng)被商業(yè)采用運行多 年,建
立出許多容錯系統(tǒng)。多年來,這些Erlang所建立的系統(tǒng)出錯率極低。 Erlang程序在多核心
的計算機上執(zhí)行時,會充分運用系統(tǒng):這意味透過本文章,和大家分享我的技 術(shù)觀察與建
議。 當(dāng)然對大多數(shù)的開發(fā)者來說,Visual Studio 2008是今年的重頭戲,這也是Windows
Vista推出之后的第一個全新的Visual Studio版本,不容我們輕忽。但依照慣例,微軟還是
會用大量的技術(shù)資料、研討會、資源…等,把我們喂得飽飽的。我就不用在此多介紹了。
另外RIA也是今年的重點,最值得注意的RIA技術(shù)當(dāng)然是WPF/Sliverlight和AIR/Flash。關(guān)于
RIA,許多文章都已經(jīng)有提及,我也 不在此贅述。我想在這篇文章中帶領(lǐng)大家認(rèn)識的,是比
較不一樣的新挑戰(zhàn)。
多核心與網(wǎng)絡(luò)運算
穆爾定律觀察到,每隔兩年,在單一芯片上能做的事會加倍。但是穆爾定律繞道而行,不是
產(chǎn)生越來越快的處理器(這幾年CPU頻率的增加已經(jīng)趨緩), Intel與AMD等公司的作法是產(chǎn)
生多核心的裝置:單一芯片內(nèi)包含兩個、四個、甚至更多個處理器。如果你的程序沒有共時
(concurrent),則一 次只會在單一個處理器上執(zhí)行,使用者會認(rèn)為你的程序很慢。對于
編程員來說,如何充分運用多核心的運算威力,變成一個重要的課題。 而網(wǎng)絡(luò)的連結(jié),造
成分布式的環(huán)境;如何用更有效的方式進行分布式編程,也會越來越重要。 結(jié)合了上面了
兩點因素,Erlang正開始獲得大家的重視。
Erlang解決了現(xiàn)今開發(fā)者面對的最迫切問題之一:如何寫出可靠、共時(concurrent)、高
效能的系統(tǒng)。Erlang已經(jīng)在世界各地被許多公司 廣泛地采用,這些公司用它來產(chǎn)生可靠、
有效率、具規(guī)模彈性的應(yīng)用。 Erlang是一個編程語言,它的設(shè)計目的,正是為了幫助我們
建立極度平行、分散、容錯(fault-tolerant)的系統(tǒng)。它已經(jīng)被商業(yè)采用運行多 年,建
立出許多容錯系統(tǒng)。多年來,這些Erlang所建立的系統(tǒng)出錯率極低。 Erlang程序在多核心
的計算機上執(zhí)行時,會充分運用系統(tǒng):這意味著你的Erlang程序在四核心的計算機上會比單
核心的計算機上快,而最棒的是,你完全不需 要更動程序,就有如此顯著的效果。當(dāng)然,
你可以用別的語言做到和Erlang一樣的事,但是只會事倍功半。
GUI
在Windows 3.x時代,Charles Petzold的Windows程序設(shè)計著作是大家必讀的經(jīng)典。有人要
他為Windows NT也寫一本這樣的書,他卻說:等NT賣千萬套再說吧!這顯示出Charles
Petzold一直都是屬于「大眾技術(shù)類」的作家,當(dāng)他在2007年也寫出一本3D程序書籍時,或
許代表我們3D程序設(shè)計的時代已經(jīng)揭開序幕。 Vista與MacOS都早已經(jīng)進入3D的時代。如何
運用3D的API,開發(fā)出更炫目的設(shè)計,會是未來GUI吸引使用者的重點。
Java
除了Sun官方的Java,Google剛推出的手機平臺Android也是一種Java平臺。更不用提AIR也
可以算是廣義的Java平臺(太多地方都 類似Java,連Bytecode檔案格式都很類似)。由于
Android和AIR都不是弱勢的平臺,所以可能會造成Java的分歧。 但是雖然彼此分歧,也算
各有其所。Java用在Web后端,Android用在手機,AIR用在Web前端。
Shell
30多年來,沿襲自Unix的Shell用法,再怎么改變,終究是換湯不換藥。在微軟推出
PowerShell之后,Shell終于有了截然不同的面貌和 更強大的威力。運用.NET,整合各種對
象模型(WMI、COM…),PowerShell名稱中有出現(xiàn)Power(威力)絕非浪得虛名。相當(dāng)值得
系統(tǒng)管 理員與編程員學(xué)習(xí)。 但是提醒你,PowerShell或許不難上手,但是有太多陷阱。一
開始不熟悉這些陷阱時,會吃不少苦頭。
語言
從Tiobe的編程語言需求排名,可以看到Ruby與D語言快速進入主流;Perl消退,被Python超
越;C# 慢慢上漲、Java與C維持平盤、C++ 漸漸低落;Delphi持續(xù)探底,Lua往上猛竄。 估
計未來幾年,OO語言還是主流,函數(shù)語言漸漸流行。目前主要是學(xué)術(shù)圈在使用函數(shù)語言(
Functional Language),但確實有相當(dāng)多跡象顯示,函數(shù)編程有可能會漸漸走入業(yè)界。
自己寫parser。除非你用像REBOL這樣的語言,否則寫parser應(yīng)該會是很痛苦的事,幸好你
可以利用 ANTLR幫你產(chǎn)生parser。目前ANTLR已經(jīng)支持相當(dāng)多主流語言,ANTLR相當(dāng)值得學(xué)習(xí)
。
Security
網(wǎng)絡(luò)的時代,危機四伏。許多系統(tǒng)的保全都是事后加上的,這樣子很危險。事先良好的規(guī)劃
是建立保全環(huán)境的關(guān)鍵,而規(guī)劃的最佳工具是模型塑造 (modeling)。用形式上的作法,
尋找威脅與弱點,以破除攻擊。 STRIDE是相當(dāng)知名的威脅分類模型。STRIDE可以用來為系
統(tǒng)的重大威脅進行分類。威脅正是攻擊者希望發(fā)生的事,也就是我們不希望發(fā)生的事。如果
我 們塑模所有的STRIDE威脅分類,我們就有很高的機會可以涵蓋大多數(shù)重要的領(lǐng)域。
STRIDE是Spoofing(偽造)、Tampering(竄改)、Repudiation(否認(rèn))、Information
Disclosure(信息揭露)、Denial of Service(服務(wù)阻斷)、與Elevation of Privilege
(特權(quán)提升)的縮寫。 建立保全模型,有三個部分:威脅、資產(chǎn)、與緩解(mitigation)
。透過塑模了解你的系統(tǒng)可能面臨的威脅,并緩解問題,保護資產(chǎn)。不要讓你的程序, 布
滿弱點,危害大眾,程序員必須及早補充Security相關(guān)的知識,將STRIDE應(yīng)用在開發(fā)過程中
。
整體而言
簡單才是王道。PHP、RoR、REST會流行正是因為簡單才是王道。復(fù)雜的技術(shù)固然有許多美好
的愿景(彈性、效率、跨平臺…),但是大多數(shù)的 developer尚未看到愿景,就已經(jīng)半途陣
亡。復(fù)雜的技術(shù),學(xué)習(xí)門坎太高,開發(fā)過程太長,成本太高,所以只適合用在極少數(shù)的項目
中。 多語言的時代來臨。以往只要用C/C++,就可以包辦各種應(yīng)用的開發(fā),不管是系統(tǒng)程序
、桌面應(yīng)用、網(wǎng)絡(luò)應(yīng)用。現(xiàn)在卻是多語言的時代。多會幾個語言比較保 險,尤其是學(xué)會兩
、三個Script語言絕對不嫌多。 今天的資產(chǎn)是明天的包袱。不甘心丟棄手中的技術(shù)(畢竟
是多年學(xué)習(xí)的結(jié)果),改用(改學(xué))新技術(shù)者,會漸漸被時代拋棄。Paradigm Shift是常態(tài)
,所以我們應(yīng)該積極地接受這些新挑戰(zhàn),畢竟IT產(chǎn)業(yè)就是這樣。