So if lots of things are compilers, I think there's a lot of room for us to be really creative about it. And it doesn't matter if that's, for example, what Middenland does, where they use compilers to inject instrumentation that will capture information about your code in runtime, and then feed that into an LLM that will tell you how to optimize the react performance of your code. Or if that's what Astro does, where the Astro compiler actually splits your code based on directives, and allows you to solve hydration problems in many different fashions. Or what Mitosis by Builder.io does, which is also very complex, because they transform JSX components into components for Angular, React, Quake, Vue, Veltas, Solid, and whatnot. And these three last examples, they might have sounded too complex, and they might also fall into this umbrella of you're not Facebook, why would you bother? But again, we can find examples we can relate to. Like this tool by Rangle, they basically run a static analysis to understand how their design system is being used by their team.
So I really think that understanding compilers can make us better JavaScript developers, or front-end developers. So again, we don't need to write one, but just having an overall idea of how they work, they can help us better evaluate frameworks, debug edge cases, and even influence our architectural decisions in our projects. And I found this the other day on Reddit, and it's a post that goes like this. There is really no better education on complex data structures and data processing and data types itself than compiler design. With the possible exception of network programming, I'd say all software development can be seen as a sort of subset of compiler design, and you won't have the complete picture if you don't understand it. And, for me, that's really interesting because we can abstract the compiler as a pipeline of sometimes even relative simple transformations from one data to the next form of data.
So to wrap it up, the title of the talk is Compilers, User Interfaces, and the Rest of Us. But probably the main takeaway is actually compilers, aesthetic analysis, and all of that, they are for the rest of us, and we can start using them today. The slides for this session are available in this QR code and other sessions I have on internals of tools and browsers and whatnot. And I think we still have time for some questions, so thanks a lot for having me today. Yeah. I would love to know. So as someone like myself who does not have a background in computer science, are there any resources you would recommend for developers who are looking to learn more about compilers or maybe start their compiler deep dive? Yeah. So there's a lot of free online courses from MIT, Stanford, and other universities out there, which are basically subsets of their CS courses you would take. Also reading how those frameworks are using, for example, Sakya, who used to be on the React compiler team at Meta, he writes a lot on how React compiler uses those concepts. And the same thing about Marco, for example, Ryan just mentioned how he hosts lots of livestreams. So in some of these livestreams, they actually compile the talk about compiling that. So yeah, reading the classics, also some books like Structure and Interpretation of Computer Programs and all of that and seeing how this is all applied in front end tools. Nice. I love it. And I also love it. Anybody who thinks that there's not a lot going on on the front end is kidding themselves.
Comments