同學們,一起來可視化編程吧

jopen 12年前發布 | 7K 次閱讀 編程

導讀:我們知道編程工具的發展很快,而新工具的推廣過程卻不是一帆風順的。 Kwindla Hultman Kramer 是洛杉磯電腦公司 Oblong Industries 的 CEO,這個公司因為電影《少數派報告》開發手勢界面著稱于世,致力于推廣可視化編程語言,這篇文章將介紹 Kwindla Hultman Kramer 在革新編程語言環境的過程中的一些經歷與感悟。

當我十五年前從 MIT媒體實驗室畢業時,我的研究小組每年都與來自 Xerox PARC 的知名科學家出去度假旅行。我很崇拜他們與他們所從事的工作。但是那時我很年輕也有點急躁。每當我們這些青年人談起我們的研究或是展示一個 demo,總有人會說,真不錯,當年我們在 PARC 怎么怎么樣,云云。事到如今,在過去幾年里,每當我看到一件新的、小眾的、開源的、可控的網絡硬件、一個新的有聲譽的引擎、有生命力的藝術品或是一個產品具有位置跟蹤再加上實時信息推送,反正你已經明白我的意思了,每當這個時候我都會靜靜思考一下,是不是能讓 PARC 的那群人閉嘴。一切都在證明,時代在進步。按照定義,新的工作總是全新的,雖然它不可能是徹底地完全的新,沒有東西可以做到這一點。

對于一篇編程工具的小文章而言,這個介紹實在是有點長。尤其是最近我一直在關注有關交互式開發環境的一些網絡在線討論。這些討論由 Bret Victor 和一個相關的 Kickstarter project 發起,Kickstarter project 現在演變成了 YCombinator company,名叫 Light Table, 由 Chris Granger 創建。Bret 的東西很給力,Light Table 也很給力。如果你也感興趣,你也會想使用他們正在研發的東西。現在投資 Kickstarter project 吧。可有趣的是,我們在 20 年前就有了這些工具一些相當有趣的版本。直到 20 世紀八十年代晚期,一些專業的 LISP and Smalltalk 環境有點像 Light Table 了。

當我在 1996 年發現 Visual Age Smalltalk 的時候我很震驚。Visual Age 和其他 Smalltalk 工具是建立在可以代表對象和方法的代碼片段上的。那兒幾乎沒有文件操作。你可以運行代碼,直接修改源代碼,這都反映在正在運行的進程中了。開發環境和運行時間沒有差別。你能夠保存工作“圖像”。我們有一些好的工具,可以管理 forks 及版本的歸并,不僅在源代碼中可以適用,而且可適用于完整系統映像。

如果你用 Visual Age Smalltalk 寫一個 GUI 應用,你可以使用調試器檢測屏幕上所有的元素。而且,如果你再多寫一點 Smalltalk 代碼,所有的系統內部構件,包括虛擬化環境、編譯器和調試器,都是可控制的。當我興致勃勃的將這些講給我朋友時,他們埋頭于自己的老式家庭網絡,說道:這玩意兒很不錯,我們 10 年前在 Symbolics 就開始在 LISP機器中使用這些玩意兒了。所以我們可能要問,為什么這樣的的編程工具沒代替舊的工具,如果我們使用很長時間,目標能否將會更加明確,能否達成更大的共識呢?我可以想出一些可能的原因。

第一,在頂層構件動態環境需要動態的運營時間,這是件大事。Bret 在 JavaScript 環境下工作,Light Table 的目標是 JavaScript, Clojure 和 Python。這些天,我們有兩個層級的語言。我們使用精確設計的語言,審美和實施過程缺乏變化。真正交互式的開發環境是很難為這些C-family 語言建造的。C-family 還是霸主,直到最近才開始動搖,因為他們不僅有真正的優勢,也有慣性優勢。另一方面,相對來說,我們有的動態語言還只是雛形。Javascript、 Ruby 和 Python 實用而且有趣。但大部分的動態語言工作都是陷入扭曲的語法、VM 級的白費力和以社區為基礎的庫的開發。這些我都很感興趣,但是天吶,它確實讓我為那個大約 200 人的精英團隊朝思慕想,他們在 IBM 致力于 VisualAge 長達十年。

也許谷歌,某種程度上可以說是 2012 的 IBM,將用 JavaScript 和 V8 把我們再一次帶到那里。然后我們將擁有一個精確設計的動態語言棧,有點 IBM 的 Smalltalk 和 Symbolics LISP 的意思。

第二,我認為使用網絡的編程和程序員的大爆炸阻礙了軟件工具的發展,就像它曾經短暫的阻礙了用戶界面設計。再者,我要立馬澄清一件事,總的來說網絡創造的東西還是很不錯的。但天下沒有免費的午餐,10年間,大部分技術世界的注意力轉到了構件一個全球化的平臺,而這在早些時候不能夠很好的支持新的用戶界面或者是運行時復雜的建構工作。但網絡在逐漸成長。現代 JavaScript 框架的性能證實了這一點,一些低能階的執行工作也證實了這一點,例如 V8。

第三,屏幕基板面很重要。傳統的“一切均是文件” 的方法可以完美地移植過來。你可以構建一個跟文件一起工作的環境,即使是很小的一個展示。你也能夠跟文件一起工作,如果你只有一個行模式終端。但靈活設計的代碼片段和完全交互式的圖像調試器需要大量的像素點。而且不總是有足夠的像素點。我每次去 Big Companies 都看到很多全職的程序員對著 15 寸的監視器工作,這讓我很驚訝。這是種巨大的生產力浪費。雖然像素點現在越來越便宜了,但引進了很多形狀因數。現在我們實際上能夠構建專門為了同時利用筆記本屏幕和平板電腦屏幕的開發環境。當我每天使用 Visual Age Smalltalk 時,同時使用 Mac Air、iPad 比使用雙監視器的臺式機有更多的像素點。

第四,如果我們真的想要擺脫文件和程序的刻板表述,其實我們是想完全擺脫所有的文本。多年以來,圖形程序設計環境有很多的學術成果。但這是兩碼事。

這是些有關 LISP Machines 的不錯的網頁,這真是未來所在。而且據我所知,最有可能為C-language 平臺構建完全動態環境的是 Alexia Massalin 的綜合操作系統。如果你或多或少對程序員感興趣,我敢打賭,Alexia 的論文能讓你心醉神迷。因此,讓我們重塑這些舊的工具吧。我想要使用 Light Table,還有不管 Light Table 催化出的任何我們無法想象的東西。但我保證不管出現什么新興事物,我將告訴你我們上個世界最最末在 Media Lab 就已經有了早期版本(很記仇哦)。

文章來源:techcrunch

來自: CSDN

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!