早在工作之前,就有學(xué)長們、老師們諄諄教導(dǎo)說,語言不要貪多,學(xué)一門語言學(xué)到精,其他語言再學(xué)就很容易了。
我是這么做的,而且,做的有點(diǎn)過。很長時間里都扎在Java的世界里不肯出來,找開源工具也一定要找基于Java的。最早找一個Wiki都執(zhí)意要找Java的,找到了JSPWiki。也因此認(rèn)識了BeanSoft和Java Ajax群的朋友們,呵呵。
但是,隨著開發(fā)任務(wù)的變化,不得不去學(xué)一些其他的語言。沒辦法,人在江湖身不由己啊,所以,也就開始了多門語言的學(xué)習(xí)之路。javascript可以說是我學(xué)的第一門“外語”。最早的時候?qū)s的應(yīng)用,也就簡單用一下得了。后來隨著時間的推移,覺得將來脫不了要靠它吃飯,也就主動買了幾本JavaScript的書,慢慢的去啃,甚至啃到了很多對我沒什么用的高級的特性,再后來工作需要,接觸了Flex,js用的就少了,也就慢慢的放下了。
ActionScript是我接觸的第三門外語。也是用心比較大的,呵呵,很長一段時間里甚至熱情超越了Java。中間根據(jù)個人興趣還看了點(diǎn)Ruby。
隨著實(shí)踐的增多,對語言的恐懼心理下降了。反而發(fā)現(xiàn)了各個語言所在世界的優(yōu)勢。每個語言所在的世界里都有非常優(yōu)秀的東西。最早想做一個手腳架,看了一下Rails,是基于Ruby的;為了測試Flex,研究了FunFX,也是基于Ruby的;前不久在部門里搭建了一個wiki,是基于PHP的;這段時間又研究了一下Trac,是基于Python的;研究Trac的時候發(fā)覺它可以跟Bugzilla集成,而Bugzilla是基于Perl的。這么多優(yōu)秀的東西,讓我覺得學(xué)習(xí)多門語言的困難變得無所謂了。
上次去OpenParty,參與了鄭曄的那個session。他講了自己在項目中使用多種語言的經(jīng)歷。其實(shí)很有趣,作為只會一種語言的人來說,他覺得學(xué)多門語言會讓自己泛而不精,然而真正掌握多門語言的人卻發(fā)覺,他山之石可以攻玉,當(dāng)你學(xué)會別的語言之后反過來在使用以前的語言的時候,思路會變得異常開闊。不管是對設(shè)計模式的領(lǐng)悟上還是對架構(gòu)的組織上,都達(dá)到了一個更高的高度,反而更加精深了。
回來后,我也想了很多。記得早前看o6z一個帖子講,SOA之所以風(fēng)行,很大原因是因為企業(yè)已經(jīng)積累了一些設(shè)備和軟件。因為金融風(fēng)暴也好,因為經(jīng)濟(jì)衰退也好,因為成本考慮也好,因為這這那那也好,不想統(tǒng)一成一個,需求決定供給,所以SOA才風(fēng)行起來。那么這樣一個環(huán)境對我們開發(fā)人員的會不會有什么影響呢?而且開源風(fēng)行的今天,我們的軟件行業(yè)也已經(jīng)積累了一批財富。我們業(yè)內(nèi)的人,也是不想統(tǒng)一替換成一類語言的,那么市場上的需求會不會慢慢變得要求我們程序員必須掌握多種語言呢?其實(shí)現(xiàn)在已經(jīng)這樣了,我就是一個例證,我的變化不是我主觀想這么做的,而是一只看不見的手---市場推動的。不過我個人預(yù)測未來可能會更嚴(yán)重,如果JVM成功變成一個可以跑各種動態(tài)語言的超級平臺的話。