从 JavaScript 角度学 Python(2) - 历史

前言

每个程序语言都有属於它独一无二的诞生故事,毕竟以 JavaScript 的历史背景来讲是还满有趣的(狗与热狗的故事),那 Python 呢?Python 也跟 JavaScript 一样有趣吗?所以这一篇会先针对 Python 的历史背景稍稍的了解一下。

Python 历史

Python 中文又称之为蟒蛇,虽然 Python 本身代表的动物就是蟒蛇,但是绝对不是要讲这一只蟒蛇的历史啦!

https://ithelp.ithome.com.tw/upload/images/20210903/20119486pGLnmIUyPH.jpg

毕竟我们不是 Discovery 铁人赛而是 iT 邦帮忙铁人赛,所以今天要讲的是程序语言的 Python 历史 * n 次(很重要),绝对不是讲蟒蛇的历史 (除非你真的很想知道蟒蛇,那就另当别论)

https://ithelp.ithome.com.tw/upload/images/20210903/20119486SvXygkYHeB.png

而 Python 诞生的时间其实满早的,与 JavaScript 相较之下 Python 至少就早了约 3 年左右的时间。

(JavaScript 於 1994 面市,而 Python 则是 1991 年。额外提一下 JavaScript 的启发语言其中之一就是 Python)

而 Python 的设计者是 Guido van Rossum (吉多·范罗苏姆),诞生的原因我大概查了一下资料有两种说法:

  • 打发时间
  • 觉得当时的语言不好用

另外 Python 这个名称的由来是因为 Guido van Rossum 是蒙提·派森的飞行马戏团(Monty Python's Flying Circus)爱好者,所以就取名为 Python

https://ithelp.ithome.com.tw/upload/images/20210903/20119486qJFw6UcDFk.jpg

484 完全没想到呢?之所以会命名为 Python 纯粹只是因为作者喜欢这个喜剧团体,在维基百科上你也可以看到 这个 解释

Python 特色

如果你本身已经有学过、听过、碰过、摸过、杨过,不管你是什麽过,应该很常听到人家说 Python 这两件事情:

  • 语法简洁易懂
  • 很好学

基本上你会听到这两件事情的原因是 Python 本身的设计中心理念就是为了简洁且可读性高,因此对於入门初学者来讲确实是比较好入门学习的,所以应该不至於会有人贴这张图给你:

https://ithelp.ithome.com.tw/upload/images/20210903/2011948655ZdrzQwUW.jpg

(不得不说,我一开始真的以为只有 C、Java、C# 等等从入门到放弃的梗图版本,没想到连 Python 都有呢!)

除此之外 Python 的语言背景上比较没有像 JavaScript 一样那麽戏剧化,如果你是一名前端开发者,那麽应该很常被问 Java 跟 JavaScript 的差异,甚至有人会搞不清楚 Java 跟 JavaScript 之前到底有何关系(如同热狗跟狗),所以你也有可能看到不清楚的人会在应徵职缺上写要找「JAVA script」工程师(笑,你到底是要找 Java 工程师,还是 JavaScript 工程师啦~~~)。

那麽 Python 在维基百科上也有特别提到它的设计理念,下面摘自维基百科:

优美优於丑陋。明了优於隐晦。
简单优於复杂。复杂优於凌乱。
扁平优於巢状。稀疏优於稠密。
可读性很重要。

前面也有讲到因为 Python 相当易学的关系,因此满多线上课程以及学校都会推荐当作第一个学习语言。

但是强者我朋友推荐我学习的第一个程序语言刚刚好就是 C 语言(真的是从入门到放弃 QQ)

https://ithelp.ithome.com.tw/upload/images/20210903/20119486Zg2Z2aolxZ.jpg

回归正题,看到这边你可能会疑惑了一件事情:「Python 可以拿来做什麽?」

基本上 Python 可以做的事情非常非常的多,举凡比较有名的网页爬虫之外、数据分析以及网站开发也是可以的,举例来讲现在较知名的 Instagram 就是使用了 Django 框架开发(使用 Python 所撰写的 Web 框架)。

当然你也有可能听到人家说 Python 效能很差的问题,而这个原因主要与它的语言特性有关,毕竟它是一个动态语言,就跟 JavaScript 一样必须在程序码执行时才能够知道变数的型别,可是实际上我们使用 Instagram 那麽久,却也感受不太到 Lag (卡、顿)的问题,因此我觉得这不是一个问题点,除此之外我自己认为这不是一个拒绝学习任何程序语言该考虑的重点,如果学了这个程序语言之後可以替自己 加薪 或者解决工作上许多的问题,那麽多学一个程序语言还是利大於弊的。

oh,对了!

差点忘记补充这件事情,补充一下为什麽会推荐学习 Python。

主要原因是「不会秃头」。(误)

Python

那 JavaScript 之父呢?

JavaScript

抢先体验 Python 简洁的语法

那麽由於後面章节开始会慢慢陆续撰写 Python,所以这边先简单看一下 Python 会有多简洁。

下面会有一段非常简易的 JavaScript 的程序码与 Python 程序码,让你简单相互比较了解一下彼此差异与特色:

// JavaScript
var myName = 'Ray';

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

callName();
# Python
myName = 'Ray'

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

callName()

可以看到少了许多东西,举凡变数宣告、花括号({})等等,而且 Python 主要是以缩排为主,如果你写过 Pug(HTML Template)、Sass(CSS 预处理)的话,应该会格外熟悉,因为这两个工具都是非常仰赖缩排,除此之外对於缩排也会非常严格,稍微少缩一排多缩一排都会直接喷错唷~

那麽这一篇主要是简单闲聊与了解关於 Python 的历史,下一篇我们就来介绍一下如何安装 Python 吧。

参考文献

作者的话

因为红龙鸡块需要放在冷冻库,但是很尴尬的是红龙鸡块竟然!!!!有三大包,然後我冰箱因为比较偏小,所以只好硬塞进去,结果因为家人开关冰箱时没有关好,导致隔天早上起来冰箱附近都是积水,只是好加在冰箱的东西都没有坏掉。

关於兔兔们

兔法无边


<<:  [Day3]odd sum

>>:  Day 1 : 前言与DevOps

Celebs worth

The most reliable blog for celebrity Net Worth Net...

Explain详解(优化查询好帮手)-Part1(id、select_type、table、partitions、type)

mysql最佳化工具针对一笔叙述根据成本与规则制定一个具体计画,包含了执行叙述的方式、连接表的顺序、...

Ruby幼幼班--Best Time to Buy and Sell Stock II

Best Time to Buy and Sell Stock II 这题其实仔细看完内容,会发现...

Day13 开发套件 - 范例程序码介绍02 Android 端

接着来看Native 端(Android): 预设建立的android/.../Batterylev...

Day 17 CSS <用户介面样式 & 三角>

什麽是介面样式? 所谓的介面样式,就是更改一些用户操作样式,以提高用户体验。 更改用户的鼠标样式 ...