標籤:winform http io os ar 使用 java for strong
現年52歲的Bernardo Castilho先生是GrapeCity(中文名為葡萄城)ComponentOne公司的CTO,在與他的對話過程中,充滿風趣嚴謹和厚重的曆史感。
當作為年輕人的我們崇拜著各式娛樂男神女神時,他的偶像卻是這個世界上最為傑出的科學家,從少年時代開始,編程成了他的興趣愛好,並最終成為了他許以一生的職業。作為Wijmo 5Team Dev的Leader之一,他是HTML5、JavaScript等眾多技術的行家裏手,在採訪他之前,筆者特地在CSDN論壇上發起了一個問題徵集的活動,接下來,就讓我們一起看看Bernardo Castilho先生就自己、團隊以及Wijmo都回答了哪些問題吧。
圖:GrapeCity ComponentOne CTO Bernardo Castilho先生
CSDN:首先,請向我們的讀者自我介紹一下,可以分享一些您的小八卦。從業以來,有哪些印象深刻的經曆?從Web到移動,有哪些經驗分享?
Bernardo Castilho:我的編程生涯可以追溯到少年時代,當時我使用的是一台45k記憶體的Apple II,我沉醉於這種能讓一切事物變得格外簡單的編程滋味兒。上世紀90年代初,當我編寫出我的第一款適用於Visual Basic 1.0的自訂控制項,這種愛好變成了我許以一生的職業。
一直以來,我都非常熱愛閱讀,如果必須選擇一本的話,我會推薦侯世達的《哥德爾、埃舍爾、巴哈:集異璧之大成》,從嚴格意義上來講,它並不是一本編程書籍,但它卻涵蓋了包括萬物相連在內的諸多領域。我也有很多的偶像,比如阿基米德、伽利略、牛頓、高斯、馮·諾伊曼、艾倫·圖靈等,但在我的生命中,我最崇拜的人是Turbo Pascal、Delphi、C#和TypeScript的創造者——安德斯·海爾斯伯格,我參加過他很多的演講,他獨到的見解與想法總會讓我倍感驚喜。
在過往25年的職業生涯裡,我有幸目睹了Web革命的完整曆程,從上世紀的一個天才想法逐漸演變成為今時今日人們生活中不可或缺的一部分,從向一個平台發布內容到一次編程處處啟動並執行跨平台應用。於我個人而言,從Web到移動最重要的轉折點是微軟決定停止開發Silverlight,它讓我看到了HTML5和JavaScript將成為未來的技術趨勢。
從我涉足這一行業開始,一切都變得有趣起來,回首過去,人們發明了個人電腦和全球資訊網,許許多多驚天地的事情對現實生活產生了劇烈影響。而今天,冒著像個老男人一樣嘮叨的風險,我看到很多年輕的孩子在iPad上浪費他們的大好光陰,而成年人則成日在Facebook等社交網路上刷屏度日,甚至還有的人在為他們的下一部手機該選個什麼顏色而苦惱。當然,在此之中,仍然有許多有趣的事情正在發生,只是還不為人知罷了。對我來說,EcmaScript 5、TypeScript、AngularJS以及Wijmo 5都格外地有趣,希望會有更多的人喜愛它們。
CSDN:請具體說一下Wijmo 5是什嗎?為什麼將其命名為“Five”?
Bernardo Castilho:Wijmo 5是新一代的HTML5/JavaScript控制項陳列庫,採用最新和最受歡迎的技術,包含了開發可運行於案頭與行動裝置之上的現代MVVM應用需要的所有控制項和組件,並且,它不再相容任何傳統瀏覽器,我們仍然會繼續支援並更新Wijmo 3,以便傳統瀏覽器的使用者還能繼續使用。
Wijmo 5的“Five”實際上來自於EcmaScript 5。在Wijmo 5中有一項非常重要的特性,就是真正實現了對於getter和setter屬性的支援,這是EcmaScript 5新添加的部分,也是Wijmo早期版本一直缺乏的東西。
CSDN:請講講Wijmo 5Team Dev的成員以及分工情況。
Bernardo Castilho:Wijmo 5團隊的大部分人也負責其他的產品開發工作。我們利用在各自擅長領域的專業經驗來為各個類別的開發項目建立擁有最好品質的控制項。
就我而言,我之前負責了從ActiveX、Winforms到XAML等FlexGrid所有版本的開發工作,而我在Grid方面也擁有著極為豐富的經驗,並把它們帶到了Wijmo 5 FlexGrid的開發中。Alex Trefilov是Wijmo 5 FlexChart控制項的開發人員,他一直負責XAML圖表控制項的開發工作,可以說是圖表方面的行家。Tim Emanuel是我們的主設計師兼CSS專家,他建立了Wijmo控制項的外觀和布局行為,以及可輕鬆建立控制項主題的LESS檔案。
Chris Bannon是Wijmo的產品經理,負責包括Wijmo 5在內的Wijmo所有版本的研發工作。Chris在Web開發、HTML5、JavaScript以及包括jQuery、SVG、Bootstrap、AngularJS、KnockoutJS等的所有流行JavaScript技術和控制項方面絕對稱得上是行家,他為我們瞭解當下最先進的Web開發技術以及該如何開展研發工作投入了大量的精力。Alex Ivanenko是我們的專案經理,負責包括構建過程、自動化測試、Bug管理及使用者請求等基礎架構工作。而Wijmo 5的所有示範樣本則是由Raleigh Johnson來開發的,Nazim Turakulov是我們負責互動層的開發人員,主要包括AngularJS和KnockoutJS指令等。Kim Landis是我們的技術文檔工程師,主要負責文檔、技術論文部落格等的審校工作,確保所有資訊都是簡潔明確的。而市場經理Eve Turzillo則負責包括廣告、視頻、會議等在內的推廣工作。除此之外,我們還有一個分布在中美等國家的Team Dev,同時負責Wijmo 3和Wijmo 5產品的開發工作。
CSDN:Wijmo 5的開發用到了哪些技術?具體的開發思路是怎樣的?
Bernardo Castilho:2013年,當我們看到通過EcmaScript 5、HTML5、TypeScript、AngularJS等全新的Web技術能夠建立出像Silverlight和.NET中的那些工具一樣強大的HTML工具時,我們決定開發Wijmo 5。我們想要建立一個這樣的庫,當我們的客戶習慣於體積更小、依賴性更弱的其他平台時,能夠為他們提供擁有同樣強大的功能及靈活性的控制項。我們使用到了jQuery,但不包含jQuery UI、Raphael、Globalize或其他的庫。
我們希望這些控制項能夠充分利用HTML5隨處啟動並執行特性,因此,所有的控制項設計都以可良好運行於移動/觸屏及電腦裝置為前提。
圖:Wijmo 5設計草圖
Wijmo 5使用TypeScript語言編寫,它融合了包括類、繼承等在內的物件導向編程所有優點,並編譯成EcmaScript 5,從而實現可運行於所有現代瀏覽器。此外,TypeScript還提供了靜態誤差檢查,能夠極大地加快開發速度並提供產品品質。
Wijmo 5的控制項擁有著非常豐富的物件模型,在我們其他平台已有控制項的基礎上,利用我們作為控制項開發人員的經驗優勢來減少客戶的學習曲線。並且,我們還從Silverlight移植了JavaScript堆棧所缺失的類,其中就包括和MVVM應用關鍵介面ICollectionView相似的Control和Event基礎類。
CSDN:這款工具做了多久?遇到過哪些坑?
Bernardo Castilho:我們用了一年的時間來開發Wijmo 5,整個過程可以說很順利,但也遇到了一些挑戰,而最大的挑戰當屬文檔,我們渴望能夠找到像JSDoc這樣的工具來將代碼注釋編譯進線上協助系統,但卻無功而返,最終,我們自己編寫了一款能夠從源碼中提取注釋並產生支援本地化的XML檔案的工具。另外,還有一款專門用於將XML檔案編譯成Web頁面一起匯成協助系統的工具,這樣一來,無論何時構建Wijmo,我們的協助網站都能實現自動更新。相對而言,其他的問題則容易得多。
CSDN:Wijmo 5和Wijmo在本質上有哪些不同?與同類工具相比,Wijmo 5的優勢在哪兒?
Bernardo Castilho:Wijmo 5與之前諸多版本的Wijmo存在著很大的不同,並且完全不相相容,它包含了一系列截然不同的控制項,不同的架構,最為關鍵的是,它不再對傳統瀏覽器提供支援。與其他同類工具相比,Wijmo 5的控制項體積更小,速度更快,並有著更為富足也便於使用的物件模型,整個Wijmo 5庫也就300k大小,同類產品則通常比它大10倍左右,Wijmo的控制項不是“widgets”,而是真真正正的控制項,擁有著更棒的效能。
CSDN:關於Wijmo 5未來會有哪些規劃?是否會考慮開源?
Bernardo Castilho:我們沒有將Wijmo 5開源的計劃,相反,我們會將Wijmo 5以一個極具競爭力的價格出售,並提供使用者支援。對於Wijmo 5的未來發展,我們有一套路線圖以及使用者請求列表,在發布Beta之後,我們會將所收集到的資訊匯總出一個優先順序列表,根據它們來制定具體的實施計劃。
CSDN:很多開發人員關心,Angular與其他流行組件整合時是否會存在問題?
Bernardo Castilho:對於Angular的支援實際上是Wijmo 5開發的重點項目之一,我們熱愛AngularJS,並在大部分的樣本中使用了它,並且,我們還提供了指令來讓使用帶有AngularJS的Wijmo 5變得更容易。另外,對於控制項本身,Wijmo 5還有一個CollectionView類,讓使用AngularJS的MVVM開發達到XAML平台的水準。
CSDN:如果開發人員想將項目從Wijmo向Wijmo 5遷移,該怎麼實現?
Bernardo Castilho:從Wijmo向Wijmo 5遷移非常容易,如果開發人員使用AngularJS和MVVM,那麼就可以通過對控制類進行細微的調整並指令執行以舊換新操作,即可完成項目遷移。當然,我們非常樂於為使用者提供遷移指導,在官網的NewsGroup版塊就包含了Wijmo等主題相關的資訊,對開發人員而言絕對非常實用。
圖:Wijmo 5代碼
CSDN:在Wijmo 5的介紹中,有一塊“真正的JavaScript控制項”,可否具體講講它所指的意思?
Bernardo Castilho:從字面意思來理解,“控制項”是指一個具備使用者介面以及包含屬性、事件、方法等的物件模型的可重複使用的軟構件。大多數JavaScript庫所提供的都是與控制項極為類似的組件(Widget),只不過,組件的效能有一個單一卻相當難管理的“Options”對象,並且,它們使用調用方法或附加事件處理常式的字串,導致文法冗長又容易出錯。
而Wijmo 5則完全不同,它實現了getter和setter等屬性支援,擁有真正的事件和方法。所有的物件模型都是型別安全的,開發人員可從IntelliSense和TypeScript編譯器受益。最重要的是,Wijmo 5文法和JavaScript類一樣簡潔,代碼更易於編寫、閱讀和理解。
CSDN:Wijmo 5控制項是否可以根據裝置或瀏覽器進行自適應?其通用性如何?
Bernardo Castilho:Wijmo 5控制項支援包括手機、平板電腦、PC在內的所有裝置,無論開發人員選擇使用哪種布局架構,都可以完美整合。比如說,我們大部分的樣本都是用Bootstrap來實現調適型配置,這就確保了應用程式不僅可以運行於小屏裝置之上,還能自適應,當然,有些樣本還用到了其他架構,比如專門用於開發混合應用的Ionic。Wijmo並不提供布局服務,但無論開發人員選擇Bootstrap、Ionic還是其他任何CSS庫,都可將其輕鬆整合到Wijmo中。
CSDN:Wijmo 5在中國有哪些支援人員?如果中國的開發人員們遇到問題該如何尋求協助?
Bernardo Castilho:我們將為來自中國的開發人員提供一流的服務支援。我們的母公司GrapeCity在中國的上海和西安都設有分公司,關於Wijmo 5開發的許多工作都是在中國完成。如果來自中國的開發人員們關於Wijmo有任何的問題,都可以在GrapeCity論壇提出,我們的開發人員一定會及時提供協助。
CSDN:作為資深程式員,能否談談您對於HTML5/JavaScript技術趨勢的看法?
Bernardo Castilho:在我看來,EcmaScript 5、TypeScript、AngularJS等技術的更新已經讓HTML5和JavaScript成為應用開發最高效實用的平台。EcmaScript 5引入了最為重要的getter和setter屬性以及SVG、Canvas、JSON等支援,而在此版本之前, EcmaScript根本不夠強大。TypeScript也新增了許多關鍵元素,除了物件導向之外,還有能節省時間並提高代碼品質的靜態錯誤檢查。AngularJS則提供了豐富的MVVM和Web組件,兩者都是現代應用開發的關鍵區段,儘管AngularJS所具備的功能並不是獨此一家,但它卻是當下最流行的技術之一。
CSDN:近期在中國,有一個頗為熱門的話題,就是Adobe關閉了在中國的研發分公司,僅留銷售部門,其中很重要的一個原因就是對於國人而言,正版軟體太過昂貴,就GrapeCity控制項來說,你們是否會針對中國市場進行價格調整以適應中國國情?
Bernardo Castilho:我們曾就定價進行過許多內部討論,大部分人認為目前的價格是相當合適的,而有的人則希望能夠增加一個價格較低但有限制條件或減少支援的選擇。對於中國的開發人員,究竟該提供一個什麼樣的價位?關於這一切,我們仍在思考中。同時,根據我們在中國的業務團隊的反饋,中國的企業使用者非常重視技術服務,因此在中國市場,我們會提供本地化的支援人員,以及電話、郵件響應等增值服務,以協助開發人員擷取更棒的體驗。
CSDN:有沒有想對中國的開發人員們說的話?
Bernardo Castilho:我鼓勵所有對HTML5和JavaScript感興趣的中國開發人員登陸我們的官網瞭解Wijmo 5,在這裡,不僅可以下載Wijmo 5,還有視頻、樣本、文檔、論壇等讓你深入瞭解Wijmo 5。更希望來自中國的開發人員們能夠以英語或中文等方式直接與我們聯絡,擷取更多資訊,或向我們提出建議,來協助我們將Wijmo 5做得更好!
----------------
Wijmo 5中文官網:http://wijmo.gcpowertools.com.cn/5
Wijmo 5中文社區:http://gcdn.gcpowertools.com.cn/showforum-140.html
CSDN頭版頭條 《近匠》 Wijmo 5 CTO:從Web到移動,我的25年編程生涯