Meteor 0.6.0: brand new distribution system, app packages, NPM integration
meteor.com
meteor.com
Probably not ready to be building 100 million user services on just yet, but utterly fantastic for quick prototyping & iterating services (which is a large part of what I do day-to-day).
I love Backbone & Ember and all the rest, but as mainly-a-designer/front-end-dev, if I can get away without writing an API in Rails and have everything just work I'll choose that any day.
I've also got this idea of a scale of 'magicness' from 0-10.
- 0 - writing the JS by hand, maybe with jQuery.ajax etc.
- 2 - Backbone - easy to use, easy to debug — just not very magical!
- 5 - Ember & Angular - pretty cool but still enough that the headaches can be off-putting
- 9 - Meteor - always seems to work, never frustrating, so magic that the occasional thing that's tricky to implement is totally worth the rewards.
edit: also, shameless plug - if you're in London and like tech meetups that aren't boring, come to the Meteor meetup. It's fun.
Derby, on the other hand, was very buggy from the start and it took a while to get anything working. But once the app was running, it was easy to add anything supported by Node.js/NPM/Express to it. In my case, I added some server-side Express routes (REST APIs) and server-side background processing (game logic). At that time, these seemed difficult to do in Meteor.
During the past few months, Derby has proven occasionally unreliable and the documentation is sketchy (the query section, especially regarding security, is quite incomplete). But it has not been a dead-end. There's always some way to work around the problems, e.g. by using a "real" MongoDB connection to read some data on the server side when Derby's queries fail for some reason.
Meteor, on the other hand, was extremely easy to get started with. The examples worked and the documentation was decent. Both Meteor and Derby.js are far from finished but to me Meteor seems like a much more polished product than Derby. I still hope both will live on because friendly competition is good and Derby has a niche.
Our initial goal in open sourcing the framework was to get some ideas out there and see what worked well and what didn't. We've learned a lot from this process, and we now have a much better idea of how to build a great system.
We are excited to see all of the innovation coming from Meteor, Firebase, and other new realtime systems. While there are similarities, our teams have different perspectives on what the future of web development looks like, and we believe there is still a great deal to be gained from further development of each of these platforms.
Currently, our changes to Racer will keep a similar API but make Derby apps much more stable and scalable to large production deployments.
(To me, their difference is about productivity vs. flexibility, although IMHO Rails eventually became just as flexible and "won". So it's interesting to see if Meteor achieves the same.)
I'm planning to build a real-time multiplayer javascript game from scratch, taking suggestions from the audience as we go. If you've been curious about Meteor and are in the area, come by!
Are you Stanford Student? Will you be giving other talks on campus? Any links to the hackerspace?
The hackerspace: http://svihackspace.com/
If you're curious about making it out to a Meteor event in the area, check out the Meetup.com group: http://www.meetup.com/Meteor-SFBay/
I think it is convenient to be able to declare global variables like that but perhaps there should be a way to monitor those ; in other words, it would be really convenient to have some form of alert system to notify you when a new global variable is created.
That way, globals created by mistakenly forgetting the 'var' keyword would be easily spotted.
for(var i in window){ if(typeof window[i]=="object"){console.log(i);} }
But I think op wanted variables server side as well
Also, as simple as this might be, making it a de-facto standard (on meteor) would be a good thing since it would be a tool that we can count on, all the time. There are too many browsers IMO to make an extension a viable option.
Whitelisting variables would be good as well ; that way we do not get alerted if it is something we expect to be global.
Meteor.setInterval(function(){ for(var i in global){ if(MyVars.find({name:i}).count()==0){ MyVars.insert({name:i}); console.log("New Public Variable: ", i); } } }, 5000);
Thanks for the fun challenge :-)
Object.observe(window, function(changes){ console.log(changes) })
:)
When it was first announced, I was fairly intrigued like everyone else and gave it a spin. At the time, I found it difficult to put the pieces together. Now, that's all changed.
Great example: I'm wiring up an accounts system in an app now and excluding styles, it will take about 5-10 minutes to write the auth code. Fully functioning and even ready to support popular third-party services.
The best part: they haven't even hit 1.0.
http://meteor.com/blog/2012/08/09/search-engine-optimization
Result: get the best of both Angular and Meteor, with the ability to use either (or both of their) reactivity.