Building applications for the web (or mobile) has never been easier. And it will continue to get easier, as more companies develop what I think of as “building blocks”. These aren’t the low level fundamentals needed for web technologies to work, but the abstracted, easy-to-use components that more and more people are able to literally drag and drop into place and create something with.
Yesterday, I got an email from a 14-year old developer asking questions about how to do a couple things with the GoInstant chat widget. He had read about another developer integrating the widget with McCodes, a platform for building multiplayer games.
Three things stand out to me about this:
- It’s awesome to see young people coding and trying things out.
- The building blocks emerging for web/mobile development make it possible for a 14-year old (or anyone) to become a developer pretty easily.
- The building blocks blend together and connect easily.
Some of the building blocks are very popular or have turned into large businesses. GitHub is probably the best example. It’s a piece of “infrastructure” that tons of developers use, which has encouraged more open source sharing, and allows for easier development. GitHub has raised $100M+ in funding. Docker recently raised $15M, another infrastructure play.
That’s the beauty of building blocks–they’re designed to make a developer’s life easier, and let the developer focus on putting together a new experience/product that will benefit his users or customers. Developers can be up and running so much faster, and that’s only going to accelerate in the future.
There are lots of building blocks out there. If you want to add a piece of functionality to your application, you don’t have to build it from scratch–just find a company or individual that focuses on what you want and grab that. The building blocks of the web are getting easier to stitch together too. Zapier is a building block for connecting APIs, so you can piece things together more easily. And a lot of building blocks are designed, out-of-the-box, to talk naturally with other building blocks.
Most web and mobile applications are pretty straightforward. They’re CRUD apps (Create, Read, Update, Delete), which let you view, add, edit and delete data. Add a bit of social to the mix too, so people can share stuff as well (which could be considered an edit). And that’s it. Break down most applications and they have the exact same core functionality. Making an app interesting, unique, sticky and meaningful is insanely hard. How do you mix and match the core aspects of an application into something new? That’s what developers need to focus on–not the individual pieces, or how an app is deployed, or where data is stored. The user experience, the packaging, the story, the unique twist on a well-known feature … those are the things that matter today.
Everything on the web is being turned into a component.
This includes the core infrastructure you need (hosting, data storage, deployment), functionality, and even testing, analytics and instrumentation. You can now drop a couple lines of code into a mobile app and A/B test it. That’s a small component. You can add forums, store locators, e-commerce, chat, video and more, all with small snippets of code that you don’t really have to understand. And many of these things are extensible, and most of them play nice together. Hull looks interesting. So does widgiFire. Just two examples of the web as components.
That’s the future for a lot of web and mobile development — finding the right pieces and stitching them together. There will always be a need for more sophistication and “looking under the hood”, but most of the people that do that will be the people building the components. For the rest of us, we can focus on the vision we have for our app, and delivering amazing experiences to our users by piecing things together like an awesome puzzle.
This “componentization” of the web also has profound affects on education. It’s getting easier and easier to learn how to code (even if the coding you’re doing isn’t low level), which should attract more people into coding and building things. My hope is that this in turn unleashes people’s creativity and willingness to try things out, and we’ll get more people building more things, whether as entrepreneurs or not, and that’s going to help more people succeed in their careers (whether they become developers or not). When we get to the point where everyone can be a developer (competent enough to hack a few things together), we remove a serious barrier to entry that holds people back. We make the web that much more accessible, and open up way more possibilities.
Photo courtesy of wallyg.