是否有具有完整开发周期的基于原型的语言?

发布于 2024-10-06 06:29:45 字数 703 浏览 1 评论 0 原文

现实世界中是否存在具有完整开发周期的基于原型的编程语言?

像 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).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏末染殇 2024-10-13 06:29:45

我认为 JavaScript 是一种现实世界的语言。主要区别在于它倾向于嵌入到许多不同的环境中,而不是作为独立的开发环境。

除了在浏览器中明显的使用之外,JavaScript 还可以在服务器端使用 CouchDB (这变得非常流行)作为网站和桌面)或Node.js - 有 还有很多其他的。它还可用于通过 seedgjs

至于调试工具,大多数网络浏览器中都包含这些工具,并且还有诸如 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.

如此安好 2024-10-13 06:29:45

看起来不像。查看维基百科列表,我不能说它们中的任何一个对于系统类型或独立编程特别流行。我有一些关于原因的理论:

  • 惯性 - 人们更熟悉基于过程/过程类的语言。同样,过程语言比函数式语言更流行,我认为我们发现更容易在心里跟踪我们事先指定的对象。
  • 不易出错 - 当我使用类时,我不能使用未在类中指定的东西那个班。它的灵活性有点差,但在处理大型项目时,我非常非常感激能够查看对象的规范(即使我已经编写了该对象)并知道该对象的行为方式。也就是说,我知道如果我尝试做一些愚蠢的事情(例如使用错误的变量名),编译器可能会抛出错误。
  • 您提到“编写脚本/与系统交互”。就目前而言,课程甚至不是特别受欢迎。一次性脚本可能会使用一些函数,甚至只是直接的过程代码。我知道如果我编写一个简单的小 Python 脚本,我将拥有一些简单的函数并且我将使用内置对象。 OO,但我什么也没写。
  • 没有/没有很多合适的语言。这是我认为最大的一个。 Lua 非常适合嵌入式脚本编写,但我不认为它可以取代我的工具包中的 Python/Perl 脚本。
  • 偏见 - 我认为 Javascript 的肮脏过去对于基于原型的语言来说没有什么好处。 Javascript 实际上是一种非常好的语言,一旦你看到由理解它的人编写的代码,但仍然有很多嘲笑 - 它被视为一种儿童语言。如果你说“我是一名 Javascript 程序员”,那么很难被认真对待。
  • 编辑 它要么是一个标志,要么是一个症状,但大多数 PT 语言都是嵌入式或特定于应用程序的脚本语言(游戏中或 UI 中的 Lua,网页中的 Javascript 或 Firefox 中的 UI 等)。我不确定为什么会这样,但它们要么更适合应用程序定制或以其他方式嵌入,要么这就是常见实现的设计目的。 Python 可以很容易地嵌入到程序中,有时确实如此,但它更常见的是独立的。

这可能比你想要的更哲学,而且我绝不是基于原型的专家,但我已经完成了相当多的 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:

  • Inertia - people are more familiar with procedural/procedure-class based languages. In the same way procedural languages are more popular than functional, I think we find it easier to mentally keep track of the objects we've specified beforehand
  • Less error-prone - When I use a class, I can't use things not specified in that class. It's a bit less flexible, but when working on a large project I'm very, very grateful to be able to look at the spec for an object (even if I've written that object) and know how the object will behave. That is, I know the compiler will probably throw an error if I try to do something stupid like use the wrong variable name.
  • You mention "scripting/interacting with the system". As far as that goes, classes aren't even particularly popular. One-off scripts may use a few functions, or even just straight procedural code. I know if I write a simple little Python script, I'll have a few simple functions and I'll use builtin objects. It's OO, but I'm not writing anything.
  • No/not many suitable languages. This is I think the biggest one. Lua's great for embedded scripting, but I don't think it can replace Python/Perl scripts in my toolkit.
  • Prejudice - the sordid past of Javascript has not been good for prototype-based languages, I don't think. Javascript's actually a pretty nice language, once you see code written by somebody that understands it, but there's still a lot of derision - it's seen like a kiddie language. If you say "I'm a Javascript programmer", it's hard to be taken seriously.
  • EDIT It's either a sign or a symptom, but most PT languages are embedded or application-specific scripting languages (Lua in games or for UIs, Javascript in webpages or for the UI like in Firefox, etc). I'm not sure why this is, but they are either more suited to application customizing or otherwise-embeddedness, or that's what the common implementations are designed for. Python can be easily embedded into a program, and it sometimes is, but it's more common standalone.

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.

难忘№最初的完美 2024-10-13 06:29:45

我没有找到一个,唯一的候选者(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!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文