要學程式設計課程拉!但Java跟Python到底哪個好?(上)

要學程式設計課程拉!但Java跟Python到底哪個好?(上)


 

說到程式設計課程,就屬Java和Python最有名!新手想踏入程式語言的世界卻茫然?上下篇文章都不准錯過!


 

由下面兩例中可看出:同樣是列印出「Hello world」的程式,上側的 Python 只要寫一行,下側的 Java 相對冗長。

print("Hello World")
class HelloWorldApp {
                        public static void main(String[] args) {
                            System.out.println("Hello World!"); // Prints the string to the console.
                        }
                    }
>

PythonJava 是兩個都十分熱門、但有不少差異的程式語言。以求職而言,兩者都常成為需求最多的語言榜首,Java 工程師一直各大求職網站常見的職缺;而隨著 Python 的熱度持續上升,市場對會此語言的需求也越來越高。

推薦閱讀:Python 取代 Java 奪得亞軍!2020 第 3 季 RedMonk 程式語言榜大洗牌?

相信不少想進入程式設計一行的朋友們,一開始是都會苦惱該選擇哪個,希望能避免最後徒然耗費金錢、精力和時間。當然這兩種語言各有各的市場,不管選擇哪種程式設計課程,在職場上一定用的到,差別在於哪個語言更方便、更有效率。

推薦閱讀:APCS 程式檢定,高中生該從 C、Java 還是 Python 下手?

本次我們將要比較 PythonJava 各自的特色,幫你分析你的第一堂程式設計課程,該從哪個語言下手!

 

Python 、 Java 有什麼差別?

讓我們比較一下 PythonJava 的編寫方式,以及如何影響編寫體驗:

 

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 可以使你更加井然有序、條理分明,特別是在還不熟悉程式語言的情況下。還是無法下定決心你的第一堂程式設計課程?本系列文章未完,請點此看下一篇!

 

延伸閱讀:

從工地工人到成為Java工程師,這條路怎麼走?

臉書開源的Python語言工具,用它來檢查自己的程式碼!

在Python與R語言之間,哪個較適合AI和機器學習?(下)

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

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

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

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

這個網誌中的熱門文章

Python控制結構一點就通!(5)while迴圈

前端工程師絕不能搞錯的CSS中:逗號.空格的差別!

網頁前端CSS必學兩屬性:display與visible