arrow syntax unnecessary and the idea that "function" is too long

Brendan Eich brendan at mozilla.com
Tue May 17 08:37:34 PDT 2011


On May 16, 2011, at 7:55 PM, Peter Michaux wrote:

> On Mon, May 9, 2011 at 6:02 PM, Brendan Eich <brendan at mozilla.com> wrote:
> 
>> Yes, and we could add call/cc to make (some) compiler writers even happier. But users would shoot off all their toes with this footgun, and some implementors would be hard-pressed to support it. The point is *not * to do any one change that maximizes benefits to some parties while harming others.
> 
> By the nature of their task and its complexity, compiler writers
> targeting JavaScript need JavaScript to have features that make it
> possible to generate efficient compiled code. Without the big features
> like call/cc there are many things that just cannot be compiled well
> enough...which ultimately means all the languages that compile to
> JavaScript are just thin sugar layers that really aren't even worth
> the bother. Those languages, like Coffeescript, are obscure and known
> by only a few people.

Rails 3.1 is obscure and known by only a few people?

Seriously, check your attitude. There are many languages in the world. Asserting that Python implemented via Skulpt is not "worth the bother" is insulting to people working on that project and using it. If you don't think it's worth the bother, feel free not to bother. Your opinion does not become an imperative to add arbitrary compiler-target wishlist items.

Here's a list of languages that compile to JS:

https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS

I'm sure it's not complete.


> The goal of pleasing compiler writers should be
> to make it possible to compile existing languages like Perl, Ruby,
> Python and Scheme to JavaScript. These languages are the ones that
> people know and really want to use and target their compilers to
> JavaScript.

This is not a straight-up discussion. You ignore safety, never mind usability. Compiler writers want unsafe interfaces to machine-level abstractions. Should we expose them? Certainly not, even though not exposing them hurts efforts to compile (not transpile, as you note) other languages to JS.

Too bad -- the first order of business is JS as a source language. Being a better target for compilers is secondary. It is among the goals, but not super-ordinate.

http://wiki.ecmascript.org/doku.php?id=harmony:harmony

Compiler-writers don't seem to be having such a bad time of it, and we can proceed on a more concrete requirements proposal basis than taking absolute-sounding philosophical stances.

/be



More information about the es-discuss mailing list