想入門程式設計課程,該選Python還是Java?(下)
3. 靜態與動態
Python 與 Java 最大的區別之一在於:兩種語言處理變數的方式:Java 是靜態類型的,而 Python 是動態類型的。
Java 要求在第一次聲明變數時,就必須要定義它的類型,且不可再修改,這就是所謂「靜態類型」;而 Python 無需立即聲明變數的類型,且後續可以改變一個變數的類型,例如可以把整數變數替換為字串(string)。
同樣,函數參數可以傳入任何對象。「鴨子型別」(duck typing)使 Python 非常方便且易於使用。不過,這也容易讓下一個接手代碼的人難以理解,除非附上完善的標註。
▲ 網路上盛傳的 Java 與 Python 程式語言比較迷因圖,顯示現代人對於精簡的 Python 接受度比較高
4. 編譯與直譯
高階語言(high-level language)都需要先經轉換,才能將原始程式碼「翻譯」成機器看得懂的二進位機器碼。因「翻譯」動作的不同,而將程式語言分為「編譯式語言」(compiled language)和直譯式語言(interpreted language)兩種。
而 Python 是一種直譯語言,需要安裝一個直譯器(interpreter)將執行到的區塊進行解析(parse),再執行對應的機器碼。因此,執行效率較低於編譯式語言。
這也表示其他人要使用你的程式碼,同樣需要安裝直譯器,沒辦法直接將其發送給同事或客戶。
這既是 Python 的缺點、也是優點,如果要建構用於商業用途的程式,需要倚賴直譯器與多一道直譯流程;但這也表示可以將 Python 添加到 PATH、或直接在 cmd 下運行 Python 腳本,而無需經歷冗長的編譯階段。
Java 技術上既可以直譯也可以編譯。如同編譯語言,會先把程式原始碼編譯成位元組碼(byte code),再將位元組碼直譯之後執行。這種技術會比純編譯語言來的慢一些,但是卻又擁有直譯語言的特性。也因此 Java 程式碼通常更具可移植性。
對初學者來說,哪個更容易入門?
初學者通常更適合從 Python 著手、打開通往程式設計領域的大門。即使對於還沒弄清楚(Class)和物件(Object)概念的人,依然可以合乎邏輯地使用 Python,而且它簡潔的代碼畫面,可以為初學者減低精神壓力和提供喘息空間,它的靈活性也很強,足以在課堂外使用。
如果對建立 Web 應用程式、與科技新創公司合作或對資料科學感興趣,那麼 Python 是你不錯的選擇。
另一面來說,Java 的複雜性和重重規則「可能」有助於你早期就養成良好的習慣,並且為將來專業程式設計師的職業生涯做好準備。
如果你希望未來在一家大公司任職程式設計師、想製作 Android 的 APP 或者已經決定未來要學習 C 語言,那麼 Java 是一個不錯的選擇。不過要先有心理準備面對陡峭的學習曲線!
歸根結底,如果是從「簡單、易學、好上手」來看,Python 毋庸置疑是更好的起點!趕快手刀報名 Python 程式設計課程吧!
推薦閱讀:
非資工系出身,產品人員「Python 課程」結業後轉職大醫院當網站工程師
當了快八年的業務,因Java課程而成功轉職程式設計師
本系列文章為【第一次上程式設計課程該選 Python 還是 Java?有什麼差別?】的下篇,上篇請點此。
延伸閱讀:
這次Python的排名追過Java,是暫時的,還是永久的..?
前端工程師該懂的後端技能 : MySQL教學-DDL DML DQL DCL
使用 Java、Python、C 等 22 種程式語言寫出「Hello World」!
人工智慧電影/影集:Netflix《我的全像情人》探討人與 AI 是否有真愛
留言
張貼留言