在以往的文章中匯仁智杰網(wǎng)絡(luò)推廣介紹過(guò)Web前端開(kāi)發(fā)與iOS終端開(kāi)發(fā)的兼容性和性能方面的知識(shí),今天我們繼續(xù)研究Web前端開(kāi)發(fā)與iOS終端開(kāi)發(fā)的語(yǔ)言。
前端和終端作為面向用戶端的程序,有個(gè)共同特點(diǎn):需要依賴用戶機(jī)器的運(yùn)行環(huán)境,所以開(kāi)發(fā)語(yǔ)言基本上是沒(méi)有選擇的,不像后臺(tái)想用什么就用什么,iOS只能用object-c,前端只能javascript,當(dāng)然iOS還可以用RubyMotion,前端還能用GWT/CoffieScript,但不是主流,用的人很少,真正用了也會(huì)多出很多麻煩。iOS還可以用蘋(píng)果新出的swift語(yǔ)言,后面可能用于取代object-c,還處于起步階段,先不討論。
objc和js這兩者有個(gè)有意思的對(duì)比:變量/方法命名的風(fēng)格正好相反。蘋(píng)果一直鼓吹用戶體驗(yàn),寫(xiě)代碼也不例外,程序命名都是用英文全稱并且要多詳細(xì)有多詳細(xì),力求看變量和方法名就能知道是干嘛的,例如application:didFinishLaunchingWithOptions:。而js因?yàn)槊看味家獜木W(wǎng)絡(luò)下載,要力求減少代碼體積,所以變量方法名是盡量用縮寫(xiě),實(shí)際上有代碼壓縮工具,無(wú)論變量名寫(xiě)多長(zhǎng)最終上線的效果是一樣的,但大家也都習(xí)慣了用短的命名,例如上述objc的application:didFinishLaunchingWithOptions:方法在js里習(xí)慣的命名是:$()。
objc與js都是動(dòng)態(tài)語(yǔ)言,使用起來(lái)還蠻像,但objc是編譯型,速度快,很多錯(cuò)誤也能在編譯過(guò)程中被發(fā)現(xiàn),js是解釋型,性能依賴于解釋引擎,即使在強(qiáng)勁的v8引擎下性能也趕不上編譯型語(yǔ)言,語(yǔ)言太動(dòng)態(tài),變量完全沒(méi)有類型,寫(xiě)起來(lái)爽,debug起來(lái)稍微費(fèi)點(diǎn)勁。一直感覺(jué)js輕巧靈活放蕩不羈充滿各種奇技淫巧,objc中規(guī)中矩沒(méi)c++ java那么嚴(yán)肅也沒(méi)有js那么靈活。
以上內(nèi)容是由匯仁智杰網(wǎng)絡(luò)推廣進(jìn)行整理編輯,希望能給看到這篇文章的讀者一些小小的幫助,如果你還有什么不同的看法歡迎您關(guān)注微信號(hào)huirenzhijie跟我們一起討論。