相關閱讀 |
>>> 技術話題—商業文明的嶄新時代 >>> | 簡體 傳統 |
Wallace B. McClure是《Professional iPhone Programming with MonoTouch and .NET/C#》以及即將出版的《Professional Android Programming with Mono for Android and .NET/C#》一書的合作者。我們剛好在Xamarin將從Attachmate手上接管Mono這一消息公開前后進行這次采訪的。
InfoQ: 現在距Miguel宣布Attachment裁員及創建Xamarin已經過去兩個月了。您對這個情況有什么看法嗎?
第一個問題是在7月16號提出的,兩天后Miguel宣布創建Xamarin以及與Novell合作。
Wally McClure: 作為一個面向移動設備的.NET開發者,我有幾個必須關注的問題。其中最大的問題就是:“我該如何針對移動平臺進行開發才可以賺最多的錢?”對我來說,這相當于“我該如何開發iPhone和Android應用程序?”許多人跟我提起過iPhone開發,有時候也會談到Android。那么作為一個.NET開發者,我該如何簡單快速地針對這些平臺進行開發?我可以去開發一個HTML 5應用程序,但是Web程序并不能利用設備的所有功能,客戶也會要求原生應用而非Web應用程序。HTML 5應用會有一席之地,但是它們無法解決所有客戶的所有問題。
作為一個.NET開發者,如果想要開發原生應用,則可以選擇學習Objective C和Java。學習語言需要一些時間,還包括開發環境等等。開發人員可能會認為學習語言沒什么難度,但就我的感覺來說,事實并非如此,我沒法使用一個周末的幾個小時來學會一門語言。當然我也可以使用其他一些產品,例如把HTML應用程序作為原生應用的基礎。然而,我還是時常會關注跨平臺與原生應用之間的比較,所以我還在尋找其他方式。
我比大部分人知道更多東西,因為我除了是一個開發人員,也會關注許多金融方面的消息。在2009年末至2010年初的時候,我聽說了Novell的事情,他們正通過CNBC尋找買家。對我來說,這意味著可能會有些麻煩了。此外我還聽說了Novell業務部門之間的一些摩擦,其中也包括Novell的裁員以及Xamarin建立的事情。我的看法是:
市場并沒有拒絕MonoTouch。我和許多付費用戶交談過,有些暫停使用MonoTouch/iPhone,不過并非所有人都拒絕MonoTouch,有些人繼續在iPhone和MonoTouch上投入。
已有的MonoTouch產品也不會就此無法使用了。我還是可以創建在iPhone和iPad上運行的程序,一切正常,而他們也認為可以在3個月內構建一個產品。他們是六月份動手的,所以九月份可以完成,這也差不多是下個版本iOS發布的時候。
MonoTouch本身有一些風險。例如,Xamarin和他們的iPhone .NET產品可能會有一些版權糾紛。這是事實。我和一些比我更具有法律背景的人交談過,他們提出的問題是:
Xamrin可能會面臨這些風險。Miguel de Icaza已經對此發表過申明,表示這方面已經沒有什么問題了。
部分API是基于iOS及Andorid的API而定義的。不過這方面出現版權糾紛的可能性不大。
在Novell公布裁員消息之后的兩個星期我重新嘗試了Objective-C和Java開發,最后得到了與我2009年相同的結果。Objective-C與我內心所想相差甚遠,對于.NET開發者來說會是十分陡峭的學習曲線。想要獲益的唯一辦法便是投入大量時間。對于我們這種已經在其他領域投入許多的人來說,這個門檻實在有些高。
在仔細審視了這些問題之后,我發現MonoTouch和Mono for Android依然有著十分重要的意義,這與兩年前的狀況一致。
InfoQ: 我們開始采訪的不久,Attachmate就宣布向Xamarin提供有關“Mono,MonoTouch,Mono for Android以及Mono Tools for Visual Studio”的永久授權。現在法律問題已經解決了,你覺得采納iPhone和Andorid上的Mono還有哪些障礙呢?
Wally McClure: 這真是美妙的一周。一周前,我醒來后看到一堆指向 http://ios.xamarin.com/ 的內容,我發現Xamarin獲得了這些工具永久的知識產權。這周末我又參加了Monospace會議,整整兩天,我了解了許多關于Xamarin的消息,也和其他參與者進行了交流。上周我和一個潛在客戶進行了溝通,他們是財富500強公司,對MonoTouch很感興趣,已經投入iOS平臺,并使用.NET開發他們自定義的業務應用產品。不過現實情況是,目前有些公司依然有顧慮。我想關于Attachmate的法律問題已經解決了,我估計接下來還會和其他一些公司達成協議,這會更進一步減少法律風險,我想接下來幾個星期應該會有相關消息。從法律角度來說,我覺得已經沒什么問題了。除了一些目前還無法得知的風險,我已經找不到暫緩使用MonoTouch和Mono for Android的理由。就我個人來說,過去的六個星期可謂是馬力全開,我也會繼續保持下去的。
我還聽說過一個問題,是說“MonoTouch和Mono for Android有bug,所以不該使用”。其實每個軟件都有各種各樣的bug,Android和iOS也都在持續更新,有問題都會即時修復。Xamarin的計劃是定期更新他們的軟件,就像過去24個月那樣。當發現bug的時候,我們會在trunk上修復它,并打包在下次升級的版本中。之前的更新一直很有規律,我想這應該也會保持下去。發布頻率大約是2到3個星期一次,所以你無需等好幾個月才能獲得新版本,而可以很快地更新,很快地更新項目。最終用戶都不愿等待,我們都明白這一點。
InfoQ: 有沒有哪方面你覺得是MonoTouch和Mono for Android做得尤其出色的呢?
Wally McClure: 理論上說,它們是向六百萬.NET開發者開放了兩個最流行的移動平臺。對我來說,作為一個.NET程序員,在2009年早些時候還在考慮如何進行iPhone開發,那時候MonoTouch的出現真可謂神來之筆。我還是需要學習特定平臺的內容,但我完全不需要學習新的語言,就好比Objective-C。這對我來說至關重要,在學習iPhone理念的同時還要學習Objective-C真可謂是難以逾越的高山。雖然我還是需要使用Mac,我必須使用MonoDevelop進行開發,但這筆投資還是相當值得的。我可以使用HttpWebRequest來調用服務獲取內容,再使用LINQ處理數據,在許多地方都可以使用這些代碼,這實在是太棒了。
從技術角度來說,我會關注基礎方面的內容。我每天早上都會在iPad上使用一款新聞工具,它時不時就會崩潰一下,我猜這是因為指針計算或是內存使用方面的問題。有了垃圾收集器之后,我們就可以減少內存使用的麻煩,也無需担心指針問題了。
我認為它們還有一個重要的優勢,它們是在運行平臺上進行“真正針對性的開發”。簡單的說,它們只是為底層操作系統提供了一個C#調用層,最終執行的還是平臺上的原生API,只不過使用C#而已。這對開發人員來說十分關鍵。盡管我會推薦有關MonoTouch和Mono for Android開發的書籍,但我們完全可以通過一本使用Java的Android的書籍來學習Mono for Android。它們并沒有為用戶界面控件提供什么通用的容器,而是完全直接使用平臺上完全相同的那些控件。MonoTouch應用程序和Objective-C應用程序完全相同,Mono for Android應用程序看上去也和Java程序毫無二致。這對用戶來也是個優勢。
InfoQ: 那么有那些地方需要改進呢?
Wally McClure: 軟件進步不會有終點,總有需要添加、修復或是增強的地方。MonoTouch在有些方面還做的不夠好,例如MonoDevelop在Mac OSX Lion上運行還有些問題。過幾天應該就會修復了。還有就是需要對iOS 5 Beta提供一些支持,我可以確定還有其他需要加強的地方。這些都不是什么大問題,現在是7月25號,我有信心MonoTouch團隊會很快加上這些功能。
Mono for Android就相對是個很新的產品了。它是四月份發布的,還有些比較難辦的問題。不過從MonoTouch的歷史來看,Mono for Android團隊也肯定會解決這些問題,例如:
在Mono for Android里調試程序。在很長一段時間里我都會提到調試器的問題。之前我和Mono for Android團隊里負責調試器的開發人員談了大約一個半小時,建立了一些可重現問題的測試用例,所以這些問題應該很快就會解決,很可能就在接下來的一兩次更新里。
對地圖、Android蜂巢系統、還有第三方庫的支持。目前Mono for Android還缺少對一些第三方庫的支持,這意味著于地圖、還有Android蜂巢系統的支持還有些問題。我和接手這些問題的人一起工作過,他對這些問題進行了解釋,以及會如何解決它們。到時候他們會更新產品,可能在2到3次發布以后吧。
基本上只有要時間和耐心,這些技術性問題都是可以解決的。我個人的意見是:.NET開發者如果想要開發iPhone或Android應用的話,現在就可以接納MonoTouch和Mono for Android了。跟重頭開始學習設備開發,重新學習一個新的開發方式所需的時間相比,這些問題都是小菜一碟。
InfoQ: 在Mix會議上,Miguel宣布了Android電話/平板上的Monolight原型。這便出現了三種可能性:
瀏覽器外的Silverlight應用程序重新打包為Android市場上的程序。
Windows Phone 7應用程序重新打包為Android市場上的程序。
瀏覽器內的Silverlight應用程序與Flash競爭。
你覺得其中哪個可能性值得關注呢?
Wally McClure: Monospace并沒有太多關于Silverlight/Moonlight的討論,你剛才提到的MIX上的內容還是產品的初級階段。后來又有了Xamarin的變故,所以我認為不必對Silverlight跨平臺開發抱太大期望。在Monospace上,我了解到其他一些在這方面會有幫助的工具。當時這些工具還不夠完整,不過我想很快就可以了解到更多信息了。在我看來,.NET程序員應該嘗試下MonoTouch和Mono for Android,它們會讓你了解特定的平臺,深入下去,你會發現這是個美好的世界。
InfoQ: 您還有什么想要補充的嗎?
Wally McClure:
我已經經歷過三次Mono被宣布“死亡”的時候了,每次我都能看到某些報告說它大限將至。對我來說,使用Mono的風險跟使用Silverlight、.NET或是HTML 5是一樣的。這個過程中會有曲折,總有人會向我們咆哮說“走錯路了”。其實只要有點耐心,這些問題都可以解決。
MonoTouch和Mono for Andoird是很好的產品,絕對有效。如果你是個.NET開發人員,想要立即加入iPhone和Android開發,那么MonoTouch和Mono for Android會是你們的寶貝。目前有幾本MonoTouch的書籍(我的還有別人的),而Mono for Android的書會在今年秋天面世。我會在AppDev上發布一系列MonoTouch的視頻教程。到了秋天,各類開發雜志上都會出現MonoTouch和Mono for Android的消息。這些產品的相關社區發展勢頭很猛。
關于受訪者
Wally McClure專注于開發大量用戶及大量數據的應用程序,也包括用戶界面相關的技術,例如AJAX、iPhone和Android。他是微軟的MVP,ASPInsider以及技術作家。他的公司(Scalable Development, Inc.)提供iPhone/MonoTouch以及Android/Mono for Android編程的課程。Wally也是MonoTouch及Mono for Android相關書籍的合作者,這是他在Wrox出版社的第八本書了。
查看英文原文:Wally Mclure on the Future of MonoTouch and Mono for Android
網載 2015-05-19 15:56:05
稱謂:
内容: