现实世界中是否存在具有完整开发周期的基于原型的编程语言?
像 Ruby 和 Python 这样的“完整开发周期”:Web 框架、脚本编写/与系统交互、调试工具、分析工具等等。
谢谢
关于 PBPL 的简要说明:(我们称这些语言为 PBPL:基于原型的编程语言)
那里有一些 PBPL。有些像 JavaScript 一样被广泛使用(Node.js 可能会将其带入该领域 - 也可能不会!)。另一种语言是 ActionScript,它也是一种 PBPL,但与 Flash VM 紧密绑定(这样说是否正确?)。
从鲜为人知的语言中,我可以谈到 Lua,它在游戏开发中享有很高的声誉(主要是通过 WOW 传播的),但从未成为一种完整的语言。 Lua 有一个表概念,它可以为您提供某种基于原型的编程工具。
还有JScript(Windows脚本编写工具),对于新来的PowerShell来说已经毫无意义了(我曾经使用JScript来操作IIS,但我一直不明白什么是JScript!)。
其他的可以命名为 io(确实非常非常简洁,你会爱上它;绝对不可能使用)和 REBOL(这是怎么回事?专有的脚本工具?你一定在开玩笑!)和 newLISP(这是实际上是一种完整的语言,但没有人听说过它)。
当然,这里还有更多要列出的内容,但要么我不记得,要么我没有将它们理解为现实世界的事物,例如自我)。
Are there any real-world prototype-based programming languages with a whole development cycle?
"A whole development cycle" like Ruby and Python: web frameworks, scripting/interacting with the system, tools for debugging, profiling, etc.
Thank you
A brief note on PBPLs: (let's call these languages PBPL : prototype-based programming language)
There are some PBPLs out there. Some are being widely used like JavaScript (which Node.js may bring it into the field - or may not!). One other language is ActionScript which is also a PBPL but tightly bound to Flash VM (is it correct to say so?).
From less known ones I can speak of Lua which has a strong reputation in game development (mostly spread by WOW) but never took off as a full language. Lua has a table concept which can provide you some sort of prototype based programming facility.
There is also JScript (Windows scripting tool) which is already pointless by the newcomer PowerShell (I have used JScript to manipulate IIS but I never understood what is JScript!).
Others can be named like io (indeed very very neat, you will fall in love with it; absolutely impossible to use) and REBOL (What is this all about? A proprietary scripting tool? You must be kidding!) and newLISP (Which is actually a full language, but no one ever heard about it).
For sure there are much more to list here but either I do not remember or I did not understood them as a real world thing, like Self).
发布评论
评论(3)
我认为 JavaScript 是一种现实世界的语言。主要区别在于它倾向于嵌入到许多不同的环境中,而不是作为独立的开发环境。
除了在浏览器中明显的使用之外,JavaScript 还可以在服务器端使用 CouchDB (这变得非常流行)作为网站和桌面)或Node.js - 有 还有很多其他的。它还可用于通过 seed 或 gjs。
至于调试工具,大多数网络浏览器中都包含这些工具,并且还有诸如 firebug 之类的扩展。
JavaScript 中的方法是不同的 - 它不是使用核心语言并使用库来访问不同的编程环境,而是直接嵌入到这些环境中。
I would argue that JavaScript is a real world language. The main difference is that it tends to be embedded into lots of different environments rather than being a stand alone development environment.
Aside from the obvious use in a browser, JavaScript can be used on the server side using CouchDB (which is becoming very popular as a database both for websites and the desktop) or Node.js - there are lots of others as well. It can also be used to create desktop applications via seed or gjs.
As for debugging tools, these are included in most web browsers and there are extensions such as firebug.
The approach is different in JavaScript - instead of having a core language and using libraries to access different programming environments, it is embedded directly into these environments.
看起来不像。查看维基百科列表,我不能说它们中的任何一个对于系统类型或独立编程特别流行。我有一些关于原因的理论:
这可能比你想要的更哲学,而且我绝不是基于原型的专家,但我已经完成了相当多的 Javascript 并摆弄了 Lua。不过,至少基于个人经验,我坚持我的答案。 YMMV。
我认为没有理由不能编写像 Python 这样有用的 PT 语言,但似乎没有人做到过。
It doesn't look like it. Checking out the Wikipedia list, I can't say any of them are particularly popular for systems-type or standalone programming. And I have a few theories why:
This may be more philosophical than you're looking for, and I'm by no means a prototype-based expert, but I've done a fair bit of Javascript and fiddled with Lua. I stand by my answer, though, based on at least personal experience. YMMV.
I see no reason why a PT language as useful as Python couldn't be written, but it doesn't seem like anyone's done it.
我没有找到一个,唯一的候选者(JavaScript)仍然处于第一步(如 Node.js)。
还有一个有效的候选者是 JavaScript!有一个名为 IronJS 的基于 .NET 的实现,它是在 F# 中实现的,并且进展顺利。这样,人们就可以在他的工具箱中拥有整个 .NET 开发周期。它基于 DLR,可以在 .NET 和 Mono 中使用!
I did not found one and the only candidate (JavaScript) is still spending very first steps (like Node.js).
Still one other valid candidate would be JavaScript! There is a .NET based implementation named IronJS which is implemented in F# and is going pretty well. This way one can have whole .NET development cycle at his toolbox. It is based on DLR and can be used in both .NET and Mono!