想入門程式設計課程,該選Python還是Java?(下)
你想好要選擇 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 程式碼通常更具可移植性。 對初學者來說,哪個更容易入門? 推薦閱讀: 使用 Java、Python、C 等 22 種程式語言寫出「Hello World」! 初學者通常更適合從 ...