代码之家  ›  专栏  ›  技术社区  ›  Christoph Schiessl Joeyjoejoejr

你会开始学习Smalltalk吗?[闭门]

  •  78
  • Christoph Schiessl Joeyjoejoejr  · 技术社区  · 16 年前

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

    Seaside .

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

    编辑: Episode 52: Randal Schwartz on Seaside (among other things)

    21 回复  |  直到 15 年前
        1
  •  62
  •   ConcernedOfTunbridgeWells    15 年前

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

    学习Smalltalk的原因:

    • 这是一个非常非常好的编程环境。一旦你有了头脑(它对那些使用C++或java的人来说,会有点文化冲击),你会发现它是一个很好的工作环境。即使是像我以前使用的Digitalk那样的蹩脚的闲聊也是一个非常令人愉快的系统。许多旧的XP和O-O大师类型 Kent Beck Martin Fowler 白天在Smalltalk上切牙 and can occasionally be heard yearning for the good old days in public

    • 它是历史上最具生产力的开发平台之一。

    • 存在几个成熟的实现,并且有一个惊人的庞大代码库。在金融市场圈,它一度成为一种潮流,开发者的生产力和上市时间是一件大事。直到20世纪90年代中期,如果您想要一种适合应用程序开发的商业支持的高级语言,它或多或少是唯一的游戏(LISP可能是个例外)。

    • 部署很简单-只需将映像文件放到适当的目录中。

    • Gang of Four Book 他们的很多例子都使用Smalltalk。

    不学习Smalltalk的原因:

    • .com application where you own the servers 这可能不是问题。

    • 许多人认为它是一个遗留系统。平台上的新开发相对较少(尽管Seaside似乎正在推动一点复兴)。

    • 它有点孤僻,喜欢独自玩耍。Python或Ruby是为从头开始的集成而构建的,并且往往更混乱,因此更容易与第三方软件集成。然而 various other more mainstream 系统或多或少都会受到这种隔离性的影响,这似乎不会对它们的使用造成太大的阻碍。

        2
  •  47
  •   Randal Schwartz    9 年前

    既然你提到我的名字,我觉得我应该插嘴。

    http://MethodsAndMessages.vox.com/ ,这是“ 闲聊年 “。在过去的十个月里,我一直在宣传Smalltalk,现在我可以看到它真的在发生。越来越多的客户转向Smalltalk和Seaside,Smalltalk供应商都在努力吸引新的关注。更多更大的Smalltalk会议正在计划中。更多的工作公告正在发布。更多的blog正在进行张贴。

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

    编辑

    好吧,几年后,我现在推荐 Dart 相反这是一种伟大的语言,起源于谷歌,但现在归ECMA委员会所有。它以node.js样式运行服务器端,但在现代浏览器中也通过转换为JavaScript运行客户端。很多好书,博客,帮助频道,IDE支持, public live pastebin

        3
  •  31
  •   brian d foy    15 年前

    Smalltalk是一种很好的学习语言,最棒的是它只需要一天的时间。这不仅仅是一门学术语言。人们正在构建巨大的、可扩展的、可复制的应用程序,处理数十亿美元。他们只是不怎么谈论它。比如说,, GemStone and Orient Overseas Container Lines: A Shipping Industry Case Study

    Seaside是学习Smalltalk的一个很好的理由,但我认为你不会发现它比Rails好几个数量级。

    Rails最让我头疼的部分是对象关系映射。这并不反对Ruby,因为它在GLORP(它处理Smalltalk的ActiveRecord)、Perl或其他任何东西中都很糟糕。将对象映射到数据库表非常痛苦。有了GemStone,对数据库的思考就消失了,因此对数据库的工作也就消失了。这就像一块巨石(或一群猴子)从我背上取下一样。

        4
  •  16
  •   Isaac Gouy Isaac Gouy    16 年前

    >找不到一个不费吹灰之力的Smalltalk开发环境

    谷歌 -自由闲聊

    Cincom Smalltalk,Squeak,GNU Smalltalk

        5
  •  15
  •   Kevin Driedger    16 年前

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

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

    i < 60
       ifTrue: [ self walk ]
    

    它有一个非常成熟的类库,它的一致性我在很多地方都没见过。所有环境(甚至商业Smalltalks)中的类库都有可用的源代码,允许您向语言大师学习。在编写Smalltalk时,我总是问这样一个问题:它是如何在环境中完成的。

    Smalltalk通常在映像中实现,映像是系统中所有对象的活动环境。

    Seaside是web开发框架,为Smalltalk带来了新的关注点。它是一个基于延续的环境,允许进行命中内调试和平滑的富客户端类型的开发体验(顶级应用程序流可以用单个方法设计)。它与script.aculo.us的集成是以一种很容易从Smalltalk中调用的方式完成的。

        6
  •  10
  •   Frank Shearar    16 年前

    奈杰尔,我有一句话:

    我找到了 here .

        7
  •  10
  •   Chris Brooks    16 年前

    在我的Java日常工作中,我被文件、泛型和IDE(如eclipse)所困扰,这些文件、泛型和IDE的生产效率要比任何ST IDE低几个数量级。在我唯一一次提前完成开发时,我正在使用ST。事实上,它是如此高效,我们得到了如此多的重用,我不得不转移到另一个项目,因为我没有什么事要做!(好吧,也许我可以花时间学习估算…)

    克里斯·布鲁克斯

        8
  •  9
  •   blabla999    16 年前

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

    然而,LISP在数学基础上甚至更干净。

    附言:事实上,我建议两者都学习!

        9
  •  8
  •   slashmais    16 年前

    我不认识鲁比。。

    Smalltalk是一种 纯净的 OO语言。如果你觉得需要真正了解OO,而不仅仅是最流行的“OO”语言(比如C++、java等)的模拟OO,那么我建议你玩SimultTalk。

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

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

        10
  •  7
  •   Damir Horvat    16 年前

    赞成的意见:

    • 成熟及;稳定的环境
    • 让你多想少写

    欺骗:

    • 需要不同的思考

    我是怎么知道Smalltalk的,真有趣。这是谷歌搜索Lisp和Erlang内容时,谷歌搜索结果中不断出现的一件事。有一天,我查看了一下,对漂亮的windows环境感到惊讶。过了一会儿,我找到了Aida/Web框架。我被这个框架所吸引,并开始通过web开发学习Smalltalk。

        11
  •  5
  •   daduffer    16 年前

    如果我有时间,我不会开始学习它。为什么不呢?因为学习C#或Java会更高效,更赚钱。

    另一方面,如果你是一个业余爱好者,并且想进行考古发掘,那么我建议你花一些时间研究一下艾伦·凯(Alan Kay),看看smalltalk的内容、时间、原因和方式。迷人的故事和令人难以置信的人(毕竟,他赢得了转折奖)。然后可能玩一点squeak来感受语言。在此之后,您可能对块、闭包和面向对象原则有了新的理解。

    我知道并使用Smalltalk,已经有15年了

    此外,您似乎对Seaside很兴奋,我假设Seaside/GemStone是合作伙伴。我使用宝石已经有相当一段时间了,两者结合在一起非常吸引人。我希望他们能够获得成功所需的市场份额和动力。

        12
  •  5
  •   Richard Durr    15 年前

    如果您是一名lisp程序员,则可能不是这样。

        13
  •  4
  •   Richard Eng    9 年前

    Pharo . 法罗是免费的。Pharo正在迅速发展成为一个强大的企业工具。在4.0版,很快将成为5.0版,它在短短四年内已经成熟了很多!

    Amber ,这是网络上的Smalltalk。它也是免费的,发展很快。

    即使 Smalltalk's reputation ,这不是你父亲的闲话。现代的Smalltalk是令人兴奋和有前途的。

        14
  •  3
  •   James Curran    16 年前

    按照这个标准,最好还是从纯OO开始,尽管现在我们有Java&C#,两者都是“近乎纯”的OO——非常接近,可以忽略它们的非OO特性,并将自己限制在语言的纯OO子集。

        15
  •  3
  •   Dafydd Rees    14 年前

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

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

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

        16
  •  3
  •   Ogre Psalm33    12 年前

    我已经做了好几年的软件工程师了。我听过有人几次提到Smalltalk,当然Smalltalk从1980年左右就开始出现了,但它是那些似乎从未进入软件主流的语言之一。有点像Objective C、CLIPS、PL/I等等——你可能听说过,但大多数人从未编程过。

    我可能不会花时间学习Smalltalk,除非我需要为某个特定的工作学习。几年前,我简要地看了一些Smalltalk教程和示例,看起来它在OO编程的某些方面有一些明显的优势(比如消息概念似乎很酷)。但可悲的是,它不是主流,而且似乎没有获得多少动力。

        17
  •  2
  •   Friedrich    15 年前

    1) 轨道

        18
  •  2
  •   Euan M    9 年前

    1) 对学一门语言总是好的。如果你想学习一门语言,就要让它成为一门强大、有影响力的语言,并且可以轻松、快速地学习。

    Smalltalk仍然是学习OO概念的卓越语言和环境。

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

    甚至匿名方法(代码块,又称块)也是对象。

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

    英国一所主要大学利用Smalltalk每年培训5000人进行面向对象的计算,这对于明确概念非常有好处。

    Squeak 5刚刚发布。它的新Cog/Spur VM具有渐进式垃圾收集功能,因此性能得到了显著提高。

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

    Squeak 5即使在第一代覆盆子Pis上也表现出色,在新的5美元覆盆子PIZero上几乎快了50%$99给你买了一个树莓皮2,屏幕和案例-运行一个成熟的,功能齐全的IDE。

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

    你可以使用Smalltalk作为一种超级咖啡脚本,用 Amber Smalltalk 并转换为JavaScript,在浏览器中运行。

    **以下是安装和启动Squeak、Amber、Pharo、Cuis和Dolphin的指南:** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk-up-and-running.html

    Seaside web框架在Squeak和Pharo上运行。它是一个非常成熟的工具,更传统的AidaWeb框架也是如此。

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

    2) 是的,我已经用过了。

    我刚刚回到it部门,编写应用程序来控制、管理和分发响应迅速的大规模多平台移动应用程序。

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

        19
  •  1
  •   David Thornley    16 年前

    我真的不知道你在找什么。

    如果你想学习不同种类的面向对象语言,你可能想学习SimalTalk(如果它与Ruby有很大的不同),比如java或C++,也可能是普通的Lisp对象系统。

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

        20
  •  -5
  •   Brian Knoblauch    16 年前