Building web apps is often characterized as painful, complex, and time consuming. There are many tools, libraries, frontend frameworks, and opinions about how to fix that problem… but they come with a catch. The frontend ecosystem is fractured into incompatible niches. They are incompatible with the web standards until they've been compiled. They are incompatible with each other, and often even incompatible themselves in between versions. This is especially frustrating as web browsers automatically update while remaining backwards compatible. The web is a medium where compatibility is a feature. By adopting non standard dialects we trade off the web's most powerful feature.
Imagine if we could write code that just worked, and ran forever? Imagine not chasing npm updates? Imagine not hunting the forums for an elusive combination of configuration values to fix a broken build?
In this talk, we'll tour Enhance: a new way to build web apps with the pure web standards. No custom dialects to learn. No build steps to configure. No friction. Just you; building the web.
What's the focus of the work these days?
These days we're driving towards finding focus for our customers in the front-end of web development. In the past few years, we've been working hard on figuring out how to bring the back-end more towards the front-end. The back-end traditionally has been tough to do. Lots of complexity. Servers, caching servers, database servers, infrastructure is code. And the front-end has been subsuming a lot of this work. And we think that the recent advances in cloud, cloud functions in particular, have given us the capabilies to bring down a lot of that complexity, adding backend dev into the front-end developer's toolbox.
What's the motivation for your talk?
For us, increasingly, we've seen people struggle with these tools. So each of these different ecosystems tends to ship these days with transpilars. So you don't author web standard languages. You author in some higher level dialect. Then you compile it into web standards. In theory, that's going to run everywhere and work great, and a lot of the time it does. The problem is, as you add more and more code you get dependencies conflicting across different versions, and frequently breaking changes. The code is brittle. Worse, these different high-level dialects are not interoperable, and can't really have a React application inside of an Angular application. It'd be possible to bring all these things together, but it gets messy and the resulting code is very fragile.
The ultimate realization we've had is that a lot of this is just not necessary anymore. Web browsers are very good now. They're evergreen, so they're auto updating and they are backwards compatible. So the question we asked a few years ago is could our code be backwards compatible? Does it have to be compiled and do we have to deal with these incompatible ecosystem issues? The answer is no, we don't.
How would you describe the persona and level of the target audience for this session?
This is an interesting question. So at a high level, I would say this is a talk for Web developers and that is all of us these days. You're building software, you're probably building it for the Web in some fashion. But as you know, there's a lot of different kinds of developers. Some developers are more focused on the back-end. Some developers are more focused on the front-end. I believe that there's something for everyone here. We make a lot of assumptions, but our technology moves fast, and I think these two disciplines are also starting to come together more and more. Full-stack developers are Web devs that are able to participate in both the front-end and the back-end.
Is there anything specifically that you'd like this persona to walk away with after watching your presentation?
Co-founder & CTO @Begin, created and maintains OpenJS Architect, maintains Enhance.dev