相關閱讀 |
>>> 技術話題—商業文明的嶄新時代 >>> | 簡體 傳統 |
你知道嗎? BASIC 語言今年四十歲了。和只有九歲的 Java 語言以及只有三歲的 C# 語言相比, BASIC 可以算是程序設計語言中的長輩了。可奇怪的是,某些程序員居然堅持認為 BASIC 是所有語言中最“幼稚”的語言,這不是在顛倒黑白嗎?話說回來,就算 BASIC 語言長得嫩一點,那也是人家保養有方、青春永駐啊!現在, BASIC 家族的支持者遍布全世界(在下不才也勉強算一個),未來的 BASIC 語言更沒理由衰微——依我看, BASIC 多半會變成程序設計領域里的“老頑童”,嘻嘻哈哈之余,沒準兒還會練就一身絕世的武功;這其中的原因嘛,很簡單:在過去的四十年里, BASIC 幾乎每天都充滿了活力,這樣一種健康活潑、激情無限的語言當然會在新世紀里大有作為!
? 名門正派
四十年前的 1960 年代是程序設計領域混沌初開的時代。在那個時代里,使用高級語言編寫程序的人并不多見,可供選擇的高級語言也寥寥無幾。 Fortran 語言、 Algol 語言和 COBOL 語言異常繁瑣,思想超前的 LISP 語言又在執行效率上表現不佳。用今天的眼光看, 1960 年代的程序員和學習程序設計的大學生們的確苦不堪言。
為了讓程序設計和學習程序設計的過程變得更加輕松和愉快, 1960 年代早期, Dartmouth 學院的 J. Kemeny 和 T. Kurtz 開始設計一種新的語言。他們為這種新語言定下的設計原則包括:
? 簡單,盡可能地簡單
據說, J. Kemeny 和 T. Kurtz 這種盡量追求簡單的設計理念來自愛因斯坦的科學哲學觀。在理論物理學領域,愛因斯坦畢生所持有的斯賓諾莎式的哲學信仰及其在理論研究中對簡潔和優雅的追求歷來都為科學史家們所稱道。今天,我們已經很難判斷, J. Kemeny 和 T. Kurtz 在設計 BASIC 語言時是否具備了愛因斯坦那樣深邃的哲學思辨精神;但毫無疑問的是, BASIC 語言的兩位創始人把愛因斯坦的思維方式發揮到了極致,他們在摒棄繁冗、追求簡約方面的實踐非常成功:早期的 BASIC 語言只有 14 條語句,但它卻能解決當時已知的大部分計算問題。 BASIC 在語法上的簡潔與 Fortran 、 Algol 和 COBOL 語言的繁瑣形成了鮮明的對比。
? 像英語,盡可能地像英語
從現代英語中借鑒關鍵詞和語法規則并不是 BASIC 的創舉, Fortran 語言已經在這一點上為后來者做出了很好的表率。不過, BASIC 語言的設計者對此顯然更為注重,這甚至可以從“ BASIC ”這個語言名稱上反映出來。人們通常認為, BASIC 這個名字只是一系列單詞的縮寫,但少數研究者指出, BASIC 這個名字似乎與 C. K. Ogden 的一項發明有關。 1930 年,為了讓非英語國家的英語學習者更快地具備英語交流能力, C. K. Ogden 別出心裁地發明了一種只有 850 個單詞和幾十條語法規則的“簡化版英語”,并將其命名為“ Basic English ”。盡管這門奇怪的英語并沒有像 C. K. Ogden 最初所設想的那樣成為一種全球通行的“世界語”,但 C. K. Ogden 對英語進行簡化以方便交流的思想在事實上促成了今天“商務英語”、“科技英語”等現代英語形態在全世界的流行。從這一點看,程序設計領域里的 BASIC 語言的確與 Basic English 有一定的血緣關系,這種血緣關系也在事實上為 BASIC 語言的流行鋪平了道路——對于第一次接觸程序設計的人來說, BASIC 語言中的英語語法和英語單詞看上去顯然要比 LISP 語言中層層疊疊的括號親切得多。
1964 年, BASIC 語言正式誕生。關于這種新語言的名稱, J. Kemeny 和 T. Kurtz 給出的官方注解是: BASIC 是“初學者通用符號指令代碼( Beginner's All Purpose Symbolic Instruction Code )”的縮寫。第一個 BASIC 語言運行環境由 J. Kemeny , T. Kurtz 和幾個學生在 GE 系列計算機上實現,并成為了 Dartmouth 學院為 GE 系列計算機開發的分時軟件系統 DTSS 的一部分。
從語法特征上看,這種新的語言繼承了 Fortran 和 Algol 語言的許多優點,其代碼的外觀與 Fortran 語言非常接近。但與以往大多數高級語言不同的是, BASIC 語言是一種“交互式”的語言。也就是說,大多數 BASIC 語言程序以解釋的方式運行,人們用不著預先編好全部代碼并使用批處理的方式提交給計算機處理;使用 BASIC 語言時,我們可以在一種更加舒適、更加人性化的環境下,一邊鍵入代碼,一邊觀察代碼的執行結果,并隨時對代碼進行修改和完善。 BASIC 語言的交互式特征被后來的許多解釋型語言和腳本語言所借鑒。一個最典型的例子是, Smalltalk 語言的許多實現(如 VisualWorks )不但繼承了 BASIC 語言交互式編程的基本特征,而且還更進了一步,把語言的編輯和運行環境、類庫、調試界面、功能插件都整合在了一個可以充分交互的集成環境里。
初生的 BASIC 語言首先在教學實踐中取得了成功。從 1964 年開始, J. Kemeny 和 T. Kurtz 在 Dartmouth 學院使用 BASIC 語言講授程序設計課程。學生們對這種入門型語言的印象極為深刻,他們認為,掌握 BASIC 語言非常容易,在掌握了 BASIC 語言之后,學習 Fortran 等的高級語言也變得相對簡單了。應當說, J. Kemeny 和 T. Kurtz 設計 BASIC 時的設想大多被后來的教學實踐所證實。很快,其他一些開設計算機課程的院校陸續將 BASIC 語言納入了教學計劃,研究人員也在隨后的幾年內將 BASIC 語言移植到了好幾種不同的計算機系統上。
J. Kemeny 和 T. Kurtz 在 Dartmouth 學院實現的 BASIC 語言被人們稱作 Dartmouth BASIC 。在隨后的幾十年里, BASIC 語言的兩位創始人,以及他們的同事和學生們一直致力于對語言本身的語法特性進行優化和改進。 1983 年以前, Dartmouth BASIC 已經陸續發展了七個版本。在 J. Kemeny 和 T. Kurtz 眼中, 1964 年的 BASIC 語言還遠未成熟,那時的 BASIC 還只是一組編有行號的指令序列,其中還穿插著惹人生厭的 GOTO 和 GOSUB 語句。由 E. W. Dijkstra 發端,于 1970 年代興起的結構化程序設計運動不但催生了 Pascal 等一大批結構化程序設計語言,也為 BASIC 語言的進一步發展指明了方向。 1971 年, Dartmouth BASIC 新增了帶參數、可調用的外部子程序功能, A. Luehrmann 還為 Dartmouth BASIC 實現了一個交互式的圖形庫,這讓 BASIC 語言在結構化的道路上前進了一大步。 1976 年, Dartmouth BASIC 第一次擁有了完整的結構化語法規則。 S. J. Garland 在 Dartmouth BASIC 的基礎上,實現了一種完全符合結構化編程思想的 SBasic 語言( SBasic 是“ Structured Basic ”的縮寫)。從這一年起, Dartmouth 的學生們編寫 BASIC 程序時,就已經不再需要行號和 GOTO 語句了。 1979 年, Dartmouth BASIC 第一次引入了“包”(有時也被稱為“組”)的概念,這是一種類似于 Ada 語言的“包”結構的語法特征,它可以使 BASIC 語言擁有初步的數據封裝能力。
1983 年, Dartmouth 學院的一些學生說服 J. Kemeny 和 T. Kurtz 將 Dartmouth BASIC 語言變成一種商業軟件在市場上銷售。為此,一家名為 True BASIC 的公司正式成立,公司推出的產品也叫 True BASIC ,它其實是由 Dartmouth BASIC 第 7 版演化而來的。最早的 True BASIC 可以在 IBM PC 和 Macintosh 計算機上運行,既能以解釋方式執行 BASIC 代碼,也能將其編譯成機器語言,以提高運算速度。從問世的那一天起, True BASIC 就是一種純粹的結構化程序設計語言,它在后續的每一次版本變遷中都始終不渝地堅持走結構化的道路,并一直遵循著 BASIC 語言歷來奉行的簡約主義精神。今天, True BASIC 已經發展出了 DOS 、 MacOS 、 Windows 、 Unix 和 Linux 等多種版本,并提供了圖形、聲音、窗口操作、數學運算等豐富的功能庫。
和其他主流程序設計語言的發展規律相仿, ANSI 和 ISO 等標準化組織也先后為 BASIC 語言制定了相關的標準。這包括 ANSI 于 1978 年, ISO 于 1984 年通過的“最小化 BASIC 語言標準( Standard for Minimal BASIC )”,以及 ANSI 于 1987 年, ISO 于 1991 年通過的“完整的 BASIC 語言標準( Standard for Full BASIC )”。 ANSI 和 ISO 組織制定 BASIC 語言標準時的主要依據是 Dartmouth BASIC 和 True BASIC 。在今天我們可以見到的所有 BASIC 語言產品中,與 ANSI 和 ISO 的 BASIC 語言標準吻合得最好的自然也是 True BASIC 了——這句話的另一句潛臺詞是:很遺憾,除了 True BASIC 以外,目前市場上的其他 BASIC 語言幾乎都與 ANSI 和 ISO 的標準相去甚遠。
毋庸置疑, True BASIC 以及 ANSI 、 ISO 的 BASIC 語言標準代表了 BASIC 語言的“名門正派”。但不幸的是,“名門正派”在市場上并沒有取得應有的成功。正如本文后續部分將要提到的那樣,從 1970 年代 BASIC 語言在個人電腦市場上嶄露頭角開始, J. Kemeny 和 T. Kurtz 就幾乎在普通程序員的心中消聲匿跡了。當 Microsoft 把 BASIC 語言當作“搖錢樹”賣給了幾乎所有個人電腦用戶的時候, Dartmouth 學院的研究者們只會在實驗室里指責市場上的 BASIC 都是些過時的垃圾;當 QuickBASIC 、 Turbo Basic 等非 Dartmouth 血統的結構化 BASIC 語言在市場上通行無阻的時候, True BASIC 盡管身出名門,卻無法搶到哪怕 10% 的市場份額;當 Visual Basic 、 VBScript 和 Visual Basic .NET 羽翼漸豐的時候, ANSI 和 ISO 的標準也早已失去了應有的效力……很多人抱怨 Microsoft 不遵循 ANSI 和 ISO 的 BASIC 語言標準,以至于市場上的各種 BASIC 至今無法統一,但卻很少有人問一問 Dartmouth 學院的研究者們,為什么不能把“名門正派”的產品盡快推向市場?為什么總是讓先進的技術和先進的標準在紙面上停滯不前?為什么在 Microsoft 已經成為了事實上的標準制定者之后,還要堅持所謂的“正統觀念”?
當然,我沒有指摘 J. Kemeny 和 T. Kurtz 等人缺乏商業頭腦的意思。我只是想告訴大家, BASIC 語言的發展史中確實存在這樣一個悖論:一方面, BASIC 語言在計算機領域,特別是個人電腦中四處開花,迅猛發展;另一方面, BASIC 語言的實現版本千差萬別,程序員們莫衷一是。也許, BASIC 語言天生對“簡約”的追求與現實中軟件系統的復雜性是一對永恒的矛盾。當 Microsoft 等實用主義者發現類似的矛盾難以調和的時候,他們會粗暴地修改 BASIC 語言的語法規則和設計理念,并用一種折中了“簡單”與“實用”的新版本向“名門正派”發起挑戰。到 1980 年代的時候,這種挑戰已經發展到了讓 BASIC 語言的創始人們坐立不安的地步。 1984 年, J. Kemeny 和 T. Kurtz 出版了《回到 BASIC ——語言的歷史、墮落和未來( Back to Basic: The History, Corruption, and Future of the Language )》一書,并在書中鮮明地指出,所有 Dartmouth 學院以外的 BASIC 都或多或少地背離了 BASIC 語言的設計初衷,它們都是“浪跡街頭的 BASIC 語言( Street Basic )”,應當盡快“回家”。 J. Kemeny 和 T. Kurtz 所說的 BASIC 的“家”當然是指以 True BASIC 為代表的正統 BASIC 而言。此外,在 1999 年的一篇文章中, T. Kurtz 還對 Microsoft 公司在 Visual Basic 中把原本全大寫的 BASIC 名稱變成了“ Basic ”這樣大小寫混合的做法表示了不滿。 T. Kurtz 認為,全大寫的“ BASIC ”一詞才是“初學者通用符號指令代碼”的縮寫,才能體現出 BASIC 語言面向初學者的設計初衷和精神實質。
J. Kemeny 和 T. Kurtz 維護正統 BASIC 尊嚴的做法無可厚非,這就像武林中名門正派的高手在旁門左道面前總會擺出滿臉矜持以示高人一等一樣。但市場規律并非哪個知名學者的一兩句“呼吁”所能逆轉:從 BASIC 祖師爺召喚 BASIC 回家至今已經整整二十年了, BASIC 語言卻在“浪跡街頭”的道路上越走越遠——這樣殘酷的現實除了讓我們對“名門正派”無限同情以外,還能說明什么問題呢?
? 勝者為王
接下來,我們不妨看一看,那些被 J. Kemeny 和 T. Kurtz 視為“街頭浪子”的 BASIC 語言是如何在 Dartmouth 學院以外蓬勃發展起來的。
在 BASIC 世界里, Microsoft 是市場上的實際領導者,也是不折不扣的異教徒。就像幾百年前新教在歐洲和北美大陸的迅速興起一樣, Microsoft 在 BASIC 語言市場上的成功也幾乎可以用“勢如破竹”來概括。
1975 年時,計算機歷史上最大的變革——個人電腦的風暴已經蓄勢待發了。就在這個時候, Microsoft 公司的兩位創始人, Paul Allen 和 Bill Gates 為 MITS 公司生產的個人電腦雛形 Altair 8800 開發了一個 BASIC 語言解釋器,這也是 Microsoft 公司的第一件產品。今天,當我們回過頭來,再次檢視那個英才輩出的年代時,我們不難發現:個人電腦和 BASIC 語言的結合實際上是一種無奈的選擇,因為那個時候的個人電腦運算能力都非常有限,根本就無法運行任何復雜的應用,而語法簡單、交互性強的 BASIC 語言正好可以滿足個人電腦的需要;另一方面,正是個人電腦和 BASIC 語言的珠聯璧合造就了 Bill Gates 和 Microsoft 的成功,這大概是因為,當時沒有哪個大公司愿意紆尊降貴去編寫那么“簡單”的 BASIC 解釋器,而大學還沒有畢業的 Bill Gates 當然不會在意自己的產品是否有足夠的技術含量。于是,一個能在 Altair 8800 計算機上運行的,不足 4KB 大小 BASIC 語言解釋器揭開了 Microsoft 搶占軟件市場的序幕。
1975 到 1979 年間, Microsoft 把自己的 BASIC 語言解釋器先后移植到了 TRS-80 、 Commodore 、 Atari 等個人電腦上。 1977 年, Apple 公司的 S. Wozniak 設計 Apple 電腦時,為了讓 Apple 電腦也擁有 BASIC 語言運行環境,自己開發了一種只支持整型運算的 Integer BASIC 語言。 Integer BASIC 在功能上遠不如 Microsoft 的同類產品強大。于是, 1977 年底 , Microsoft 和 Apple 又共同為 Apple II 開發了名為 Applesoft 的 BASIC 語言解釋器。不過, 1979 年以前, Apple 計算機內置的 BASIC 語言解釋器仍然是 Integer BASIC , Applesoft 僅以磁盤方式發售。 1979 年,著名的 Apple II Plus 計算機中才第一次內置了 Applesoft 。隨著 Apple II Plus 在商業上的成功, Microsoft 幾乎為當時市場上的所有個人電腦提供了 BASIC 語言解釋器。
1981 年, IBM PC 的出現掀起了個人電腦發展的新高潮。眾所周知, Microsoft 為 IBM PC 提供了磁盤操作系統 PC-DOS ,同時, Microsoft 也用 MS-DOS 的名稱為其他 PC 兼容廠商提供一模一樣的操作系統軟件。 PC-DOS 內嵌了一個名叫 BASICA 的 BASIC 語言解釋器。 BASICA 代表“高級的 BASIC ( Advanced BASIC )”,盡管它一點也不高級,還不具備結構化語言的特征。類似地, MS-DOS 中也內嵌了一個同樣的 BASIC 解釋器,只不過名字變成了 GW-BASIC (有人說 GW 在這里是“ Gee Whiz ”的縮寫,也有人說 GW 其實代表了 Bill Gates 的名字 Gates William )。值得注意的是, BASICA 和 GW-BASIC 都是捆綁在 DOS 系統中銷售的免費軟件——不用說,這也是 Microsoft 的一貫“伎倆”了。
BASICA 和 GWBASIC 既非結構化語言,執行速度也不快,但卻與 DOS 系統一道占領了 PC 市場。 1982 年, Microsoft 首先解決了 PC 機上 BASIC 語言運行速度慢的問題,他們為 IBM 開發了一種 BASIC 語言編譯器 BASCOM 1.0 。
1984 年, Apple 公司推出了第一種具備圖形界面的個人電腦 Macintosh , Microsoft 也相應地開發出了專用于 Macintosh 電腦的 BASIC 語言解釋器 MS-BASIC 1.0 for Mac ,包含編譯功能的 MS-BASIC for Mac 也在不久后上市。
1985 年, True BASIC 語言的提醒下, Microsoft 推出了一種完全結構化的 BASIC 語言—— QuickBASIC 1.0 。 QuickBASIC 有一個強大的集成開發環境,既包含 BASIC 代碼的解釋功能,也包含編譯功能。與 True BASIC 追求簡約的設計思路略有不同, QuickBASIC 在設計上更注重語言功能的完整和執行效率的提高。正如其名稱所暗示的那樣, QuickBASIC 幾乎是那個時代里運行速度最快的 BASIC 語言,但其在語法上對“正統” BASIC 語言的背叛也成為了 Microsoft 為 T. Kurtz 等人詬病的原因之一。 QuickBASIC 的最終版本是 1988 年發布的 QuickBASIC 4.5 。隨后, 1989 年, Microsoft 以新的名字推出了兩個功能更豐富的 BASIC 開發環境,即 BASIC PDS ( PDS 在這里代表“專業開發系統”)的 7.0 和 7.1 版本。 1991 年, Microsoft 又在 MS-DOS 5.0 中捆綁了只包含解釋功能的 QuickBASIC 的簡化版本 QBasic 1.0 。
勝者為王。 Microsoft 公司在 BASIC 市場上取得了空前的成功,也自然成為了市場的領導者和 BASIC 語言標準的實際制定者。在 Microsoft 看來, Dartmouth 學院里的人過于迂腐,而 ANSI 和 ISO 的 BASIC 語言標準又不能為我所用,此時, Microsoft 所能做的就是不斷用新的 BASIC 產品搶占市場,并不斷按照自己的思路對 BASIC 語言進行改造。也許,從理論上很難講清楚 Microsoft 的做法對 BASIC 語言的發展是利大于弊,還是弊大于利,但從市場角度看,勝利者的做法總是對的。無論如何,從 1980 年代起, BASIC 語言已經沿著 Microsoft 的方向一去不返了。
除了 Microsoft 以外,在 BASIC 語言市場上獲得過成功的公司屈指可數。 Borland 公司可以算一家。要不是 Borland 在推出了 Turbo Basic 之后,因為公司內部原因而放棄了 BASIC 市場的話, Microsoft 后來的 Visual Basic 也許就不會有一覽眾山小的架勢了。 1987 年,在開發工具領域毫不含糊的 Borland 公司成功地推出了 Turbo Basic 1.0 。 Turbo Basic 的原型是 1980 年前后由 B. Zale 開發的 BASIC/Z 。 Turbo Basic 和 QuickBASIC 非常類似,在某些功能上還更勝一籌。遺憾的是, 1989 年, Borland 發布了 Turbo Basic 1.1 后便放棄了該產品線。 Turbo Basic 的最終命運是, B. Zale 收回了自己的產品,并獨立將其發展為今天的 PowerBASIC 。
? 脫胎換骨
如果說, Microsoft 的 GW-BASIC 和 QuickBASIC 僅是在商業上取得了成功,而沒有為 BASIC 語言引入更多新思想的話,那么,從 Visual Basic 到 Visual Basic .NET 的歷程應可算是 Microsoft 為 BASIC 語言所做的最大貢獻了。
Visual Basic 是最早在商業上獲得成功的一種快速應用開發( RAD )工具。它的出現背景是, 1985 年問世的 Windows 操作系統在 1990 年代迅速普及,程序員對于快速圖形化應用開發的需求越來越強烈。 1987 年, A. Cooper 和他的同事們在 Microsoft 編寫了一個可視化開發工具的原型,它就是 Visual Basic 的前身。 1991 年, Visual Basic 1.0 問世。 Visual Basic 集成了 QuickBASIC 的語法特性、編譯功能和 A. Cooper 的可視化開發環境,允許程序員在一個所見即所得的圖形界面中迅速完成開發任務。這對以往幾十年里程序員們所熟悉的“編碼-編譯-連接-運行”的開發體驗來說,的確是一個脫胎換骨的變革。
1992 年, Microsoft 又特意為當時仍占有相當市場份額的 DOS 操作系統發布了 Visual Basic 1.0 的 MS-DOS 版。與 Windows 版本類似,程序員可以在 VB 中通過鼠標點擊和拖曳開發出基于事件驅動模型、擁有窗口和菜單機制的 DOS 程序。此后不久, DOS 退出了歷史舞臺,這個版本的 Visual Basic 也成了 Microsoft 在 DOS 環境下發布的惟一的一款可視化開發工具。
1993 年, Microsoft 發布了 Visual Basic 3.0 。這一版本的 Visual Basic 支持 ODBC 、 OLE 等高級特性。 1995 年發布的 Visual Basic 4.0 不但支持 Windows 95 系統下 32 位應用程序開發,而且為 Visual Basic 引入了類( Class )等面向對象概念。 1998 年發布的 Visual Basic 6.0 是 VB 向 VB.NET 轉變前的最后一個版本,也是傳統 Visual Basic 中功能最全、應用最廣的一個版本。
更震撼人心的變革發生在 2001 到 2002 年間。 Microsoft 以無比驚人的勇氣進軍 .NET 平臺,同時也為程序員帶來了一大堆讓人應接不暇的新技術和新概念。伴隨著 .NET 平臺的橫空出世, Visual Basic 又經歷了一次脫胎換骨的革命。為了實現 .NET 一統江湖的偉大構想, Microsoft 甚至不惜讓新版本的 Visual Basic .NET 放棄與傳統 VB 程序的兼容。在 Visual Basic .NET 中,我們看到了完整的面向對象特性,看到了 .NET 風格的內存管理和異常處理機制,看到了對 ASP.NET 、 Web Form 和 Web Services 等新技術的支持,同時也遺憾地看到,已有的大量 Visual Basic 代碼必須經過改動才能在 .NET 平臺上順利運行。
2002 年正式發布的 Visual Basic .NET 讓 BASIC 語言第一次擁有了和 C++ 語言、 Java 語言一樣強大的語法功能,使 BASIC 語言可以和業界最主流的運行環境 .NET 站在一起并肩戰斗,也讓四十年前 J. Kemeny 和 T. Kurtz 為 BASIC 語言確立的“簡單至上”的精神實質喪失殆盡。今天,我們看到的 Visual Basic .NET 已經成了多種語言特征的混合體,在這個 Microsoft 一手塑造的巨人身體里,既有早期 BASIC 的單純外貌,也有 QuickBASIC 的實用主義風格,既有 .NET 平臺的無所不能,也有大多數面向對象語言都具備的復雜語法……我不知道 Microsoft 還會為 Visual Basic .NET 引入哪些風格特性,我只知道, Microsoft 手中的 BASIC 語言已經越來越難以體現“初學者通用符號指令代碼”的原始內涵了。
? 風雨江湖
Visual Basic .NET 并不能代表 BASIC 語言的一切。在某種意義上, Microsoft 為 VBScript 語言及其相關技術所做的努力更能反映出 BASIC 語言的發展趨勢。
從 1993 年開始, Microsoft 為 Office 軟件提供了一種與 Visual Basic 類似的應用開發環境—— Visual Basic for Applications 。它是 Visual Basic 的一個子集。從應用角度看,它為 Office 用戶提供了一種定制應用軟件功能的可編程方法,我們可以把它看成是腳本化 BASIC 語言的前身。 1995 年,為了滿足 Internet 和 IE 瀏覽器的應用需求,也為了和 JavaScipt 語言展開競爭,腳本語言 VBScript 正式誕生。
VBScript 語言對 Visual Basic 做了最大程度的簡化,尤其是對數據類型進行了大刀闊斧地合并。這使得 VBScript 語言在某種程度上與 J. Kemeny 和 T. Kurtz 所提倡的正統觀念靠得更近了些。最重要的是, VBScript 為程序員們提供了一種遠比 JavaScript 、 csh 、 ksh 、 Perl 、 Python 等其他腳本語言簡單,也更容易為程序員們所掌握的腳本語言。在 Windows 平臺上,配合 Microsoft 的 ActiveX 、 ASP 等技術體系,程序員們可以用 VBScript 語言迅速完成包括原型開發、文件管理、 Web 應用、數據庫訪問等在內的大多數日常任務。就像當年交互式開發環境的普及一樣,腳本語言正逐漸成為最近幾年里程序設計語言發展的又一個亮點。 VBScript 語言將腳本語言的學習難度降到了最低點,這也許表明, BASIC 語言在腳本語言的世界里還會有更大的作為。
此外,如果走出 Microsoft 營造的 BASIC 王國,我們仍然能在許多場合找到各種充滿活力的 BASIC 語言:首先,許多提供二次開發功能的商業軟件(如群件系統、工作流管理系統和數據倉庫系統)都將 BASIC 或 VBScript 語言作為首選的開發環境;其次, PowerBASIC 、 REALbasic 、 FutureBasic 、 OmniBasic 等為數眾多的商業軟件仍然在 Microsoft 的王國外圍堅守著自己的陣地;再次,隨著開源運動的蓬勃發展, wxBasic 、 XBasic 、 Yabasic 、 SmallBASIC 、 Bywater BASIC 等開放源碼的 BASIC 語言解釋器和編譯器為程序員們發掘 BASIC 語言的潛力提供了最好的資源…… BASIC 的江湖依然是一派風云變換的熱鬧景象。有人說,這反映了 BASIC 語言的無秩序和不規范;但混亂未必就是壞事,誰又能斷言,這種混亂的起因不會是 BASIC 語言天生就具有的那種旺盛生命力呢?
? 天下大勢
《三國演義》說,“天下大勢,分久必合,合久必分”。今天, BASIC 的境況看上去比三國割據的形勢更為微妙:一方面, Visual Basic .NET 已經成為了 Microsoft 陣營中事實上的 BASIC 語言標準;另一方面,在 Microsoft 王國之外,層出不窮的 BASIC 變種也實在讓人們難以取舍。
未來的 BASIC 語言需要統一嗎?未來的 BASIC 語言將會以什么樣的方式統一? BASIC 語言的創始人能看到 BASIC 回歸到簡約、優雅的理想狀態嗎?也許,我們沒必要認真尋找這些問題的答案;只要 BASIC 這個程序設計領域里的“老頑童”能不斷為我們帶來快樂,能讓我們永遠保有一顆童心,我們就非常滿足了——為什么一定要讓 BASIC 承担太多的責任和期望呢?
網載 2011-02-22 18:28:22
稱謂:
内容: