Announcement: ECMScript 4 to ECMAScript 3 translator released

# Olav Kjær (17 years ago)

I have released Mascara version 0.1, an ECMAScript 4 to ECMAScript 3 compiler. ecmascript4.com

The code is still alpha-quality, but since it to a certain extend could be regarded as an independent ES4 implementation, I thought it would be relevant to announce on this mailing list.

There is an online interface ecmascript4.com where you can try it

out without installing anything.

Since comments on the implementation probably aren't appropriate for this list, you are welcome to mail me directly, or to comment on the blog < blog.ecmascript4.com> which I have set up for tracking the project.

While the implementation will probably never be a complete to-the-letter implementation of the ES4 spec (e.g. the type checking is static - with erasure - rather than runtime, and some features like metaprogramming and generators are impractical to implement without support in the target engine), I do believe it could be useful for raising awareness of ECMAScript 4 among web developers and to show that the language works in "the real world".

I suspect many developers are wary of investing in a technology which might not be supported by IE without 3-party plug-in. And even if IE decide to support ES4 natively, it would take years to reach ubiquitous support, which is required for mainstream acceptance. The translator-approach shows a viable migration path, where developers can start using ES4-constructs today, without abandoning browser compatibility.

(Note: I actually started the project several years ago, based on the now obsolete Netscape draft. However the current version is updated to support the current spec as far as I can follow it on the wiki.)

# Jeff Dyer (17 years ago)

On 6/9/08 10:21 AM, Olav Kjær wrote:

Hi everyone,

I have released Mascara version 0.1, an ECMAScript 4 to ECMAScript 3 compiler. ecmascript4.com

Congratulations! It looks interesting.

The code is still alpha-quality, but since it to a certain extend could be regarded as an independent ES4 implementation, I thought it would be relevant to announce on this mailing list.

It is. Thanks for doing so.

There is an online interface ecmascript4.com where you can try it out without installing anything.

Since comments on the implementation probably aren't appropriate for this list, you are welcome to mail me directly, or to comment on the blog < blog.ecmascript4.com> which I have set up for tracking the project.

I wonder if an es4-impl list would be useful for ES4 implementors to discuss their experiences creating ES4 engines. Or is there an existing list that could serve this purpose.

While the implementation will probably never be a complete to-the-letter implementation of the ES4 spec (e.g. the type checking is static - with erasure - rather than runtime, and some features like metaprogramming and generators are impractical to implement without support in the target engine), I do believe it could be useful for raising awareness of ECMAScript 4 among web developers and to show that the language works in "the real world".

I suspect you are right. Mascara is a good way to put ES4 within easy reach of those who want to kick its tires, so to speak. It will be important that it represents the spec reasonably well. No pressure ;-)

I suspect many developers are wary of investing in a technology which might not be supported by IE without 3-party plug-in. And even if IE decide to support ES4 natively, it would take years to reach ubiquitous support, which is required for mainstream acceptance. The translator-approach shows a viable migration path, where developers can start using ES4-constructs today, without abandoning browser compatibility.

(Note: I actually started the project several years ago, based on the now obsolete Netscape draft. However the current version is updated to support the current spec as far as I can follow it on the wiki.)

The current draft (May-16th) pins down values, types and name resolution in great detail. I'd be interested to hear of the issues that arise as you try to make Mascara conform to the language core described there.