Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
EchoJS – An ahead of time compiler and runtime for ES6 (github.com/toshok)
27 points by je42 on April 4, 2015 | hide | past | favorite | 7 comments


EchoJS seems to be popular, there is a news site[1] and image lazy loader[2] with the same name.

The project is very light on documentation. It would be interesting to know what subset of ES6 is AOT-compiled, and what is done with the rest (does compilation fail or does it fall back to interpretation/JIT?). Is it possible to influence compilation by type annotations (not part of ES6, but still...)?

[1] http://www.echojs.com/ [2] https://github.com/toddmotto/echo


Heh, is this some kind of practical joke? I look at kangax's compatibility table and this particular thing barely implements anything in ES6. How can it be popular?

An then you have the author claiming that he never wrote a compiler... why would anyone use a compiler written by a self-confessed rookie?

Also there is this "AOT compiling" he mentions. Wtf. In the world of JS, this thing is called "transpiler". The "AOT" is implied. You compile ES6 to ESx "ahead of time".

That, and author does not mention how his product compares to others. Makes me think he is unaware of other products like Traceur or Typescript or whatever.

All together, this is probably just a practical joke or something.


I think you are misunderstanding. This is a compiler, not a transpiler. It compiles JavaScript into an executable binary.


Echo JS has a column here in the Compat table: https://kangax.github.io/compat-table/es6/#ejs


I don't know if I've seen an AOT javascript compiler before, this looks interesting. Unfortunately optimizations that are only possible with JIT compilation are pretty important for making javascript performant, I'd be surprised if an AOT strategy ever quite achieved the same performance as JIT.

It'll be useful, as noted in the README, on iOS where JIT is forbidden, but that really shouldn't be a problem in need of solving to begin with.


I'm wondering to what level things are optimized here, because JS is such a dynamic language that the analyses that could point to opportunities for optimization could be pretty complicated.


Seems like a good match for react - native.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: