全球范圍內(nèi)App開發(fā)者數(shù)量有增無減,你選擇哪種編程語(yǔ)言來開發(fā)App呢?你得研究過跨平臺(tái)app設(shè)計(jì),你得知道一些app開發(fā)的常見缺陷。這取決于你的受眾和你所選擇的平臺(tái),然后選擇一門合適的語(yǔ)言。
你會(huì)選擇哪種語(yǔ)言來開發(fā)app呢?你選擇它的理由是什么呢?
Objective-C
Objective-C被認(rèn)為是iOS app開發(fā)的標(biāo)準(zhǔn)語(yǔ)言,通過蘋果的Xcode集成開發(fā)環(huán)境(IDE)使用Objective-C來開發(fā)。
Objective-C具有以下優(yōu)點(diǎn):開發(fā)的高效能性,可以讓你充分利用手機(jī)的各項(xiàng)功能。使用Objective-C進(jìn)行編碼可以讓app在所有iOS設(shè)備上獲得相差無幾的體驗(yàn),適配性比較高,比如iPhone和iPad。
不過,Objective-C使用起來也有一些難點(diǎn),比如不是那么容易學(xué)習(xí),使用Xcode可能比普通開發(fā)更難一些,更要到的一點(diǎn)是通過Objective-C開發(fā)的app很難適用到其他平臺(tái)上,比如Android phones和Windows phones。
不過,也不用這么悲觀,iPhone app可以被寫成web app,web app不需要像Objective-C那么精細(xì)復(fù)雜的語(yǔ)言,你可以使用HTML、 CSS或者JavaScript。另外,web app還可以使用iPhone的某些功能,你可以使用HTML5,針對(duì)iPhones的web app可以使用位置功能。但是,目前情況是web app開發(fā)比較有限。
Web app開發(fā)不能整合設(shè)備的核心功能,比如發(fā)文本信息,也不能充分使用App Store進(jìn)行銷售和更新。一些人認(rèn)為移動(dòng)web app避免了可擴(kuò)展性問題,因?yàn)樗梢钥缙脚_(tái)使用。同時(shí),web app也繞開了App store嚴(yán)格的提交和更新審查規(guī)則。相比較Objective-C而言,HTML、CSS以及JavaScript學(xué)起來更容易些。
JavaScript (Plus CSS和HTML)
JavaScript主要用來進(jìn)行web瀏覽器和app的開發(fā),性能方面有待進(jìn)一步改進(jìn)和完善。web瀏覽器開發(fā)不完全需要一門新的語(yǔ)言,使用和開發(fā)方面沒有太大問題,套用一句話說,也就是沒有壞的時(shí)候不用去修理它。
Node.js
Charlie Robbins(Nodejitsu CEO)說:“我認(rèn)為你完全沒有辦法讓Google、Apple、 Microsoft、Mozilla以及Opera在開發(fā)語(yǔ)言上達(dá)成一致,這是需要數(shù)百萬(wàn)美元來實(shí)行的。”JavaScript是相對(duì)比較簡(jiǎn)單的語(yǔ)言,同時(shí)還是一種比較有趣的語(yǔ)言,可以用在瀏覽器開發(fā)方面。最重要的是CSS和HTML可以一起使用,允許結(jié)構(gòu)和歸檔的分離。
Robbins主要從事Node.js語(yǔ)言的研究,他以前是一個(gè).NET和Ruby程序員,在他看到類似Silverlight和Flex這類程序/項(xiàng)目失敗于前端編程的時(shí)候,他看到了Node.js的機(jī)會(huì)。
Robbins開始全職從事JavaScript開發(fā),并且6個(gè)月后成立了Nodejitsu公司,為app開發(fā)提供高效的云服務(wù)。Robbins表示Node.js繞開了通用的開發(fā)步驟,使用起來更為簡(jiǎn)單。他說:“Node.js可以為你提供大部分你想要的實(shí)用函數(shù),并且可在NPM (node package manager)中使用,我覺得這是個(gè)優(yōu)勢(shì)而不是劣勢(shì)。”
Ruby:一種為簡(jiǎn)單快捷的面向?qū)ο缶幊蹋嫦驅(qū)ο蟪绦蛟O(shè)計(jì))而創(chuàng)的腳本語(yǔ)言
Robbins先前使用過Ruby, 他并不肯定Ruby,他說:“Ruby面臨的一個(gè)問題是工程師看到函數(shù)成為語(yǔ)言的一部分,他們認(rèn)為使用起來也非常快,他們并未對(duì)函數(shù)作為語(yǔ)言的執(zhí)行進(jìn)行深入挖掘。”
Robbins推薦使用第三方函數(shù)來代替,這樣可以對(duì)app開發(fā)有個(gè)更綜合更全面的理解。他說:“使用第三方函數(shù)的時(shí)候你會(huì)持很重的懷疑心態(tài),你會(huì)仔細(xì)去看代碼,看哪些運(yùn)行的快哪些運(yùn)行的慢,最終你對(duì)app的運(yùn)行情況會(huì)有更深刻的理解。”
在app開發(fā)過程中創(chuàng)建一門新的語(yǔ)言或者提高現(xiàn)有語(yǔ)言的健康競(jìng)爭(zhēng)能力,開發(fā)者需要知道哪種語(yǔ)言適合自己,尤其要明白各種語(yǔ)言的效能和功能。