Skip to content
0:00 / 0:00

#react#abstraction#softwaredesign

Cheng Lou - On the Spectrum of Abstraction at react-europe 2016

ReactEurope

23K subscribers • 3 videos on Hallway

YouTube
  • Recommended by 5 people: 5 on Hacker News.
  • A classic. People kept recommending it from 2016 to 2022.
  • Presented by Cheng Lou
  • May be out of date. Uploaded 10 years ago, in an area where tools change fast.

Intermediate. Assumes working knowledge.

63K views10 years ago5 recommendations

Software designWeb developmentSoftware architectureVue, Svelte, Angular and othersDesign patterns

Cheng Lou presents a mental framework for reasoning about abstraction levels in software, using the evolution of JavaScript tooling as an example.

JavaScript and the React community have evolved over the years through all the ups and downs. This talk goes over the tools we've come to recognize, from Angular, Ember and Grunt, all the way go Gulp, Webpack, React and beyond, and captures all these in a unifying mental framework for reasoning in terms of abstraction levels, in an attempt to make sense of what is and might be happening.

Why it's here

5 people recommend this

What people say. Highly recommended for its insightful framework on the cost of abstractions and how to choose between competing software solutions.

K0SM0Son Hacker News • Recommends

On “Next.js 2.0”

This talk is incredible food for thought: On the spectrum of abstraction by Cheng Lou (react-europe 2016) 1 If you've read some of the classics, such as Structure and Interpretation of Computer Programs (1979, Gerald Jay Sussman and Hal Abelson) 2, this talk is a really interesting look at the state of affairs on abstraction circa 2016. 1: link to this video 2: link

Ryguon Hacker News • Recommends

On “On DRY and the cost of wrongful abstractions”

For a more visual explanation of the "cost of abstractions" watch this presentation by Cheng Lou (Facebook). link to this video

rk06on Hacker News • Recommends

On “Ask HN: What is your favourite tech talk?”

The spectrum of abstraction: link to this video This is an high level talk. it guides on how to choose between competing solutions to a problem when the commonly accepted answer is "it depends"

nameloswon Hacker News • Recommends

On “Virtual DOM is pure overhead (2018)”

React is more like 'Lambda the Ultimate Web Component'. A component is almost a function returns element. Expanding a component is like calling a function and give it the property. So you can have some abstract common behavior in HOC f and g, then you can have HOC `h = compose(f(g))`. A quick comparison with Angular: @Component({template, style}) seems composable if we stretch a lot. But why make template and style in the decorator... They are not something we consider most abstract at all. The function is the simplest yet composable abstraction over the template, Cheng Lou also has a really excellent talk on the topic: link to this video

hnbadon Hacker News • Recommends

On “Moving from React to htmx”

I know, this isn't a novel concept. There was a good talk about the spectrum of abstractions and the tradeoffs of template languages vs React's approach at React Europe a couple of years ago (in fact, he goes into that this means there are some optimizations that are simply unavailable to React): link to this video The question isn't whether DSLs or "just JS" are more powerful, the question is which tradeoffs they represent and which tradeoffs you prefer. It seems that HTMX is primarily based in the Python ecosystem and as a former Pythonista I see the advantage of having a DSL over having to write JS, especially that the former is much narrower, which is what you want in this situation.

u/horses_arent_friendsin r/typescript • Mentions

On “Terraform with TypeScript”

Personally if you're able to easily manage your resources using plain manifests I don't think using Terraform is a good move. Like you're saying - abstractions inherently make things murky; it's a tradeoff you make for power but that tradeoff needs to be worthwhile (and kubernetes by itself is already great at making simple systems opaque!) However, if you're reaching for tools like Helm or Kustomize, I think Terraform is a great alternative - especially if your cluster interacts with external resources that Terraform can also manage (e.g. in AWS, an RDS instance or maybe yanking secrets out of KMS). A specific usecase that Terraform was useful for at my last job (note - we had a pretty…

YuukiReyon Hacker News • Mentions

On “Webpack 4 course: What is Webpack?”

Interesting that you should mention it. This talk link to this video mentions some arguments why a DSL would not be a good approach for frontend/JS build tools. Namely that a DSL isn't adequate if the underlying best practices or requirements change a lot. That's why operating at a higher level of abstraction (function chaining/piping/composition) would make more sense. Now... that doesn't really favor Webpack. And I still don't quite understand why that tool is so popular.