Python 与 Smalltalk 相比如何?
Python 是目前世界上最流行的编程语言,根据 TIOBE , PYPL , 和 IEEE频谱 . 红僧 将 Python 排在第 2 位。
Python 是两种最受欢迎的职位发布语言之一。
那么,Python 的巨大吸引力是什么?主要是 Python 易于学习并且读起来像英语。对于大多数编程新手来说,它是平易近人的。
其次,Python 拥有丰富的库和工具生态系统。
但是,如果我告诉你有一种编程语言比 Python 更简单、更容易学习呢?事实上,Smalltalk 是专门为向年轻人教授编程而设计的(Python 不是)。 Smalltalk 的所有语法都可以总结在一张明信片上(Python 的语法不能)。
Smalltalk 非常容易学习,您可以在 15 分钟内掌握它的所有语法!用 Python 试试。 与 ProfStef 一起学习 Smalltalk .
事实是,尽管 Python 非常容易学习,但该语言确实有许多怪癖,可能会使初学者感到困惑,并使 Python 成为一种更复杂的语言。让我们看几个……
首先,虽然 Python 和 Smalltalk 都是面向对象的语言,但 Smalltalk 是纯粹且始终如一的面向对象的,而 Python 主要是一种具有面向对象和功能特性的过程语言。
当您查看 Python 中的方法定义时,这一点最为明显:第一个参数必须始终是“self”对象。但是,当您在代码中调用此方法时,您不会将“self”对象作为第一个参数传递。很奇怪,你不觉得吗?
看信息隐藏。 Python 通过在名称前加下划线来“隐藏”实例变量。 Python 使用此约定和程序员规则来支持信息隐藏。感觉很笨拙,不是吗?
Python 对属性和属性进行了区分。属性不断更新,而属性是静态的。经典的例子是对象的“长度”。这个属性需要被修饰为一个属性,以便它可以根据需要不断更新。对象的实际“长度”由全局函数确定, len() .迷茫了吗?
其次,Python 和 Smalltalk 都以某种方式支持函数式编程(数据不变性不可用)。但是,在 Python 中,lambda 被限制为一行代码。这是一个非常不方便的限制。
第三,在 Python 中,范围是半开区间。例如, 范围(1,6) 产生值 1、2、3、4、5 但不是 6。这是不直观的,这就是大多数语言使用闭区间的原因。
第四,Python 中的多线程操作可能会受到全局解释器锁或 GIL 的阻碍。
第五,Python 有可能令人困惑的特殊范围规则。查看关键字,例如 全球的 和 非本地 , 例如。
第六,Python 不需要变量声明。即使新变量是印刷错误,您也可以通过为其分配一些东西来创建一个新变量!
第七,虽然理论上可以用 Python 进行“实时编程”,但这并不常见。部分原因是 PyCharm 等工具并非旨在支持这一点。
另一方面,Smalltalk 是现场编程之王。这几乎是使用 Smalltalk 的唯一方式,这也是 Smalltalk 是所有主要编程语言中效率最高的原因,根据 Capers Jones 于 2017 年发表的一项研究 .
重要的是要记住,20 年前,Python 远没有今天那么流行,它的生态系统也没有今天那么丰富。近年来人们开始大量采用 Python,这也是它成功的原因。
给 Smalltalk 相同的机会,我预计它将把 Python 从水中吹走。 让 Smalltalk 再次伟大!
手表 Smalltalk 50 年 .
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/37800/51491910
标签:语言,编程语言,Python,编程,Smalltalk,相比,属性 From: https://www.cnblogs.com/amboke/p/16706957.html