一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

語言真是不重要的嗎?談?wù)Z言的*層次*與技術(shù)的三六九等

  關(guān)注——或“專注”于多語言編程之后,老趙對(duì)于語言的關(guān)注也越來越多,對(duì)于語言在編程中所帶來的“美感”也有了越來越深的體會(huì),還在博客的標(biāo)題中加上“追求編程之美”。關(guān)注語言多了,關(guān)注純粹的編程實(shí)踐多了,自會(huì)有所比較,然后寫出了引人注目的《為啥老趙不喜歡Java*語言*》。這篇文章所得到的負(fù)面評(píng)論的確也和想象中差不多,大部分朋友的觀點(diǎn)是“語言不是關(guān)鍵”或類似說法,似乎對(duì)語言的討論和比較非常沒有必要。有個(gè)朋友說的更是直接:“在看到這些文章之前,我還是比較敬重老趙的,不過現(xiàn)在發(fā)現(xiàn)你也就這點(diǎn)高度”。老趙認(rèn)為,這是對(duì)這方面的誤解,而有這種誤解無論是對(duì)于社區(qū)還是個(gè)人的發(fā)展都是沒有益處的,因此單獨(dú)開篇,討論一下這個(gè)問題1

  “高度”,是個(gè)多么“發(fā)人深省”的名詞,往往直接就將事物分了三六九等。封建社會(huì)將人認(rèn)為三六九等即從“出身”或“行業(yè)”決定了一個(gè)人的社會(huì)地位高低,例如,即使是“戲子”或“工匠”等下等職業(yè),就算成就再高也被主流社會(huì)所排斥,大部分人依舊從心底里瞧不起那些人。不知道您對(duì)這樣的劃分有什么看法,老趙對(duì)此沒有看出任何科學(xué)性,也沒有任何好感。不過現(xiàn)在國內(nèi)“主流”觀點(diǎn)也在技術(shù)方向分了三六九等,例如以下便是一個(gè)典型:

  • 上等:系統(tǒng)架構(gòu)
  • 中等:框架設(shè)計(jì)
  • 下等:語言實(shí)現(xiàn)

  為了證明自己的“高度”,為了避免接下去討論的內(nèi)容把老趙“下等人”的老底給顯露出來,老趙先用一段話為自己披上“上等人”的外衣:

  “如果要實(shí)現(xiàn)一個(gè)‘高性能’、‘大并發(fā)’的網(wǎng)站,前端使用4層7層負(fù)載均衡,如果不用F5等商業(yè)產(chǎn)品可以先用Nginx等做反向代理。后臺(tái)實(shí)現(xiàn)要對(duì)系統(tǒng)作劃分,避免單點(diǎn)失敗,也可以作獨(dú)立優(yōu)化。系統(tǒng)之間可以用異步消息傳遞來降低耦合;系統(tǒng)中不采用二段式提交或分布式事務(wù),CAP原則中的“一致性”往往需要做出讓步,而采用‘最終一致’策略。數(shù)據(jù)存儲(chǔ)方面可以做橫向或縱向的劃分,或者構(gòu)建查詢表。合理使用Schemaless的設(shè)計(jì)方式或如何MemcacheDB或Tokyo CabiNET等Key-Value存儲(chǔ)方式可以帶來更好的伸縮性。除此之外,系統(tǒng)中還需要部署Memcached集群作為緩存。靜態(tài)文件可以使用Squid或Varnish作為緩存,避免所有IO都直接落到文件存儲(chǔ)上……”

  其實(shí)老趙只是把大腦皮層最表面的某些“知識(shí)”給傾倒出來一些,我不知道這些內(nèi)容給您感覺是什么,是不是會(huì)覺得很有“高度”。但是老趙覺得,這些東西看起來可能會(huì)“過癮”,但是卻毫無營養(yǎng)。其實(shí)所謂我們很多草根人士平時(shí)在談?wù)?ldquo;系統(tǒng)架構(gòu)”的時(shí)候,往往就是把各種產(chǎn)品,原理,實(shí)踐進(jìn)行組合拼接,其實(shí)說起來和看著市場上產(chǎn)品報(bào)價(jià)然后攢出一臺(tái)電腦沒有本質(zhì)的區(qū)別。因此老趙現(xiàn)在看到這些東西已經(jīng)不太感冒了,目前一直在設(shè)法研究從某個(gè)細(xì)節(jié)方面真正有效地提高“某個(gè)參數(shù)”,而不是從一個(gè)非常高屋建瓴的方面對(duì)整體提出一個(gè)所謂的“指導(dǎo)”。

  不是每個(gè)人都有能力和條件成為鄧爺爺那樣偉大的改革開放總架構(gòu)師的。

  作為一個(gè)普通人,我們很容易對(duì)自己不太了解的東西產(chǎn)生一種崇敬之情。例如搞.NET編程的,往往會(huì)對(duì)“操作系統(tǒng)”,“線程調(diào)度”,“文件系統(tǒng)”,“匯編”等名詞望眼欲穿,覺得那些才是真正有“技術(shù)含量”的東西。其實(shí)每個(gè)人的工作都是建立在另一批人的抽象之上,然后再這個(gè)抽象上產(chǎn)生更多的價(jià)值,如果因此對(duì)自己產(chǎn)生懷疑,硬要分個(gè)高低貴賤三六九等,這估計(jì)可以算作一種“妄自菲薄”。而“語言”作為我們技術(shù)人員每天都會(huì)接觸的事物,似乎人人都會(huì),人人都懂,談了再多也只是一種“低級(jí)”的問題。如果還在專注,還在比較,那么“你也只能算是這點(diǎn)高度了”。

  我們每個(gè)人從接受計(jì)算機(jī)教育的一開始似乎都會(huì)被告知一個(gè)正確的道理:“語言只是工具,重要的是能力與思想”。這句話本沒有錯(cuò),但是一句正確的話被強(qiáng)調(diào)過渡了可能也會(huì)成為一種錯(cuò)誤。例如KISS原則的本意是要避免“過渡設(shè)計(jì)”,而老趙不止一次發(fā)現(xiàn)它已經(jīng)被某些朋友用作“不設(shè)計(jì)”的理由。語言之余技術(shù)人員,就好比兵器之于武林人士。強(qiáng)調(diào)“能力”好比強(qiáng)調(diào)“武功內(nèi)力”這不會(huì)有錯(cuò),但是根據(jù)老趙多年閱讀的沒有上百也有數(shù)十本武俠小說中,的確沒有發(fā)現(xiàn)武林人士對(duì)神兵利器的品評(píng)與追求體現(xiàn)出嗤之以鼻的態(tài)度。

  很多朋友認(rèn)為,高手是不會(huì)介意語言的選擇,而語言也不會(huì)影響高手的能力。老趙并不同意這個(gè)看法。老趙同意“對(duì)于同樣的工具來說,能力決定了生產(chǎn)力”,卻不同意“有了能力,工具對(duì)于生產(chǎn)力的作用微不足道”。在TL上有朋友說了一句老趙認(rèn)為非常有道理的話:有些武功也必須是有特定的兵器才能修煉的。如果只有匯編語言,那么大部分人都無法突破“子過程”這個(gè)抽象級(jí)別,更別說“面向?qū)ο?rdquo;了。因?yàn)?ldquo;語言”往往會(huì)對(duì)“設(shè)計(jì)”有巨大影響,所以Linus會(huì)炮轟C++Anders HejlsbergJames Gosling會(huì)對(duì)語言設(shè)計(jì)中是否應(yīng)該有Checked Exception持不同意見。

  看大師爭論很過癮,那些總不會(huì)是“低層次”的爭論吧!

  “圖靈完備”已經(jīng)從理論上保證了語言的能力“足夠”表現(xiàn)出任何邏輯,但是世界上還是有各種各樣的語言層出不窮,在一個(gè)又一個(gè)地方放出不同光輝。而由于一般的“通用語言”在表現(xiàn)某個(gè)特定問題的時(shí)候會(huì)顯得比較“嘈雜(Noise)”,因此現(xiàn)在DSL的概念也愈發(fā)蓬勃了起來。老趙懷疑,高手的能力真能忽略語言的特性的不同,得到同樣高度的生產(chǎn)力嗎?如果真是這樣的話,老趙現(xiàn)在所追求的“混合編程”的意義又在哪里?老趙不知道Martin Fowler為什么會(huì)說“People may say that Ruby is less noisy than Java, or that external DSLs are less noisy than internal DSLs”。不過我懷疑小李探花手持天機(jī)棍2后是否還能在兵器譜上排名第三。

  誠然,高手超能力的作用無法被忽視,他們也可以用Java寫出流暢的API(fluent interface),正如jMock在為Java平臺(tái)帶來了一股清新的空氣。但是Moq使用C# 3.0中引入了Lambda表達(dá)式之后,從Rhino Mocks(與jMock的語法類似)手中搶走了大量的市場份額,迫使它也不得不使用Lambda表達(dá)式應(yīng)戰(zhàn)。同樣,即使C#的擴(kuò)展方法特性可以在一定程度上改進(jìn)單元測試的語義,如果您把它和Scala實(shí)現(xiàn)的specs,或者F#實(shí)現(xiàn)的FsUnit相較“Behavior-Driven Development”,高下立判。今后老趙也會(huì)給出自己在混合編程上的探索,您一定可以更明顯地發(fā)現(xiàn)不同語言在解決相同問題時(shí)產(chǎn)生的區(qū)別。

  “語言只是工具,重要的是能力與思想”。這句話本沒有錯(cuò),但是如果把它作為“輕視語言”的理由,認(rèn)為“語言”是低層次的東西,那只能說是一種誤用了。

  最后,老趙再稍微談一下對(duì)另一個(gè)觀點(diǎn)的看法:“一個(gè)好的程序員應(yīng)該兼容并包,不該有門戶之見”。老趙舉雙手雙腳同意這個(gè)看法,這也是老趙推崇“混合編程”的原因。但是老趙認(rèn)為這不代表不能“批評(píng)”一個(gè)語言,“兼容并包”講究的是“各取所長”而并非是“各護(hù)其短”。老趙不搞“平衡論”,不代表老趙有“門戶之見”,不是嗎?

  就用“門戶之見”來結(jié)束這篇文章吧:有錯(cuò)誤的是“重語言而輕其他”,或者僅從語言來說明事物(例如通過語言來說明程序員能力高低,項(xiàng)目好壞等等)。而研究語言,比較語言,思考語言,談不上所謂層次淺,高度低——“層次”所指的是“怎么搞”,而不是“搞什么”。否則,不也是一種“門戶之見”嗎?

 

注1:這篇文章的內(nèi)容原本屬于《老趙看“偽專業(yè)”》一文,但是在寫作過程中發(fā)現(xiàn)這一塊可能是誤解最深,也最難以被人識(shí)破的觀念,因此單獨(dú)成文,想把這個(gè)問題說明清楚。

注2:在白曉生“兵器譜”排名中,“天機(jī)棍”排名第一,而“小李飛刀”李尋歡排第三。

 

it知識(shí)庫語言真是不重要的嗎?談?wù)Z言的*層次*與技術(shù)的三六九等,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 一本之道无吗一二三区 | 国产区精品一区二区不卡中文 | 国产欧美亚洲精品综合在线 | 经典欧美gifxxoo动态图午夜 | 国产成人精品免费视频大 | 麻豆精品成人免费国产片 | 国产综合亚洲欧美日韩一区二区 | 亚洲一区视频 | 7色影院 | 成人免费看www网址入口 | 欧美美女视频网站 | 最新69国产成人精品视频69 | 草草视频在线免费观看 | 美女大胸又爽又黄网站 | 波多野衣结在线精品二区 | 国产理论视频 | 国产伦精品一区二区三区免费迷 | 四虎国产精品永久地址99 | 美女黄免费 | 欧美日韩亚洲区久久综合 | 米奇狠狠干 | 狠狠亚洲婷婷综合色香 | 综合五月激情 | 日日好吊妞 | 无毛片| 欧美精品亚洲精品日韩经典 | 东京加勒比中文字幕波多野结衣 | 亚洲综合天堂 | 国产人伦激情在线观看 | a一区二区三区视频 | 美女网站视频黄色 | 美女被性调教视频在线观看 | 91李宗精品72集在线观看 | 久久伊人热精品老鸭窝 | 亚洲综合图片区 | 中文字幕日本不卡一二三区 | 四虎国产精品一区二区 | 欧洲成人在线观看 | 狠狠涩| 成年美女黄网站色 | 亚洲第一精品福利 |