深度探索PhoneGap:走出PhoneGap的幾個(gè)誤區(qū)
我們的目標(biāo)是為了實(shí)現(xiàn)我們的信念和開發(fā)哲學(xué)而努力奮斗。深入地了解像PhoneGap這樣的免費(fèi)軟件項(xiàng)目,需要良好的實(shí)現(xiàn)細(xì)節(jié)方面的基礎(chǔ)知識(shí),還需要了解代碼背后的每一個(gè)參與者。他們每個(gè)人的認(rèn)知和行為,都會(huì)提示你對于你的目標(biāo)和技術(shù)以及工作伙伴的選擇是否恰如其分。世界是多樣化的,而這種多樣性無一不體現(xiàn)在我們的代碼和我們寫代碼的工具中。
背景
2008年夏天,Nitobi Software旗下的PhoneGap面世。Nitobi是個(gè)典型的Web咨詢服務(wù)公司,并擁有很強(qiáng)大的JavaScript背景,同時(shí),它也是一家Web開發(fā)商。作為顧問,我們覺得自己并沒有融入PhoneGap項(xiàng)目開發(fā)團(tuán)隊(duì),這樣想法是作者自己的,但是大部分PhoneGap開發(fā)者和Apache Cordova委員會(huì)也這么覺得。
理念
我們有兩個(gè)核心且根深蒂固的理念:
1.web為跨平臺(tái)提供了解決方案。/解決了跨平臺(tái)帶來的煩惱.
2.隨著時(shí)間的流逝,新的技術(shù)總是會(huì)出現(xiàn)并取代原來的技術(shù)。
我們認(rèn)為,Web為設(shè)備功能的差異性提供了最令人信服的解決方案。實(shí)際上,歷史上也只有C語言能夠擔(dān)此殊榮,但是即便如此,讀者們都知道,未來還有強(qiáng)大的挑戰(zhàn)在等待著大家。此外,HTML,CSS,和JavaScript都有各自的優(yōu)缺點(diǎn),毀譽(yù)參半。造成這個(gè)局面的主要原因是Web技術(shù)的門檻太低。任何人都可以在任何時(shí)間任何地點(diǎn)發(fā)布任何內(nèi)容,這就是技術(shù)革命的物質(zhì)基礎(chǔ),像物種進(jìn)化一樣。
我們的第二個(gè)理念大膽地做出了聲明:所有的技術(shù)早晚都會(huì)退出歷史舞臺(tái),站在觀察統(tǒng)計(jì)和歷史的角度來看。鑒于有這樣的想法,作為服務(wù)咨詢服務(wù)公司,我們知道用同一套馬車來駕馭所有的馬將不可免除災(zāi)難性的結(jié)局(比喻用同一個(gè)解決方案應(yīng)用所有場景是不可能的)。當(dāng)然,話也不能說得太絕對,某些技術(shù)得益于某個(gè)專家的杰出貢獻(xiàn)可能可以持續(xù)數(shù)十年的輝煌。作為技術(shù)工作者我們的責(zé)任是把握住當(dāng)前的技術(shù),并且時(shí)刻注意變化。如何去行動(dòng)取決于我們的選擇,但是如果無作為,結(jié)果將是有別人來替代我們了。
目標(biāo)
理解我們的理念幫助大家理解為什么我們組建了一個(gè)強(qiáng)大的開發(fā)團(tuán)隊(duì):精通8種開發(fā)語言和多個(gè)操作系統(tǒng),每天和開發(fā)團(tuán)隊(duì)打過交道的手機(jī)可以裝滿一個(gè)冰箱(只是形容品種型號(hào)數(shù)量多),我們當(dāng)然不會(huì)把它們放進(jìn)冰箱,那是我們放啤酒的地方。(作者幽默了)于是,我們創(chuàng)建了一個(gè)巨大的設(shè)備墻 wall。 這個(gè) wall 并不是用來把設(shè)備們放進(jìn)來的,而是為了防止開發(fā)時(shí)使用特定的平臺(tái)。(足夠open,不要受到局限)了解了這些理念,下面我們來看一下PhoneGap的目標(biāo)。
我們對PhoneGap提出了兩個(gè)高層次的目標(biāo):
1.做出***的Web開發(fā)平臺(tái)。
2.PhoneGap的最終目的是終結(jié)現(xiàn)存目標(biāo)平臺(tái)間的差異。
當(dāng)然,現(xiàn)在Web并不是***的開發(fā)平臺(tái)。落后的工具,極少的外圍API,受限的GUI元素集,Web還有其他的很多問題,或者可以說成是特點(diǎn),比如說sandbox和一些未提供的API,可以為它帶來絕好的機(jī)會(huì)。簡而言之,我們認(rèn)為Web是一個(gè)目前處于劣勢的平臺(tái),我們需要用PhoneGap來填補(bǔ)這個(gè)劣勢,這正是機(jī)遇。
我們的第二個(gè)目標(biāo)聽上去有些不切實(shí)際,卻是作為一個(gè)平臺(tái)致力于web的標(biāo)準(zhǔn)化。我們支持Web向所有人開放,無論大家以何種方式進(jìn)行參與。通向Web的方向暢通無阻,沒有任何阻隔。對W3C,WHATWG和Mozilla的WebAPI、BONDI,WAC,Webinos,webOS,Tizen等類似內(nèi)容的調(diào)查研究也給了我們很多的啟發(fā)。
開發(fā)哲學(xué)
我們中的大多數(shù)人都是UNIX的推崇者,我們崇尚簡單,精確,專用工具。PhoneGap和其它的解決方案相比,大同小異。我們不可能做到盡善盡美,滿足所有人的要求,但是我們相信Web能夠解決軟件中的很多缺陷。隨著Web的不斷改進(jìn),它能夠解決的問題將會(huì)越來越多。
不無諷刺地說我們的***個(gè)理念(web解決了跨平臺(tái)帶來的困擾)關(guān)系到第二個(gè)理念(任何的技術(shù)都會(huì)逐漸衰退)。這也是我們開發(fā)PhoneGap的目的。我們知道目前Web并不是一個(gè)足夠優(yōu)秀的開發(fā)平臺(tái),所以我們一再努力對它進(jìn)行改進(jìn)。我們意識(shí)到Web平臺(tái)的限制給很多用例的可行性帶來了不便,使一些提供了更好工具的特定的解決方案案獲得了優(yōu)勢。但是,這并不是我們夢想中的未來,不會(huì)是我們的目標(biāo)。
依賴性是所有煩惱的根源。然而,我們并不依賴于Web,JS或者哪種其他的現(xiàn)存技術(shù),所以不會(huì)被限制住手腳。事實(shí)上,為了PhoneGap的實(shí)現(xiàn),我們中的大多數(shù)人現(xiàn)在精通多種平臺(tái),語言,工具和操作系統(tǒng)。任憑新的技術(shù)放馬過來吧:我們也要推出瀏覽器!
我們更新的速度很快,一般是每個(gè)月兩次,并且長期以來一直如此。有傳言說PhoneGap可能會(huì)落后于本機(jī)應(yīng)用,從技術(shù)角度上來看,這沒錯(cuò),但是我們一般不會(huì)落后多于兩周時(shí)間。另外,對于開發(fā)者來說,為實(shí)現(xiàn)某個(gè)非自己開發(fā)的功能添加插件是非常簡單的事情,我非常鼓勵(lì)你們閱讀我們相關(guān)的發(fā)布哲學(xué)。我覺得在當(dāng)前該行業(yè)中我們是最棒的一員。
***總結(jié)
我們承認(rèn)目前沒有***的解決方案,Web并不適用于所有情況。不管怎么說,Web技術(shù)并沒有進(jìn)一步惡化,瀏覽器的抽象層終將會(huì)和操作系統(tǒng)(C,C++)一致。Web技術(shù)當(dāng)前沒有實(shí)現(xiàn)的功能并非是它的能力所限,也并不是永遠(yuǎn)不能實(shí)現(xiàn),而是我們還未著手實(shí)現(xiàn)那個(gè)功能。
如果你想盡自己所能改進(jìn)Web技術(shù),你可以在這里了解更多的投稿信息。如果你對PhoneGap真正的缺點(diǎn)有一些真知灼見:你可以先在這里試試看。