為什麼你應該選擇Java作為你的起始語言 — 學習Java的各種好處

Kevin Tung
May 26, 2021

--

Photo by Tracy Adams on Unsplash

時代日新月異,程式語言也持續的在進化:語法變得更簡單、功能變得更強大、能負責的領域變得越來越廣(像JavaScript就能做到一種語言,全端開發)。尤其像現在最夯的大數據分析、人工智慧等等,我相信搜尋這些關鍵字應該會看到一堆Python的返回結果。

新語言越來越強,為什麼我們還要去學歷史有點悠久的Java呢?我覺得有以下幾點:

  1. Java身為強型別OOP語言,語言本身涵蓋了相當多重要的基礎。這些基礎是弱型別語言裡面比較不容易接觸到的,但卻相當重要。對這些基礎有了了解之後,未來在接觸其他語言時,能夠更好理解與上手。
  2. Java是編譯式語言,在效能上相較直譯式語言相對較快。關於這點可以參考底下這篇有更多詳細介紹
  3. Java的發展時間悠久,周邊相關的套件也較多元、完善。套件可以理解為工具:就像建築師蓋房子,工具越多相對越方便。很多時候開發一個新的應用程式,把套件引進來再加幾行code就完成了,不僅選擇多元,開發速度也能大幅縮短(因為很多東西都有套件了,不用自行開發)
  4. Java相對安全(至少編譯過的.class檔別人無法隨意讀取),本身也具有跨平台的特性。
  5. Java的就職市場還是相對較多的,至少很多大公司的系統,都會傾向使用Java來開發。原因除了以上所說的優點之外,Java還有個強大的後台,就是Oracle(甲骨文)。(至少有問題能找的到顧問來背鍋😂)

很多人被學校的課程荼毒過,都會覺得Java很難,或是有很多多餘的程序,不過這些門檻你越過之後,再開發的過程中,你會發現這些程序能夠幫你處理很多麻煩,也讓多人協作進行得更順暢。

就以第1點來說,先接觸了Java讓我對OOP的觀念更了解,後續在學習很多框架或其他語言時,看到類似得架構能夠很快的理解其中的"為什麼"。例如我剛開始在學習React.js的時候,常常會在程式裡看到底下類似的架構:

一開始的class App繼承了React.Component,後續便可以使用 React.Component裡的各種方法,而React則是別人預先寫好的套件,我們要使用它只要繼承它預先寫好的類別,就能使用這項工具。雖然這是JavaScript的前端框架,不過裡面有很多概念卻是相通的。

說到概念相通這一點,程式語言百百種,不過終究離不開幾個大方向:像是每個語言都一定能聲明變數、if-else的條件式判斷語句、for、while等迴圈的概念、函式的定義、調用等等。所以當你精通某一種語言之後,你會發現第二個、第三個語言上手的速度會越來越快(因為很多東西幾乎一樣)

Java本身是個強型別語言,除了編譯器會幫忙檢測錯誤之外,語言本身的OOP架構設計的非常嚴謹。即便寫個簡單的Hello World,也需要非常多手續,不像JS或Python那樣,寫個 print() 就輕鬆搞定。

看一下Java的Hello World吧

順便看一下JS跟Python的版本

Java版的硬是多了4行,而且還不能直接執行,要經過編譯。

不過也因為這樣,使用者得熟知Java如何運作,以及有清楚的OOP觀念。為什麼新的語言語法越來越簡潔,越來越簡單呢?其實電腦本身的運作模式並沒有變,電腦還是笨笨的只會識別0和1,語法簡單是因為語言經過長時間的演進,很多接近底層的,比較複雜的邏輯,已經被另外包裝起來,作為語言本身的常駐功能之一了:意即我們不需要再關心底層是怎麼運作的,只需關心我們開發的應用程式應該怎麼設計。不過學習這些底層的東西對一個工程師來說絕對是百益而無一害。先適應了比較難的,再去接觸簡單的,不只上手更快,也會更有成就感。

改天來聊聊Java的一些好玩的應用吧!

--

--

Kevin Tung

A developer who is passionate about programming , learning to code, and sharing that knowledge