oop - 关于纯 OO 的各种问题(在没有 ide 的情况下进行设置;教程;相关书籍)

标签 oop ide smalltalk squeak eiffel

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

7年前关闭。




Improve this question




一段时间以来,我一直想学习一种纯 OO 语言,但我被他们似乎都需要 IDE 并且我找不到任何不在视频中的好教程的事实推迟了格式。

我很高兴使用 IDE 稍后 ,但我不想通过一个来学习语言。我正在寻找的是一个简单的控制台解释器或命令行编译器,例如 gcc、ghc、ghci 和 python IDLE(是的,它是一个 IDE,但它是如此的简约以至于它可能只是一个命令行解释器)。我发现当我不尝试同时使用 IDE 时,我可以更快、更好、更全面地学习一门语言。所以请不要告诉我吱吱声是唯一的方法:P

我也在寻找以文本而不是视觉呈现的教程。再一次,当我可以盯着一个页面并一遍又一遍地阅读某人的句子时,我学得更快,而不必暂停视频,将其退回 10 秒,按播放,一遍又一遍,然后再次。

我对具有不同程度的 OO 纯度的各种语言感兴趣,我计划在某个时候学习它们。任何 smalltalk 方言都让我感兴趣,Self(一个极端的面向原型(prototype)的 smalltalk 版本(非常有趣,越激进越好 imo)),strongtalk,vanilla smalltalk(或一些你能得到的尽可能 vanilla 的实现)。

我也对 Eiffel 感兴趣,我看到的代码片段让它看起来非常优雅,而且我读到它实际上非常创新(引入了代码契约(Contract)和其他类似的东西)。但是,我会优先选择来自 smalltalk 阵营的一种语言,而不是来自 Eiffel 方面的一种语言,因为从表面上看,Eiffel 似乎是 OO 和命令式编程之间的混合体。同样,我宁愿避免使用 Scala(混合 OO 和函数式)和其他混合语言。所以没有 C#、Java、C++、D、python 等等等等。我不是因为我认为它们很糟糕而拒绝这些语言,只是我开始学习纯 OO 而这些语言是混合 OO:不是真的是我要找的。

另外,有没有人可以推荐一下官方书籍?对于 smalltalk,有“蓝皮书”又名“Smalltalk-80:语言及其实现”。对于 Eiffel 来说,有“Eiffel :语言”。我之所以这么问,是因为根据我的经验,您可以通过阅读该语言作者所写的书籍(参见 K&R the C 编程语言)以及阅读一般书籍来获得很多知识。

所以是的,我的问题是:从什么纯 OO 语言开始比较好?我将如何在不使用 IDE 的情况下学习它?语言作者是否有相关书籍?

最佳答案

作为一个经历过学习 Smalltalk 过程的人(至少在相当程度上),我可以说你正在走更艰难和风险更大的道路,从某种意义上说,有些事情可能需要更长的时间才能弄清楚,或者永远不会真正做到。

但是,如果您坚持,您可以下载 GNU Smalltalk,它没有 GUI 是一种规范。它还包含用 Smalltalk 以 block 格式编写的系统的所有源代码,您可以在它们上打开文本编辑器并享受,同时慢慢阅读系统的内容。

您还可以启动任何其他 Smalltalk,例如 Pharo,并坚持使用工作区窗口 - 这相当于您的命令行解释器。

Pharo 还包括关于 Smalltalk 的 ProfStef 快速交互式教程,它结合了文本说明和评估 Smalltalk 表达式。

至于阅读,有Pharo By Example - 您可以浏览、下载或购买硬拷贝的免费书籍。

还有一个collection of free books如果您对语言的内部和细节感兴趣,我会推荐 Adele Goldberg 和 David Robson 撰写的“Smalltalk-80: The Language and its Implementation”。

已故的 David N. Smith Smalltalk FAQ 也是很好的资源。

所以,你去吧。并接受建议,并尽快向 Smalltalk IDE 屈服,因为它可以更快地理解 Smalltalk。

关于oop - 关于纯 OO 的各种问题(在没有 ide 的情况下进行设置;教程;相关书籍),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222489/

相关文章:

objective-c - Objective-C 缺少 Smalltalk 运行时特性?

64-bit - 是否有支持 64 位的 Smalltalk VM 和/或 Image?

oop - Powershell 模块/脚本应该接受对象作为输入吗?

Python 3.0 IDE - Komodo 和 Eclipse 都不稳定?

class - 类问题( super 新)

php - 如何为 Mongo 副本集配置 RockMongo

java - Eclipse 自动完成显示 'Problems During Content Assist' 弹出窗口

C++:纯虚函数 f 的参数 x 是否可以在 f 的派生类实现中替换为 x 的子类型?

oop - 业务逻辑加数据,还是两者分开?

php - 是否有必要将方法定义为 "public"?