JavaScript相当于Smalltalk开发周期

3
最近,我开始阅读Smalltalk及其开发方式的相关资料,并对其印象深刻。我想知道是否有一些库能够在JavaScript中实现相同的开发方式。我发现了一些库,但它们仅仅重新加载页面或重启正在运行的node.js服务器。我对客户端和服务器端的JavaScript库都感兴趣。Amber Smalltalk很好,但我正在寻找一种在JS中实现相同功能的方法。
编辑:我正在寻找一种对对象和原型进行实时编辑并将更改保存到文件的方法,或者更改文件内容并将添加的方法传播到正在运行的页面或服务器的方法。所有这些都需要放置在类似于Pharo IDE的IDE中。我发现Meteor和Brackets支持某种此功能(从源文件到浏览器的实时编辑)。

1
你能澄清一下,你想在Javascript中开发哪个方面的Smalltalk? - Bryant Miano
@BryantMiano,一种实时编辑对象和原型并将更改保存到文件中的方式,或者更改文件的内容并将添加的方法传播到运行中的页面或服务器。就是这样的 :) - Ivancho
4个回答

7

您应该看一下“Lively”,这是一个在JavaScript中提供Smalltalk类似环境的项目:

http://lively-web.org/

这是由 Smalltalk 的最初和后来的实现者 Dan Ingalls 发起的。

您可以在 http://lively-kernel.org/ 找到早期版本和一些额外的资源。


1
让我们补充一点,Lively Kernel的构思和编写都来自于Dan Ingalls,他是Smalltalk的四代实现者。 - Leandro Caniglia
看起来很有前途,但还有一些漏洞和运行缓慢的问题。 - Ivancho
它正在进行大量开发;你应该使用最新的Chrome。 - Tobias
@Ivancho,顺便问一下,你所说的“buggy”是什么意思? - Tobias
@Tobias,实际上我不确定我在做什么 :) 但是有时候我会看到未定义的函数加上一些视觉故障。 - Ivancho
@Ivancho 你应该尝试一下他们的错误报告工具:http://lively-web.org/issues/IssueTemplate.html(也是在Lively中完成的) - Tobias

3

此外,还有Jens Mönig开发的morphic.js,该引擎是Snap!图形化语言/环境的核心:

https://github.com/jmoenig/morphic.js

它不是客户端+服务器模式,但非常容易移植到NodeJS。


1

看看SqueakJS:

SqueakJS在没有插件的情况下在网页中执行Squeak。它是一个完全能力的虚拟机,采用纯JavaScript实现,运行未经修改的Squeak镜像。Squeak是Smalltalk的现代实现,原始的动态面向对象编程环境。它可以在几乎任何平台上以位相同的方式运行,现在也可以在Web浏览器中运行。

https://bertfreudenberg.github.io/SqueakJS/


谢谢,我不知道这个项目,但由于我主要使用JavaScript编写代码,我正在寻找一种在JS中实现相同功能的方法。 - Ivancho
如果你已经发现了Smalltalk的强大之处,为什么还要选择JS呢?使用Smalltalk可以避免JS糟糕的语法和开发工具,没有必要坚持使用JS。 - user1000565
@user1000565,你说得没错,但是不幸的是,在我所在的地方没有Smalltalk的空缺职位。因此,我认为如果有工具可以将Smalltalk的力量带到JavaScript领域,那将是非常棒的。 - Ivancho

1

请查看LiveReload.js。它使用LiveReload协议,允许您编写JavaScript代码并实时更新更改,而无需刷新页面。


我看了那个项目,但它说只有CSS和图像会重新加载而不刷新。编译型语言会自动重新编译,并刷新页面以获取更改。我有什么遗漏吗? - Ivancho
哎呀,你说得对。我想我应该多学习阅读... - Bryant Miano
有一个名为foreverjs的节点包https://github.com/foreverjs/forever,它可以完成您要查找的功能,但它实际上是用于运行生产应用程序的。 - Bryant Miano
我知道Forever库,但它的目的不同:“Forever的目的是保持子进程(例如您的node.js Web服务器)持续运行,并在其意外退出时自动重新启动。”感谢您的努力。 - Ivancho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接