自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

創(chuàng)業(yè),你選擇靜態(tài)還是動態(tài)語言?

開發(fā) 后端 項(xiàng)目管理
每個(gè)人都在想為什么在這個(gè)世界大家都在選擇靜態(tài)語言,當(dāng)你準(zhǔn)備選擇一門動態(tài)語言的時(shí)候,卻又冒出了如此多的兄弟。我們通??紤]的是哪種語言是我熟練的那就拿它來做這項(xiàng)工作??傊@做不失為一種著手開干得好方法?,F(xiàn)在還有別的什么影響你的選擇嗎?測試?開發(fā)速度?還是程序的健壯性?

每個(gè)人都在想為什么在這個(gè)世界大家都在選擇靜態(tài)語言,當(dāng)你準(zhǔn)備選擇一門動態(tài)語言的時(shí)候,卻又冒出了如此多的兄弟。我們通??紤]的是哪種語言是我熟練的那就拿它來做這項(xiàng)工作??傊@做不失為一種著手開干得好方法?,F(xiàn)在還有別的什么影響你的選擇嗎?測試?開發(fā)速度?還是程序的健壯性?

動態(tài)型  VS  靜態(tài)型

動態(tài)語言是一種變量使用前不需要聲明的語言,如 Python、Ruby 和PHP,在動態(tài)語言中像下面這樣做是允許的。

  1. num = 10 

某種意義上來說,這卻是一把雙刃劍,因?yàn)閯討B(tài)語言的類型檢查是在程序運(yùn)行期間,代碼運(yùn)行前沒有任何辦法找出 bug。我知道你可以寫測試,但是你并不能測試任何事情。這里有一個(gè)雖然不重要的例子。

  1. def get_first_problem(problems):  
  2.     for problem in problems:  
  3.         problam = problem + 1 
  4.         return problam 

現(xiàn)在如果你被一些嚴(yán)重的電子樂干擾著,一個(gè)縮進(jìn)的錯誤很輕易的就忽略了,代碼弄完了然后部署到生產(chǎn)環(huán)境中,于是bug就接踵而來了。

記住,在生產(chǎn)環(huán)境中你是***能消滅bug的人。

靜態(tài)語言 :使用前變量需要聲明,編譯的時(shí)候需要類型檢查,包括Java、C、C++在內(nèi)的語言都是靜態(tài)語言。

  1. static int awesomeNumber;  
  2. awesomeNumber = 10

關(guān)于健壯性的增加和運(yùn)行時(shí)錯誤機(jī)會的減少有很多的爭論,編譯器能捕獲一些在你編碼的時(shí)候產(chǎn)生的令人討厭的錯誤,方法的契約是嚴(yán)格的,不好的地方就是沉重的樣板代碼。

弱類型 VS 強(qiáng)類型

弱類型和強(qiáng)類型經(jīng)常與動態(tài)語言和靜態(tài)語言混淆起來。弱類型語言會引起一些哲學(xué)性問題如數(shù)字2和字符”two“的相加,在弱類型語言中像這樣做是沒問題的。

  1. a = 2 
  2. b = "2" 
  3.    
  4. concatenate(a, b) // Returns "22"  
  5. add(a, b) // Returns 4 

傳統(tǒng)的語言將嚴(yán)格限制各種事務(wù)的出現(xiàn),如強(qiáng)類型語言中字符與整型相加將導(dǎo)致錯誤,如下:

  1. >>> a = 10 
  2. >>> b = 'ten' 
  3. >>> a + b  
  4. Traceback (most recent call last):  
  5.   File "<stdin>", line 1, in <module>  
  6. TypeError: unsupported operand type(s) for +: 'int' and 'str' 
  7. >>> 

總結(jié):

無論你在哪抨擊這篇討論,聲明總比前者好,因?yàn)榍罢邥?dǎo)致一場語言的戰(zhàn)爭。

動態(tài)語言適合快速周期開發(fā)和原型設(shè)計(jì)。靜態(tài)語言更適合長期的開發(fā)周期,零碎的bug非常會付出非常高的代價(jià)(電話通信系統(tǒng),航空交通系統(tǒng))例如,如果一巨頭公司叫Moo Corp,花了幾百萬美元在做QA和測試,一bug以某種方式陷入在這個(gè)領(lǐng)域中,為了修復(fù)意味著另一個(gè)輪的測試。當(dāng)你做在板凳上你要做的就是選擇一種簡潔的靜態(tài)語言,這項(xiàng)工作的難度就是得有人做”擠奶”的事。

測試、測試、還是測試

僅僅就一點(diǎn)點(diǎn)資料為了用來思考、啟動下一個(gè)項(xiàng)目,你從來就不知道哪些限制你可能放在你自己和你的團(tuán)隊(duì)身上。

當(dāng)你為你的項(xiàng)目選擇一門編程語言時(shí),你考慮的因素有哪些呢?

英文原文:Sachin FromDev

本文轉(zhuǎn)自:http://blog.jobbole.com/21559/

責(zé)任編輯:林師授 來源: 伯樂在線
相關(guān)推薦

2011-01-06 09:00:01

靜態(tài)語言動態(tài)語言

2010-03-31 15:26:11

大學(xué)生創(chuàng)業(yè)

2019-07-05 15:45:39

UbuntuFedoraLinux

2015-09-16 10:37:48

創(chuàng)業(yè)者業(yè)余創(chuàng)業(yè)者

2016-12-29 11:01:54

ReactVue

2019-07-05 10:53:55

ReactVue前端

2021-11-02 08:40:42

VS CodeAtom開源

2021-04-09 15:15:15

iPhoneAndroid手機(jī)

2019-10-31 17:06:59

開發(fā)技能代碼

2019-11-01 10:27:48

GoJava語言

2012-09-19 14:44:14

創(chuàng)業(yè)創(chuàng)業(yè)者黑天鵝

2018-08-21 13:50:05

編程語言JavaPython

2016-01-20 11:22:17

增量部署全量部署運(yùn)維

2023-08-22 08:00:00

編譯器開發(fā)RustOCaml

2020-10-12 17:40:34

.NET Core開發(fā)技術(shù)

2013-01-15 10:50:42

2013-01-05 13:21:44

ASP.NETHttpHandlerHttpModule

2019-11-20 11:47:49

LG

2010-03-23 09:16:43

Python源碼剖析

2016-01-28 19:58:43

創(chuàng)業(yè)IT建設(shè)
點(diǎn)贊
收藏

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