從 JavaScript 角度學 Python(2) - 歷史

前言

每個程式語言都有屬於它獨一無二的誕生故事,畢竟以 JavaScript 的歷史背景來講是還滿有趣的(狗與熱狗的故事),那 Python 呢?Python 也跟 JavaScript 一樣有趣嗎?所以這一篇會先針對 Python 的歷史背景稍稍的了解一下。

Python 歷史

Python 中文又稱之為蟒蛇,雖然 Python 本身代表的動物就是蟒蛇,但是絕對不是要講這一隻蟒蛇的歷史啦!

大蟒蛇

畢竟我們不是 Discovery 鐵人賽而是 iT 邦幫忙鐵人賽,所以今天要講的是程式語言的 Python 歷史 * n 次(很重要),絕對不是講蟒蛇的歷史 (除非你真的很想知道蟒蛇,那就另當別論)

Python

而 Python 誕生的時間其實滿早的,與 JavaScript 相較之下 Python 至少就早了約 3 年左右的時間。

(JavaScript 於 1994 面市,而 Python 則是 1991 年。額外提一下 JavaScript 的啟發語言其中之一就是 Python)

而 Python 的設計者是 Guido van Rossum (吉多·范羅蘇姆),誕生的原因我大概查了一下資料有兩種說法:

  • 打發時間
  • 覺得當時的語言不好用

另外 Python 這個名稱的由來是因為 Guido van Rossum 是蒙提·派森的飛行馬戲團(Monty Python’s Flying Circus)愛好者,所以就取名為 Python

蒙提·派森的飛行馬戲團

484 完全沒想到呢?之所以會命名為 Python 純粹只是因為作者喜歡這個喜劇團體,在維基百科上你也可以看到 這個 解釋

Python 特色

如果你本身已經有學過、聽過、碰過、摸過、楊過,不管你是什麼過,應該很常聽到人家說 Python 這兩件事情:

  • 語法簡潔易懂
  • 很好學

基本上你會聽到這兩件事情的原因是 Python 本身的設計中心理念就是為了簡潔且可讀性高,因此對於入門初學者來講確實是比較好入門學習的,所以應該不至於會有人貼這張圖給你:

Python 從入門到放棄

(不得不說,我一開始真的以為只有 C、Java、C# 等等從入門到放棄的梗圖版本,沒想到連 Python 都有呢!)

除此之外 Python 的語言背景上比較沒有像 JavaScript 一樣那麼戲劇化,如果你是一名前端開發者,那麼應該很常被問 Java 跟 JavaScript 的差異,甚至有人會搞不清楚 Java 跟 JavaScript 之前到底有何關係(如同熱狗跟狗),所以你也有可能看到不清楚的人會在應徵職缺上寫要找「JAVA script」工程師(笑,你到底是要找 Java 工程師,還是 JavaScript 工程師啦~~~)。

那麼 Python 在維基百科上也有特別提到它的設計理念,下面摘自維基百科:

優美優於醜陋。明瞭優於隱晦。
簡單優於複雜。複雜優於凌亂。
扁平優於巢狀。稀疏優於稠密。
可讀性很重要。

前面也有講到因為 Python 相當易學的關係,因此滿多線上課程以及學校都會推薦當作第一個學習語言。

但是強者我朋友推薦我學習的第一個程式語言剛剛好就是 C 語言(真的是從入門到放棄 QQ)

C 從入門到放棄

回歸正題,看到這邊你可能會疑惑了一件事情:「Python 可以拿來做什麼?」

基本上 Python 可以做的事情非常非常的多,舉凡比較有名的網頁爬蟲之外、數據分析以及網站開發也是可以的,舉例來講現在較知名的 Instagram 就是使用了 Django 框架開發(使用 Python 所撰寫的 Web 框架)。

當然你也有可能聽到人家說 Python 效能很差的問題,而這個原因主要與它的語言特性有關,畢竟它是一個動態語言,就跟 JavaScript 一樣必須在程式碼執行時才能夠知道變數的型別,可是實際上我們使用 Instagram 那麼久,卻也感受不太到 Lag (卡、頓)的問題,因此我覺得這不是一個問題點,除此之外我自己認為這不是一個拒絕學習任何程式語言該考慮的重點,如果學了這個程式語言之後可以替自己 加薪 或者解決工作上許多的問題,那麼多學一個程式語言還是利大於弊的。

oh,對了!

差點忘記補充這件事情,補充一下為什麼會推薦學習 Python。

主要原因是「不會禿頭」。(誤)

Python

那 JavaScript 之父呢?

JavaScript

搶先體驗 Python 簡潔的語法

那麼由於後面章節開始會慢慢陸續撰寫 Python,所以這邊先簡單看一下 Python 會有多簡潔。

下面會有一段非常簡易的 JavaScript 的程式碼與 Python 程式碼,讓你簡單相互比較了解一下彼此差異與特色:

1
2
3
4
5
6
7
8
9
10
// JavaScript
var myName = 'Ray';

function callName() {
if(true) {
console.log('myName', myName);
}
}

callName();
1
2
3
4
5
6
7
8
# Python
myName = 'Ray'

def callName():
if True:
print('myName', myName)

callName()

可以看到少了許多東西,舉凡變數宣告、花括號({})等等,而且 Python 主要是以縮排為主,如果你寫過 Pug(HTML Template)、Sass(CSS 預處理)的話,應該會格外熟悉,因為這兩個工具都是非常仰賴縮排,除此之外對於縮排也會非常嚴格,稍微少縮一排多縮一排都會直接噴錯唷~

那麼這一篇主要是簡單閒聊與了解關於 Python 的歷史,下一篇我們就來介紹一下如何安裝 Python 吧。

參考文獻

作者的話

因為紅龍雞塊需要放在冷凍庫,但是很尷尬的是紅龍雞塊竟然!!!!有三大包,然後我冰箱因為比較偏小,所以只好硬塞進去,結果因為家人開關冰箱時沒有關好,導致隔天早上起來冰箱附近都是積水,只是好加在冰箱的東西都沒有壞掉。

關於兔兔們

兔法無邊

Liker 讚賞 (拍手)

如果這一篇筆記文章對你有幫助,希望可以求點支持或 牡蠣 鼓勵 (ノД`)・゜・。

Liker 是一個按讚(拍手)的讚賞機制,每一篇文章最多可以按五下(拍手),按讚過程你是完全不用付費的(除非你想要每個月贊助我 :D),你只需要登入帳號就可以開始按讚。
而 Liker 會依據按讚數量分配獎金給創作者,所以如果你願意按個讚我會非常感謝你唷。

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ