最近在書(shū)店里看到了一本新書(shū),書(shū)名叫《Java Web整合開(kāi)發(fā)王者歸來(lái)》,上千頁(yè)的一本大部頭,簡(jiǎn)單翻看了一下目錄,書(shū)中涵蓋了JSP Servlet Struts Hibernate Spring EJB等開(kāi)發(fā)技術(shù)及框架。然而對(duì)于一個(gè)沒(méi)有任何java語(yǔ)言基礎(chǔ)的人,通過(guò)學(xué)習(xí)這本書(shū)就能掌握web開(kāi)發(fā)么?這里我不是批評(píng)這本書(shū),這本書(shū)可以給有一定J2SK基礎(chǔ)的人去邁入web開(kāi)發(fā)的大門(mén)。我想表達(dá)的是:一個(gè)沒(méi)有java語(yǔ)言基礎(chǔ)的人,想學(xué)習(xí)使用java語(yǔ)言進(jìn)行web開(kāi)發(fā),其學(xué)習(xí)路徑是陡峭的。.NET框架的C#也是如此。web開(kāi)發(fā)不只是有了以上知識(shí)的掌握就可以搞定。java,c#或PHP掌管的范圍主要在服務(wù)器端,另外有一些知識(shí)也是web開(kāi)發(fā)不可或缺的。比如html,css,javascript,數(shù)據(jù)庫(kù)設(shè)計(jì)等。全力去了解java語(yǔ)言,并熟悉《Java Web整合開(kāi)發(fā)王者歸來(lái)》中提到的技術(shù)及框架,容易使我們的web開(kāi)發(fā)“跑了題”,也容易使我們因?yàn)殡y度太大而半途而廢。
PHP相比java,c#等是比較容易入門(mén)的語(yǔ)言,主要應(yīng)用于web服務(wù)器端的開(kāi)發(fā)。和各家廠商的數(shù)據(jù)庫(kù)有天然的集成,用不了多長(zhǎng)時(shí)間即可掌握基本的語(yǔ)法,學(xué)習(xí)她可以直奔web主題,講解php的書(shū)上來(lái)會(huì)直接講解處理表單,操作數(shù)據(jù)庫(kù),產(chǎn)生html,與javascript打交道等web世界的內(nèi)容。掌握了基本的語(yǔ)法后,再選擇一個(gè)易用的MVC框架,比如Yii,不到半年即可開(kāi)發(fā)一些小型的web應(yīng)用。
但是話又說(shuō)回來(lái),php也有她的缺點(diǎn),比如代碼隨意,缺少命名規(guī)范,結(jié)構(gòu)話思維過(guò)程過(guò)多,大量使用全局變量,弱類型語(yǔ)言,過(guò)于靈活,不利于嚴(yán)謹(jǐn)風(fēng)格代碼的形成等。數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)模式都使用java,c++等語(yǔ)言來(lái)描述就是一個(gè)例證。PHP網(wǎng)上可以利用的資源很多,從某種角度來(lái)說(shuō),這也是一種缺點(diǎn),對(duì)于一些初學(xué)者來(lái)說(shuō),可能導(dǎo)致懶散,實(shí)現(xiàn)某個(gè)功能,順手拈來(lái),導(dǎo)致思維能力退化。然而關(guān)鍵還是在于人,在于自己的把握。
那么說(shuō)來(lái)說(shuō)去到底該做如何選擇呢?我認(rèn)為:
對(duì)于有一定java語(yǔ)言基礎(chǔ)的,堅(jiān)持使用java,學(xué)習(xí)java web整合開(kāi)發(fā)中提到的技術(shù)是一種不錯(cuò)的選擇。而對(duì)于沒(méi)有java語(yǔ)言基礎(chǔ)的,如果有其他語(yǔ)言的基礎(chǔ),比如c/c++,有面向?qū)ο笏枷氲模瑢W(xué)習(xí)使用PHP是一種不錯(cuò)的選擇。既能快速擁抱web,又不至于被PHP“帶壞”。如果對(duì)于一個(gè)沒(méi)有任何語(yǔ)言基礎(chǔ)的程序新手呢,如果不想進(jìn)入web開(kāi)發(fā)領(lǐng)域,那么各種語(yǔ)言,做何選擇均可,隨緣吧。如果想進(jìn)入web開(kāi)發(fā)領(lǐng)域,可以選擇php快速進(jìn)入web的世界,當(dāng)你覺(jué)得用php進(jìn)行web開(kāi)發(fā)已經(jīng)很熟練的時(shí)候,不要沾沾自喜,java,c++有很多我們要學(xué)習(xí)的地方。