Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It’s easy to become disheartened, particularly in the world of web development. It looks like we’ve been around the industry for a similar amount of time, and I agree that the amount of wheel-reinventing in web development is shockingly bad for a part of the industry with so many resources poured into it by now. But have faith, my friend! Even in frontend web work, good ideas do break through from time to time. :-)

Not so long ago, there were plenty of FE people who would argue to the end of time that JavaScript was fine and building ever larger frontend applications wouldn’t benefit from static types that just take more work to write. Today, it seems TypeScript has almost entirely displaced JavaScript for that kind of work.

Not so long ago, we were trying to build those web frontends by manually tracking state implicit in HTML form elements and maybe doing a bit of automatic binding. Then React came along, the frontend world finally realised that immediate mode is a thing, and today building web UIs in a more declarative style from some kind of components is common to almost all of the popular libraries and frameworks.

Each of those changes must have saved millions of hours of developer effort already compared to how we did things before, as well as avoiding countless bugs. Now imagine what we could do if, just as a thought experiment, we could all use a language for frontend web work that didn’t have the legacy baggage that TS/JS have, did have a much more comprehensive and well-designed standard library, and provided better control over side effects and by extension safer and more readable code for all the interactions with remote APIs and state management and interactive DOM elements that modern web apps do all the time. I don’t know where such a language might come from today, but if we can shift such a large part of the industry to TypeScript and declarative/component-based rendering within a few years, it doesn’t seem an impossible dream.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: