John Jiang

          a cup of Java, cheers!
          https://github.com/johnshajiang/blog

             :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
            131 隨筆 :: 1 文章 :: 530 評論 :: 0 Trackbacks
          未來的Java開發者
          這是較早前發表于java.net上的一篇博文,它討論了軟件開發者們,特別是Java開發者們,具有哪些優勢,現在應該為未來作哪些準備工作,希望對所有軟件開發者們能有所提示。(2011.03.13最后更新)

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

          想像之自由

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

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

          學習與構建之自由


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

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


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

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

          你自己的自由...
              如你所見,現在這些可能都成為了現實。但就現實來看,對大多數開發者來說,這些可能性并不能在指日間就成真的。但它可以是你自己的。那么,未來是什么呢?未來使越來越多的開發者們從這些自由中受益,意味著更多的想法能夠見到天日,能夠學習和創建更多的開源軟件,有更多的設備和供應商運行開發出來的程序,更多來自于不同地方的人在一起工作。
              是的,這也意味著更多的挑戰:我們需要更多的程序能并行地運行在一個平臺上。如前所示,我們會從多核設備中受益。我們的框架需要支持云計算環境。還有,這些新的語言將表現得比今天已有的語言更好,我們也將從中受益。而且,將會有新的框架和抽象能使我們在這樣的環境中提高生產率。這些已不是新聞了:這是發展中的世界。記住,軟件開發是復雜的,無論應用提供商們怎樣試圖去擺弄它,軟件開發都不可能變得更為簡單。
              有大量來自于發展中國家,像BRIC(巴西,俄羅斯,印度,中國),的開發者,因為有開源軟件,他們會學到很多東西;因為有云計算,他們會有更多的機會;因為有遠程工作,他們會有更多的工作。軟件開發將會更有包容性,因為那些自由性會給予更多開發者以機會讓他們能在這方面花費更多的時間,并溶入其中。更多的開發者意味著更多的想法,更多的設備,更多的框架,更多的語言,更多的社區,以及更多的開源軟件。軟件開發是工程學與藝術的混合體,有更多的藝術家只會是好事兒!
              所以,簡言之:為了能在未來生存下去:學著在云環境中部署應用,這會使你獨立于特定的供應商和平臺。學著與來自于不同文化的人們一塊兒工作,加入到開源創新中,這樣的話,你會成為更好地開發者,也會變得更受重視。從開源軟件中,學習如何基于其他人創建的軟件去創建你自己的軟件,然后再發布一個簡單的解決方案,以便其他人能基于你的軟件去創建新的軟件。考慮到服務問題,云計算將提供這一功能,并且新出現的設備也能接受它。Neal Ford提到"     終于要談到,如果你是一名Java程序員又當如何呢?那么,你就處于正確的道路上。你理解多平臺和標準的重要性。Java是開源軟件使用的最重要的語言之一,而且Java最重要的特性就是它本身是開源的,所以你會感輕松。Java也是云計算供應商們的主要關注點,另外像Hadoop這樣的Java軟件構成了許多云環境的主干。更不要說,所有重要的新潮語言都正談論著要運行在JavaVM上,還要與已有的Java類庫和知識相集成。

              最后的問題就是你的激情:為未來作準備,選擇能讓你興奮的東西,考慮云計算,基于開源軟件去創建新的開源軟件,加入或吸引來自于不同地方的人們。保持你的獨立性。你就將干得很棒!


          主站蜘蛛池模板: 都江堰市| 双峰县| 册亨县| 东兴市| 公主岭市| 古浪县| 甘洛县| 开江县| 丰都县| 垫江县| 弋阳县| 新巴尔虎左旗| 紫金县| 高密市| 秦皇岛市| 桐城市| 华宁县| 普兰店市| 海原县| 浙江省| 新闻| 襄城县| 嘉义市| 凯里市| 巴林右旗| 佛学| 武平县| 田东县| 大城县| 额尔古纳市| 贞丰县| 鹤庆县| 普兰县| 长子县| 调兵山市| 根河市| 延庆县| 佛学| 八宿县| 营山县| 崇义县|