0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java為什么不適合作為入門編程語言

5RJg_mcuworld ? 來源:未知 ? 作者:易水寒 ? 2018-11-25 10:36 ? 次閱讀

還記得你學(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++ 是更好的選擇。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問stm32是不是不適合控制有位置要求的交流伺服pmsm電機?

    stm32很適合控制無傳感器pmsm電機,是否可以認(rèn)為:stm32不適合控制有編碼器的交流伺服電機
    發(fā)表于 05-16 07:31

    PCB負(fù)片工藝為何不適合做金屬化半孔

    `請問PCB負(fù)片工藝為何不適合做金屬化半孔?`
    發(fā)表于 02-26 16:42

    sram內(nèi)存塊不適合mcal_bss段怎么解決?

    對于我的項目,我使用帶有 EBTresos 的 S32K342 進行配置和 Autosar OS。我面臨如下 sram內(nèi)存塊不適合 mcal_bss 段問題。 鏈接 main.elf
    發(fā)表于 05-19 08:31

    java編程入門視頻

    java編程入門視頻!資料來源網(wǎng)絡(luò),如有侵權(quán),敬請見諒
    發(fā)表于 11-20 15:11 ?15次下載

    java 網(wǎng)絡(luò)編程語言

    java 網(wǎng)絡(luò)編程語言
    發(fā)表于 12-09 15:41 ?0次下載

    最流行的編程語言java,python

    世界上最大的編程相關(guān)書籍出版商Packt Publishing進行的市場研究顯示,Java和Python是當(dāng)今最流行的編程語言Java流行
    發(fā)表于 09-26 10:22 ?0次下載
    最流行的<b class='flag-5'>編程</b><b class='flag-5'>語言</b><b class='flag-5'>java</b>,python

    如何學(xué)編程語言?好菜鳥學(xué)習(xí)編程語言的步驟

    每種編程語言必然有其優(yōu)點和缺點,這也決定了它有適合的應(yīng)用場景和不適合的應(yīng)用場景。現(xiàn)代軟件行業(yè),想一門編程
    發(fā)表于 04-27 11:08 ?8766次閱讀

    如何由淺入深的學(xué)習(xí)編程語言?學(xué)習(xí)一門編程語言的大致框架

    每種編程語言必然有其優(yōu)點和缺點,這也決定了它有適合的應(yīng)用場景和不適合的應(yīng)用場景?,F(xiàn)代軟件行業(yè),想一門編程
    的頭像 發(fā)表于 05-19 11:07 ?5250次閱讀
    如何由淺入深的學(xué)習(xí)<b class='flag-5'>編程</b><b class='flag-5'>語言</b>?學(xué)習(xí)一門<b class='flag-5'>編程</b><b class='flag-5'>語言</b>的大致框架

    Java入門的大致學(xué)習(xí)路線

    入門階段,主要是培養(yǎng)Java語言編程思想。了解Java語言的語法,書寫規(guī)范等,掌握Eclips
    的頭像 發(fā)表于 05-24 17:19 ?4472次閱讀

    這幾類人不適合跑步,有你嗎

    這幾類人不適合跑步,有你嗎?  跑步,是一項最為基本的運動方式。不管是在清晨還是傍晚,不管是在小區(qū)公園,還是街區(qū)跑道,我們都能看到跑步者的身影。跑步,儼然成為如今最受歡迎的健身方式。然而,生活中有
    發(fā)表于 09-29 11:28 ?2544次閱讀

    傳感器和酒精點火聯(lián)鎖裝置決定你適不適合駕駛

    當(dāng)覺得困倦、有壓力或者喝了點酒,人們是不適合開車的,甚至也不適合做出要開車的決定,但是自動駕駛汽車可以幫助做決定。
    發(fā)表于 03-03 11:14 ?2267次閱讀

    為什么LDPC碼不適合工業(yè)存儲

    LDPC碼被認(rèn)為是當(dāng)今3D TLC和QLC存儲器中提高錯誤率的解決方案。然而它們并不適合每個市場。
    發(fā)表于 10-21 17:23 ?1982次閱讀

    電阻可以串聯(lián) 為何二極管不適合串聯(lián)?

    電阻可以串聯(lián),為何二極管不適合串聯(lián)?
    的頭像 發(fā)表于 02-26 16:14 ?6151次閱讀

    AI到底適不適合開源?

    至于說有“開源不適合 AI”的聲音出現(xiàn),其實有點以偏概全。AI 的開源應(yīng)該是包含了很多層面上的,例如基礎(chǔ)設(shè)施、軟件環(huán)境、框架、算法、應(yīng)用等等,而不僅僅是一個模型的訓(xùn)練。
    發(fā)表于 12-12 11:45 ?577次閱讀

    Fastjson 很快,但不適合我....

    :等于88。記者:??fastjson:你就說快不快吧! ? 這個略顯馬麗蘇的標(biāo)題,各位看官將就著看吧。主要是怕被噴。fastjson真的很好,我用不用我喜不喜歡的,太不重要了,我只是覺得不適合我而已
    發(fā)表于 05-28 11:37 ?304次閱讀
    Fastjson 很快,但<b class='flag-5'>不適合</b>我....