偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

編程語言并不只是工具

移動開發(fā) Android
如果你的工具碰巧是一種編程語言,那你生產(chǎn)的源代碼將和你的工具融合到一起。沒有這個工具,你的產(chǎn)品完全不能運行。如果你認為編譯后的二進制代碼是“產(chǎn)品”,你將沒有可能針對它做“需求變更”,這是程序員最初可能會有的一個錯誤概念。很顯然,程序員的生產(chǎn)的產(chǎn)品是“源代碼”。編程語言并不是扮演工具的角色,從軟件的性質(zhì)上看,它應(yīng)該是材料。工具可以扔掉,材料構(gòu)成主體。

[[71651]]

  讓我以一個免責(zé)聲明來開始這篇文章:我絕對的認可懂得多種編程語言的價值,也認為“用正確的工具干活兒”是個好思想。但在編程工作中,人們對這個概念有個誤解,我認為需要在這里指出一下。但請記住,對這個誤解的詮釋并不是來否定這個思想的。

 

多語言電影
讓我從一個古怪的類比開始:假設(shè)這有一個電影,是關(guān)于一個政治陰謀,涉及到一系列復(fù)雜的國際冒險,沖突波及到7、8個國家。每個演員都說著他們本地的語言,沒有字幕。誰能看懂這個陰謀的情節(jié)?恐怕只有少數(shù)幾個懂得多語言的制片人能欣賞的了這個電影。我們大部分人都不會去看它。

 

多語言編程
我們的上一個Web應(yīng)用項目里使用了6、7種的編程語言(Groovy, Java, HTML, CSS, HQL/SQL, Ant)。如果我們感覺需要的話,還可以輕松的再增加更多的語言。再增加Clojure, Scala 或 Ruby/JRuby 并不會覺得不合適。一個懂得多種語言并有能力在多種語言間切換到程序員就被稱作“多語言程序員”。

 

  造成多語言項目產(chǎn)生的一個主要理由通常是“使用正確的工具干活兒”的概念。而這個“活兒”通常指的是一個大項目里的一些小任務(wù),比如編譯項目,訪問數(shù)據(jù)庫,實現(xiàn)永不定型的業(yè)務(wù)邏輯。對于每個子任務(wù),都有某個語言能夠更出色的完成。除了人們對這種多語言的做法造成的隱藏成本存在爭議外,還有一個對于“工具”這個詞的誤解需要注意。

 

編程語言不是工具
如果我們在一個簡單或復(fù)雜傳統(tǒng)工程中使用一個工具,就比如用錘子把木片釘成櫥柜,或用起子拆解計算機,當你完成了這個“活兒”后,工具會被你丟在一旁。你的最終產(chǎn)品(一個新的木櫥柜或一堆電路板)并不包括工具。大多時候,當你的活兒干完后,你的產(chǎn)品上不會再有“變更請求”。

 

  如果你的工具碰巧是一種編程語言,那你生產(chǎn)的源代碼將和你的工具融合到一起。沒有這個工具,你的產(chǎn)品完全不能運行。如果你認為編譯后的二進制代碼是“產(chǎn)品”,你將沒有可能針對它做“需求變更”,這是程序員最初可能會有的一個錯誤概念。很顯然,程序員的生產(chǎn)的產(chǎn)品是“源代碼”。編程語言并不是扮演工具的角色,從軟件的性質(zhì)上看,它應(yīng)該是材料。工具可以扔掉,材料構(gòu)成主體。

 

編程語言是產(chǎn)品材料
因為源代碼依附于它的編程語言,它們是一個概念上的合體。所以,我建議,當我們在談?wù)摼幊陶Z言時,應(yīng)該改成“使用正確的材料來干活兒”的說法。相比起選擇是使用飛利浦的螺絲刀還是三菱的改錐這樣的問題,我們修改后的說法會對編程語言的選擇起到更深遠的意義。材料需要持久的耐用,而工具大部分時間是丟在一邊。

 

但它們也是工具
  在上面提到的我們做過的Web應(yīng)用項目中,我們使用了很多工具。Grails是我們的框架,Jetty是我們的Web容器,Spring Framework提供了強大的服務(wù),我們用IDEA把它們結(jié)合到一起。我們可以輕松的用Tomcat替換Jetty,或用Eclipse替換IDEA。工具需要可替換,甚至是一次性的。

 

總結(jié)
“用正確的工具干活兒”這話并不能簡單的應(yīng)用到編程語言上,因為它們不是工具,而是材料。這就是為什么在一個項目中大量使用多語言是危險的。它很容易讓項目變成一個混亂的“復(fù)合板“項目。

責(zé)任編輯:佚名 來源: cocoachina
相關(guān)推薦

2017-03-25 21:13:38

JavaScript排序

2012-10-25 10:11:37

云計算架構(gòu)師峰會

2010-08-05 09:29:08

jQuery

2024-11-26 11:02:17

2021-11-05 11:17:45

互聯(lián)網(wǎng)996大廠

2021-07-26 22:33:41

切片結(jié)構(gòu)體代碼

2025-04-17 02:00:00

數(shù)據(jù)分析SQL大數(shù)據(jù)

2018-03-13 15:00:22

智慧交通高鐵無人駕駛

2015-11-24 10:05:07

私有云虛擬化負載遷移

2011-09-15 13:25:02

2011-11-17 13:25:43

垃圾郵件

2015-06-12 16:47:40

SDN軟件定義網(wǎng)絡(luò)

2011-05-27 09:30:56

PlayBookBlackBerryRIM

2015-03-31 09:28:28

Hadoop大數(shù)據(jù)技術(shù)大數(shù)據(jù)未來道路

2022-11-02 11:48:03

Vanilla OSGNOMEUbuntu

2018-06-27 17:24:24

華為

2011-04-28 20:21:44

和信創(chuàng)天終端管理虛擬終端管理系統(tǒng)

2021-01-06 10:51:39

云計算云服務(wù)IT

2016-10-13 18:06:09

云計算多云模型

2015-02-04 09:45:40

點贊
收藏

51CTO技術(shù)棧公眾號