Meteor
A web framework for 2012.
So the concept is this: You have a template for your HTML, and you have your application code in Javascript. Server side, client side, whatever, it's the same codebase. For simple apps, it's the same file. When you update any javascript that would affect the client side, it gets pushed to the people currently on your site, live, so they get the update. If you define an element of the page or a piece of data or something that should be kept in sync between all connected users, it happens seamlessly. Meaning, if you have a button on your page that changes a div to a different background color, you can tell that to sync between browsers and now *everyone* on your site, in real time, can see the color change when anyone clicks the button. And you do that without having to know anything about websockets or protocols or any library that isn't Meteor's own API. Doing this is literally 3 lines of code.
That's really only the tip of the iceberg. They also have a PaaS to deploy your creations to, a module packager that ensures each module you use is capable of the live-updates thing, and a million other bells and whistles. It's pretty impressive.
http://meteor.com
Some random thoughts about this:
- I used to warn people against using MongoDB a lot, but they've made some recent updates that makes it warrant a second look -- so I won't hate on the basis of the DB choice for now ;-)
- It DOES bother me that Mongo is the *only* choice. Their API allows for basic key/value storage as well as for more complex relational queries, so if you can only have one DB, Mongo wasn't a horrible choice... but I don't see wide adoption of the framework without supporting more types of data.
- There is currently zero security around database access. Any client on your site has full DB access. That is frickin INSANE. But, when asked about this in the HN thread, they said they have an auth branch in the works that will cover this concern. Until then, Meteor can really only be treated as a cool toy.
- I'm really curious what the bandwidth overhead is for this. Clearly it's using websockets (and might even implement socket.io; I haven't looked at it yet) but what all gets sent down when you save a one-line change? It's worth looking at.
- The variable dependency detection in the live functions (if you watched the screencast) is fucking MAGIC and I can't WAIT to read the source to see how the hell they pulled that off.
- The license is GPL. Meaning, if you want to use this for something closed-source, you're probably going to have to pay money for a commercial license. That's kinda crappy. I'd rather they profit off of their PaaS than lock down the actual library itself.






Cartoon Clouds
Mountains
Sunrise
Clouds
Green Clouds
None







a hoopy frood who really knows where his towel is. ~~~ 











Help