IT界發(fā)展首先是PC,之后是Web,現(xiàn)在是移動應(yīng)用。每個開發(fā)者可能更關(guān)心下一波浪潮中,哪種技術(shù)又會出現(xiàn)呢?他們應(yīng)該投注于哪個平臺呢?Shawn Wildermuth專門針對此問題發(fā)表了一篇文章《Which Platform is Next? All of Them…》,下面是該文的譯文。
這幾年,各種不同的技術(shù)盛行:iPhone、Android、iPad和HTML5等等。對于某些組織,種類繁多的技術(shù)讓他們心生畏懼,更不用說專門從事該行的開發(fā)者和測試者了。你已經(jīng)在某特定的平臺上工作了幾個月,甚至幾年,并已對它很擅長了?,F(xiàn)在興起了這么多新技術(shù),要求你不斷去學(xué)習(xí)新事物。
這可能很可怕……當(dāng)然,除非你很喜歡這些新技術(shù)。
“變化”是永恒不變的
我進入該行業(yè),并不斷學(xué)習(xí)著。小時候,我就熱衷于新的軟件,想看看它可以幫助我完成什么事情。我十分期盼能獲得一本我很崇拜的計算機雜志,這樣我就可學(xué)習(xí)另一種Basic程序,并看看這些新程序是如何工作的。
直到了今天,我仍把新技術(shù)視為挑戰(zhàn)。我努力使自己不陷入“四眼天雞”的想法中。對于我來說,這些挑戰(zhàn)正是我們要成為程序員的原因。讓我們看一個過去的例子。
回到2000年,微軟舉辦了一個小型的專業(yè)開發(fā)者大會(PDC),并在會上發(fā)布了:.NET。當(dāng)時有大量的開發(fā)者在使用微軟技術(shù),當(dāng)然不全是C++和Visual Basic開發(fā)者。
.NET神秘面紗的揭開,引起了開發(fā)者兩種不同的反應(yīng):一種是對新平臺的興奮,一種則是對它的恐懼。一些已為他們的技術(shù)傾盡心力的開發(fā)者拒絕改變。甚至有很多人寫信希望微軟可以繼續(xù)投資Visual Basic,而不是Visual Basic .NET。
誰會成為下一場技術(shù)革命?
盡管如些,向.NET的遷移并不能算是一場革命。Windows開發(fā)者仍在繼續(xù)使用Windows;他們的操作系統(tǒng)知識仍在繼續(xù)發(fā)揮作用。
但近幾年來,出現(xiàn)了很多變革性的新技術(shù)。IT行業(yè)中的一些人很想知道他們到底應(yīng)該在哪種技術(shù)上下堵注。問題就在于這些技術(shù)僅僅是:變革性。如果你能好好規(guī)劃它們,他們就不再具有變革性了。那么你應(yīng)該做什么?什么也不要做。
你并不能為“變革”做規(guī)劃,但你可以提前為此做準(zhǔn)備。提前為某個組織做準(zhǔn)備意味著可以有更廣闊的人脈和技巧,這樣一旦有變革發(fā)生,你可以有人依靠。當(dāng)變革發(fā)生時,你到底需要學(xué)習(xí)什么呢?
事實上25年以來開發(fā)的變化并不大。我很頻繁的變換開發(fā)語言,這令人敬佩的“if”和“While”語句仍然還在。所以學(xué)習(xí)一門新語言并不難。每一門語言都有它的特色,但它們彼此之間擁有更多的是共性。
發(fā)生改變的是平臺。組織通常能夠選擇一個平臺。即便這個平臺發(fā)生了一些改變,大部分共享的知識還是相同的。例如由Windows窗體轉(zhuǎn)變成ASP.NET,需要付出很多努力,但是.NET Framework和語言仍然是相同的。這就是所謂的變化。
事情往往是這樣的,你能夠開發(fā)一個產(chǎn)品,并對其很滿意。它可能是一個桌面應(yīng)用程序,或者一個Web應(yīng)用,也或者是一個移動應(yīng)用。但這些應(yīng)用之間的區(qū)別正變得模糊。今天,如果你正為普通用戶開發(fā)一款產(chǎn)品(未必一定是為企業(yè)家),你一定要使它可以處處訪問。構(gòu)建一個典型的用戶服務(wù)需要構(gòu)建以下幾項事情:
● 一個偉大的網(wǎng)站;
● 一個偉大的Web API;
● 一個偉大的移動應(yīng)用;
● 一個偉大的平板電腦應(yīng)用。
雖然這個列表很短,要想獲得大部分有潛力的客戶,你需要使用各種不同的技術(shù)。舉個例子,假設(shè)你要構(gòu)建一個商店。你需要使用ASP.NET去搭建網(wǎng)站(當(dāng)然也會用到HTML和JavaScript);為了構(gòu)建API,你需要知道REST,可能還需要數(shù)據(jù)庫技術(shù);為了搭建移動應(yīng)用,你需要掌握Objective-C、Java,可能還有Silverlight。真是有好多技術(shù)需要掌握。
你可能會發(fā)牢騷說我沒有提到橋接技術(shù),像MonoTouch、MonoDroid和PhoneGap。這些技術(shù)可以很好的幫助開發(fā)。但正如上文中提到的,真正要學(xué)習(xí)的是平臺(如:iOS、Android和Windows Phone),以及如何開發(fā)出用戶所期望的偉大應(yīng)用。這些中間工具可以從中起到很好的輔助作用,但他們并不能讓你省去學(xué)習(xí)平臺,他們只會讓你省去再學(xué)一門新語言。
開發(fā)者要做什么呢?
真正的力量是放棄任何概念,振作起來面對改變。你能夠適應(yīng)你當(dāng)前正處于的環(huán)境,這是最關(guān)鍵的。換句話說,接受變化總會發(fā)生這個實事,你要不停地學(xué)習(xí)新的技術(shù)。對于大部分組織,擁有一批聰明、積極的開發(fā)者比擁有一批特殊技能的開發(fā)者更重要。因為這些開發(fā)者可以適應(yīng)新的環(huán)境。你所下堵注的技術(shù)不會永遠存活,但要意識到一個新的平臺可能是幫助你適應(yīng)環(huán)境的一系列平臺的組合。適應(yīng)是任何組織生存的關(guān)鍵。
當(dāng)然,你可以繼續(xù)使用FORTRAN、RPG,或者COBOL,但這樣會讓該組織陷入技術(shù)的沼澤中,而無法做它擅長做的事:增強商務(wù)。