未來的Java開發者 – JAVA編程語言程序開發技術文章

這是較早前發表於java.net上的一篇博文,它討論瞭軟件開發者們,特別是Java開發者們,具有哪些優勢,現在應該為未來作哪些準備工作,希望對所有軟件開發者們能有所提示。(2011.03.13最後更新)

Fabiane Nardon,Duke Award獲得者與Java Champion,Sven Reimers,Duke Award獲得者與NetBeans夢之隊成員,和我一起討論瞭未來的Java開發者,我已經發表瞭這些談話。最近的談話是在JavaOne BrasilJFokus。不可否認,我們不是特有遠見的人,今天我們所談到的”未來”僅憑經驗罷瞭。雖然在談話過程中,我們作出瞭一些特別的預測,但我們真的不想試著去預言太遠的將來,也不願爭論Java技術的未來。我們的想法隻是看看開發者們,特別是使用Java的開發者們,現在能做些什麼,以為他們自己的未來作些準備。此處,我想展示談話中的一些要點。
    軟件開發者一直都有一個獨一無二的機會,這就是Malcolm Gladwell在他的書Outliers中所說的有意義的工作:工作是自我管理的。工作是復雜的,它會占據你的思想。另外,工作是努力與回報之間的聯系–付出瞭,自然有回報
    Gladwell所說的關於”有意義的工作”的一個要點就是花時間使某人成為大師。他表述道,根據對不同領域–音樂,計算機,法律,農業–的研究,要在特定領域取得成功,差不多要花10000個小時在做有意義的工作上。Gladwell表示道,那些成功投入大量時間的人,以及那些成功的人,肯定都會投入大量的時間。Gladwell也討論到並沒有所謂的”天生”牛人,簡言之,傳統諺語”1%的靈感和99%的努力”不僅是真理,而且也是必然的。
    為未來做準備意味著,現在投入足夠多的時間會使你在未來成為更優秀和更重要的人。基於這種思維,軟件開發給予我們一些有趣的好處,由於缺少更好的詞匯,我將其稱之為自由。一些是舊有的自由,在軟件剛開始開發時就存在瞭,另一些則是新近才出現的,幸運地是,我們恰逢其時,正好能從中受益。

想像之自由


    如Dilber卡通畫所說:”試著使這樣一種觀念深入你的腦髓:軟件能夠做任何你設計讓它做的事情”。你的想像力是有限的。缺少約束使軟件的某些方面極為強大,也極其復雜。作為一種推論,你要深深領會的是軟件開發困難的,它不會因為出現一種新語言,新框架或新工具而變得簡單。在1975年,Edsger Dijkstra寫到”程序設計是數學應用各分支中最困難的分支之一;拙劣的數學傢最好保持其純粹數學傢的本色”。知道它到底有多難嗎?開發者們懷著激情來從事困難的工作,而他們自由的想像力則總是走在前面。

隨處運行之自由
    Java並不是第一個提出瞭”隨處運行”的思想,卻是第一個普及瞭該思想的技術。這並不是一個僅有利於Java的技術:自從在二十世紀九十業界將開發者從禁錮中解放出來,開發者認識到他們能夠編寫運行在多個環境上的軟件。今天,所有的開發技術會以這樣或那樣的方式嘗試著向你提供這種自由。當然,也許不是全部…但不應該是我們”不知道”的:不要把你自己綁定在單個技術提供者或平臺上。挑選那些使你有充足機會在多個環境上進行實驗的技術,這是使你在現在就能自由地對在未來可能有價值的技術進行實驗的唯一方法。Java並不是第一個提出瞭”隨處運行”的思想,卻是第一個普及瞭該思想的技術。這並不是一個僅有利於Java的技術:自從在二十世紀九十業界將開發者從禁錮中解放出來,開發者認識到他們能夠編寫運行在多個環境上的軟件。今天,所有的開發技術會以這樣或那樣的方式嘗試著向你提供這種自由。當然,也許不是全部…但不應該是我們”不知道”的:不要把你自己綁定在單個技術提供者或平臺上。挑選那些使你有充足機會在多個環境上進行實驗的技術,這是使你在現在就能自由地對在未來可能有價值的技術進行實驗的唯一方法。
    隨處運行還有另一個同樣重要的方面:一旦有許多程序能夠在不同的設備上運行,制造商就能更容易地創建新設備。我們在Android中看到瞭這種趨勢:通過放大開發者的才智和工具,並允許(至少是在一定程度上)開發者作用於不同的設備,Android創建瞭一個強大的且有眾多提供商參與的應用程序市場。使用大多數面向多平臺的開發技術,未來將會帶來更多的設備,機會將會為那些執著於隨處運行之自由的開發者敞開。

學習與構建之自由



    開源是一個改變世界的現象,對於開發者而言也可能是最重要的事情瞭。向Bart學習,重復說”開源有利於我,我將擁護它”一萬遍。就這麼幹,你行的。如果你計劃在軟件開發上花上大量時間,你就需要以軟件為業,你會懷著激情與熱情在這一工作上。如果你想為未來作好準備,你需要能夠學習由其他人已創造好的軟件,與其他人一道創造軟件,還要讓其他人在你的工作基礎之上創造軟件。如果未來是在你所參與創造的事物的基礎之上而創造的,那麼當未來發生時,你就處在正確的位置瞭,你將創造未來。
    對於公司,政府和用戶而言,開源還是許多其它的好處。但沒有人比開發者們受益更多。越快認識到這一點,你就能越快地知道自由地進行學習和創造的價值。

隨處(與任何人一塊兒)工作之自由



    隨處工作是一種風格,隨著時間的推移,這將變得更為普遍。這種風格有很多內涵,最明顯的是你能選擇一個好地方去生活,這一點是不能被忽視的。但還有另一面:如果你要在某件事情上花費大量時間,這件事情要是你喜歡的,而且還要有這樣的機會,那些最會做你所喜歡的事的人就在你身邊。在任何地方工作有兩種途徑,一是為你自己,另外是為瞭與你一塊兒工作的人。為瞭與最棒的人一塊兒工作,就不要管這些人在什麼地方:沒別的,就因為這些人不會為瞭你而搬傢的。所以,選好你想幹的工作,你就能在任何地方與任何人做任何事情瞭,至少當我們談論軟件開發時就能如此。這也意味著,你要與,在地理上,文化上,經濟上,語言上,或諸如此類方面,和你都有巨大差距的同事一塊兒工作。要尊重這一現實。把你自己從工作地點的束縛中解放出來,追求在任何地方與任何人一塊兒工作的自由吧,它將開啟巨大的機遇。

來自硬件的自由
    最近有一些關於3D打印的議論,討論該項技術將怎樣把制造過程轉換到頭腦中。想像一下,當你要制造什麼時,你無需操心建立一個工廠來制造這東西,你所需要的隻是你的主意和設計能力。是不是很奇妙?肯定是瞭。但如果你是一名軟件開發員,這一想法現在就能成真。如果你有任何想法,你不必購買/訂購/安裝/構建一個數據中心:你已擁有所需要全部設備,5分鐘就能搞定。大量的雲服務提供商在幕後做著這些工作,你所要的隻是一個好主意和代碼。噢,還記得先前我們提到的多平臺技術嗎?是的,在雲計算裡它也是有效的:確保你不會上某人的當,所以要明智地選擇與它打交道的方法。當然,沒有這個問題也還有其它很多問題。測試,實現,發展甚至於拋棄你的想法的自由已經正在改變著軟件開發。如果你認為雲計算與以前那種在某處使用一臺服務器進行同地協作的東西一樣的話,那你就應該馬上去使用它。把你的思想從硬件約束中解放出來,這需要花時間,所以現在就開始吧。

你自己的自由…
    如你所見,現在這些可能都成為瞭現實。但就現實來看,對大多數開發者來說,這些可能性並不能在指日間就成真的。但它可以是你自己的。那麼,未來是什麼呢?未來使越來越多的開發者們從這些自由中受益,意味著更多的想法能夠見到天日,能夠學習和創建更多的開源軟件,有更多的設備和供應商運行開發出來的程序

發佈留言