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