Really really quick impressions of Yeoman and Meteor. I was initially going to include AngularJS, but I’ll leave that for a subsequent post since it’s a bit different.
So I’m exploring. And deciding on a new project to start. Which means I want to get versed in some new technologies out there just to get a feel for what’s going on. I figured I should start with some of the more convenient framework generators, so here are some quick impressions of two I want to tinker with. The impressions are in no way complete, nor have I even touched the surface of everything they can do. So think of these as more my initial notes and part of the start of a process by which I’m hoping to pick a solid one and get going.
Yeoman
Site: http://yeoman.io
A pretty nice client side framework builder. Run a simple command line and it’ll tell you what you’re missing, and how to install it (if you’re on Ubuntu, it gives you the apt-get commands, I’m assuming it’ll show you how for other systems as well). Run it right out of the box or init it with things like AngularJS, Bootstrap, backbone, underscore, jQuery or whatever your choosing (from Bower). It handles getting you setup, organized, laid out, and frameworked up with your choices so that you can just get going. Bonus is that since it includes node.js, you can quickly call up a server instance and see your code up and running live without having to muck with any additional server setup.
It feels really nice to have all the hard work done for you in terms of setup. All the compression, parsing, transcoding, mixing, mashing… all done. I think there are still some small issues with AngularJS integration and Bootstrap (it doesn’t show Bootstrap loaded on the welcome page), and I’m not sure if it’s possible to tell it to use specific versions (like if I wanted to use AngularJS 1.1.1 instead of the stable branch), but it does what it needs. I’m definitely looking forward to trying it out a bit more and seeing if it gets rid of my setup headaches.
Meteor
Site: http://meteor.com
Like Yeoman, Meteor is a framework builder. But it also adds mongoDB to the mix and gives you the complete stack. So it setups up the client side and then also setups the server side. The fun thing is, it links the two together so that you can easily access the server code and manipulate your data store right from the client console in your browser. It also handles things like response latency, which is just a fancy way of saying it updates the local UI with data prior to sending it over the wire to the database for proper storage. I’ll have to see how it handles cases of concurrent updates and how those are resolved when the local UI can be out of sync with the database information.
But that aside, it’s also a nice setup that helps to take care of the full stack setup. As with Yeoman, it has customizable extension points to allow you to add your own favorites, even supporting AngularJS with a touch of extra work. This one I’m certainly keeping an eye out to see how useful it can be for just getting something quick and dirty up.
Oh, an even more superb benefit is that they give you a subdomain on meteor.com that you can publish to so that you can immediately host your project. Right then and there. That’s really cool if you want to do something dirt simple and quick but not necessarily something that needs to live permanently. That, I think a lot more frameworks should offer.
Thoughts
I really love the direction these framework builders are taking. They seem to remove the headache of having to get everything right and just allow you to start building. But in the end they are still just frameworks, and you still need to build your content. What I would like to see with the next evolution is to help support generic application flow layouts to come prebuilt. I think this is something Meteor can benefit from immensely by offering to the developer a one command setup system to build a user based system application layout complete with login screen and twitter/facebook/google OAuth2 credential storage integration directly into the database.
Update: accounts-ui package on Meteor seems to have this already. Nice. I’ll have to see if it does the trick. Update: yeoman-express-angularjs Looks like express.js support is in the works for an upcoming yeoman release.
That would really be awesome. Having that taken care of, the developer can then really truly concentrate on just developing the meat of the application. I’m not sure if Yeoman is slated to go in that direction as it deems itself a client setup system, but it can still be nice to see the right page layouts and hooks all setup and ready for you to go. The less I have to think about how to do this and the more I can leverage the standard way to do it, the more time I’ll have to actually build my application and get things going.
Looking forward to seeing how these framework generators evolve.