John Jiang

          a cup of Java, cheers!
          https://github.com/johnshajiang/blog

             :: 首頁 ::  :: 聯(lián)系 :: 聚合  :: 管理 ::
            131 隨筆 :: 1 文章 :: 530 評論 :: 0 Trackbacks
          Rock Star 2008 -- Chet Haase
              這是一篇在今年的JavaOne會議期間對Chet Haase的訪談。關注Swing,Java 2D的朋友,對這位圖形/UI開發(fā)方面的大牛肯定不會陌生。很高興在不久前由他與Romain Guy合著的Filthy Rich Clients一書的中文版已經(jīng)出版了^_^ (2008.06.01最后更新)
              祝大家六.一國際兒童節(jié)愉快!愿大家都能保持一顆年輕的心*_*
              特別祝地震災區(qū)的小朋友們節(jié)日快樂,愿他們在今后的歲月中能夠幸福地成長:-)

          簡歷: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一書。關于它,開發(fā)者們應該知道些什么?
          A:有四點:第一,它涉及的特性豐富的功能,能幫助開發(fā)者創(chuàng)造更好的應用和更好的用戶體驗。第二,它有許多關于Swing和Java 2D的內幕,以便開發(fā)者不僅能理解我們寫的功能,還能理解這些技術本身,他們就能使用這些技術去寫出他們自己的功能了。第三,它是一本有趣的讀物,至少我們努力去做到這一點。最后,在本書的站點上,可獲取所有的示例和工具類庫,包括源代碼。

          Q:在Sun的Java Client組工作了8年之后,你在2008年的1月份離開了,并加入了Adobe。告訴我們你所從事的工作。
          A:我加入Flex組,從事與圖形有關的工作--這沒什么奇怪的。在目前為止,我主要專注于相關的平臺:Flex,F(xiàn)lash,AIR,MXML,ActionScript3。對于某個在過去8年多的時間中一直從事于Java方面工作的人來說,有很多東西需要學習。同時,在全組為下一版的發(fā)布而對某些組件進行重新構架的工作中,我已在幫忙了。開始時,我關注動畫方面。

          Q:周三下午5點,在Metreon,有一個Adobe的活動。到時你會與James Ward有一個簡短的演講。告訴我們關于它的一些情況。
          A:那會很有趣。James Ward將給出Flex平臺的一個簡介,包含如何編寫與Java后臺交互的Flex客戶端程序。而我--也可能是我的合著者Romain Guy--將展示一些"Filthy Rich" Flex應用示例。這些示例關于如何使用Flex去實現(xiàn)我們在書中談到的功能。使用Flex去實現(xiàn)的方法會不同,但你可以使用該平臺去達到非常相似的功能。任何感興趣的人都應去Adobe的展臺,然后獲取一份邀請。

          Q:是什么吸引你去開發(fā)圖形軟件?
          A:我喜歡從我的程序中得到可視化的反饋。當它正常工作時,你可以在屏幕中看到結果。當它壞掉了,你也能看到它在屏幕中不正常的樣子。與調試某些隱蔽的數(shù)據(jù)庫事務相比,這更能讓我滿足。還有,圖形能夠將我的數(shù)學背景結合到我的軟件背景中。計算機圖形學使用了從線性代數(shù)到三角函數(shù)到幾何學再到微積分學的許多技術。使用數(shù)學在屏幕上顯示美妙的圖片,與我所處的數(shù)學領域能做的多數(shù)事情相比,這更加有趣。

          Q:對于那些想以做圖形軟件作為職業(yè)的人,你有什么建議?
          A:應用你所需要的數(shù)學課程。并不需要高級的知識,但以我已做過的很多軟件來看,我著重學習了線性代數(shù),及其一定的微積分學。

          Q:對于新接觸Java程序設計語言的程序員,你會給出什么建議?
          A:不使用行號。不要把你的整個應用放在一個方法中。相信垃圾收集器能做好它的本職工作。

          Q:哪種產(chǎn)業(yè)已經(jīng)準備開始大規(guī)模履行在Web服務方面的承諾?
          A:摔跤。當WWF(世界摔跤聯(lián)合會)在萬維網(wǎng)(World Wilde Web)上使用Web服務時,網(wǎng)絡別名就將是wwwwwfws。

          Q:能描述一下你寫代碼的過程嗎?
          A:我會試著在腦海中收集素材,可能會將一些不成熟的想法寫在小紙片上,這樣我之后就不用再去找了。這一機制中的某些觀念將來會用得上。然后我開始寫原型。
          我在一些書中看過一種理想化的方法,你將整個系統(tǒng)--API,或隨便什么--以簡短方法和注釋的形式進行描述,然后你所要做的就是填充細節(jié)。也許真的有人用這種方法寫代碼,但我尚未遇到。
          很多軟件是研究性項目,在那里并不清楚什么是可能的或需要做的細節(jié)是怎樣的。所以當我快要知道我想達到的什么時,我會開始寫一些代碼以找出接下來要做的工作以及如何去做。

          Q:你創(chuàng)造的最讓你感自豪的代碼是什么?
          A:Timing Framework。這個類庫增補了一項我在Java SE中見到的空白--Java SE缺乏有用的定時-動畫特性。然后基于我們自己的或其他人給我們的需求,Timing Frame有機地發(fā)展起來。
          我也對Filthy Rich Clients中的所有代碼感到十分自豪。這些代碼示例意在向人們展示如何去完成一些特定的任務,但像簡單執(zhí)行的代碼一樣,作為教程而寫成的這些代碼也便于教學。

          Q:下一次大的技術革命是什么?
          A:香蕉電話。水果兼具通信元件與營養(yǎng)小吃的功能。

          Q:在此之前的五年內,你認為最重要的Java API是什么?
          A:沒有什么比System.out.println更有用的了?

          Q:你能給我們一個優(yōu)美代碼的例子嗎?
          A:這兒就有一個:
            10 print "fart"
            20 goto 10

          Q:如果你想向Santa Claus要一個NetBeans IDE的新插件,那會是什么?
          A:ActionScript3的編輯器,如何?

          Q:當你感到困惑時,你會做些什么?
          A:拿一支筆和一張紙,然后思考著這個問題。也會散散步,或者與某個人一起討論這個問題,或者換一杯咖啡--也許沒什么幫助,但味道不錯。

          Q:Java平臺最近的什么變化使你的生活變得輕松些?
          A:我發(fā)現(xiàn)J2SE 5.0的一些語言變化,像新的for循環(huán),很有用。
          我用過一些泛型以簡化Timing Framwork API,雖然我知道泛型的真正好處是讓用戶泛型化API,而不是讓開發(fā)者在他們自己的代碼中使用泛型。

          Q:Swing開發(fā)者需要理解的最重要的東西是...?
          A:在沾手之前,先關掉食品加工器。

          Q:你認為Web 2.0的最大技術障礙是什么?
          A:有太多的框架用于"Web 2.0"應用。特別是在Ajax世界,很難知道從哪兒開始、繼續(xù)或結束。從某種程度來看,一個開發(fā)者的腦海中只會中意最有可能流行的框架。可能更應該寫作"Web Too",即,"太多的選擇"。

          Q:你是否是網(wǎng)絡開發(fā)者社區(qū)的一位正式成員?
          A:我并不處在某個特定的社區(qū)內,但在我關注的開發(fā)領域內,我是一位經(jīng)常寫作的博客。我認為擁有偉大的類庫是吸引開發(fā)者群的重要組成部分。
          但是向開發(fā)者們解釋應該如何使用這些類庫,以及使用特定的、合適的例子去展示這一點,則是另一個同等重要的部分。

          Q:圖形軟件應該如何溶入Web 2.0的畫卷中?
          A:就我理解,Web 2.0是關于在瀏覽器中的更好、更動態(tài)的用戶體驗。不論你使用何種框架,這種體驗都意味著豐富的圖形與功能。甚至只是簡單的如,動態(tài)地將購物商品拖入購物車,或使用有趣的圖形技術在頁面上使某個元素淡入淡出,這樣的功能。

          Q:你如何看待開源軟件?
          A:我認為開源軟件很偉大,但并不是由于人們可能設想到的原因。當人們聽到一個項目是開源的,他們可能猜測有一大批來自世界各個角落的人們在幫助這個項目,向其中塞入代碼,并以這種松散的方式進行協(xié)作。
          我見過的大多數(shù)開源項目已較少關心人人貢獻了,而更多的是關心源碼庫的透明性以及來自開發(fā)者的廣泛反饋。多數(shù)的公司和人可能更關心的是,他們能夠看到黑箱中的東西,然后會建議進行適當?shù)母倪M,而不會是實際地去做這些改進,也不會使自己親自加入到項目中。
          所以,就像我的Timing Framwork所獲得的好處,并不是大家直接地向它提交代碼,而是大家能夠去看它是如何工作的,然后與我討論怎樣去改進它,以去適應他們的特定情形。
          Java和Flex SDK都是開源。不論選擇加入的人的水平如何,我希望它們都能從社區(qū)的參與中獲益。

          Q:大家知道你在博客中寫有滑稽和詼諧的東西。你是否認為幽默與滑稽能保持你作為一個開發(fā)者的敏銳、自由與創(chuàng)意。
          A:是的,就是那樣。這就是我那樣做的原因。
          不,我這么做其實也沒有什么理由。我只是喜歡博得一笑罷了。然而我也知道,如果人們都睡著了,你就不能教他們了。
          所以,使一次講演具有趣味性,與使其信息豐富一樣重要。我見過十分乏味但內容很好的講演,但一般來說,對于越活躍的講演,大家越能記住它,也越想再聽一次。
          這同樣適用于文章:為了使你的觀點具有穿越性,如果你能使用一些有趣的比喻或詞匯,就比只是在他們面前弄一些代碼和方程式,更有機會使你的讀者們繼續(xù)看下去。

          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 閱讀(2635) 評論(0)  編輯  收藏 所屬分類: OthersJavaOpenWorld/JavaOne/SunTechDays翻譯
          主站蜘蛛池模板: 高尔夫| 西乌| 房山区| 鲜城| 永丰县| 会理县| 邮箱| 阜南县| 叶城县| 满城县| 台前县| 隆昌县| 迁西县| 垣曲县| 彰武县| 荥阳市| 张家界市| 梅州市| 达州市| 措美县| 临桂县| 连平县| 汝阳县| 清河县| 达州市| 嵊泗县| 定西市| 金沙县| 南通市| 平舆县| 宜兰市| 平乐县| 大理市| 根河市| 靖江市| 义马市| 靖边县| 通渭县| 措美县| 准格尔旗| 乐清市|