還記得你學習的第一門編程語言是什么嗎?
就從 11 級軟件工程出身的筆者而言,《Java 程序設計》是大學課程中必學科目,且學分相比其他課程都要高出不少。
不過,近幾年隨著人工智能的崛起,各大初高中、甚至是幼兒園都在將 AI 教學列入基本教學范疇。這不前幾日,由中國科學院自動化所、Google 及其他相關高校的 AI 專家專為幼兒園學生設計的 AI 教材也被曝光。
隨之而來的是,作為 AI 領域的首選編程語言 Python 也水漲船高,甚至不少高校將其取代了 Java 的基本教學任務。對于這種現狀,本文作者不禁提出疑問,如今倘若仍將 Java 作為學習編程的入門課程教給學生究竟對還是不對?如果不對,在學習編程時又該學什么呢?Python 嗎?
Java 依然是最流行的編程語言,但很少有人認為它是最酷的編程語言。一些人甚至認為,Java 已進入垂暮之年,因此許多從事教育的人都不愿意教 Java。
于是問題來了:學校和大學是否依然應該教學生 Java 編程?如果不應該,那么教什么語言最好?
新貴 Python 或將攔截 Java 的教學推廣后路?
在我上大學的時代——其實就是十年前,Java 還是計算機科學的入門課程中的必學語言。如果你想學其他語言,比如 C、Python、PHP,你就得專門選那個語言的課程,或者選相關的應用。
但是現在,Java 不再受大學的青睞。根據國際計算機協會(ACM)的研究發現,截至 2014 年,Python 已經取代 Java 成了主流大學計算機入門課程必學的語言。
但這個研究并不全面,因為它只覆蓋了最主要的美國大學,而且它代表的只是幾年前的一個時間點而已。但是,我依然強烈地感覺到,如果現在對計算機科學的入門課程使用的計算機語言做一次全面調查,那么很可能會發現 Java 并不是最受歡迎的語言。
我敢肯定許多學院依然在教 Java,但我也懷疑大多數已經把入門課程改成了其他語言(很可能是 Python)。甚至高中的計算機教學也有同樣的現象。
為什么 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 來避免這個問題。但為什么不干脆避免這個問題本身呢?許多其他語言都只有一個實現標準,而且通常是開源的。
學習 Java 依然有益
但這并不是說 Java 不適合教學——它依然有賣點。Java 是跨平臺的。它有健康的生態系統和開發工具,包括 Eclipse,能讓許多新手程序員的生活變得更加容易。Java 還有易于使用的文檔和社區支持,因為太多人都在使用 Java。所以,教 Java 究竟有沒有錯?這個問題很難回答。但是現在,Java 并不是向學生教授第一門編程語言的最佳選擇。在我看來,Python 和 C++ 是更好的選擇。
對此,你怎么看,歡迎下方留言分享你的看法。
-
JAVA
+關注
關注
19文章
2970瀏覽量
104838 -
編程
+關注
關注
88文章
3623瀏覽量
93797 -
人工智能
+關注
關注
1792文章
47373瀏覽量
238875
原文標題:將 Java 作為入門編程語言有錯嗎?
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論