有很多年李丰,我都認(rèn)為編程語(yǔ)言只是一種工具鱼辙,練到一定的程度自然可以超越語(yǔ)言本身鹦肿,至于你使用哪種工具就顯得不是很重要了矗烛。就如武俠小說(shuō)中的各門(mén)各派的武功各有長(zhǎng)短,但每個(gè)門(mén)派的武功練到極致都可以成為萬(wàn)人敬仰的大俠箩溃,對(duì)于站在巔峰的大俠人門(mén)是從來(lái)不會(huì)在意他們用的是哪個(gè)門(mén)派的武功瞭吃。
而且最后大俠往往會(huì)告許你最高的境界是“無(wú)”碌嘀,無(wú)招無(wú)勢(shì)無(wú)劍無(wú)我。我一直被這些思想影響著歪架,所以一開(kāi)始用C和Delphi股冗,后來(lái)在因公司項(xiàng)目轉(zhuǎn)到JAVA,包括中途有一陣子用過(guò)Symbian C++和WinPhone的C#牡拇,也只是“隨緣”而已自己并沒(méi)有在意過(guò)它們魁瞪。
而最近的閱讀和思考,受到了一些不同的啟發(fā)惠呼,發(fā)現(xiàn)對(duì)于語(yǔ)言自己有很多錯(cuò)誤的認(rèn)識(shí)〉挤現(xiàn)在,我更多的把語(yǔ)言理解成一種思維剔蹋,而不是單純的工具旅薄。最近看了Ruby語(yǔ)言之父松本行弘的《代碼的未來(lái)》,松本行弘在一個(gè)講座中給學(xué)生出了一個(gè)題目“想象一下20年后的編程語(yǔ)言”泣崩,你現(xiàn)在使用的語(yǔ)言還會(huì)存在20年嗎少梁?其實(shí)也可以簡(jiǎn)單的這樣問(wèn),你現(xiàn)在的思維模式能適應(yīng)20年后的時(shí)代嗎矫付?
縱觀這半個(gè)多世紀(jì)以來(lái)產(chǎn)生的編程語(yǔ)言凯沪,其思想并不沒(méi)有發(fā)生很大的飛躍,你現(xiàn)在使用的很多語(yǔ)言的特性买优,在上個(gè)世紀(jì)五六十年代就已經(jīng)存在了妨马。如GC,函數(shù)式編程杀赢。而計(jì)算機(jī)硬件正如摩爾定律描述的那樣烘跺,發(fā)現(xiàn)了翻天覆地的變化,從這方面上來(lái)比較脂崔,雖然近十來(lái)年也誕生了各種編程語(yǔ)言滤淳,但編程語(yǔ)言的發(fā)展仍處于停滯狀態(tài)。
從匯編語(yǔ)言開(kāi)始砌左,編程語(yǔ)言的進(jìn)化一個(gè)顯著的特點(diǎn)就是“抽象化”脖咐。抽象化就是提供一個(gè)抽象的概念,使用者即便不具備關(guān)于其內(nèi)部詳細(xì)情況的知誤汇歹,也能夠?qū)ζ溥M(jìn)行運(yùn)用屁擅。人類一次所能掌握的概念數(shù)量是有限的,有說(shuō)法稱秤朗,大部分人一次只能駕馭7(加減2)個(gè)左右的概念。這樣一來(lái)笔喉,如果能夠讓問(wèn)題的處理方式更加抽象取视,也就可以解決更復(fù)雜的問(wèn)題硝皂。所以松本行弘在《代碼的未來(lái)》中也給我們講解了DSL(特定領(lǐng)域語(yǔ)言)相關(guān)的知識(shí),DSL的優(yōu)點(diǎn)是作谭,可以直接使用其對(duì)象領(lǐng)域中的概念稽物,集中描述“想要做到什么”(What)的部分,而不必對(duì)“如何做到”(How)進(jìn)行描述折欠。
Android應(yīng)用的開(kāi)發(fā)者肯定接觸過(guò)DSL贝或,雖然你并不一定知道什么DSL∪袂兀看看自己的Android Studio中的.gradle文件咪奖。
關(guān)于不同編程語(yǔ)言,網(wǎng)上常有各種爭(zhēng)吵酱床,而且也存在一些“鄙視鏈”的說(shuō)法羊赵,如C++程序員鄙視Java程序員。這里并不想引起或者延續(xù)不同編程語(yǔ)言的爭(zhēng)論扇谣,只是想說(shuō)明:“如果不同的編程語(yǔ)言代表不同的思維昧捷,那么編程語(yǔ)言之間是有很大的區(qū)別的,使用不同的語(yǔ)言會(huì)返過(guò)來(lái)對(duì)程序員的思維方面產(chǎn)生影響罐寨∶一樱”
那么,你受到它們的影響了嗎鸯绿?有沒(méi)有感覺(jué)無(wú)法接受別的語(yǔ)言了呢跋破?我覺(jué)得這才是我們要想清楚的問(wèn)題,如果我們的思維模式被固定死了楞慈,萬(wàn)一我們使用的編程語(yǔ)言過(guò)不了多久就被時(shí)代淘汰幔烛,是否也說(shuō)明受這種思維影響的程序員們也很容易被淘汰呢?
所以囊蓝,我才感覺(jué)自己被害了饿悬。并不是說(shuō)Java這種語(yǔ)言不好,而是我只把它當(dāng)成工具聚霜,而忽視它各內(nèi)在的東西狡恬,自己的思維模式卻在不知不覺(jué)中受到它的影響,最終自已給自己建了一道圍墻蝎宇。
拆掉思維的圍墻弟劲,去找一個(gè)20年后還可能存在的編程語(yǔ)言學(xué)學(xué),代碼的未來(lái)也許就是程序員的未來(lái)姥芥。
怎么找呢兔乞?看一下松本行弘的《代碼的未來(lái)》吧。