史丹佛大學放棄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 教學內容改為以 JavaScrpit 這個目前最常被用來設計網頁的程式語言作為教材。

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

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

這個程式是指在電腦螢幕上輸出「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」,就算是一個從來沒有寫過程式語言的人,看到這段文字,搞不好都能很快的理解。

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

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

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

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

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


Java語法太不友善?think阿光我完全不知道Java是什麼,但是常常看到Java有很多問題!yell

蘋果Safari 10將以HTML 5優先,不會自動開啟Flash、Java、Silverlight

Android版本多了6個、甲骨文提高侵犯Java專利賠償金,向Google求償93億美元

Flash未死Java先躺平,Oracle終止支援Java瀏覽器外掛

🍎たったひとつの真実見抜く、見た目は大人、頭脳は子供、その名は名馬鹿ヒカル!🍏