還記得你學(xué)習(xí)的第一門編程語言是什么嗎?
就從 11 級軟件工程出身的筆者而言,《Java 程序設(shè)計》是大學(xué)課程中必學(xué)科目,且學(xué)分相比其他課程都要高出不少。
不過,近幾年隨著人工智能的崛起,各大初高中、甚至是幼兒園都在將 AI 教學(xué)列入基本教學(xué)范疇。這不前幾日,由中國科學(xué)院自動化所、Google 及其他相關(guān)高校的 AI 專家專為幼兒園學(xué)生設(shè)計的 AI 教材也被曝光。
隨之而來的是,作為 AI 領(lǐng)域的首選編程語言 Python 也水漲船高,甚至不少高校將其取代了 Java 的基本教學(xué)任務(wù)。對于這種現(xiàn)狀,本文作者不禁提出疑問,如今倘若仍將 Java 作為學(xué)習(xí)編程的入門課程教給學(xué)生究竟對還是不對?如果不對,在學(xué)習(xí)編程時又該學(xué)什么呢?Python 嗎?
Java 依然是最流行的編程語言,但很少有人認(rèn)為它是最酷的編程語言。一些人甚至認(rèn)為,Java 已進入垂暮之年,因此許多從事教育的人都不愿意教 Java。
于是問題來了:學(xué)校和大學(xué)是否依然應(yīng)該教學(xué)生 Java 編程?如果不應(yīng)該,那么教什么語言最好?
新貴 Python 或?qū)r截 Java 的教學(xué)推廣后路?
在我上大學(xué)的時代——其實就是十年前,Java 還是計算機科學(xué)的入門課程中的必學(xué)語言。如果你想學(xué)其他語言,比如 C、Python、PHP,你就得專門選那個語言的課程,或者選相關(guān)的應(yīng)用。
但是現(xiàn)在,Java 不再受大學(xué)的青睞。根據(jù)國際計算機協(xié)會(ACM)的研究發(fā)現(xiàn),截至 2014 年,Python 已經(jīng)取代 Java 成了主流大學(xué)計算機入門課程必學(xué)的語言。
但這個研究并不全面,因為它只覆蓋了最主要的美國大學(xué),而且它代表的只是幾年前的一個時間點而已。但是,我依然強烈地感覺到,如果現(xiàn)在對計算機科學(xué)的入門課程使用的計算機語言做一次全面調(diào)查,那么很可能會發(fā)現(xiàn) Java 并不是最受歡迎的語言。
我敢肯定許多學(xué)院依然在教 Java,但我也懷疑大多數(shù)已經(jīng)把入門課程改成了其他語言(很可能是 Python)。甚至高中的計算機教學(xué)也有同樣的現(xiàn)象。
為什么 Java 不再適合作為學(xué)習(xí)編程的入門語言?
Java 的衰退是好事還是壞事?當(dāng)然,答案取決于你問的人是誰。但是一般而言,有幾點很好的理由支持我們應(yīng)當(dāng)在計算機學(xué)習(xí)的過程中盡早改變教授編程語言的方式。
Java 太冗長。Java 程序員自己都承認(rèn),Java 是個極其冗長的語言,比大多數(shù)語言都要冗長,完成非常簡單的任務(wù)都要寫大量代碼。也許對于能快速寫代碼的專業(yè)程序員來說無所謂吧。
但是,對于學(xué)習(xí)編程的學(xué)生來說,他會愿意寫三四行代碼只為了在控制臺輸出一行字符串嗎?其他語言(比如 Python)只需要一行代碼:
echo 'my string';
可學(xué)習(xí)性的因素。你也許認(rèn)為,Java 是使用最廣泛的語言,所以每個人都應(yīng)該學(xué)習(xí)它。畢竟,許多專業(yè)的程序員每天都在使用 Java。許多重要的應(yīng)用程序也是用 Java 寫的,而且,就算現(xiàn)在所有人都不再寫 Java,未來幾十年中我們依然需要維護舊的 Java 代碼。
但是,僅憑最流行的企業(yè)語言以及依然會廣泛流行幾十年這點,并不能說明我們應(yīng)當(dāng)總是讓學(xué)生首先學(xué)習(xí) Java。如果你是新入學(xué)的計算機科學(xué)的學(xué)生,希望用簡單的辦法探索應(yīng)用程序設(shè)計和開發(fā)的精髓,那么 Java 并不是好的起點。
Java 是編譯語言。如果你是 DevOps 工程師,在 Jenkins 流水線中構(gòu)建 Java 應(yīng)用程序,那這是件好事。但如果你只想學(xué)習(xí)編程,那嘗試之前需要先編譯就不太理想了。最好還是使用一門腳本語言。
如果職業(yè)需要,你可以稍后再學(xué)習(xí)構(gòu)建過程和發(fā)布的流水線。而且你有可能根本不需要。并不是每個選了計算機入門課程的人都會成為專業(yè)的開發(fā)者并且編譯代碼。
有許多 Java 的替代品。你經(jīng)常聽到的學(xué)習(xí) Java 的理由之一就是“它是面向?qū)ο蟮?!”沒錯,Java 是面向?qū)ο缶幊蹋∣OP)的標(biāo)志性語言。但許多其他語言也可以使用 OOP。
而且,教 OOP 的原理并不需要特定的語言。OOP 只是一種概念,是一種結(jié)構(gòu)性的策略,而不是語言的特性。除此之外,微服務(wù)的趨勢已經(jīng)讓 OOP 變得不再那么重要了。就像微服務(wù)部署削弱了單一架構(gòu)一樣,也許以后根本就不再需要 OOP 了。
Java Development Kit(JDK)沒有統(tǒng)一的標(biāo)準(zhǔn)。Oracle JDK、OpenJDK 和許多其他廠商的 JDK 平臺都不一樣,這可能會造成許多困惑。不同 JDK 之間的口味不同,意味著你在一個平臺上的代碼可能無法在另一個平臺上正確工作,這會讓初次學(xué)習(xí)編程的學(xué)生感到沮喪。
當(dāng)然,你可以通過要求所有學(xué)生使用同一個 JDK 來避免這個問題。但為什么不干脆避免這個問題本身呢?許多其他語言都只有一個實現(xiàn)標(biāo)準(zhǔn),而且通常是開源的。
學(xué)習(xí) Java 依然有益
但這并不是說 Java 不適合教學(xué)——它依然有賣點。Java 是跨平臺的。它有健康的生態(tài)系統(tǒng)和開發(fā)工具,包括 Eclipse,能讓許多新手程序員的生活變得更加容易。Java 還有易于使用的文檔和社區(qū)支持,因為太多人都在使用 Java。所以,教 Java 究竟有沒有錯?這個問題很難回答。但是現(xiàn)在,Java 并不是向?qū)W生教授第一門編程語言的最佳選擇。在我看來,Python 和 C++ 是更好的選擇。
對此,你怎么看,歡迎下方留言分享你的看法。
-
JAVA
+關(guān)注
關(guān)注
19文章
2952瀏覽量
104482 -
編程
+關(guān)注
關(guān)注
88文章
3565瀏覽量
93536 -
人工智能
+關(guān)注
關(guān)注
1789文章
46652瀏覽量
237083
原文標(biāo)題:將 Java 作為入門編程語言有錯嗎?
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論