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

創(chuàng)新互聯(lián)建站長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為修水企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè),修水網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
動態(tài)型 VS 靜態(tài)型
動態(tài)語言是一種變量使用前不需要聲明的語言,如 Python、Ruby 和PHP,在動態(tài)語言中像下面這樣做是允許的。
- num = 10
某種意義上來說,這卻是一把雙刃劍,因為動態(tài)語言的類型檢查是在程序運行期間,代碼運行前沒有任何辦法找出 bug。我知道你可以寫測試,但是你并不能測試任何事情。這里有一個雖然不重要的例子。
- def get_first_problem(problems):
- for problem in problems:
- problam = problem + 1
- return problam
現(xiàn)在如果你被一些嚴(yán)重的電子樂干擾著,一個縮進(jìn)的錯誤很輕易的就忽略了,代碼弄完了然后部署到生產(chǎn)環(huán)境中,于是bug就接踵而來了。
記住,在生產(chǎn)環(huán)境中你是***能消滅bug的人。
靜態(tài)語言 :使用前變量需要聲明,編譯的時候需要類型檢查,包括Java、C、C++在內(nèi)的語言都是靜態(tài)語言。
- static int awesomeNumber;
- awesomeNumber = 10;
關(guān)于健壯性的增加和運行時錯誤機會的減少有很多的爭論,編譯器能捕獲一些在你編碼的時候產(chǎn)生的令人討厭的錯誤,方法的契約是嚴(yán)格的,不好的地方就是沉重的樣板代碼。
弱類型 VS 強類型
弱類型和強類型經(jīng)常與動態(tài)語言和靜態(tài)語言混淆起來。弱類型語言會引起一些哲學(xué)性問題如數(shù)字2和字符”two“的相加,在弱類型語言中像這樣做是沒問題的。
- a = 2
- b = "2"
- concatenate(a, b) // Returns "22"
- add(a, b) // Returns 4
傳統(tǒng)的語言將嚴(yán)格限制各種事務(wù)的出現(xiàn),如強類型語言中字符與整型相加將導(dǎo)致錯誤,如下:
- >>> a = 10
- >>> b = 'ten'
- >>> a + b
- Traceback (most recent call last):
- File "
", line 1, in - TypeError: unsupported operand type(s) for +: 'int' and 'str'
- >>>
總結(jié):
無論你在哪抨擊這篇討論,聲明總比前者好,因為前者會導(dǎo)致一場語言的戰(zhàn)爭。
動態(tài)語言適合快速周期開發(fā)和原型設(shè)計。靜態(tài)語言更適合長期的開發(fā)周期,零碎的bug非常會付出非常高的代價(電話通信系統(tǒng),航空交通系統(tǒng))例如,如果一巨頭公司叫Moo Corp,花了幾百萬美元在做QA和測試,一bug以某種方式陷入在這個領(lǐng)域中,為了修復(fù)意味著另一個輪的測試。當(dāng)你做在板凳上你要做的就是選擇一種簡潔的靜態(tài)語言,這項工作的難度就是得有人做”擠奶”的事。
測試、測試、還是測試
僅僅就一點點資料為了用來思考、啟動下一個項目,你從來就不知道哪些限制你可能放在你自己和你的團(tuán)隊身上。
當(dāng)你為你的項目選擇一門編程語言時,你考慮的因素有哪些呢?
英文原文:Sachin FromDev
本文轉(zhuǎn)自:http://blog.jobbole.com/21559/
網(wǎng)頁題目:創(chuàng)業(yè),你選擇靜態(tài)還是動態(tài)語言?
本文網(wǎng)址:http://fisionsoft.com.cn/article/dhgggpg.html


咨詢
建站咨詢
