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

  1. 1
    The boolean trap or how to design bad API
    7 people · 25 points · first shared 2011 · 2 comments on HN
  2. 2
    Nix as OS X Package Manager
    2 people · 357 points · first shared 2016 · 204 comments on HN
  3. 3
    Optimizing CSS3 for GPU Compositing
    2 people · 6 points · first shared 2013 · discussion on HN
  4. 4
    ECMAScript 6 and Method Definitions
    2 people · 2 points · first shared 2013 · discussion on HN
  5. 5
    JavaScript and V8 TurboFan
    2 people · 1 points · first shared 2014 · discussion on HN
  6. 6
    WebKit project hit its monumental 100,000-th check in.
    1 people · 35 points · first shared 2011 · 24 comments on HN
  7. 7
    Cloud PhantomJS on Amazon EC2
    1 people · 11 points · first shared 2012 · discussion on HN
  8. 8
    PhantomJS 1.8 Blue Winter Rose released
    1 people · 7 points · first shared 2012 · discussion on HN
  9. 9
    Lazy Parsing in JavaScript Engines
    1 people · 4 points · first shared 2012 · discussion on HN
  10. 10
    Introducing Esprima: A Blazing-Fast JavaScript Parser
    1 people · 3 points · first shared 2011 · discussion on HN
  11. 11
    The evolution of PhantomJS build workflow
    1 people · 3 points · first shared 2012 · discussion on HN
  12. 12
    Most popular JavaScript keywords
    1 people · 3 points · first shared 2012 · discussion on HN
  13. 13
    Isolated Development Environment Using Nix
    1 people · 3 points · first shared 2016 · discussion on HN
  14. 14
    Chromebook Pixel for Web Development
    1 people · 3 points · first shared 2013 · discussion on HN
  15. 15

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.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close