Sebastian Markbage explains how React is moving toward a minimal API surface by leaning on language features and patterns instead of dedicated framework APIs. He also touches on JSX and syntax proposals for future JavaScript.
Why Hacker News points people here: HN cites it as a statement of React's early design philosophy of keeping APIs small and understanding JavaScript itself.
“I found this talk on the topic very interesting”HN comment, 2017
“don't let libraries keep you from thoroughly understanding JavaScript”
Understand JavaScript thoroughly rather than leaning on libraries
Full comment
While underscore is indeed widespread, don't let libraries keep you from thoroughly understanding JavaScript: this video
RecommendsmsangiFeb 2017
“I found this talk on the topic very interesting”
Talk on the cost of abstractions and API minimalism
Full comment
That's indeed a very good advice. All abstractions have a cost and no abstraction is better than the wrong abstraction. I found this talk on the topic very interesting this video
Cites itdanabramovJan 2015
“Minimal API surface area”
React team talk on keeping API surface minimal
Full comment
They're not investing in OOP in any way. In fact, they're doing the opposite: deprecating proprietary pseudo-OOP `React.createClass` helper and let people use whatever they fancy. This makes it easier to write React components using idiomatic constructs from different languages, whether it is TypeScript, ClojureScript, CoffeeScript, or whatever. Also lets you use any mixin system, if you need it at all. React's stance on inheritance: link “Minimal API surface area”: this video
Cites itdanabramovJan 2015
“See also: Minimal API Surface Area”
Talk on minimal API surface and leaving mixins to userland
Full comment
>I'm disappointed with the implementation in this case (no mixins??) The point is moving mixin handling to userland (and eventually some sort of standard?), if I understand correctly. It's not really React's concern. See also: Minimal API Surface Area this video
Cites itsmhgJul 2015
“Aim for a good level of JavaScript understanding.”
Talk supporting learning language fundamentals over library reliance
Full comment
I don't agree either. The first part of the argumentation is indeed based on the author's feelings. The second part I don't think is an issue for most real world use-cases (Objects, Strings and, to a lesser extent, Numbers). On the underscore (_.defaults) recommendation: let's set our goals straight [1]. Aim for a good level of JavaScript understanding. Instead of library knowledge to make up for the lack of the former. [1] this video
Cites itiansinnottDec 2020
“going against React's prior principle of minimizing the API”
Source for React's earlier principle of minimizing API
Full comment
I'm a bit torn on the hooks feature since it seems like a great example of something that's easy but not simple [1], as well as going against React's prior principle of minimizing the API [2]. I'm glad the article also shows how to use the more traditional API as well, even if it is a bit more verbose. [1]: link [2]: this video
Cites itswyxSep 2024
“just have a small api surface area bro”
Markbage's insight on keeping API surface small
Full comment
I am still not over the collapse of Gatsby (for reference i nearly joined the company in 2017, was saved only by my own character flaws). They rode the highs - being the default docs tool for React, and building a massive ecosystem of integrations you could install out of the box. But too many abstractions, divided goals between cloud and OSS, and the better stewardship/design of Nextjs brought it down. There were the simple lessons ( link ). its easy to say in hindsight that graphql was too much for gatsby. i also believe the company went too hard for number of integrations over quality of them, an issue I had even in my interview. this was a poorer expression of the better insight that seb markbage had; just have a small api surface area bro ( this video ) But the bigger lesson is bitterer. Frontend tooling isnt worth that much. the fact that vercel is pretty much the only successful frontend startup of its generation makes it an exception to the rule (there are plenty of smaller companies that are thriving, like tailwind, but it is not a venture scale startup and thats fine). People dont pay for frontend tooling. they expect it to be free, expect it to do everything, get into internicine squabbles between frameworks when they are all basically doomed compared to just betting on React sponsored by Facebook and now Vercel (and a little bit of Shopify), or going back to fullstack frameworks like Django/Rails/Laravel. all frontend tooling, nextjs included, is just leadgen, loss