Rock Star 2008 -- Chet Haase
這是一篇在今年的JavaOne會議期間對Chet Haase的訪談。關注Swing,Java 2D的朋友,對這位圖形/UI開發方面的大牛肯定不會陌生。很高興在不久前由他與Romain Guy合著的Filthy Rich Clients一書的中文版已經出版了^_^ (2008.06.01最后更新)祝大家六.一國際兒童節愉快!愿大家都能保持一顆年輕的心*_*
特別祝地震災區的小朋友們節日快樂,愿他們在今后的歲月中能夠幸福地成長:-)
簡歷:Chet Haase是Adobe公司Flex SDK組的高級計算機科學家,他關注于圖形問題及特性。早些時候,他工作于Sun Microsystems公司,是Desktop Java組的一名客戶端軟件架構師,涉及形如Java 2D,Swing,AWT和部署這樣的客戶端技術。他與Romain Guy一起是Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications一書的合著者。在2008 JavaOne大會中,他和Guy有一個關于Filthy Rich Client的議題。
Q:若干月前,你出版了Filthy Rich Clients一書。關于它,開發者們應該知道些什么?
A:有四點:第一,它涉及的特性豐富的功能,能幫助開發者創造更好的應用和更好的用戶體驗。第二,它有許多關于Swing和Java 2D的內幕,以便開發者不僅能理解我們寫的功能,還能理解這些技術本身,他們就能使用這些技術去寫出他們自己的功能了。第三,它是一本有趣的讀物,至少我們努力去做到這一點。最后,在本書的站點上,可獲取所有的示例和工具類庫,包括源代碼。
Q:在Sun的Java Client組工作了8年之后,你在2008年的1月份離開了,并加入了Adobe。告訴我們你所從事的工作。
A:我加入Flex組,從事與圖形有關的工作--這沒什么奇怪的。在目前為止,我主要專注于相關的平臺:Flex,Flash,AIR,MXML,ActionScript3。對于某個在過去8年多的時間中一直從事于Java方面工作的人來說,有很多東西需要學習。同時,在全組為下一版的發布而對某些組件進行重新構架的工作中,我已在幫忙了。開始時,我關注動畫方面。
Q:周三下午5點,在Metreon,有一個Adobe的活動。到時你會與James Ward有一個簡短的演講。告訴我們關于它的一些情況。
A:那會很有趣。James Ward將給出Flex平臺的一個簡介,包含如何編寫與Java后臺交互的Flex客戶端程序。而我--也可能是我的合著者Romain Guy--將展示一些"Filthy Rich" Flex應用示例。這些示例關于如何使用Flex去實現我們在書中談到的功能。使用Flex去實現的方法會不同,但你可以使用該平臺去達到非常相似的功能。任何感興趣的人都應去Adobe的展臺,然后獲取一份邀請。
Q:是什么吸引你去開發圖形軟件?
A:我喜歡從我的程序中得到可視化的反饋。當它正常工作時,你可以在屏幕中看到結果。當它壞掉了,你也能看到它在屏幕中不正常的樣子。與調試某些隱蔽的數據庫事務相比,這更能讓我滿足。還有,圖形能夠將我的數學背景結合到我的軟件背景中。計算機圖形學使用了從線性代數到三角函數到幾何學再到微積分學的許多技術。使用數學在屏幕上顯示美妙的圖片,與我所處的數學領域能做的多數事情相比,這更加有趣。
Q:對于那些想以做圖形軟件作為職業的人,你有什么建議?
A:應用你所需要的數學課程。并不需要高級的知識,但以我已做過的很多軟件來看,我著重學習了線性代數,及其一定的微積分學。
Q:對于新接觸Java程序設計語言的程序員,你會給出什么建議?
A:不使用行號。不要把你的整個應用放在一個方法中。相信垃圾收集器能做好它的本職工作。
Q:哪種產業已經準備開始大規模履行在Web服務方面的承諾?
A:摔跤。當WWF(世界摔跤聯合會)在萬維網(World Wilde Web)上使用Web服務時,網絡別名就將是wwwwwfws。
Q:能描述一下你寫代碼的過程嗎?
A:我會試著在腦海中收集素材,可能會將一些不成熟的想法寫在小紙片上,這樣我之后就不用再去找了。這一機制中的某些觀念將來會用得上。然后我開始寫原型。
我在一些書中看過一種理想化的方法,你將整個系統--API,或隨便什么--以簡短方法和注釋的形式進行描述,然后你所要做的就是填充細節。也許真的有人用這種方法寫代碼,但我尚未遇到。
很多軟件是研究性項目,在那里并不清楚什么是可能的或需要做的細節是怎樣的。所以當我快要知道我想達到的什么時,我會開始寫一些代碼以找出接下來要做的工作以及如何去做。
Q:你創造的最讓你感自豪的代碼是什么?
A:Timing Framework。這個類庫增補了一項我在Java SE中見到的空白--Java SE缺乏有用的定時-動畫特性。然后基于我們自己的或其他人給我們的需求,Timing Frame有機地發展起來。
我也對Filthy Rich Clients中的所有代碼感到十分自豪。這些代碼示例意在向人們展示如何去完成一些特定的任務,但像簡單執行的代碼一樣,作為教程而寫成的這些代碼也便于教學。
Q:下一次大的技術革命是什么?
A:香蕉電話。水果兼具通信元件與營養小吃的功能。
Q:在此之前的五年內,你認為最重要的Java API是什么?
A:沒有什么比System.out.println更有用的了?
Q:你能給我們一個優美代碼的例子嗎?
A:這兒就有一個:
10 print "fart"
20 goto 10
Q:如果你想向Santa Claus要一個NetBeans IDE的新插件,那會是什么?
A:ActionScript3的編輯器,如何?
Q:當你感到困惑時,你會做些什么?
A:拿一支筆和一張紙,然后思考著這個問題。也會散散步,或者與某個人一起討論這個問題,或者換一杯咖啡--也許沒什么幫助,但味道不錯。
Q:Java平臺最近的什么變化使你的生活變得輕松些?
A:我發現J2SE 5.0的一些語言變化,像新的for循環,很有用。
我用過一些泛型以簡化Timing Framwork API,雖然我知道泛型的真正好處是讓用戶泛型化API,而不是讓開發者在他們自己的代碼中使用泛型。
Q:Swing開發者需要理解的最重要的東西是...?
A:在沾手之前,先關掉食品加工器。
Q:你認為Web 2.0的最大技術障礙是什么?
A:有太多的框架用于"Web 2.0"應用。特別是在Ajax世界,很難知道從哪兒開始、繼續或結束。從某種程度來看,一個開發者的腦海中只會中意最有可能流行的框架。可能更應該寫作"Web Too",即,"太多的選擇"。
Q:你是否是網絡開發者社區的一位正式成員?
A:我并不處在某個特定的社區內,但在我關注的開發領域內,我是一位經常寫作的博客。我認為擁有偉大的類庫是吸引開發者群的重要組成部分。
但是向開發者們解釋應該如何使用這些類庫,以及使用特定的、合適的例子去展示這一點,則是另一個同等重要的部分。
Q:圖形軟件應該如何溶入Web 2.0的畫卷中?
A:就我理解,Web 2.0是關于在瀏覽器中的更好、更動態的用戶體驗。不論你使用何種框架,這種體驗都意味著豐富的圖形與功能。甚至只是簡單的如,動態地將購物商品拖入購物車,或使用有趣的圖形技術在頁面上使某個元素淡入淡出,這樣的功能。
Q:你如何看待開源軟件?
A:我認為開源軟件很偉大,但并不是由于人們可能設想到的原因。當人們聽到一個項目是開源的,他們可能猜測有一大批來自世界各個角落的人們在幫助這個項目,向其中塞入代碼,并以這種松散的方式進行協作。
我見過的大多數開源項目已較少關心人人貢獻了,而更多的是關心源碼庫的透明性以及來自開發者的廣泛反饋。多數的公司和人可能更關心的是,他們能夠看到黑箱中的東西,然后會建議進行適當的改進,而不會是實際地去做這些改進,也不會使自己親自加入到項目中。
所以,就像我的Timing Framwork所獲得的好處,并不是大家直接地向它提交代碼,而是大家能夠去看它是如何工作的,然后與我討論怎樣去改進它,以去適應他們的特定情形。
Java和Flex SDK都是開源。不論選擇加入的人的水平如何,我希望它們都能從社區的參與中獲益。
Q:大家知道你在博客中寫有滑稽和詼諧的東西。你是否認為幽默與滑稽能保持你作為一個開發者的敏銳、自由與創意。
A:是的,就是那樣。這就是我那樣做的原因。
不,我這么做其實也沒有什么理由。我只是喜歡博得一笑罷了。然而我也知道,如果人們都睡著了,你就不能教他們了。
所以,使一次講演具有趣味性,與使其信息豐富一樣重要。我見過十分乏味但內容很好的講演,但一般來說,對于越活躍的講演,大家越能記住它,也越想再聽一次。
這同樣適用于文章:為了使你的觀點具有穿越性,如果你能使用一些有趣的比喻或詞匯,就比只是在他們面前弄一些代碼和方程式,更有機會使你的讀者們繼續看下去。
Q:能與我們分享兩個你最喜歡的奇客[1]笑話或故事嗎?
A:我不能保證他們是我最喜歡的或是最好笑的,但至少它們都很新--在本周才把它們帖到我的博客中--也很奇客:
What do you call it when a chip manufacturer loses money?
A cash miss.
What do you call someone that has to use a dull web application?
Bored to tiers.[2]
譯注
[1]奇客,Geek,指性格奔放甚至怪僻,擅長計算機的人。
[2]由于對這兩則笑話的"本質"尚未領悟,所以暫不翻譯。
請關注上一篇譯文:Rock Star 2008 -- Joshua Bloch
posted on 2008-06-01 21:02 John Jiang 閱讀(2634) 評論(0) 編輯 收藏 所屬分類: Others 、Java 、OpenWorld/JavaOne/SunTechDays 、翻譯