2020年8月26日 星期三

上程式設計課程選Python,選Java有什麼差別嗎? (下)

程式設計課程PythonnJava都非常熱門,可是兩者究竟有什麼差異呢?

程式設計課程Python和Java都非常熱門,可是兩者究竟有什麼差異呢?

本系列文章為【第一次上程式設計課程該選 Python 還是 Java?有什麼差別?】的下篇,上篇請點此

▲ 網路上盛傳的 Java 與 Python 程式語言比較迷因圖,顯示現代人對於精簡的 Python 接受度比較高

3. 靜態與動態

Python 和 Java 最大的不同點在這兩種程式語言處理變數的方式:Java 是靜態類型的,而 Python 是動態類型的。

Java 在第一次聲明變數的時候,先要定義它的類型,而且不能再修改,這就是「靜態類型」;而 Python 無需立即聲明變數的類型,且後續可以改變一個變數的類型,例如可以把整數變數替換為字串(string)。

同樣,函數參數可以傳入任何對象。「鴨子型別」(duck typing)使 Python 非常方便且易於使用。不過,這也容易讓下一個接手代碼的人難以理解,除非附上完善的標註。

4. 編譯與直譯

高階語言(high-level language)都需要先經轉換,才能將原始程式碼「翻譯」成機器看得懂的二進位機器碼。因「翻譯」動作的不同,而將程式語言分為「編譯式語言」(compiled language)和直譯式語言(interpreted language)兩種。

Python 是一種直譯語言,需要安裝一個直譯器(interpreter)將執行到的區塊進行解析(parse),再執行對應的機器碼。因此,執行效率較低於編譯式語言。

這也表示其他人要使用你的程式碼,同樣需要安裝直譯器,沒辦法直接將其發送給同事或客戶。

這既是 Python 的缺點、也是優點,如果要建構用於商業用途的程式,需要倚賴直譯器與多一道直譯流程;但這也表示可以將 Python 添加到 PATH、或直接在 cmd 下運行 Python 腳本,而無需經歷冗長的編譯階段。

Java 技術上既可以直譯也可以編譯。如同編譯語言,會先把程式原始碼編譯成位元組碼(byte code),再將位元組碼直譯之後執行。這種技術會比純編譯語言來的慢一些,但是卻又擁有直譯語言的特性。也因此 Java 程式碼通常更具可移植性。

對初學者來說,哪個更容易入門?

推薦閱讀:使用 Java、Python、C 等 22 種程式語言寫出「Hello World」!

初學者通常更適合從 Python 著手、打開通往程式設計領域的大門。即使對於還沒弄清楚(Class)和物件(Object)概念的人,依然可以合乎邏輯地使用 Python,而且它簡潔的代碼畫面,可以為初學者減低精神壓力和提供喘息空間,它的靈活性也很強,足以在課堂外使用。

如果對建立 Web 應用程式、與科技新創公司合作或對資料科學感興趣,那麼 Python 是你不錯的選擇。

另一面來說,Java 的複雜性和重重規則「可能」有助於你早期就養成良好的習慣,並且為將來專業程式設計師的職業生涯做好準備。

如果你希望未來在一家大公司任職程式設計師、想製作 Android 的 APP 或者已經決定未來要學習 C 語言,那麼 Java 是一個不錯的選擇。不過要先有心理準備面對陡峭的學習曲線!

歸根結底,如果是從「簡單、易學、好上手」來看,Python 毋庸置疑是更好的起點!趕快手刀報名 Python 程式設計課程吧!

推薦閱讀:
非資工系出身,產品人員「Python 課程」結業後轉職大醫院當網站工程師
當了快八年的業務,因Java課程而成功轉職程式設計師

相關文章:

前端工程師該懂的後端技能 : MySQL教學-DDL DML DQL DCL

使用 Java、Python、C 等 22 種程式語言寫出「Hello World」!

人工智慧電影/影集:Netflix《我的全像情人》探討人與 AI 是否有真愛

介面、體驗大不同!UI設計/UX設計工作內容完整剖析

UI設計網站超值大禮包!設計師們不可不看(一)

Python課程超強大!讓非本科轉職為大醫院網站工程師!

硬體工程師為何進修Java課程轉戰軟體工程師!?