Python 是纯 OOP 。其实这是新手接触python时容易犯的错误。
像 smalltalk 这样的 Python 遵循“一切都是对象”的口号。所以python里面的一切都是一个对象,包括内置类型。不同之处在于 python 与 smalltalk 和 Java 不同,它不强制 OOP,因为它允许过程编程。这就是陷阱,很容易假设这使得 python 减少了 OOP,但是作为一条蛇,它是如此的发达,以至于不会告诉你甚至函数都是对象;)
http://www.linuxtopia.org/online_books/programming_books/python_programming/python_ch10s04.html
回到 smalltalk,它的 IDE 在这里很重要,与其他 smalltalker 可能相信的相反。如果您像我一样对 IDE 的不灵活程度感到非常失望,那么您会喜欢 Squeak 的 IDE。IDE 做了很多工作,使您可以轻松浏览所有库,并让您了解发生了什么、在哪里以及为什么发生了某些事情。我看不到使用文本编辑器的好处。但是您可以使用文件输入和文件输出。但是这样做会使 smalltalk 变得与其他编程语言一样高效;)
我现在只学习 squeak 和 pharo 一个星期,但即使对我作为初学者来说,IDE 的好处从一开始就很明显。
事实上,代码被分割成易于理解的方法,这些方法分组为协议,协议分组为我们熟悉的类,类分组为包。因此代码组织得很好,我从不迷路,一切都属于某个地方,一切都只需点击一下,一切都是可检查的,可浏览的,您只需选择右键单击并将您发送到那里。它准确地向您展示了您需要的代码,长度很少超过 10 行。这是IDE。为什么您更喜欢一个文本编辑器,它可以显示您不需要、不关心并且可能让您感到困惑的信息?
然后一切都在一个图像中,而不是文件、代码、库、系统库,甚至语言本身的集合。一切都在你的掌握之中,等着你,求你去测试、修改、使用和滥用。你是语言的一部分,语言也是你的一部分,如果有什么不符合你的想法,改变它。这是IDE。为什么要回到文件和文件夹的断开方式?
然后你开始害怕所有这些力量,所有这些灵活性,你不太可能会做一些可能完全破坏语言和库的事情。它是可能的,错误可以而且将会发生。IDE 再次为您提供帮助,每个更改都存储在本地 cvs 系统中,每个更改都被分类、存储和随时监控。没有糟糕的撤消和任何其他废话。你得到的是旧的、成熟的、经过良好测试的版本控制。您可以随时准确地改回您想要的东西,没有任何损失,没有错误是不可逆转的。
如果您不信任您的硬盘驱动程序,则 vcs 可以在线扩展到 squeaksource 。它是否让你受制于命令行?一定不行 。为您提供了简单而高效的 Monticello 浏览器,它将确保您安装和卸载没有冲突。
当然,您不希望您的软件有错误,是吗?提供单元测试工具以确保您的代码可靠、稳定并且完全按照您想要的方式执行。再次使用漂亮而出色的 GUI 使复杂的任务只需一个按钮即可完成。
并且因为没有一个是完美的,所以会有时间你会遇到可怕的错误。你一个人呆着吗?你猜对了,又提供了一个工具。调试器。你不需要调用它,你不需要设置它,你甚至不需要弄清楚它是如何工作的。像所有其他工具一样,设计简单但复杂。它不仅会发现错误,不仅会告诉你你做错了什么,不仅会导航回触发错误的最基本的语言元素,提供一个独特的视角来了解语言的行为方式,就像我以前从未见过的那样,它还允许您进行实时编码。实时编码是在代码运行时对程序进行编码的能力。这不是令人印象深刻且无限有用吗?
最后,也许你是那些无法取悦的人之一,也许你仍然发现缺陷,遗漏并认为你简单不喜欢。IDE 是用 smalltalk 编写的,smalltalk 是用 smalltalk 编写的,并且 IDE 可以编辑自身和语言,除了语言的一些非常基本的功能和编译为 C 的 VM 之外,没有什么是你不能改变的。你会如果你认为你可以使用上述所有工具来做到这一点,那就猜对了。
工具并不止于此,smalltalk 可能不像其他语言那么受欢迎,但它已经存在了很长时间,并且它有一些非常热情的程序员愿意做出贡献。坦率地说,拥有如此出色的 IDE 和如此精心设计的语言,而其他为它们做出贡献的语言似乎是一个挑战,在 smalltalk 的情况下,挑战是抵制不贡献的诱惑,因为 IDE 让它变得如此简单。
当其他人仍在编写代码时,您将完成您的代码并真正了解您做了什么以及为什么。这根本不是一件小事。我希望 Python 有这么好的 IDE 或任何其他语言。但根据我的经验,唯一接近的就是 Delphi。即使在 Delphi 的情况下,我仍然更喜欢 squeak 和 pharo。
我对其他 IDE 感到恼火的是,它们根本不是 IDES,它们只不过是美化的编辑器、锁定、不灵活、不可编辑(除非您愿意使用另一种编程语言并浏览大量源代码)。Squeak、Pharo 和所有其他 smalltalk 方言提供了一个真正优雅的 IDE,为您提供真正有用的工具。其他 IDE 最好深入了解 smalltalk 并真正理解成为 IDE 意味着什么。
说了这么多好话,smalltalk 远非完美。而且我认为它最大的弱点和缺陷是缺乏一些可以帮助初学者先入为主的有趣和有用的文档。Squeak By Example 和 Pharo By Example 让我非常失望。这两本书仍然是两本极其重要的书籍,为这两个平台提供了非常有价值的见解,但文档的质量有时从平庸到糟糕。主要原因是这两本书都遵循非新手友好的方法。首先,他们让您深入了解 IDE,从第 1 章向您介绍调试器甚至单元测试!!!对我来说,这是一个很大的错误,即使我对编程远非新手,也不得不努力跟进所解释的内容。那么这本书本身,就让人有很多悬而未决的问题。例如对实例变量和类变量的解释是不够的,我更喜欢几个例子,这些例子不仅展示了如何,还展示了为什么。这本书的几个领域也充满了空白或难以理解。
当我找到这个链接http://stephane.ducasse.free.fr/FreeBooks.html并从那里下载“Smalltalk by Example”时,我的生活变得轻松多了标题,但不假设您是谁以及您知道什么。我只能强烈推荐它。我读到那里免费提供的其他书籍也非常好,我一定会最终下载并阅读所有这些。
irc.freenode.net 上的#squeak 也提供了很多帮助,那里的人一直在回答我的问题并帮助我理解。
Squeak wiki,还可以,但还不够,它的组织也不是很好,我不喜欢评论和讨论出现在 wiki 文档中。因此,对于初学者来说,文档通常可能有点困难,而且 Smalltalk 肯定不是一门容易学习的编程语言。我听到许多 smalltalker 的说法不一样,我不能更不同意,当我将 smalltalk 与 python 进行比较时,就像白天和黑夜一样。但 !一旦了解了 smalltalk ,用它进行编程就变得比我迄今为止学过的任何其他编程语言都容易得多,而且我已经学会了其中的大部分。所以最后我认为 Smalltalk 是一个明显的胜利,我也喜欢让你轻松调用任何 C 库的 FFI 库,它为 smalltalk 释放了强大的力量。
我认为您不需要先学习语言然后再学习 IDE,这实际上是一个非常糟糕的主意,因为 IDE 可以帮助您理解语言及其库以及其中的任何类型的代码。语言和IDE就像兄弟姐妹,阴阳。