你会开始学习Smalltalk吗?

我的问题很简单!

  1. 如果你有时间,你会开始学习Smalltalk吗? 为什么? 为什么不?
  2. 你已经知道Smalltalk了吗? 你为什么会推荐Smalltalk? 为什么不?

就我个人而言,我是一名Ruby on Rails程序员,我非常喜欢它。 但是,我正在考虑Smalltalk,因为我阅读了各种博客,有些人称Ruby为“Smalltalk Light”。 我对Smalltalk感兴趣的第二个原因是Seaside 。

也许有人做过同样的转变?

编辑:其实,什么让我最兴奋的Smalltalk /海边是WebDevRadio以下情节: 情节52:兰德尔施瓦茨在海边(除其他事项外)

如果你喜欢Ruby,你可能会喜欢Smalltalk。 IIRC海滨已被移植到gemVM,这是gem/ S OODBMS的一部分。 这比Ruby有更好的线程支持,所以对于高容量系统来说,这是一个更好的后端。 这可能是仔细研究它的一个很好的理由。

学习Smalltalk的原因:

  • 这是一个非常非常好的编程环境。 一旦你了解了它(这对习惯于C ++或Java的人来说有点文化冲击),你会发现它是一个非常好的工作环境。即使是一个非常糟糕的小窍门我使用的旧Digitalk是一个非常令人愉快的系统使用。 很多像Kent Beck和Martin Fowler这样的老XP和OO大师在当天都会在Smalltalk上切齿, 偶尔也会听到公众对美好的旧时光的向往 (感谢Frank Shearer的引用+1) -敏捷开发源于这个平台。

  • 这是历史上最有生产力的发展平台之一。

  • 有几个成熟的实现存在,并有一个惊人的大代码库。 在金融市场上,开发人员的生产力和上市时间是相当重要的。 直到20世纪90年代中期,如果你想要一个适合应用程序开发的商业支持的高级语言,它或多或less是城里唯一的游戏(可能除了LISP)。

  • 部署很简单 – 只需将图像文件放在适当的目录中即可。

  • 不是一个真正的原因,但“ 四书帮”使用Smalltalk就是其中的一些例子。

不学习Smalltalk的原因:

  • 这是一个利基市场。 您可能无法find工作。 但是,如果您正在生产某种.com应用程序,而您拥有服务器,则这可能不是问题。

  • 它被许多人视为遗留系统。 这个平台上的新开发项目相对较less(尽pipeSeaside似乎正在推动一些复兴)。

  • 它往往不能很好地与传统的源代码控制系统(至less在90年代初,当我使用它时)发挥作用。 这可能也可能不是这样。

  • 它有点孤独,喜欢自己玩。 Python或Ruby是为了从头开始集成而构build的,并且更容易混淆,因此更容易与第三方软件集成。 然而, 各种其他更主stream的系统都会受到这种不同程度的偏见,而且似乎并不妨碍它们的使用。

那么,既然你提到了我的名字,我觉得我应该参加。

正如我在播客采访中所说的那样,正如我在我的博客http://MethodsAndMessages.vox.com/上一再表明的那样,这是“小发明;的一年 ”。 在过去的十个月中,现在已经做了Smalltalk的倡导,我可以看到它真的发生了。 越来越多的客户转向Smalltalk和Seaside,而Smalltalk供应商都在努力捕捉这一新的关注。 更大的Smalltalk会议正在计划中。 更多的招聘信息正在发布。 正在撰写更多博客文章。

如果你今天转向Smalltalk,你并不孤单。 还有很多其他人也在那里。

编辑

好吧,几年后,我现在推荐使用Dart 。 这是一个伟大的语言起源于谷歌,但现在由ECMA委员会拥有。 它运行node.js风格的服务器端,而且在现代浏览器的客户端通过转换为JavaScript。 很多好书,博客,帮助渠道,IDE支持, 公众活贴 。 我认为这绝对是有足够的腿,所以我正在写课件,现场或网上教,现在我确信有一两本书在我的作品。 而旧式的Smalltalker Gilad Bracha是devise的主要贡献者,所以在Dart中有很多Smalltalk。

Smalltalk是一门很好的学习语言,最重要的是它只需要一天的时间就可以完成。 这不仅仅是一门学术语言。 人们正在构build巨大的,可扩展的,可复制的应用程序,处理数十亿美元。 他们只是不谈论这一点。 例如,参见“ gem与东方海外集装箱运输:航运业的案例分析” 。

Seaside是学习Smalltalk的好理由,但是我认为你会发现它比Rails好得多。

说服我的东西是gem。 我非常喜欢gem的玻璃(GemStone,Linux,Apache,Smalltalk,Seaside)。 那个杀手部分是GemStone,它可以处理所有的对象持久化,而不用考虑它。 看到他们的一些演示和听到人们在做什么与gem重置我的想法是什么“大应用”的意思。

最让Rails感到迷惑的部分是对象 – 关系映射。 这对于Ruby来说并没有什么不同,因为它在GLORP(处理ActiveRecord for Smalltalk)或Perl或其他任何方面都很困难。 将对象映射到数据库表是痛苦的。 用GemStone,关于数据库的想法消失了,所以数据库的工作也消失了。 这就像一块巨大的石头(或一群猴子)从我的背上脱落。

学习Smalltalk将从发明面向对象(Alan Kay)的angular度为您提供面向对象软件开发的基础。 重叠窗口环境的想法来自于Smalltalk。

学习Smalltalk的一个绊脚石就是它是一个消息传递系统,它有一个奇怪的stream程控制语法,如:

i < 60 ifTrue: [ self walk ] 

它有一个非常成熟的类库,具有一致性,我没有看到太多的地方。 所有环境下的class级图书馆(甚至是商业性的小型图书馆)都有可用的资源,可以让你从这门语言的大师那里学习。 在编写Smalltalk时,我经常会问这个问题在环境中是如何完成的。

Smalltalk通常在图像中实现,该图像是系统中所有对象的实时环境。

交互式debugging器真的从Ruby中分离出Smalltalk。

Seaside是Web开发框架,给了Smalltalk一个新的聚光灯。 这是一个基于延续的环境,可以进行内部debugging,并且具有顺利的Rich Clienttypes开发经验(顶级应用程序stream可以用单一方法devise)。 它与script.aculo.us的集成已经完成,可以在Smalltalk中轻松调用。

>无法find一个既省钱又省力的Smalltalk开发环境

谷歌 – 免费的小游戏

Cincom Smalltalk,Squeak,GNU Smalltalk

奈杰尔,我有一个引用是这样的:

虽然现在已经有很长一段时间了,但是我提名Smalltalk,我还没有find任何能够将想法转化为计算机代码的东西。 这不仅仅是语言:这是一个非常棒的浏览器环境,图书馆,以及编写清晰,devise良好的代码的文化,就像其他任何东西都可以用来制作意大利面一样。 当JavaOne的参与者赞赏Java比其他产品更有效率时,我需要一个牛皮纸袋。 噢,回到我的课程路线上去吧 – Martin Fowler(软件开发杂志,2001年1月)

我在这里find了

我不知道Ruby

Smalltalk是一种纯粹的 OO语言。 如果你觉得需要真正理解面向对象,而不仅仅是最stream行的“面向对象”语言(如C ++,Java等)的模拟面向对象,那么我build议你玩Smalltalk。

在小说中,一切都是一个对象,具有属性,行为和元。 在模拟中,您可以使用在对象中使用的数据types。

我会说玩它,你只会受益。

会不同意那些认为你不会在大型应用程序中使用Smalltalk的海报 – 这正是它发光的地方。 但是我也在一周之内创build了相当常规(注意小写)的原型应用程序。

我从92年开始学习了OO,非常高兴我这么做了。 这给了我一个OO的真实背景。 在课堂上思考。 没有types。 ST真正重视消息。 如果你想知道的东西发送一个对象的消息,并得到答案。 恕我直言,精神和IDE真的鼓励你做你的耦合和凝聚力的正确的事情。

在我的Java日常工作中,我遇到了一些文件,generics,IDE的eclipse,这些都比ST IDE低很多。 我只有在我提前完成开发的时候才使用ST。 事实上,它的效率非常高,而且我们得到了很多的重用,所以我不得不把它搬到另外一个项目上,因为我什么也没做! (好吧,也许我可以花时间学习估计…)

下载吱吱,找一本好书,玩。 唯一的缺点是,如果你的日常使用Java或C#,你会希望你可以使用ST。 你早点回家

克里斯布鲁克斯

我build议大家学习Lisp(Scheme)或Smalltalk。

Smalltalks有美妙的IDE,你不想错过一旦你的文化冲击。 是的,有不止一个免费的:Squeak,Dolphin,Smalltalk / X和Visualworks(Non-Comercial)。

不过,Lisp在math基础上可能会更清晰。

问候

PS:其实我build议学习两个!

我完全在你的鞋子里 我正在使用RoR和调查Smalltalk土地。 以下是我认为重要的一些优点和缺点:

优点:

  • 成熟和稳定的环境
  • 快速的开发周期
  • 让你思考更多,写得更less

缺点:

  • 需要不同的思考
  • 还是不太明白

如何了解Smalltalk是非常有趣的。 当searchLisp和Erlang的东西的时候,这个东西就是在Googlesearch结果中popup来的。 有一天,我检查出来,很惊讶与良好的Windows环境。 几分钟后,我发现了Aida / Web框架。 我迷上了,并开始通过这个框架的web开发来学习Smalltalk。

仍然不是那里,但它是如此有趣,我只是不能坐在… :-)我又开心了。

如果我有时间,就不会开始学习。 为什么不? 因为学习C#或Java会更有效率,更有利可图。

另一方面,如果你是一个业余爱好者,并且想进行考古挖掘,那么我build议花一些时间,通过研究艾伦·凯(Alan Kay)来研究什么,什么时候,为什么以及如何从小事做起。 迷人的故事和一个令人难以置信的人(毕竟,他赢得了转向奖)。 那么也许玩一点吱吱声来得到一种语言的感觉。 在此之后,您可能会有一个新发现的方块,封闭和面向对象原则的尊重/理解。

我知道和使用Smalltalk,已经有15年了,还在维护它,并不会向朋友推荐Smalltalk。 为什么不? 就业是一件好事,并不断得到。 虽然你可以从Smalltalk学到很多东西,但是你不能轻易地把它变成这个时代有用的工具。

另外,你似乎对Seaside感到兴奋,我会承担Seaside / GemStone的合作关系。 我已经使用gem相当长的一段时间,两者在一起是非常有吸引力的。 我希望他们能够获得成功所需的市场份额和动力。

Smalltalk:获取信息: http : //www.smalltalk-resources.com/Smalltalk-Getting-the-Message.html

别! 如果你真的开始学习它,你可能不想再编程其他东西了。

这可能不是真的,如果你是一个lisp程序员。

我在第一个研究生学院级别的面向对象编程课程(大约1988年)中被教授Smalltalk。 老师认为最好先开始一个“纯粹”的OO语言,然后再进入更stream行的语言(我们在学期末做了一些C ++)。

通过这种方法,最好还是从纯粹的面向对象开始,尽pipe现在我们有Java和C#,它们都是“接近纯粹的”,它们可以忽略它们的非面向对象特性,并将自己限制在语言的Pure-OO子集。

如果你想更好地理解极限编程(甚至是Scrum),我会说是的

为什么不耐烦的Java程序员需要学习Smalltalk:

http://www.dafydd.net/archive/2010/why-smalltalk-isnt-just-another-language/

我已经是一个软件工程师已经有好几年了。 我听说有人曾经提过Smalltalk几次,自从1980年以来Smalltalk就已经出现了,但它是那些似乎没有成为软件主stream的语言之一。 有点像目标C,CLIPS,PL / I等 – 你可能听说过,但大多数人从来没有编程的东西。

我可能不会花时间学习Smalltalk,除非我需要一个特定的工作。 几年前我简单地介绍了一些Smalltalk教程和示例,看起来它对面向对象编程的某些方面(如消息概念看起来很酷)有一些明显的优势。 但令人遗憾的是,这不是主stream,似乎也没有获得太大的动力。

绝对,学习Smalltalk! 这是2015年,由于Pharo ,Smalltalk再次上升。 Pharo是免费的。 Pharo正在迅速发展成为一个强大的企业工具。 在4.0版本,很快就会达到5.0,在短短四年内已经成熟了很多!

然后是Amber ,这是Smalltalk的网页。 这也是免费的,而且正在迅速发展。

尽pipeSmalltalk的声誉 ,这不是你父亲的Smalltalk。 现代Smalltalk是令人兴奋和有前途的。

Smalltalk的工作确实还不够丰富。 但是,如果你们有足够的能力聚集到Smalltalk的新浪潮,那么这个行业将会适应这个潮stream,我们将会看到更多的业务采用Smalltalk。 问题是,你有远见吗?

这个线程对我来说已经变得非常实际了。 我正在计划将软件迁移到networking应用程序。 这是一个基于数据库的软件。 我特别检查的select1)铁轨2)海边

如果我能把gem/ S的数据作为数据库,我也会考虑这个。 所以对我来说,这意味着我必须学习比以前更好的Smalltalk。 因为这可能是我未来15年的工作。 你会(也不应该)用你不喜欢的软件工作那么久;-)。 我有印象gem/ S是“杀手”应用程序之一。 但对象的持久性仍然是一个非常困难的领域….

1) 是的! 学习一门语言总是很好的。 如果你要学习一门语言,使它成为一个能够轻松快速学习的强大有影响力的语言。

Smalltalk仍然是学习面向对象概念的卓越语言和环境。

这是所有的对象,一路下降。 这使得一个非常一致的工作方法。

整数是类整型的实例。 string是字符对象的集合。 类是它们定义的类的单例实例对象。

控制结构通过将消息发送给布尔类的实例来工作。

即使匿名方法(代码块,又名块)是对象。

一切都通过发送消息给对象来完成。 语法可以安装在明信片上。

在Smalltalk中概念及其实现的清晰意味着您可以开发直接转换为Java,Ruby和C#的思维方式。 我期望Python也是如此。

为了使概念清晰起见,英国一所主要的大学使用Smalltalk来每年培训五千名面向对象计算的人。

Squeak 5刚刚发布。 新的Cog / Spur虚拟机获得了主要的性能提升,具有渐进式垃圾收集function。

Pharo 4有一个可爱的清洁的桌面主题。 下一个版本Pharo 5即将发布。 它将转向使用Cog / Spur虚拟机,它将在发行版中有大约5000个类,并且可以通过configuration浏览器工具从网上随时获得额外的类包。

即使在第一代树莓派上,吱吱声5也是高性能的,在新的5美元的树莓派零上,嘎吱嘎吱的声音快了将近50%。 99美元购买树莓派2,屏幕和案例 – 运行一个成熟,function齐全的IDE。

在Smalltalk(例如Naiad和Spoon)中正在进行统筹的,分布式的面向对象系统的前沿研究。

一些世界上最大的企业数据库运行在Smalltalk上,包括跟踪全球60%的集装箱和世界上最大的银行的交易系统。

您可以使用Smalltalk作为一种超强动力的CoffeeScript,使用Amber Smalltalk编写并转换为JavaScript,并在浏览器中运行。

Squeak,Pharo和Amber都是免费的,开源的,开放许可的语言和环境。

Squeak和Pharo提供一次写入,可在MacOS,Windows和Linux的任何地方运行。 (也可能是RiscOS)。

Dolphin Smalltalk的目标locking在原生的Windows外观上,并且允许您编译完成的工作的封闭的.exes,以便分发给最终用户。 由供应商进一步开发海豚已停止,但它是完全function,并像所有的Smalltalks,旨在大规模扩展。 (我提到Pharo现在有5000class,而Squeak的是3000class?Pharo是Squeak的一个分支3.9)

**有一个如何安装和启动Squeak,Amber,Pharo,Cuis和Dolphin的指南: http ://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk- 向上和running.html

Seaside web框架运行在Squeak和Pharo上。 这是一个非常成熟的工具,就像更传统的AidaWeb框架一样。

VisualAge,VisualWorks和Gemstone都提供了企业级的健壮系统。 gem提供了一个无限可扩展的对象数据库与事务和持久性。

2)是的 – 我已经使用它。

我通过开放大学了解到了这一点,并立即在Ruby中生产(Pickaxe书和我的图书馆参考资料)。 它对Java和Xerox Moo-code的帮助非常大。

我刚刚回来编写应用程序来控制pipe理和分发响应式,大规模多平台的移动应用程序。

我希望很快我会用Amber重写我的JavaScript移动应用程序。

我真的不知道你在找什么

如果你正在寻找一种不同的语言来写,我会认为这将在很大程度上取决于可用的库。 我既不认识Ruby,也不认识Smalltalk,但似乎有可能最有效的方式来编写Ruby on Rails – 各种应用程序可能不是Smalltalk。

如果你想了解Ruby背后的想法,这可能是一个非常好的举措。 我没有任何量化的东西,但是如果我知道的不仅仅是工具,如果我知道它们背后的想法或者它们是如何工作的,我总是感觉更好的是使用工具(比如语言系统)。

如果你想学习不同种类的面向对象的语言,你可能想要学习Smalltalk(如果它与Ruby有很大的不同),比如Java或者C ++,也许还有Common Lisp Object System。

如果你只是想学习不同的东西,Smalltalk可能是一个不错的select。 我还build议使用Common Lisp,其他人无疑会有其他的build议(你现在可以得到一个好的Forth系统吗?)。

是的,我对它感兴趣。 试过一次就开始了,但是找不到一个不费钱的Smalltalk开发环境。