08 Feb A Meteor storm is approaching – Hooray!
Why is writing software, especially web software, so expensive?
Because it’s too hard and it takes too long. It’s time for a new way to write software, especially the user-facing software you and I use every day to talk to people and keep track of things. And the good news is, I think a change is coming!
Why developing web applications is expensive:
In the 70s, mainframes and dumb terminals were all the rage. Wait a minute, in 10s we’ve still got the same problem, browsers are now the dumb terminals. Whenever we click a button, a shout (request for a new web page) is made back to the application server and it re-renders a whole new screen.
But the best teams, with the biggest budgets and the longest schedules, didn’t want to reload pages. They wanted rich interfaces and reactivity, so a change from any single client immediately appears on everyone’s screen. And today we build these interfaces with the following areas/technologies:
To cover all these skills realistically requires a number of talented individuals or even harder to find a Full-stack Developer, meaning someone who is comfortable working with these back-end and front-end technologies. As you can imagine these individuals are hard to come by, hard to hold on to and deserve the big dollars they can command.
We want things to be an order of magnitude simpler, and a lot more fun. Surely that’s not too much to ask?
Well it turns out that lots of other people feel the same way, and some of those individuals have got very deep pockets, US$11.2 million deep to be precise.
Meteor hits planet Earth
Meteor was a participant project of the Y Combinator in 2011, where Dropbox started, and soon after got a massive financial boost from the likes of Andreessen Horowitz($2.5 billion venture capital fund), Dustin Moskovitz (Co-Founder of Facebook and Asana), Alexis Ohanian (Co-Founder Reddit) plus a few others.
3 years along the development path Meteor version 1.0 was released in Oct 14. It’s maturing into a framework that has the potential to change how web development works:
- The server sends data and the client renders it = Much better user experience
- Javascipt for both client and server = One Language reduces complexity and risk
- MongoDB on the server and miniMongo on the client = One database everywhere with the same methods
- Latency Compensation = awesome user experience as client prefetches data
- Realtime is the default = All layers from database to template, update themselves automatically
Simplicity Equals Productivity
Integration of both client and server via a common language simplifies the creation of web-based applications. Less complexity means faster coding and less errors. Because the server sends only data, not full-blown html, and the client renders the data into HTML, this enables a so-called reactive user interface. Which means that if data changes, your interface automatically changes too. And that’s all managed by the framework.
Why I’m loving it and my clients will too:
If I love that, my clients are going to love it too, because it means lower development costs while maintaining a solid code base.
Meteor is ahead of the tech-curve, with MongoDB it’s not going to necessarily be a great fit for every project, but when it does fit, it’s special.