將 Java 作為入門編程語言有錯嗎?

還記得你學習的第一門編程語言是什麼嗎?

就從 11 級軟件工程出身的筆者而言,《Java 程序設計》是大學課程中必學科目,且學分相比其他課程都要高出不少。

不過,近幾年隨著人工智能的崛起,各大初高中、甚至是幼兒園都在將 AI 教學列入基本教學範疇。這不前幾日,由中國科學院自動化所、Google 及其他相關高校的 AI 專家專為幼兒園學生設計的 AI 教材也被曝光。

將 Java 作為入門編程語言有錯嗎?

隨之而來的是,作為 AI 領域的首選編程語言 Python 也水漲船高,甚至不少高校將其取代了 Java 的基本教學任務。對於這種現狀,本文作者不禁提出疑問,如今倘若仍將 Java 作為學習編程的入門課程教給學生究竟對還是不對?如果不對,在學習編程時又該學什麼呢?Python 嗎?

將 Java 作為入門編程語言有錯嗎?

Java 依然是最流行的編程語言,但很少有人認為它是最酷的編程語言。一些人甚至認為,Java 已進入垂暮之年,因此許多從事教育的人都不願意教 Java。

於是問題來了:學校和大學是否依然應該教學生 Java 編程?如果不應該,那麼教什麼語言最好?

1.新貴 Python 或將攔截 Java 的教學推廣後路?

在我上大學的時代——其實就是十年前,Java 還是計算機科學的入門課程中的必學語言。如果你想學其他語言,比如 C、Python、PHP,你就得專門選那個語言的課程,或者選相關的應用。

但是現在,Java 不再受大學的青睞。根據國際計算機協會(ACM)的研究發現,截至 2014 年,Python 已經取代 Java 成了主流大學計算機入門課程必學的語言。

但這個研究並不全面,因為它只覆蓋了最主要的美國大學,而且它代表的只是幾年前的一個時間點而已。但是,我依然強烈地感覺到,如果現在對計算機科學的入門課程使用的計算機語言做一次全面調查,那麼很可能會發現 Java 並不是最受歡迎的語言。

我敢肯定許多學院依然在教 Java,但我也懷疑大多數已經把入門課程改成了其他語言(很可能是 Python)。甚至高中的計算機教學也有同樣的現象。

2.為什麼 Java 不再適合作為學習編程的入門語言?

Java 的衰退是好事還是壞事?當然,答案取決於你問的人是誰。但是一般而言,有幾點很好的理由支持我們應當在計算機學習的過程中儘早改變教授編程語言的方式。

Java 太冗長。Java 程序員自己都承認,Java 是個極其冗長的語言,比大多數語言都要冗長,完成非常簡單的任務都要寫大量代碼。也許對於能快速寫代碼的專業程序員來說無所謂吧。

但是,對於學習編程的學生來說,他會願意寫三四行代碼只為了在控制檯輸出一行字符串嗎?其他語言(比如 Python)只需要一行代碼:

echo 'my string';

可學習性的因素。你也許認為,Java 是使用最廣泛的語言,所以每個人都應該學習它。畢竟,許多專業的程序員每天都在使用 Java。許多重要的應用程序也是用 Java 寫的,而且,就算現在所有人都不再寫 Java,未來幾十年中我們依然需要維護舊的 Java 代碼。

但是,僅憑最流行的企業語言以及依然會廣泛流行幾十年這點,並不能說明我們應當總是讓學生首先學習 Java。如果你是新入學的計算機科學的學生,希望用簡單的辦法探索應用程序設計和開發的精髓,那麼 Java 並不是好的起點。

Java 是編譯語言。如果你是 DevOps 工程師,在 Jenkins 流水線中構建 Java 應用程序,那這是件好事。但如果你只想學習編程,那嘗試之前需要先編譯就不太理想了。最好還是使用一門腳本語言。

如果職業需要,你可以稍後再學習構建過程和發佈的流水線。而且你有可能根本不需要。並不是每個選了計算機入門課程的人都會成為專業的開發者並且編譯代碼。

有許多 Java 的替代品。你經常聽到的學習 Java 的理由之一就是“它是面向對象的!”沒錯,Java 是面向對象編程(OOP)的標誌性語言。但許多其他語言也可以使用 OOP。

而且,教 OOP 的原理並不需要特定的語言。OOP 只是一種概念,是一種結構性的策略,而不是語言的特性。除此之外,微服務的趨勢已經讓 OOP 變得不再那麼重要了。就像微服務部署削弱了單一架構一樣,也許以後根本就不再需要 OOP 了。

Java Development Kit(JDK)沒有統一的標準。Oracle JDK、OpenJDK 和許多其他廠商的 JDK 平臺都不一樣,這可能會造成許多困惑。不同 JDK 之間的口味不同,意味著你在一個平臺上的代碼可能無法在另一個平臺上正確工作,這會讓初次學習編程的學生感到沮喪。

當然,你可以通過要求所有學生使用同一個 JDK 來避免這個問題。但為什麼不乾脆避免這個問題本身呢?許多其他語言都只有一個實現標準,而且通常是開源的。

3.學習 Java 依然有益

但這並不是說 Java 不適合教學——它依然有賣點。Java 是跨平臺的。它有健康的生態系統和開發工具,包括 Eclipse,能讓許多新手程序員的生活變得更加容易。Java 還有易於使用的文檔和社區支持,因為太多人都在使用 Java。所以,教 Java 究竟有沒有錯?這個問題很難回答。但是現在,Java 並不是向學生教授第一門編程語言的最佳選擇。在我看來,Python 和 C++ 是更好的選擇。

對此,你怎麼看,歡迎下方留言分享你的看法。

原文:https://www.theserverside.com/opinion/Is-it-a-mistake-to-teach-Java-as-a-first-programming-language

徵稿啦

CSDN 公眾號秉持著「與千萬技術人共成長」理念,不僅以「極客頭條」、「暢言」欄目在第一時間以技術人的獨特視角描述技術人關心的行業焦點事件,更有「技術頭條」專欄,深度解讀行業內的熱門技術與場景應用,讓所有的開發者緊跟技術潮流,保持警醒的技術嗅覺,對行業趨勢、技術有更為全面的認知。

如果你有優質的文章,或是行業熱點事件、技術趨勢的真知灼見,或是深度的應用實踐、場景方案等的新見解,歡迎聯繫 CSDN 投稿,聯繫方式:微信(guorui_1118,請備註投稿+姓名+公司職位),郵箱([email protected])。


分享到:


相關文章: