OOPSLA 2005

2005 年 10 月 24 日

OOPSLA 再度舉辦,許多研討會和各種想法。不可能對這場研討會進行適當的撰寫報導,因為任何人都無法參與太多,更不用說理解了。因此,以下是一些零散的想法。

很高興看到 Jonathon Edwards 和 Subtext 專案在 Onward!軌道中回歸。Subtext 是我所見過關於開發環境最迷人的想法之一,也是難以描述的想法(前往網站並觀看影片)。與 語言工作台 一樣,它避免使用文字作為來源,而是偏好抽象表示,並針對編輯進行投影。然而,與一般用途工作台不同,它是一個特定的語言環境,特別強調同時顯示程式碼和範例執行。我喜歡它,因為它非常不同,而且是語言工作台所追求的截然不同的程式設計環境範例。

由於它在同一個場次,我也參與了 X10 場次,它描述了一種特別針對並行的研究語言。隨著多核心處理器日益受到重視,以及這種處理器會導致 軟體朝向並行運算的根本性改變 的觀點,思考如何以凡人(即 Doug Lea 以外的人)可以處理的方式來處理並行運算非常重要。我完全不知道 X10 的方法是否正確,畢竟我在並行運算方面是個門外漢,但以語言為基礎的方法似乎很有趣。(在我開始收到責備信之前,我最好提到 Erlang。)既然我提到了並行運算,我應該提到我與 Doug Lea 的簡短對話。他評論說,由於記憶體管理和垃圾收集器,現今的多執行緒 Java 遠遠優於 C。如果我記得沒錯,他說「只比 C 快 12 倍表示你尚未開始最佳化」。

我在重構前線發現了一些有趣的發展。Frank Tip 一直致力於利用類型推論技術來協助實作重構。他也參與了一篇論文,該論文利用重構在程式庫變更時自動遷移用戶端程式碼,在此情況下是移除舊的 Java 1.0 集合類別。我與 John BrantDon Roberts 討論過這件事,他們表示自己已經執行這類型的遷移一段時間了。大部分是 Smalltalk 實作之間的遷移(這不是一個簡單的問題),但也有一些跨語言遷移。遺憾的是,這些工作都沒有寫成文件,儘管他們確實提到他們這項工作的關鍵工具是 SmaCC。在另一場走廊聊天中,Jennitta Andrea 觀察到,在她合作的團隊中,她注意到重構工具改變了人們思考程式碼區塊的方式。

我的同事 Ivan MooreNat Pryce 執行 廢料場挑戰。這個想法是提出一個問題,讓大家有 90 分鐘的時間透過從網路上下載軟體並將它們組合在一起來建構一個解決方案。這基本上是探索 後現代程式設計。這是一個小型工作坊,考量到這是第一次執行,這可能是一個好主意。這看起來是一個適用於其他會議的想法:積極、與眾不同且有趣。

Brian Foote 關於 動態語言發展史 的演講吸引了大量的聽眾,畢竟他在軟體領域擁有最佳笑話/分鐘平均值之一。在他的單口相聲中(「Java 是減肥版的 Cobol」、「XML 是帶有 [惡魔] 角的 lisp」),最吸引我注意的是他要求將摩爾定律的收益的一部分花在系統的自我監控上,這樣我們就可以更輕鬆地找出並修復部署軟體時遇到的不可避免的問題。僅僅因為你認為你可以證明對手無法進球,並不代表你不需要一個好的守門員。

Mary Beth Rosson 有個主題演講建議我們思考拋棄「使用者」的概念,而改為思考「使用者開發者」:建立自己工具的人,例如郵件篩選器和試算表。這些使用者開發者需要不同的方法來思考可用性和功能。這些使用者開發者需要更好的工具(哈囉 語言工作台)和更好的實務,納入我們對軟體開發所學的許多知識。

在所有這些中,我被她提到一個教學系統所吸引,這個系統基於 愛麗絲,其中兒童被介紹到一個包含缺陷的模擬,並被要求修復它。是否應該以這種方式進行更多教學?要求學生修復有錯誤的程式;或以更棘手的角度,重構一個正確運作的醜陋程式。

除了最好的部分可能是 Brian Foote 的 引言 之外,我不會多說我自己的演講。

我錯過了聖地牙哥動物園的晚會,去參加一個 BOF,主題是 Grady Booch 努力建立一個 軟體架構手冊。他的目標是檢視大量不同的軟體系統,並提供其架構的簡要概述。產生的巨著將提供許多範例供人們學習。這是一項龐大且必要的努力。在已花時間投入生產的系統中,有許多教訓可以學到;我們從中學到的還不夠多。

OOPSLA 是個有趣的會議。一開始我非常驚訝它與 RubyConf 之間的差異。RubyConf 是個年輕的會議,專注且自信。就像任何青少年一樣,它無所不知,拒絕相信任何事情是不可能的。OOPSLA 是個鬆垮的中年會議,不再有任何指導目的 - 畢竟,物件(至少在表面上)已贏得它們成為軟體主要分解的主導地位。因此,不再有任何理由倡導物件,並將它們推廣到不情願的軟體開發社群。我們現在都是物件導向的開發者了。

因此,我在第一天晚上開場時哀嚎 OOPSLA 沒有在 2000 年解散,我們已經贏了,告辭。畢竟,我發表主題演講不是證明 OOPSLA 已經衰落了嗎?然而,隨著會議進行,我發現自己越來越享受。OOPSLA 最重要的是一個社群,儘管提倡物件導向已經是老生常談,但社群中的人們已經轉向許多其他有趣的事物。OOPSLA 是個機會,可以了解所有這些東西。

對於新人來說,這如何運作,我不太確定。會議公報中有一篇文章,有人抱怨 OOPSLA 的小圈圈。我懷疑這是長期舉辦會議社群的必然結果。這是朋友們聚會的機會,所以他們花了很多時間在一起。我希望新人會覺得這些副作用很有趣,但我懷疑 OOPSLA 永遠無法避免小圈圈效應。我也不認為其他長期舉辦的會議可以避免。

其他文章包括:Ivan MooreEugene WallingfordTravis Giggs

(所有引文都是根據記憶,因此僅供參考。)

動態類型比靜態類型更強,因為它們不會在執行時逃離現場。

-- Brian Foote

Eclipse 有一個「猜按鈕」使用者介面。

-- James Noble

靜態類型給我的安全感,就像聽到我的坐墊可以用作浮力裝置的公告一樣。

-- Don Roberts