This is a trend that I sort of understand, but in another way entirely baffles me. While front-end apps are awesome, in this case the content could easily be compiled and served immediately with the page. This would make the load huge amounts faster, and a lot less confusing when every single user shows up and sees a header and collapsed footer every time they visit the page (no cacheing with this ajax method).
On the other hand, like some other people mentioned here, there are cool benefits to running js apps. A realtime post count is a nice tweak you couldn't have with an entirely static site... wait, or is it? No, you definitely could. Have the blog post content as static and then a snippet of js connects to your server's socket and displays the count as soon as it can.
I've seen a lot of people jump all in onto trends in building web apps when they make no sense, and this kind of bothers me. Blogs especially should be static, always. There is simply no reason to be hitting a server every time someone hits your blog, and especially no reason to be hitting an ajax call on page load, because this just makes the blog slow and puts additional unnecessary load on your server. (The number of sites running wordpress that could easily be static and would be much faster and less expensive that way baffles me - a problem begging for a solution.)
So I guess my conclusion is that while I am sure Meteor has a lot of value for real-time intensive apps, it is a ridiculous decision to use it for something like a blog. As web developers, we have a large toolset and the luxury to choose among hundreds of awesome, mostly free tools for any project we work on. Don't get stuck in the mindset where you have one tool that solves every problem (I saw a lot of people do this with rails too) - engineer your app to be the quickest and most efficient it can be : )
- When I first hit the linked blog post, I saw a blank page for four or five seconds. Not so bad, because I know what's happening, but jarring.
- Then I see a footer for five or six more seconds, with no page content. Again, I know what's happening, but I can see that looking sketchy for people who aren't developers: https://www.dropbox.com/s/d1mezohgixlneeu/Screenshot%202013-... - and it's going to be worse on a slower connection.
- I see that same view on several different pages when I initially navigate to them.
- Hitting the home page occasionally freaks the browser out. I don't know what it's doing, but I get multiple animations of the main banner and some flickering etc.
I may have been a bit dismissive - sorry about that. I do get that "dogfooding" a tech stack as it were is pretty important. What Meteor's going to be good for though is highly-interactive, collaborative apps, and it'll be really nice to see some demos of that, rather than yet-another-could-be-static site.
(Meteor doesn't appear to trap exceptions when using localStorage/sessionStorage, and even something as simple as "if (window.sessionStorage) ..." may throw an exception.)
And for the record, I really dug that feature. I often wonder exactly how valuable HN exposure is, it was nice to see a real metric.
But it's not going to 'kill' Rails any more than Rails killed PHP. I've seen loads of frameworks and indeed developers pop up who have taken the great ideas that frameworks like Rails had, and incorporated them into PHP projects. No doubt we'll see the same over time as new frameworks and tools arise elsewhere. And ultimately what we want is a better, more diverse selection of tools which are competing with and learning from each other.
Would I build a production app in Meteor? Almost certainly not. I'll probably have a crack at a prototype sometime soon (last time I tried, it was too underdeveloped to use) and no doubt I'll learn a bit on the way. But Differential's site is not an encouraging example - it requires JS, feels pretty slow and broken in places, and offers nothing that couldn't be executed as well (or better!) using any other toolset or framework.