史丹佛大學放棄 Java 改用 JavaScript 作為程式語言入門教材,原因是「Java 語法太不友善!」

史丹佛大學放棄 Java 改用 JavaScript 作為程式語言入門教材,原因是「Java 語法太不友善!」

程式語言有很多種,普遍最為人所知的就是 Java,而 Java 一直以來也常被用來做為大學程式語言課程的入門教材,但 Java 的文字用語對於初學者來說可能不是這麼友善,美國史丹佛大學決定將課程採用的教材改成 JavaScript。

CS 106A 是美國史丹佛大學的程式語言線上初學者課程,一直以來,這項課程提供了線上的程式語言教學,也有在 Youtube 上提供影片教學,目的在於以唾手可得的方式介紹程式語言的基礎。

自從推出以來,CS 106A 系列課程一直都是以 Java 作為教學用的程式語言。相信就算沒學過的人也都聽過 Java,Java 確實在程式語言中佔有重要的地位,不過它難懂的用語也著實讓許多人對它望之卻步。

不過,這個系列課程前陣子開始推出了新的版本:CS 106J,並且將用來教學的程式語言改用 JavaScript。根據史丹佛大學的網站介紹,CS 106J 的課程內容包含了和 CS 106A 相同的大綱,但是將原本的 Java 教學內容改為以 JavaScript 這個目前最常被用來設計網頁的程式語言作為教材。

這項決定對於許多人來說 (尤其是學程式語言的學生) 來說,可說是沙漠裡的綠洲,儘管 Java 有許多值得讚許的地方,但對於第一次接觸程式語言的初學者來說,Java 可能是最難懂的一種語言,外媒甚至直言不諱的說:「這是用語最糟糕的程式語言!」

為什麼這樣說呢?我們直接來看看國內外許多學習程式語言的人,學習寫的第一個程式「Hello world!」(你好,世界!) 的指令吧!

史丹佛大學放棄 Java 改用 JavaScript 作為程式語言入門教材,原因是「Java 語法太不友善!」

這個程式是指在電腦螢幕上輸出「Hello, world!」這段話,一般來說,這是每一種計算機程式語言中最基本、最簡單的程序,通常也是初學者所編寫的第一個程式。

在 Java 中,這個程式的指令如下:

class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}

如果是本來就懂程式語言的人來說,看到這段文字可能不覺得有什麼問題,但試著從一個「初學者」,第一次碰到程式語言的人的角度來看看,這段「英文字」裡面有一大堆令人匪夷所思的地方。

「class」在這邊是什麼意思?它不是教室的意思嗎?而且「public stactic void」又是什麼鬼!我真的必須搞懂這些單字代表的意思嗎?我的老天鵝啊~寫程式好難喔!

的確,雖然說學習一件新的事物對每個人來說,都不是一件容易的事,不過,讓我們來看看同樣的程式,如果用 JavaScript 的話,指令會是怎麼樣吧!

alert('Hello, world!');

沒錯!就是這麼簡單一句話就全部搞定,如果單就字面上來看的話,其實對於初學者來說,也可以直接理解成「彈出警告:Hello, world」,就算是一個從來沒有寫過程式語言的人,看到這段文字,搞不好都能很快的理解。

從上面的例子中就可以看出,JavaScript 在程式設定的指令碼比 Java 還要更友善的多,以 JavaScript 作為初學者入門課程的教材的話,就不用在第一堂課就被灌輸這麼多「莫名其妙」的字眼。這麼做有什麼好處?「寫程式」應該要是一件「很快樂的事」,它不應該成為一種折磨。

雖然說到目前為止,CS 106J 的系列課程才剛開始上線沒多久,對於想要學習程式語言的人來說,會不會讓它們更有興趣還很難說。

但根據筆者有在學程式語言的朋友們的經驗們來看,他們普遍的看法是:

其實重點不在於哪一種語言比較好學,程式語言沒有在分難易度,學習寫程式語言最重要的一點在於學習它的邏輯,只要能學好其中一種語言的程式邏輯,那麼一通百通,不論之後要學習什麼程式語言都會很容易。

但或許對於第一次想要學習程式語言的人來說,這樣的改變可能還是好的吧!至少字面上看起來,JavaScript 好像真的比較好懂一點。

 

參考網站:The Next Web

JC
作者

對不起,我忘了寫自我介紹!

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則