当前位置:  开发笔记 > 编程语言 > 正文

你会开始学习Smalltalk吗?

如何解决《你会开始学习Smalltalk吗?》经验,为你挑选了11个好方法。

我的问题很简单!

    如果你有时间,你会开始学习Smalltalk吗?为什么?为什么不?

    你知道Smalltalk吗?你为什么推荐Smalltalk?为什么不?

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

也许有人之前做过同样的过渡?

编辑:实际上,让我对Smalltalk/Seaside最感兴趣的是下面的WebDevRadio剧集:第52集:Randal Schwartz on Seaside(除其他外)



1> ConcernedOfT..:

如果你喜欢Ruby,你可能会喜欢Smalltalk.IIRC Seaside已被移植到Gemstone VM,这是Gemstone/S OODBMS的一部分.这比Ruby有更好的线程支持,因此对于大容量系统来说它是更好的后端.这可能是一个很好的理由仔细看看它.

学习Smalltalk的原因:

这是一个非常非常好的编程环境.一旦你掌握了它(它对于习惯于C++或Java的人来说有点文化冲击),你会发现它是一个非常好的工作环境.即使是一个非常糟糕的小故事,如我使用的Old Digitalk是一个非常令人愉快的系统.很多像肯特贝克和马丁福勒这样的老牌XP和OO大师在当天都会在Smalltalk上大肆宣传,偶尔会听到他们渴望在公共场合度过美好时光(感谢Frank Shearer的引用,+1) -敏捷开发源于这个平台.

它是历史上最富有成效的开发平台之一.

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

部署很简单 - 只需将映像文件放在适当的目录中即可.

这不是一个真正的原因,但是Gang of Four Book使用Smalltalk作为他们的一些例子.

不学习Smalltalk的原因:

这是一个利基市场.您可能无法找到工作.但是,如果您生成某种.com应用程序,您拥有服务器,这可能不是问题.

它被许多人视为遗留系统.平台上的新开发相对较少(尽管Seaside似乎正在推动一些文艺复兴).

它往往不能很好地与传统的源代码控制系统一起发挥(至少在90年代早期我使用它时).这可能是也可能不是.

它有点孤立,喜欢自己玩.Python或Ruby是为从头开始集成而构建的,往往更加混杂,因此更容易与第三方软件集成.然而,各种其他更主流的系统或多或少地受到这种类型的孤立性的影响,并且似乎并未妨碍它们的使用.


传统的Smalltalk存储源代码的方式意味着它嵌入在图像和相关的源和更改文件中.你没有得到一套很好的程序文件,比如你可以得到的(比如说)C.Smalltalk系统往往需要专门的小磁场感知源控制系统,这往往是(a)专有的,(b)昂贵的(和) c)与其他一切不相容.
我一般都喜欢这个答案,但是Smalltalk可以和第三方软件一起使用.你没有看到很多API的事实并不是因为你在技术上无法集成它们,因为它是一个利基(所以人们需要更少的外部软件).这种影响的第二个原因(也不是技术性的)是小型企业更倾向于处理小型问题而不是其他不太有趣的技术.

2> Randal Schwa..:

好吧,因为你提到我的名字,我觉得我应该插话.

正如我在播客采访中所说的那样,正如我在http://MethodsAndMessages.vox.com/的博客中反复证明的那样,这是" 小屁股的一年" ".在过去的十个月里,我现在已经完成了Smalltalk的宣传,我可以看到它确实在发生.越来越多的客户转向Smalltalk和Seaside,Smalltalk供应商正在努力捕捉这种新的关注.正在计划更大规模的Smalltalk会议.正在发布更多招聘信息.正在制作更多博客文章.

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

编辑

好吧,几年后,我现在推荐Dart.这是一种由Google发起但现在由ECMA委员会拥有的优秀语言.它以node.js样式运行服务器端,但也通过转换为JavaScript在现代浏览器中运行客户端.很多好书,博客,帮助渠道,IDE支持,公共直播pastebin.我认为它肯定有腿......足以让我正在编写课件来现场或在线教授,而且我很确定我的作品中还有一两本书.Gilad Bracha是一位历史悠久的Smalltalker,是该设计的主要贡献者,所以Dart中有很多Smalltalk.


这就是为什么Stack Overflow很酷!谢谢您的回答!

3> brian d foy..:

Smalltalk是一门很好的学习语言,最棒的是它只需要一天时间就可以完成.它不仅仅是一种学术语言.人们正在构建处理数十亿美元的巨大,可扩展,可复制的应用程序.他们只是不谈论它.例如,参见GemStone和Orient Overseas Container Lines:航运业案例研究.

Seaside是学习Smalltalk的一个很好的理由,但我认为你不会发现它比Rails更好.

让我信服的是GemStone.我非常喜欢Gemstone的GLASS(GemStone,Linux,Apache,Smalltalk,Seaside).其中最重要的部分是GemStone,它可以为您处理所有对象持久性,而无需您考虑它.看到他们的一些演示和听到人们对GemStone做了什么,重新设定了我对"大应用"意味着什么的看法.

关于Rails最让我烦恼的部分是对象关系映射.这对Ruby来说没有任何意义,因为它在GLORP(处理Smalltalk的ActiveRecord),Perl或其他任何东西时都很难.将对象映射到数据库表非常痛苦.使用GemStone,考虑数据库消失,因此数据库的工作也消失了.这就像一块巨大的石头(或一群猴子)被从背上取下来.



4> 小智..:

>找不到一个不花费双腿和腿的Smalltalk开发环境

谷歌 - 免费smalltalk

Cincom Smalltalk,Squeak,GNU Smalltalk


Pharo是免费的,拥有所有现代工具..

5> Kevin Driedg..:

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

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

i < 60
   ifTrue: [ self walk ]

它有一个非常成熟的类库,具有一致性,我没见过太多的地方.所有环境中的类库(甚至商业Smalltalks)都有可用的源代码,允许您从语言的主人那里学习.编写Smalltalk时,我总是会问这个问题是如何在环境中完成的.

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

交互式调试器真正将Ruby中的Smalltalk分离出来.

Seaside是Web开发框架,并为Smalltalk带来了新的亮点.它是一个基于延续的环境,允许内部命中调试和平滑的富客户端类型开发体验(可以在单个方法中设计顶级应用程序流).它与script.aculo.us的集成已经完成,可以从Smalltalk中轻松调用.



6> Frank Sheara..:

奈杰尔,我的一句话就是:

虽然现在我用它做了很多事情已经很久了,但是我提名Smalltalk,我仍然没有遇到任何类似于能够将想法转移到计算机代码中的东西.这不仅仅是语言:它是精彩的浏览器环境,图书馆,以及编写清晰,精心设计的代码的文化,就像其他任何东西都可以产生意大利面条一样快.当JavaOne的参与者颂扬Java如何比其他任何东西都更有效率时,我需要一个棕色的纸袋.好吧,回到整理我的课程路径...... - Martin Fowler(软件开发杂志,2001年1月)

我在这里找到了.



7> blabla999..:

我建议大家学习Lisp(Scheme)或Smalltalk.

Smalltalks有很棒的IDE,一旦你克服文化冲击,你不想错过.是的,有不止一个免费的:Squeak,Dolphin,Smalltalk/X和Visualworks(非商业).

但是,Lisp在数学基础上可能更加清晰.

问候

PS:其实我建议同时学习!



8> slashmais..:

我不知道Ruby ..

Smalltalk是一种纯粹的 OO语言.如果您觉得需要真正理解OO,而不仅仅是大多数流行的'OO'语言(如C++,Java等)的模拟OO,那么我建议您使用smalltalk.

在smalltalk中,一切都是一个对象,具有属性,行为和元.在模拟中,您拥有在对象中使用的数据类型.

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


Ruby采用Smalltalk的许多想法(Matz将自由地说明这一点).在许多方面,它可以被视为"务实"(对亨特和托马斯道歉)类似Smalltalk的语言.

9> Chris Brooks..:

不同意那些认为你不会将Smalltalk用于大型应用程序的海报 - 这正是它闪耀的地方.但我也在一周内创建了相当时髦(注释小写)的原型应用程序.

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

在我的Java日工作中,我坚持使用文件,泛型,IDE就像eclipse,它们的效率低于任何ST IDE.我是唯一一次提前完成开发的ST.事实上,它是如此富有成效,我们得到了如此多的重用,我不得不被转移到另一个项目,因为我无所事事!(好吧,也许我可以花时间学习估计...)

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

克里斯布鲁克斯



10> Damir Horvat..:

我完全在你的鞋子里.我正在使用RoR并调查Smalltalk土地.这里有一些重要的利弊:

优点:

成熟稳定的环境

快速的开发周期

让你思考更多,写得更少

缺点:

需要不同的思考

仍然没有完全掌握它

我如何了解Smalltalk非常有趣.在搜索Lisp和Erlang的东西时,谷歌的结果就是这一点.有一天,我检查了它,并惊讶于良好的窗户环境.几分钟后,我发现了Aida/Web框架.我迷上了,并开始使用这个框架通过Web开发学习Smalltalk.

仍然不是那里,但它真有趣,我只是不能坐着...... :-)我又开心了.



11> daduffer..:

如果我有时间的话,不会开始学习它.为什么不?因为学习C#或Java在经济上会更有成效和更有利可图.

另一方面,如果你是一个业余爱好者,并想进行考古挖掘,那么我建议花一些时间通过研究Alan Kay来研究smalltalk的What,When,Why和how.迷人的故事和一个令人难以置信的人(毕竟,他获得了转奖).然后可能会稍微发出吱吱声以获得对语言的感觉.在此之后,您可能会重新发现对块,闭包和面向对象原则的尊重/理解.

我知道并使用Smalltalk,有大约15年的时间,仍在维护它,并且不会向朋友推荐Smalltalk.为什么不?就业是一件好事,并且不断前进.虽然你可以从Smalltalk那里学到很多东西,但是你不能轻易地将它变成有利于在这个时代就业的人.

此外,你似乎对Seaside很兴奋,我会假设Seaside/GemStone合作伙伴关系.我已经使用了GemStone很长一段时间,两者结合起来非常吸引人.我希望他们能够获得成功所需的市场份额和动力.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有