Ariya Hidayat
ariya.ofilabs.com · Personal blog · on HN since 2011
Ariya Hidayat, creator of PhantomJS and Esprima, writes about JavaScript engines, web performance, API design, and developer tooling.
What HN saysHN links it mostly for his 'boolean trap' API design post, plus pieces on ES6 syntax, V8 TurboFan, and Nix on OS X.
37HN people shared it
8linked it in comments
51stories submitted
503story points
10 years agolast shared
2011people per year2026
Most-shared posts
- 1The boolean trap or how to design bad API7 people · 25 points · first shared 2011 · 2 comments on HN
- 2Nix as OS X Package Manager2 people · 357 points · first shared 2016 · 204 comments on HN
- 3Optimizing CSS3 for GPU Compositing2 people · 6 points · first shared 2013 · discussion on HN
- 4ECMAScript 6 and Method Definitions2 people · 2 points · first shared 2013 · discussion on HN
- 5JavaScript and V8 TurboFan2 people · 1 points · first shared 2014 · discussion on HN
- 6WebKit project hit its monumental 100,000-th check in.1 people · 35 points · first shared 2011 · 24 comments on HN
- 7Cloud PhantomJS on Amazon EC21 people · 11 points · first shared 2012 · discussion on HN
- 8PhantomJS 1.8 Blue Winter Rose released1 people · 7 points · first shared 2012 · discussion on HN
- 9Lazy Parsing in JavaScript Engines1 people · 4 points · first shared 2012 · discussion on HN
- 10Introducing Esprima: A Blazing-Fast JavaScript Parser1 people · 3 points · first shared 2011 · discussion on HN
- 11The evolution of PhantomJS build workflow1 people · 3 points · first shared 2012 · discussion on HN
- 12Most popular JavaScript keywords1 people · 3 points · first shared 2012 · discussion on HN
- 13Isolated Development Environment Using Nix1 people · 3 points · first shared 2016 · discussion on HN
- 14Chromebook Pixel for Web Development1 people · 3 points · first shared 2013 · discussion on HN
- 15Docker and Phoenix: How to Make Your Continuous Integration More Awesome1 people · 2 points · first shared 2014 · discussion on HN
What HN people wrote when they linked it
regularfry · 2016-05-26
That's not the only thing you have to trust.
http://ariya.ofilabs.com/2016/05/nix-as-os-x-package-manager.html is served over HTTP. Saying "Copy and paste this `curl | sh` command" allows this attack: http://thejh.net/misc/website-terminal-copy-paste
paulirish · 2015-04-15
hall of api shame: the boolean trap, by Ariya (of Esprima and PhantomJS) covers the same topic but is probably a more fun read.
http://ariya.ofilabs.com/2011/08/hall-of-api-shame-boolean-trap.html
andrewstuart2 · 2015-02-23
Absolutely they do. That's the major benefit of object orientation: named properties and methods.
Otherwise, we fall into exactly the "boolean trap" that the author links away to. [1]
[1] http://ariya.ofilabs.com/2011/08/hall-of-api-shame-boolean-trap.html
insin · 2015-02-11
It's ES6 shorthand literal syntax [1], equivalent to:
module.exports = { route: route, routes: routes };
[1] http://ariya.ofilabs.com/2013/02/es6-and-object-literal-property-value…
yourad_io · 2014-12-05
I thought you were being facetious! In case anyone else also thought that, turbofan is a real thing: " [1]
> Recently, Google engineers landed a new optimizing JavaScript compiler for V8, codenamed TurboFan. As the name implies, this is supposed to further improve JavaScript execution speed, likely to be better than its predecessor, Crankshaft. While TurboFan is still in its early stage, that doesn’t mean we can’t take a look at it.
I imagine that it has to get stable for v8 first before it is even considered, but that's exactly the example of potential "more performance" in io.js
[1] http://ariya.ofilabs.com/2014/08/javascript-and-v8-turbofan.html
e1g · 2014-08-31
Thank you!
TLDR: JSX transformer makes the following ES6 features compatible with old browsers (IE8+)
* arrow functions [http://tc39wiki.calculist.org/es6/arrow-functions/]
* classes [https://github.com/esnext/es6-class]
* destructuring [http://fitzgeraldnick.com/weblog/50/]
* object concise methods [http://ariya.ofilabs.com/2013/03/es6-and-method-definitions.html]
* rest parameters [http://tc39wiki.calculist.org/es6/rest-parameters/]
* template strings [http://tc39wiki.calculist.org/es6/template-strings/]
* object literal property shorthand [http://tc39wiki.calculist.org/es6/object-literal-enhancements/]
Notably absent: default parameter values and block scoping ("let")
jakub_g · 2013-10-29
ES6 brings "rest parameter" [0].
function(param1, param2, ...rest) {}
[0] http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html
illamint · 2012-07-13
I think they're both using Nitro (depending on who you ask: http://ariya.ofilabs.com/2012/06/nitro-javascriptcore-and-jit.html), but UIWebViews don't have JIT compilation turned on (no executable memory pages allowed in iOS apps), so they're slower.