3 ms·
Hi. I'm the original (and the only!) author of jazzle. I started working on it around Sep. 2015. I am from a country where I can no longer access npm without t
by FailorTwist 9y ago
Hi. I'm the original (and the only!) author of jazzle.
I started working on it around Sep. 2015.
I am from a country where I can no longer access npm without
tor, and even then it is so excruciatingly slow
as to be unusable. As such, aside from the ever essential
node and vi, I had to build everything, including the
builder and the test framework, not to mention the parser,
the emitter, and the transformer, and the bundler,
from scratch, by myself.
it certainly took some time, but now, it can even build itself!
Among its features are:
* very fast compilation times (2x faster than babel, with sourcemaps, on my early benchmarks.)
* on-the-fly minification
* built-in bundling
* economic sourcemaps
* built-in regex-verifier (and I'm working on a standalone regex-emitter, too)
* runtime this-before-super() checks
* runtime (rather than parse-time) checks for constant re-assignments
* cheap yet full temporal-dead-zone tracker (and everyone thought it is impossible)
* non-invasive, arguably more efficient transformation for loops having closures around their lexicals
* zero-dependencies, obviously (though I'm not much proud of it; cf. above)
* aggressive temporary-variable-reuse (though I have to say there are still some rough edges)
* and needless to say, nearly all ES2015 constructs (except for getters/setters and generators;
I'm currently working on a cool generator transformer too, but that's at least two months away.)
Now, this is a project still in its infancy (and the two years I've been working
on it had better be looked at as its embryohood), and I have to confess I'm getting
more and more spent working on it, so I'm actively, eagerly looking for collaborators,
particularly for receiving real-world feedback and for helping me complete the test suite.
Comments, suggestions and any other sort of feedback is most welcome.
Thanks a lot reading this far.
- brudgers 9y agoInteresting project, if it meets the guidelines, this might make a good 'Show HN'. The Show HN guidelines are here, https://news.ycombinator.com/showhn.html https://news.ycombinator.com/showhn.html
- FailorTwist 9y agoThanks -- I had no idea 'Show HN' submissions are different! I just finished reading the guide you linked me to; please correct me if I'm wrong, do I have to re-submit this submission, with a leading 'Show HN'?
- brudgers 9y agoThat's one way to do it. Another is using the contact link below to request a title change by the moderators. Obviously, it has additional dependencies.
- FailorTwist 9y agoThanks a lot!
- dang 9y agoWe've added Show HN to the title above.
- sAbakumoff 9y agoHow is it better than babel? Why is it innovative?
- DiThi 9y agoMaybe because it combines the functionality of Babel and UglifyJS (and maybe others) while being faster than all. (I don't really know, I haven't tried it)
- FailorTwist 9y ago> How is it better than babel? Why is it innovative? Just for the record, this submission's original title was "A very fast Ecmascript Transpiler+Bundler+Minifier in less than 80kb minified, gzipped"; There was indeed another submission with the current title, but I actually deleted it, thinking it was somewhat pretentious. I'm not sure how the title got reverted during migrating the submission to show HN. I made no such claims as jazzle being better than babel; I'm not even sure such comparison would be logically true. All I said was that it has performed better than babel on my local benchmarks. As for innovativeness, what I can tell off the top of my head is its advanced tdz tracker, along with its non-invasive transformation strategy for closures containing loop lexicals. Thanks a lot reading this far, and I can't wait for your feedback!
- DiThi 9y ago> I am from a country where I can no longer access npm without tor, and even then it is so excruciatingly slow as to be unusable. Since it seems you can access github, you can install dependencies without touching npmjs, with one of these: npm install git+ssh://git@github.com:<githubname>/<githubrepo.git[#<commit-ish>] npm install git+ssh://git@github.com:<githubname>/<githubrepo.git>[#semver:^x.x] npm install git+https://git@github.com/<githubname>/<githubrepo.git> npm install git://github.com/<githubname>/<githubrepo.git> npm install github:<githubname>/<githubrepo>[#<commit-ish>] (add --save if your npm is old) Why would a country ban npmjs?
- FailorTwist 9y ago> Why would a country ban npmjs? that is also what I keep asking myself. those in charge of censorship are not especially educated people (they are mostly young clerics/government devoutees), and a website's number of visitors along with its background color (yes) is just enough reason for them to take it out of reach. Somewhat appalling, but you get used to it. For the record, npm worked (and worked well),like, ten months ago. But now it doesn't, not easily at least. I tried my luck with polipo/tor, but it was so slow and disconnected so frequently that I gave up. I now only use npm to publish, and that is still something I don't want to think about until the very last minute.