經常會有一些朋友會問我,學PHP有前途嗎?PHP未來會不會被淘汰?PHP能做什麼事情麼?Java後者.Net能做的PHP都能做麼?學習什麼技術最 好呢?對於一個初學者來說,這些問題確實都是很重要的,畢竟這關系到未來自身的發展。其實要探討PHP,不能夠狹隘地站在PHP本身的角度去理解問題,而 要從整個計算機語言的發展史,技術體系的演變以及商業模式的變化對於技術走向的影響來分析。在這裡我就寫一篇文章,和大家分享一下我這些年來對於技術體 系,技術發展,技術與商業之間關系的理解。
計算機技術體系紛繁復雜,從大的方面講,主要分為硬件和軟件兩大塊。硬件又分為芯片級和板卡級。芯片級企業主要是設計制造電路板上那一塊塊黑色小塊,他們 叫做集成電路。像大名鼎鼎的英特爾,高通,德州儀器,Nvidia,AMD等等都屬於芯片級的巨頭企業。板卡級企業主要是設計電路板,然後從芯片企業采購 芯片安裝到電路板上。華碩,微星,富士康等等台企都有板卡業務。軟件產業可以分為系統軟件和應用軟件,目前世界上主流的操作系統主要有 Windows, Linux, Unix, MacOS, BSD等等。在不同的操作系統環境下,應用軟件的開發也有不同的方式。從應用軟件的功能區 分,可以分成客戶端應用軟件和服務器端應用軟件。從產業鏈來說,硬件產業處於軟件產業上游。一般來說,硬件產業更強調規模,屬於資金密集型的行業,而軟件 產業相對更注重創意。
回到我們要探討的重點——編程語言。一般來說,對於web開發和普通的客戶端軟件開發,我們都是在應用軟件的層面編程。在客戶端軟件的開發中,目前 Windows平台下主要的開發體系是基於.Net的架構,當然這個領域曾經是MFC, delphi, vb的天下。除此以 外,Java, ruby, python,lua等語言配合Qt, tk等UI組件庫也可以開發跨Windows, Linux, MacOS等多平台 的應用程序。當然,隨著iOS, Android等移動操作系統和平板電腦的興起,客戶端軟件開發正在呈現出百花齊放的態勢。在服務器端軟件的開發中,目 前呈現的是三組鼎立的態勢,三足分別是JavaEE體系,微軟.Net體系和LAMP體系。
JavaEE體系曾經統治企業級軟件開發長達數十年之久,十年間英才輩出,但是Java語言本身卻越來越顯示出臃腫和分裂的態勢。直至Java界神一樣的 人物Rod Johnson攜它天才的Spring框架與不朽名著《Expert J2ee development without EJB》橫空出 世,Java界的紛爭才被SSH(Spring+strunts+hibernate)暫時統一。但是使用Java依然是個昂貴的選擇,復雜的需求設計, 緩慢的項目進度,昂貴的應用服務器和昂貴的編碼人員使得Java成為了一種廟堂之上的語言。而版本的分裂也使所謂的跨平台特性成為了一句空話。Java的 特性使得它並不適合業務隨著市場快速變化的互聯網企業,而更適合相對穩定的大型業務,如銀行,保險,零售,制造業等大型企業的業務系統開發。
.Net體系是微軟公司為了對抗Java而設計的一整套企業級開發架構,包括了客戶端和服務器端的開發框架。並且徹底拋棄了原來的MFC。在很多方 面,.Net體系都和JavaEE有著相似之處。從我的經驗來看,對於高手而言,.Net體系的開發效率是明顯高於JavaEE的。但是.Net體系對於 初學者來說仍然有很高的門檻,很多新手做出來的項目都是bug多到慘不忍睹。同時不能跨平台,必須使用正版的微軟操作系統和數據庫軟件,Windows系 統作為服務器的不穩定性和管理的復雜性,都在一定程度上阻礙了.Net體系在服務器端開發的普及
作者:朱威