Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    P

    Pony Foo

    ponyfoo.com · Personal blog · on HN since 2014

    Nicolás Bevacqua writes about JavaScript, ES6, modules, and browser internals, and also runs a weekly newsletter.

    Visit blogHN submissions
    Web DevelopmentProgrammingLanguages & Compilers
    What HN says

    Commenters call the articles excellent and the newsletter consistent and high quality, though one says the emphasis in some posts adds noise.

    Stats for nerds
    54HN people shared it
    322linked in comments
    1.4Kstory points
    Jan 2022last shared
    2015people per year2022

    Top posts on HN

    1. 1
      The Controversial State of JavaScript Tooling
      2 people · 158 points · first shared 2016 · 153 comments on HN
    2. 2
      TC39, ECMAScript, and the Future of JavaScript
      1 person · 123 points · first shared 2017 · 97 comments on HN
    3. 3
      Why I write plain JavaScript modules
      4 people · 120 points · first shared 2015 · 41 comments on HN
    4. 4
      Stop Breaking the Web
      1 person · 102 points · first shared 2014 · 46 comments on HN
    5. 5
      The Double Edged Sword of the Web
      4 people · 91 points · first shared 2016 · 42 comments on HN
    6. 6
      ES6 Symbols in Depth
      1 person · 70 points · first shared 2015 · 22 comments on HN
    7. 7
      Show HN: Ridiculously over-engineered my blog
      1 person · 36 points · first shared 2016 · 3 comments on HN
    8. 8
      Show HN: Pony Foo Weekly
      1 person · 26 points · first shared 2016 · Discussion on HN
    9. 9
      React, JSX and ES6: The Weird Parts
      2 people · 25 points · first shared 2015 · 21 comments on HN
    10. 10
      ES6 Overview in 350 Bullet Points
      5 people · 22 points · first shared 2015 · 1 comments on HN

    What HN people wrote when they linked it

    • dandotwayJan 2022

      Question for JIT experts: JS and Python are extremely hard to optimize because they both allow redefining anything at any time, yet V8 crushes Python by an order of magnitude in many benchmarks[1]:

      All times in seconds (lower is better)

      benchmark Node.js Python 3 Py takes x times longer
      ==================================================================
      regex-redux 5.06 1.34 ** Py3 is faster (PCRE C)
      pidigits 1.14 1.16 0.02
      reverse-complement 2.59 6.62 2.56
      k-nucleotide 15.84 46.31 2.92
      binary-trees 7.13 44.70 6.27
      fasta 1.91 36.90 19.3
      fannkuch-redux 11.31 341.45 30.19 (wut?)
      mandelbrot 4.04 177.35 43.9 (srsly?)
      n-body 8.42 541.34 64.3 (no numpy fortran cheat?)
      spectral-norm 1.67 112.97 67.65 (Python for Science[TM])

      (If Python is allowed to call fast C code (PCRE) for regex-redux, I don't see why Python shouldn't be allowed to call fast Fortran BLAS/etc for n-body, but rules are rules, I guess. V8 doesn't cheat at spectral-norm, it's 100% legit JS.)

      Both ecosystems have billions invested by corporations worth trillions; bottomless money exists to make Python faster. So why isn't Python faster?

      V8's tactics include dynamically watching which loops/calls get run more than (say) 10,000 times and then speculatively…

    • LazareMar 2016

      `feross-standard` is much less popular than `eslint-airbnb`, and it faces a struggle being adopted because it enforces some very unpopular choices.

      Notably, it uses a "no semicolon" style which is used by around 11% of JS devs[1] and is always capable of igniting a heated argument, but it also has some other questionable choices: For example, it enforces spaces after function names (eg, "function valid (size, name) {/.../}" versus "function invalid(size, name) {/.../}"), which no other style guide or linting rules agrees with.

      The point of posts like OP's is, I think, to advocate people standardize on the best tools, or when multiple tools are equally good, the most popular ones. `eslint-airbnb` is at least as good, and much more popular by basically any metric (eg, the `airbnb/javascript` repo has 31k stars, the `feross\standard` repo has 4k stars, etc.). To the extent that there is (or should be) a standard for linter rules, I think it's airbnb's.

      [1]: https://ponyfoo.com/articles/javascript-developer-survey-results

    • bevacquaFeb 2016

      SEEKING WORK. Remote front-end specialist.

      Front-end specialist with 6+ years of experience, currently focused on all things JavaScript and a full-stack Node.js developer.

      I enjoy writing code in small modules. I love working with ES6, architecting Angular and Backbone apps, and helping out with React and performance. I'm a prolific open-source developer and I've published hundreds of small modules.

      Location: Buenos Aires, Argentina (GMT -3)

      Technologies: Node.js, JavaScript, (Angular, Backbone, React, Open-Source Modules, etc), CSS, all things web

      GitHub: https://github.com/bevacqua

      Blog: https://ponyfoo.com

      Resume: http://careers.stackoverflow.com/bevacqua

      JavaScript Application Design (a book I wrote): https://ponyfoo.com/books/javascript-application-design

      You can reach me at hire@ponyfoo.com

    • hacker_9May 2017

      > JS is not parallelized

      https://johnresig.com/blog/web-workers/

      https://ponyfoo.com/articles/understanding-javascript-async-await

      > Python is also compiled to a bytecode before interpretation; were still don't call it a compiled language.

      https://softwareengineering.stackexchange.com/questions/24558/is-python-interpreted-or-compiled

      > macros aren't significantly faster

      > you can always precompile your abstraction on program load at the expense of slower start times

      http://www.ilikebigbits.com/blog/2015/12/6/the-fastest-code-is-the-code-that-never-runs

      > How can I ask it what type a function returns or what types it's arguments should take?

      http://www.braveclojure.com/core-functions-in-depth/

    • rgloverMay 2021

      FWIW the clean code approach led me to this pattern which has allowed me to build some seriously complex systems in JS/Node: https://ponyfoo.com/articles/action-pattern-clean-obvious-testable-code.

      I agree with the sentiment that you don't want to over abstract, but Bob doesn't suggest that (as far as I know). He suggests extract till you drop, meaning simplify your functions down to doing one thing and one thing only and then compose them together.

      Hands down, one of the best bits I learned from Bob was the "your code should read like well-written prose." That has enabled me to write some seriously easy to maintain code.

    • vanderZwanApr 2021

      > But there is only one type of number in javascript. Everything is just a double(BigInt aside).

      There is nothing stopping JS engines from trying to infer when a number is only an integer and optimize for that. In fact, that's what Small Integer (SMI) optimizations are all about[0].

      It's just that |0 isn't really able to guarantee that our number value is the type of SMI that V8 optimizes for (since the V8 SMIs are 31 bits, and bitmasking operations only guarantee 32 bit integers)

      https://ponyfoo.com/articles/an-introduction-to-speculative-optimization-in-v8

    Related

    Lea Veroulea.verou.me121 people

    Today’s JavaScript, from an outsider’s perspective (2020)

    Lea Verou
    Personal · last shared 2026
    Stubbornellastubbornella.org31 people

    Why I run my business like an open source project (2013)

    Stubbornella
    Personal · last shared 2026
    Coding Horrorblog.codinghorror.com2.1k people

    Farewell Stack Exchange

    Coding Horror
    Personal · last shared 2026
    swyxswyx.io120 people

    AWS is playing chess, Cloudflare is playing Go

    swyx
    Personal · last shared 2026
    DailyJSdailyjs.com112 people

    Backbone.js: Hacker's Guide

    DailyJS
    Publication · last shared 2017
    The Man in Bluethemaninblue.com37 people

    "HTML5" versus Flash: Animation Benchmarking

    The Man in Blue
    Personal · last shared 2022
    SurviveJSsurvivejs.com35 people

    Interview with the author of React-like Inferno about JavaScript optimisations

    SurviveJS
    Personal · last shared 2023
    Ian Bickingblog.ianbicking.org107 people

    Firefox Was Always Enough

    Ian Bicking
    Personal · last shared 2026