很多人在學習程式語言時,所做的第一個練習可能都是 輸出「Hello World」這個字串。一般做這個練習,除了讓初學者可以學會輸出字串以外,其實有著測試編程環境是否就緒與熟悉環境的目的在。

  • Hello World

像「30 Years of Hello, World」這篇文章,是由任職於 Wintellect 公司的員工所撰寫的,他自述自己利用休假期間回顧了近 30 年來的編程生涯,並藉由自己所應用過的程式語言來實踐輸出「Hello World」這個既基礎又重要的例題,也同時為程式語言的發展做了一個詳實的記錄。本文不會一一列出作者所列舉的所有編程範例,並以第一人稱視角編譯,有興趣的讀者可以參考作者的原文。

1981:TI BASIC

 TI BASIC 是我進入編程領域的入門語言,這是 Microsoft 為 TI 99/4A 微電腦所開發的程式語言。BASIC 是「Beginner’s All-purpose Symbolic Instruction Code」取每一個單字的字首字母組織而成的縮寫,意思是初學者的通用符號指令碼。

學習 BASIC,對被困在家中又嫌無趣的 7 歲小朋友來說,是最適合拿來殺時間的玩具了。BASIC 利用行號 (Line Numbers)組織語法,功能是讓電腦在執行時能依行號依序執行,若你想在螢幕上顯示「HELLO, WORLD」,只要像上圖一樣在字串前下「print」輸出指令,再利用「run」指令來執行即可。

1985:6502 Machine Code

很快地我發現到,BASIC 無法做出所有我想實踐的結果,此時「demo scene」開始受到注目,很多人都在撰寫令人驚豔的程式以挑戰電腦的極限,而有些功能必須透過機器語言才能實踐,因此,我也利用機器語言寫出了一段程式。

1986:6502 Assembly

當程式語言的發展從機器碼進展到組合語言,我的編程生活也變得輕鬆多了。利用組合語言編程,我可以預先規劃要開發的軟體,而且在記憶體的配置應用上簡單多了。

1989:Pascal

就在此時,我開始意識到自己是真的喜歡 Coding 這件事。高中時期,我曾修過幾門跟 Pascal 相關的編程課程,當時的學習訴求就是利用 Pascal 輕鬆學編程。但,Pascal 真的好用嗎?編程真的簡單嗎?當時的我,可不這麼認為。

然而,有了幾年的開發經驗之後,我必須坦承用 Pascal 的語法來撰寫「Hello, World」真的是很輕鬆。

1990:C

C 是種具備彈性的語言,而且具備函式庫可以應用。我自學了 C 語言,但使用它的時間並不長。

這段程式包含了一個處理標準輸入 / 輸出的函式庫,就可以在螢幕上顯示欲輸出的文字。 函式庫讓 C 得以跨平台開發程式 —— 不管是在 Windows,或是 Linux 都可以呼叫同一個函式,但透過函式庫所撰寫出來的底程副程式必須在 target machine 上執行。

1992:C++

C 對我來說,學起來游刃有餘,但,很快的我又發現,大家都轉而學習物件導向語言 (Object-Oriented)。而機器語言和組合語言和物件導向語言是不一樣的應用。

所以,我又去買了一些跟 C++ 相關的參考書。C++ 支援「物件」這個概念。它利用物件來表示和操作 Stream 和 Pipe。物件導向語言還引入了命名空間(Namespace)的概念來管理程式,而 C++ 的「Hello, World」程式語法又有了新的風貌。

2004:Java

工作幾年後,我成為一家新創企業的第三位員工,如果你曾經在 Panera 或 Chick-fil-A 吃飯過或在 Caribou 喝咖啡過,那你可能就使用過我參與撰寫的無線熱點(Wireless Hotspots)的軟體。

這家公司開發軟體的平台是用 Java 寫的。 我在這個程式語言上下過一些功夫,再加上之前的編程經驗,讓我很快就上手了。

2005:C#

當我把平台遷移 .Net,我發現 IIS 伺服器比其他幾個專用的 Java 伺服器(Dedicated Java Servers)能處理更多的請求(Requests)。我說的「遷移(Migration)」,其實是重新構建了一個新的平台。我們尋求一種能將 J++ 語法轉換成 C# 語法的方式,但發現是不可行的。幸運的是 C# 與 Java 語法是相當近似的,大多數的團隊都能輕易地將現存系統的「規範(Spec)」 轉換到 Windows 系統,並將 MySQL 遷移到 SQL Server 2005。

你們可以比較一下下列 C# 語法跟 Java 語法的異同之處。

回顧程式語言的歷史,從 A 語言演進到 B 語言再到 C 語言,從機器語言到組合語言到程序性語言再到物件導向語言,雖然每隔一段時間就會誕生新的程式語言,以致讓已經踏入編程領稢的人有誤入不歸路之感,但是,也始終有許多人對編程有興趣,這或許就是程式語言令人著迷的地方吧。

《TO》編按:你知道為什麼大家都用「Hello World」當作學習程式的第一個字串嗎?可以參考 Wiki 裡「Hello World」的介紹。

(資料來源:wintellect ;圖片來源:matthewvenn

An orange a day, keeps your brain awake!

一天吃一顆橘子,天天擁有聰明的腦子!
快加入《TechOrange》的粉絲團每天啃橘子吧!