我真的是javascript的粉丝。它真的是一个伟大的基于原型的OOP语言。现在我想学习一些其他基于原型的语言。真的对一些设计指南感兴趣,即如何在没有课程等的情况下管理代码。我应该选择哪种语言?基于原型语言的设计模式中的一些资源?
答案 0 :(得分:22)
你的问题的答案是Self。 Self是原始基于原型的OO语言,也可能是最好的(当然,对于“最佳”的完全不科学和主观的定义)。 (事实上,恕我直言,它(与Newspeak一起)是最好的OO语言之一,期间。)
无论如何,关于Self的好处是它还包含很多优秀的documentation,包括但不限于着名的自我教程 Prototype-Based Application Construction Using SELF 4.0
old Self website at Sun Research:
还有大量资源这两个(连同上面提到的教程)几乎可以解释你所询问的内容。 (事实上,第二个问题几乎包含了你的问题“如何在没有类的情况下管理代码”标题中的单词):
然后,有自我;电影,一个关于Self编程语言,Self GUI,Self系统和Self VM的介绍性视频,由Self的首席设计师和开发人员主演。不幸的是,它于1995年在VHS上发布,当视频最终被数字化时,原始磁带已经降级。您可以在this site with Smalltalk videos上找到多个版本的视频。我个人觉得Large QuickTime最容易查看。
以下是其他一些有趣的自我链接:
自我gace的主要设计师Dave Ungar于9月在斯坦福大学发表演讲,名为 Self and self: whys and wherefores 。播放此演讲的视频is available。
Self的一个小问题是它在1995年基本上被Sun抛弃,转而使用一种不起眼的小脚本语言,用于在电视机顶盒上制作电子电视指南中的动画卡通人物。 (您可能听说过它,它被称为Java。)因此,最新的稳定版本4.3仅在PowerPC上的OSX上运行(也许 x86)和Sparc CPU上的Solaris。几个月前,Self项目再次被一些前成员以及该语言的一些新粉丝所接受,现在它已被移植到x86上的Linux和OSX,可用4.4 Alpha 2发布可用,预计将在1月份发布最终版本。
其他一些有趣的基于原型的语言是:
至于你关于如何构建程序的问题,我必须承认我发现这些类实际上是模糊面向对象的设计。我的意思是,有一个 reason 为什么它被称为面向对象编程,而不是面向类的编程。
答案 1 :(得分:3)
我阅读的最佳指南是利用JavaScript的典型特性,在书JavaScript the Good Parts中,您也可以将这些指南应用于其他语言。在阅读本书之后,我改变了我在Python中编码的方式。
如果您想学习类似于JavaScript的语言,请先试用ActionScript。两者都基于相同的标准。这将是轻松和有益的。
答案 2 :(得分:2)
这是一个很大的主题。我建议你阅读this article on wikipedia。在底部,您将看到不同语言的列表。
答案 3 :(得分:0)
从广义上讲,javascript是目前使用的最常见(也许是唯一的)基于原型的语言,但您可以在Java和Python等许多不同语言中使用Prototype Pattern - 例如The wikipedia page
我建议你寻找有关原型模式的教程和指导,而不是寻找适合的特定语言,特别是因为你可能已经是最合适的语言。请注意,javascript可以通过Rhino在Java平台上运行。
原型模式的最佳全面介绍,捍卫其使用,是Steve Yegge's blog posts,'通用设计模式'之一。
史蒂夫·叶格(Steve Yegge)也指出了我们关于这个话题的Martin Fowler's article,我将要阅读!