为什么使用Ruby代替Smalltalk?[关闭]


121

Ruby正变得越来越流行,很大程度上是受Ruby on Rails的影响,但感觉它正在青春期中挣扎。Ruby和Smalltalk之间有很多相似之处- 磁悬浮证明了这一点。尽管语法更不寻常,Smalltalk具有Ruby的所有(如果不是更多的话)面向对象的美。

根据我的阅读,Smalltalk似乎击败了Ruby:

看起来Ruby只是在重新发明轮子。那么,为什么Ruby开发人员不使用SmallTalk?Ruby有Smalltalk没有什么?

记录一下:我是Ruby的人,几乎没有Smalltalk的经验,但是我开始怀疑为什么。


编辑:我认为GNU Smalltalk解决了脚本编写的问题。据我了解,这使您可以在常规的旧文本文件中编写smalltalk,而不必再使用Smalltalk IDE。然后,您可以使用以下命令运行脚本

gst smalltalk_file

47
因为每个人都还在等待“ Smalltalk on Snails”?
Mark Rushakoff 09年

10
从技术上讲,它被称为“ Seaside”(www.seaside.st),并且可以在具有JIT编译器的Gemstone VM上快速运行。Ruby到Gemstone VM的端口也称为Maglev。
ConcernedOfTunbridgeWells,2009年

3
在经历了以下所有这些评论之后,作为过去5年的红宝石粉丝,现在我很想学习asap的
即时交谈

1
GNU Smalltalk几乎是唯一不与GUI硬耦合的免费实现。我认为这仍然很关键。
2013年

“分布式源代码管理”链接已损坏。
皮奥韦赞

Answers:


88

我比Ruby用户更像是一个Pythonista,但是对于Ruby来说,出于相同的原因,同样的事情也适用。

  • Smalltalk的体系结构有些孤立,而Python和Ruby是从头开始构建的,以促进集成。Smalltalk从未像Python和Ruby那样真正获得过混合应用程序支持,因此“ smalltalk作为嵌入式脚本语言”的概念从未流行。

    顺便说一句,Java并不是与其他代码库进行交互的最简单的方法(JNI非常笨拙),但这并没有阻止Java赢得人们的关注。IMO的接口参数意义重大-易于嵌入并没有损害Python-但此参数仅占中等分量,因为并非所有应用程序都需要此功能。另外,Smalltalk的更高版本确实解决了孤立性问题。

  • 大多数主要的Smalltalk实现(VisualWorks,VisualAge等)的类库很大,并且因其陡峭的学习曲线而享有盛誉。Smalltalk中的大多数关键功能都隐藏在类库中的某个位置,甚至包括诸如流和集合之类的基本内容。对于不熟悉它的人来说,语言范例也给文化带来了冲击,浏览器呈现的程序的零碎视图与大多数人习惯的完全不同。

    总体效果是,Smalltalk因难以学习而获得了(应该得到的)声誉。要成为一名真正的精通Smalltalk程序员,需要花费大量时间和精力。Ruby和Python更容易学习,并且可以使新程序员快速适应。

  • 从历史上看,主流的Smalltalk实现非常昂贵,并且需要特殊的硬件才能运行,这可以从1983年发布的net.lang.st80中看出。Windows 3.1,NT,'95和OS / 2是主流硬件上的第一个大众市场操作系统,能够通过良好的本机系统集成来支持Smalltalk实现。以前,Mac或工作站硬件是能够有效运行Smalltalk的最便宜的平台。一些实现(特别是Digitalk)很好地支持PC操作系统,并且确实获得了一定的吸引力。

    但是,OS / 2从未如此成功,Windows直到1990年代中期才获得主流认可。不幸的是,这恰恰与Web作为平台的兴起以及Java背后的大量营销推动相吻合。Java在1990年代后期夺走了大多数人的心血,使Smalltalk变得有些混乱。

  • Ruby和Python在更常规的工具链中工作,并且没有与特定的开发环境紧密耦合。尽管我使用的Smalltalk IDE足够好,但我还是使用PythonWin进行Python开发,这在很大程度上是因为它有一个不错的编辑器,带有语法突出显示功能,而且不会失足。

    但是,Smalltalk被设计为可与IDE一起使用(实际上,Smalltalk是原始的图形化IDE),并且仍然具有一些其他系统无法复制的出色功能。尽管我不能代表Ruby,但是使用高亮和“显示它”测试代码仍然是我在Python IDE中从未见过的非常不错的功能。

  • Smalltalk加入Web应用程序聚会有些晚了。诸如VisualWave之类的早期工作从未取得过圆满成功,直到Seaside面世之后,体面的Web框架才被Smalltalk界所接受。同时,Java EE拥有完整的接受生命周期,从狂热的狂热者推广它到最终变得无聊,然后转向Ruby;-}

    具有讽刺意味的是,Seaside开始在业内人士中引起广泛的关注,因此我们可能会发现Smalltalk在重新流行起来。

话虽如此,一旦您确定了如何驱动Smalltalk,它就是一个非常好的系统。


1
我认为类库的观点是不合时宜的。我知道Smalltalk和Ruby以及类库都非常相似。我学过任何问题,我都会学到另一个。首先完成了更多的红宝石,这使Smalltalk库变得更容易学习。在大多数地方,它们非常相似。我认为关于类库或语言本身的任何事情都不会使Smalltalk比Ruby困难。
肖恩·艾伦

2
由于类库的大小,VW和VA Smalltalk过去都以陡峭的学习曲线而闻名。这在当时已经被广泛认可。我从Digitalk Smalltalk / V的旧DOS版本学到了Smalltalk,后者的类库要小得多。该手册的大小与PP Ruby书籍的大小相同,并且与该书一样,类库参考大约占总页数的一半。但是,VW和VA的类库要大得多。
ConcernedOfTunbridgeWells,

79

当我早上离开家去上班时,我常常为做出左转或右转的决定而苦恼(我住在街道中间)。无论哪种方式,我都会到达目的地。一种方法将我带到高速公路,这可能取决于交通情况,使我最快地到达办公室。我至少在部分时间内可以非常快地开车,而且我很有可能在工作中看到一两个漂亮的女孩:-)

另一种方法使我可以沿着一条迷人的,多风的小路行驶,并覆盖完整的树木。这条路非常有趣,并且两种方法绝对更有趣,尽管这意味着我比上高速公路要晚到办公室。每种方式都有其优点。在我急忙的日子里,尽管我可能会遇到交通问题,但我通常会走高速公路,而且我也增加了发生事故的机会(如果我不加急的话)。其他日子,我可能会选择树木繁茂的小路,沿着车道行驶,欣赏风景,并意识到自己迟到了。我可能会尝试加快速度,增加自己获得机票或造成事故的机会。

两种方法都不比另一种更好。他们每个人都有自己的利益和风险,每个人都会使我实现自己的目标。


5
哪一个是州际公路,哪个是有树的大风小路?哈哈
Charlie Flowers

9
查理(Charlie):那就是让它成为禅宗的原因:)
xofz

32
哪种语言的女孩更漂亮?
Tin Man 2010年

25

我认为您的问题有点遗漏了重点。 不应该选择,都应该学习它们!

如果您确实可以选择下一个框架(虚拟机,基础架构),那么您需要决定使用什么框架,并可以从应用程序的意图角度出发询问正反的具体问题。

我曾经用过smalltalk(喜欢它)和ruby(喜欢它)。

在家里或开源项目中,我可以使用喜欢的每种语言,但是在工作时必须采用。

我开始使用ruby(在工作中),因为我们需要一些脚本语言,它们在solaris,linux和windows(98,2000,xp)下表现大致相同。当时,Ruby不为普通人所知,并且不存在任何障碍。但是,很容易将其出售给所有相关人员。

(为什么不使用python?是真的吗?我曾经花了一周的时间寻找一个错误,该错误是在终端将我的空间转换为选项卡并且意图搞砸了时发生的)。

因此人们开始越来越多地用红宝石编码,因为它是如此放松,令人愉悦,而不是天上的乌云。

保罗·格雷厄姆总结

的确,大多数人不会仅仅根据自己的优点来选择编程语言,这是事实。大多数程序员都被告知别人使用哪种语言。

为了吸引黑客,一种语言必须能够很好地编写他们想要编写的程序。也许这令人惊讶,这意味着它必须适合编写一次性程序。

当在Lisp土地上时,尝试用smalltalk代替LISP

Ruby的库,社区和发展势头都不错

因此,如果LISP仍然比Ruby更强大,为什么不使用LISP?LISP中编程的典型反对意见是:

  1. 没有足够的库。
  2. 我们不能雇用LISP程序员。
  3. 在过去的20年中,LISP一无所获。

这些并不是压倒性的反对意见,但无疑值得考虑。

现在,在功能强大的语言和流行语言之间进行选择后,选择功能强大的语言可能非常有意思。但是,如果权力差异很小,那么受欢迎具有各种不错的优势。在2005年,在选择LISP而不是Ruby之前,我会经过漫长而艰难的思考。如果我需要优化的代码或充当成熟编译器的宏,我可能只会这样做。


4
Ahem,“过去的20年”?!?!我认为您的意思是“过去51年”。:-)
DigitalRoss

1
@DigitalRoss-我要20;LISP实际上曾经在某些方面相当大,但是(尽管有ViaWeb)自1980年代以来还没有真正出现过新的“杀手级应用”。但是,基于LISP的技术实际上在60年代,70年代和80年代获得了大量的投资。人们真的以为LISP已经走了很长时间了。
ConcernedOfTunbridgeWells,2010年

2
@DigitalRoss是的,如果您忽略诸如连续性,多重方法,宏,尾部调用优化之类的事情,那将不在我的头上。
Frank Shearar 2011年

我总是觉得这种说法不太令人满意。没有最好的语言,任何软件工程师都可以执行lisp,scheme,ruby,php或c或其他任何操作。如果他不能,他可以在2周内学会它。语言只是一种工具。您不需要睡觉。
Edgar Klerks


19

的确,语言非常相似。浅层的解释是将Ruby称为Smalltalk封面乐队。更为合理的解释是,Smalltalk的封闭系统将其隔离,而Ruby参与Unix生态以及习惯了在阳光下使用每种语言的功能,这使它具有无限柔和的采用曲线,并且可以轻松地与Git这样的kickass工具集成。

吉尔斯·鲍凯特(Giles Bowkett)


17

猜猜谁这么说的?(引号很接近,也许不准确):“我一直以为Smalltalk会击败Java。我只是不知道在这样做的时候是否会称其为'Ruby'。”

击鼓 ....

...

答案是……肯特·贝克



15

Ruby有Smalltalk没有的什么?

  • 主要平台(IronRuby和jRuby)当前提供的大量支持,丰富了库的集合
  • 像戴夫·托马斯(Dave Thomas)这样的福音传教士,多年来一直在全国巡回宣讲他们的语言福音。我在Java会议上见过Dave,他说他不懂Java,而且他更喜欢Ruby。
  • 书架上当前强劲的房地产
  • Ruby的创建者说过,他考虑了程序员:Ruby的语法似乎具有Zen的吸引力。很难确定,但似乎可以刺激粉丝。
  • Giles 这样富有创造力的动态演示,而这一引起了广泛关注的演示

我认为你的观点是正确的。就像一位朋友曾经说过的那样,相对于Smalltalk,Ruby可能是“新瓶中的旧酒”。但是有时候新瓶子很重要。葡萄酒必须在正确的时间放置在正确的位置。


您的第一个要点已关闭。JVM和.NET VM支持意味着对Smalltalk的废话,因为每个实现都已经在VM上运行了(否则它们又如何在多个操作系统上很好地运行,对吗?)Ruby的语法比Smalltalk的语法复杂。很难确定这是问题的一部分;)

1
是的,为什么某些人可以使用jruny / ironruby的部分原因是ruby vm的相对不成熟,但是他们可能想要使用.net / jvm的一些非常不错的库,而这些库在其他地方都没有等效的功能,此外对于某些企业来说,与其Java / C#代码库进行网格划分要容易得多。
罗曼·泰切

2
当然,我发现珍惜“书架上当前强大的房地产”是对复杂语言的一种惩罚,而这种语言没有活泼,动态的环境。当我用C ++编写代码时,我的书架上堆满了书。转到Smalltalk(通过Ruby)之后,我不会再错过他们了。依靠IDE本身提供大多数指导,我很少将图像留给Google进行快速搜索,并通过《权力的游戏》系列使某些架子上的房地产
变得高级

14

打败我。我花了一年的时间检查Ruby并做一些小项目,看看我是否喜欢它。我猜我是Smalltalk的拥big者,因为每次我坐下来与Ruby一起工作时,我都会叹息,并认为“我真的希望在Smalltalk中做到这一点”。最后我屈服了,回到了Smalltalk。现在,我更快乐。更幸福是更好。

当然,哪个会问“为什么?”。没有特别的顺序:

  1. 因为IDE破坏了我曾经使用过的其他工具。这包括从IBM大型机上的ISPF到Microsoft的Visual(。*)的众多平台,包括诸如Visual Basic 4-6,Visual C ++(各种形式),Borland的Turbo Pascal和其后代(例如Delphi)之类的东西,以及DEC上的东西。字符模式和X-Windows下的计算机。
  2. 因为图像是一个美丽的生活场所。我可以在那里找到想要的东西。如果我不知道该怎么做,我知道图像中的某个地方就是我要尝试做的一个例子-我要做的就是狩猎直到找到它。它是自我记录的-如果您想查看某事物的工作方式的详细信息,只需在感兴趣的类上打开浏览器,查看该方法,然后它便起作用。(好的,最终您会遇到一种称为原始的东西,然后是“这里有龙”,但是通常从上下文可以理解)。在Ruby / C ++ / C中可以做类似的事情,但这并不容易。容易更好。
  3. 语言是最小且一致的。三种消息-一元,二进制和关键字。这也描述了执行的优先级-首先是一元消息,然后是二进制消息,然后是关键字消息。使用括号可以解决问题。荡然无存的语法,实际上-这一切都是通过消息发送完成的。(好吧,分配不是发送消息,而是一个运算符。“返回”运算符(^)也是如此。块用方括号对([]括起来)。里面可能还有一个或两个其他“魔术”位,但该死的...)
  4. 块。是的,我知道,它们存在于Ruby(和其他语言)中,但是当真,如果不使用它们,就无法在Smalltalk中进行编程。您被迫学习如何使用它们。有时被强迫是件好事。
  5. 面向对象的编程无需妥协-或其他选择。您不能假装自己在“做对象”,而仍然在做同样的事情。
  6. 因为它将伸展您的大脑。我们已经习惯的舒适构造(if-then-else,do-while,for(;;)等)不再存在,因此您必须学习新知识。以上(以及更多)都具有等效功能,但您将必须学习以不同的方式思考。不同的是好。

另一方面,这可能只是自从大型机统治地球以来就一直在编程的一个人的杂物,我们不得不走五英里才能经历暴风雪,上下坡道以及计算机使用甜甜圈来存储内存。我对Ruby / Java / C / C ++ /没有什么反对,它们在上下文中都很有用,但是给我Smalltalk还是给我...好吧,也许我应该学习Lisp或Scheme或... :-)


1
我以为问题是“ Ruby拥有Smalltalk没有什么?”
毛里西奥

1
@Mauricio,然后@Bob回答:“打败我。”
systemovich 2010年

1
出色地投入,喜欢它!为什么不能什么是堆好,尽管是不那么受欢迎?如果您不同意,我敢说您不会得到Smalltalk ;-)
Amos M. Carpenter

@aaamos-谢谢。我怀疑Smalltalk不受欢迎的原因是#6,在较小程度上是#5。小话不是您妈妈的“语法相同”的地方-有所不同。例如,如果您知道C,那么C ++,Java和C#都会让您感到很舒服。Smalltalk行为的“如何”和“为什么”可能有些令人费解。(我会大胆地说,如果一个新Smalltalker 觉得自己的头是越来越扭曲了,无论他们是如此的辉煌,他们立即grokked,或者他们只是没有得到它。是的,我不知道如何“的辉煌”的感觉:-)。
鲍勃·贾维斯

您是否尝试过使用pry(和插件)进行调试,以及通过热重载已保存的文件进行实时编码?这是我经历过的最好的编程。
Rivenfall '16

11

Smalltalk:人们转发ifTrue:[思考] ifFalse:[不思考]

Ruby:人们要向前想,除非向后想

1)Smalltalk通过消息进行的类似于RPN的控制流就像Lisp一样-既普通又酷,但是却使人们感到奇怪。

2)Ruby允许人们使用惯用的语言编写代码- 除非有理由不要这样做。

更新重写了Smalltalk示例,使其实际上是更合法的代码。


4
英语可能是表达编程指令的最糟糕的方法之一。我的意思是,这会引起人们之间的混乱,更不用说计算机了。等等吗?谁应该等等?什么?此外,您的红宝石代码没有任何意义,也是无效的。应该是:Ruby:除非people.think_backwards否则是people.think_forwards?而SmallTalk应该是:Smalltalk :(人们在思考吗?)ifTrue:[人们在思考什么?]
donalbain 2011年

2
您还可以在内核方法类别中的BlockClosure类中添加一个名为exclude:aBlock的方法,该方法将评估aBlock和ifTrue:评估调用块。
里卡多·德西略

3
@donalbain,我并不是说这些是文字编程语句,而是指示语句顺序。当我写我的回应时,我认为那是相当明显的。
Andy Dent的

1
@donalbain非常正确,实际上它存在。更多类似Ruby的控制流位于github.com/randycoulman/SuffixConditionals。安迪(Andy),您的代码中有一个错误-落后的人们不认为,所以您应该发送#ifFalse:;-P
肖恩·德尼格里斯

Smalltalk的行销不当:语法和图片都很怪异。Ruby比较普通,但语法也不错。Java的类型和编译可以确保客户端的安全。如果它不影响我自己作为程序员的“营销”,我不会介意学习和使用怪异的语法。
Rivenfall '16

8

Ruby是当前的流行语。与使用70年代开发的语言相比,现在销售使用它构建的软件要容易得多。


它“在70年代开发”的事实与开发的难度无关。
gracchus 2012年

3
我的评论与发展无关。
coder1 2012年

3
抱歉,我累了时往往会误读,所以我必须在假期里向被欺负的人道歉。
gracchus 2012年

8

社区!Ruby(尤其是Rails)拥有如此强大的社区。当与Smalltalk纠缠在一起时,似乎没有太多关于Smalltalk的屏幕截图,文章,博客文章等。


7

您在第一行中回答了这个问题:“ Ruby越来越流行”

  • 很多有趣的基于Ruby的模块,项目等。
  • 如果您在使用Ruby做某事时遇到麻烦,那么在某个地方寻求帮助将很简单。
  • Ruby现在已安装在许多计算机上(OS X,许多Linux发行版中都默认包含Ruby ,并且Windows也有不错的安装程序)-我没有看到在我使用过的任何计算机上都默认安装有Smalltalk。

我想说一种语言是否优于另一种语言是无关紧要的。例如,PHP可能不是有史以来“最佳”语言,但我仍然会考虑在Ruby on Rails上使用它(一种“更好”的工具来创建网站),因为它是如此普遍。

基本上,某种语言的优点和缺点远没有它周围的所有事物(即社区)重要。


7

Ruby(或任何其他语言)比Smalltalk(或任何其他语言)更受欢迎,因为我们生活在一个混乱的宇宙中。以机智:

  • 戴夫·托马斯(Dave Thomas)自己说:“在“如何在十分钟内建立博客”的视频之后……Ruby从一种不错的小众语言变成了一种您在其中编写Rails应用程序的语言”(Ruby Conference 2010主题演讲)。
  • 早期的Smalltalk供应商收费过高
  • Smalltalk,因为它是30年前发明的(比它的时代早),所以在许多人看来就像是一种古老的“死”语言(例如FORTRAN)
  • 公司认为Smalltalk具有竞争优势,因此无法利用

尽管这些语言在OO功能中相似,但是Smalltalk的杀手级优势是实时,开放的环境(被误解的“图像”)。在您查看了Smalltalk中的此编程示例之后,辩论结束了。


5

对我而言,与其说Ruby有什么,不如说Ruby没有什么。而它所没有的就是对VM和完整环境的需求。

Smalltalk非常棒-在这里我学习了OO概念,但是为了易于使用,我选择了Ruby。我可以在我最喜欢的编辑器中编写Ruby代码,然后从命令行运行它。

因此,对我而言,这就是我选择Ruby而不是Smalltalk的原因。


但是,请继续学习Smalltalk。
西蒙·

根据我的编辑:GNU Smalltalk允许您使用自己喜欢的编辑器并从命令行运行。
两位傻瓜

是的-谢谢-看看并下载了副本!
西蒙·

2
嗯,它也没有很好的Web框架。Rails还可以,但是它不在海边
Stephan Eggermont 2009年

3
任何smalltalk平台都允许您在自己喜欢的编辑器中编写smalltalk代码。但是,如果您想与现实世界断开连接,那是您的选择。只知道这样做会损失大约90%的生产力。
伊戈尔·斯塔森科

5

我认为与Ruby一起工作了一段时间的每个人都认识到它对Smalltalk的深深欠债。作为这些人之一,我对Ruby over Smalltalk感到满意吗?我认为从严格的语言角度来看,这是糖。Ruby故意是一种非常语法化的语言,而Smalltalk是一种非常语法化的语言。Ruby本质上是带有Perlish语法糖的Smalltalk对象模型。我碰巧喜欢糖,并发现它使编程更有趣。


1
Ruby与Smalltalk具有不同的对象模型。我会说“受...影响”,但不尽相同。您可以以基于原型的方式编写ruby程序,而无需创建新类。尽管这很不寻常,但是Smalltalk不支持这一点。
达菲德·里斯

2
我喜欢smalltalk,因为我可以在需要时发明和使用自己的语法糖。如果您已经可以用最少的语法完成所有操作,则不需要糖。
伊戈尔·斯塔森科

5

使用Ruby,您可以轻松找到工作。尽管我真的很喜欢Smalltalk,但是要进入Smalltalk领域几乎是不可能的。它周围有很多解决方法,但是如果您不喜欢它流行的话,现在几乎是不可能的。

所有其他原因都变得无关紧要,因为您需要花费大量时间,专注于实际工作以正确学习语言。如果您不是一个有钱人,那么做到这一点的最佳方法就是在工作中接触财富。



4

Ruby是Smalltalk的意思,阿拉伯数字是罗马数字。数学相同,语法更简单。


3
那是错误的方法。Smalltalk具有更简单的语法。
2009年

1
仅当您考虑rpn时。大多数人没有。实际上,我对此职位引以为傲的事实感到自豪。
萨尔

12
RPN?Java:foo.bar()Perl:foo-> bar()Python:foo.bar()Smalltalk:foo bar除了使用更简单的语法外,如果您声称Smalltalk是RPN,则必须说所有主要的OO语言是“ RPN”。
兰达·施瓦兹

2
只需将Ruby关键字的数量与Smalltalk关键字的数量进行比较即可。而且,这仅仅是开始!Smalltalk的语法适合餐巾纸,请尝试使用Ruby进行操作,这样会很麻烦。
froginvasion

3

我做了一些Smalltalk-我记得IDE是一件事-Ruby是否具有良好的IDE支持?


是。TextMate很棒,Eclipse支持很好,Emacs为此提供了一种不错的模式。
皮特

6
如果您认为“ TextMate / Eclipse / Emacs”可与Smalltalk的内置IDE相提并论,那么您还没有看到真正的Smalltalk!
兰达·施瓦兹

我仍然想念我今天使用的系统上的IDE中的select->'Show It'-一个例外:SQL Server的SQL开发工具将使您突出显示一个选择并将其作为查询执行。如果没有其他内容,Smalltalk很有影响力!
ConcernedOfTunbridgeWells,

IDE最接近Smalltalk,它是IMHO ArachnoRuby。这是比更好地融入任何的Emacs / TextMate的等,但人们似乎与几个窗口很高兴打开运行不同工具间的问候
弗里德里希

@Friedrich Re“人们对打开运行各种工具的几个窗口感到非常满意” ...“编程语言教您不要提供他们无法提供的东西。您必须使用语言进行思考……”
-Paul

3

使用Ruby是因为它可能具有业务方面,而Smalltalk则没有。

我可以从个人经验告诉你。仍然使用Smalltalk,喜欢它,并使用了几种口味。尽管Smalltalk是一门很棒的语言,并且是您提到的所有内容,但是您不太可能说服普通的CIO / CTO在新项目上使用Smalltalk。当然,您甚至很难说服保守的CIO / CTO使用Ruby。最后,如果您要获得长期的长期商业支持,并且能够找到将来可以为您的系统提供支持的街边雇员,则必须非常小心。例如,Smalltalk在90年代初是一件非常重要的事情,而IBM在90年代后期对其进行了大量投资。对于IBM Smalltalk来说,它将成为所有业务应用程序的下一种语言。IBM将Smalltalk应用于包括主机系统在内的所有产品。Java变得流行起来,占领了市场,Smalltalk成为了利基市场。一年多以前,IBM放弃了该语言(其术语为日落)。另外,看看历史。ParkPlace和Digitalk是Smalltalk领域中的第一批主要商业参与者,他们合并并破产。


Smalltalk“有业务往来”-如果您已经拥有合适的背景并且可以找到合适的机会...
Dafydd Rees

您的标题被夸大了。并非所有业务都受到有远见的CTO的限制。就像保罗·格雷厄姆(Paul Graham)彻底揭穿主流语言更安全的神话时所说的那样:“您将很难说服尖头的老板让您使用Lisp构建东西……但是如果您为一家没有工作的初创公司工作,还没有尖顶的老板,您可以...使用与竞争对手牢不可破地粘接在中间语言上的技术,永远无法与之匹敌。”
肖恩·德尼格里斯

2

我既喜欢Smalltalk,也喜欢Ruby,但是发现Ruby更适合我的日常工作,并且更贴近我的内心(实际上)。Ruby提供Smalltalk不提供的什么?

  • 基于文本的脚本
  • 实施要求低(可在更多地方运行)
  • 易于学习和论证(Perl和Python程序员将没有遇到麻烦
  • 更容易移动程序-文本文件!
  • 与本机环境良好的接口
  • Java运行的任何地方,jRuby都可以运行...
  • 更大,更活跃的社区

有些人提到了gst(GNU Smalltalk);问题仍然存在。


Ruby运行哪个Smalltalk不运行的哪个“位置”?例如,Pharo Smalltalk可以在Mac,Windows,Unix上完全没有操作系统(Ruby可以做到吗?)运行,并且可以移植到各种移动平台(Android,iOS)上。
肖恩·德尼格里斯

FreeBSD和OpenBSD呢?(不,我不知道答案...)Solaris,HP-UX和OpenVMS怎么样?我也不想在Android或iOS上使用Ruby或Smalltalk。最大的问题不是操作系统,而是内存:与Smalltalk相比,Ruby运行的内存要少得多。
2012年

显然,有一个FreeBSD VM(请参阅OP的最后一个项目:forum.world.st/SOB-minutes-3-6-12-td4453817.html)。我不确定其他人。至于Android和iOS,是否要使用Smalltalk与是否可以使用Smalltalk是一个不同的问题;-)人们一直在发布关于在这些平台上成功进行实验的信息,我已经看到了一些有希望的截屏视频。
肖恩·德尼格里斯

这也让我想起了-我记得Palm的Smalltalk。
2012年

2

使用任何使您更强大,更快地应对挑战的方法。

我们而言,我们在海边建造的一些内部框架确实是我们的超级大国。

我爱RoR社区,它拥有正确的态度。那是非常非常有价值的。但是同时,从技术上讲,海边使您在面对更复杂的问题时变得更强大。

您可以使用开放源代码工具制作出色的海滨Web应用程序。

dabbledb是基于海边的sartup,嘿!Avi于今年6月将其出售给Twitter!

我说你不需要等待别人批准你的倡议。

就去吧。完成它。向我们展示有效。

你不是一个人。我们在同一条船上。



0

我认为部分问题是开发环境正在运行。这提供了强大的功能,但同时也带来了更大的学习曲线。

是您好世界教程。

这与其他语言完全不同,在其他语言中,我只需要知道如何打开文本编辑器以及复制和粘贴文本,单击保存并运行编译器即可。我必须知道如何使用环境。该教程甚至没有向我展示如何创建可以运行的基本程序(这可能是该教程的一个错误)。

与其他大多数语言相比,仅仅让事情进展无疑会带来更高的成本。

大多数语言都有一些不错的醒目的代码,它们可以炫耀。我还没有在Smalltalk上看到它。我还认为Smalltalk有一些污名,因为它已经存在了很长时间,并且仍然相对模糊。


在页面底部:自我告知:“ Hello,World!”。我同意学习曲线比较陡峭,但是我认为用“你好,世界”作为证明是太多了。:)
2012年

我的观点是看如何编写诸如hello workld之类的简单内容,该教程必须告诉您需要打开哪些窗口。窗户的名称和用途并不是我能猜到的。我花了一点点鼠标,才发现正在谈论的窗户。
史蒂夫·克

1
根据我的编辑:GNU Smalltalk允许您使用自己喜欢的编辑器并从命令行运行。
两位傻瓜

ruby -e'放置“ hello world”'
Marcel Valdez Orozco

1
pharo [image filename] -e“ self notify:'hello world'”
Sean DeNigris 2014年

0

我认为最大的区别在于,在用法方面,Ruby与perl非常相似。Smalltalk从未涉足“脚本”语言。

VM真的很酷,我希望ruby会有类似的东西,以便我们可以将操作系统中用ruby编写的所有内容都视为内存空间中的对象,但是在那之前,我只是喜欢Ruby简洁,短语法,编写一个小脚本,以后再使用。Ruby获得了perl的所有优势,并且与perl的OOP hack相比,OOP与smalltalk更加相似。


0

我会比Jonke的答案走得更远,并说现在有很多语言都拥有非常强大的社区,几乎足以满足每种口味,并且其中一部分具有主流认可(即您的经理将让您在也可以)。

学习语言的基础很容易,但是要有效地使用它,您需要花费足够的时间来学习平台和工具以及语法和习惯用法。IIRC的麦康奈尔声称要真正精通大约需要三年时间。

考虑到这些事情,尽管花费很多时间在LISP和Smalltalk等语言上,尽管它们很有趣并且可能值得一看,但很难证明是合理的。


0

作为讨论的后来者,Smalltalk和Lisp的主要问题是您不能在共享主机上使用CGI或FastCGI运行它们。

如果未清洗的群众需要VPS或专用服务器来使用它们,则永远不会使用它们。IMHO Seaside几乎胜过其他任何东西,但是它将在Dreamhost或Webfaction上运行吗?


我不知道这是否仍然是一个很大的障碍,例如,Digital Digital以每小时0.007美元的价格提供VPS
Sean DeNigris 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.