程式設計課程兩大熱門Python和Java,你可知道兩者有什麼差異嗎?你又該怎麼選擇呢?
▲ 由上圖中可看出:同樣是列印出「Hello world」的程式,左側的 Python 只要寫一行,右側的 Java 相對冗長。
Python 和 Java 都相當受歡迎、可是兩者是有很多不同之處的程式語言。求職面來看,兩者是需求最多的語言榜首,Java 工程師一直各大求職網站常見的職缺;而隨著 Python 的熱度持續上升,求職市場對會此語言的需求越來越高。
相信不少想進入程式設計一行的朋友們,一開始是都會苦惱該選擇哪個,希望能避免最後徒然耗費金錢、精力和時間。當然這兩種語言各有各的市場,不管選擇哪種語言,在職場上一定用的到,差別在於哪個語言更方便、更有效率。
本次我們將要比較 Python 與 Java 各自的特色,幫你分析你的第一堂程式設計課程,該從哪個語言下手。
Python 、 Java 有什麼差別?
讓我們比較一下 Python 和 Java 的編寫方式,以及如何影響編寫體驗:
1. 物件導向程式設計(Object-oriented programming,OOP)
「物件導向程式設計」可以被視作一種在程式中包含各種獨立、而又互相呼叫的類別(Class)和物件(Object)的思維,OOP 中的每一個物件都應該能夠接受資料、處理資料並將資料傳達給其它物件,因此它們都可以被看作一個小型的機器、或者說是肩負責任的角色。
在 Python 中,從數值、字串、字典、元組對象、它們所對應的類別、函數、模塊等等,都是「物件」。而 Java 中的函數,基本數據類型等都不算物件。但是光想弄清楚數據如何成為物件的概念,對 程式設計課程 初學者來說就已經是容易混淆的難題了。
所以很多人偏好 Python 的理由,也包含了它「支援多種程式範式(Multi-paradigm programming language)」的特性,就是除了物件導向之外,Python 還支援了命令式、函數式和程序式程式。其本身擁有一個巨大而廣泛的標準庫──這表示著你可以由上而下創建函數式或命令式代碼,對於只想用幾行編碼就寫出一個應用程式的程式設計師來說,使用 Python 將會非常簡潔快速。
(當然,從技術上講,Java 也可以用來編寫函數式或命令式代碼,但 Python 更適合此類代碼。)
2. 可讀性和空白字元(Readability & White Space)
Python 不強制使用任一種編程範式(註:「範式」告知何時使用哪種設計架構,共有三種:結構化程式設計、物件導向程式設計與函數式程式設計),這樣的特性讓 Python 更加適合初學者學習編程,也適合整合不同的程式語言,做語法決策。
與 Java 相比、大部分情況下 Python 可以用更精簡的程式來完成更多事。如 Python 使用大量空白字元(包含空格、TAB字元、換行符號等)取代其他程式語言的分號等,因此不需要在每個語句的末尾都使用分號。
在 Java 等其他的程式語言中,一個小小的分號足以讓你功虧一簣!例如:你可能孜孜不倦地寫出長達百萬行的程式,但最後忘記了分號而無法運作!無論是新生菜鳥還是江湖老手,這都有可能發生,這會迫使你寫出井井有序的代碼,以避免往後可能造成的混亂,其他語言在語法結構上也同樣嚴格。
另外還有外觀上的差異:對於變數、函數、類和文件等的命名,Java 是使用以大小寫作區分的「camel-case(駝峰式命名法)」;而 Python 使用的「snake_case(蛇形命名法)」則統一小寫,且字與字中間使用底線「_」區隔,輸入相對方便。
一項研究指出,與駝峰式命名法相比、大腦可以更快地辨識蛇形命名法。
總體而言,Python 的程式碼往往不那麼令人生畏、閱讀起來更近於口語;而 Java 可以使你更加井然有序、條理分明,特別是在還不熟悉程式語言的情況下。
本系列文章未完,請點此看下一篇
相關文章:
前端工程師該懂的後端技能 : MySQL教學-DDL DML DQL DCL
使用 Java、Python、C 等 22 種程式語言寫出「Hello World」!
人工智慧電影/影集:Netflix《我的全像情人》探討人與 AI 是否有真愛