Sign up FAST! Login

Where did all the Rails developers go? Node.js?

Stashed in: Web Development, PHP, Ruby, 37signals

To save this post, select a stash from drop-down menu or type in a new one:

I haven't heard much about Rails lately, except grumblings about 3.0. Where have they all gone? My theory is that they have flocked to Node.js, for two reasons. 1) It's the new shiny. 2) When I look through node.js modules, I see a lot of Rails influence; I'm still trying to decide if that is a good thing or a bad thing.

Taking this a step further, are we going to see Rails, Django, PHP's Symfony and clones fall out of favor in a few months for Node.js? The main advantage node has is it's ability to use one language for both client and server side dev. Projects such has Yahoo's Mojito and https://github.com/visionmedia/express-expose are interesting to me because I infer from their descriptions that the current concept of using Ajax to re-render a part of the page is dead - use web sockets to keep a representation of the page on the server/client in sync. Ok, I made the last part up, but I think there are some interesting ideas when you stop thinking about client/server and instead try to think about simply passing objects around via HTTP with the same language on both sides.

All I know is that change either happens all at once, or very very slowly.

Node needs to actually be stable first...

And that stabilization process seems to be happening verrrrry slowly...

My impression from talking to my Rails buddies is that a lot of the original advantages of Rails -- simplicity, speed of initial setup, easy CSS and JS defaults -- are no longer as clear. A lot of this I suspect is the market evolving in such a way that "simple to start" just isn't good enough any more... but if you focus on "fast, scalable, reliable, flexible", it's no longer simple and fun enough to attract new programmers. Ironically friends who use Rails now seem to be focused on backend tools where speed of development and ease of maintenance still count.

Node.js definitely gets the "new hotness" hipster cred now, but those types of motivations are naturally aligned with programmers who don't have to worry about keeping big systems up under load. Still not seeing a lot of Node use in the "paying jobs" segment of the market. As you well know Nick, programmers choose languages based on syntax... but VPs of eng choose them based on toolchain.

That said, I tell brand-new aspiring webdevs to learn Node.js instead of anything else. I'm not positive it's a great way to learn, because some of the concepts are so different... but at least they can aspire to be full-stack developers with only one simple programming language.

Oh... also we use Node to build our Dojo :)

Still here, going strong :)

Rails has shifted. It was once the framework of small startups, exclusively. It's gained enough attraction and maturity to enter the realm of bigger business. So what are the cool kids who shun big business to do? Jump on the new hotness of Node.js and run with it :) Rails is still there, going strong, it's just not the hot topic of the day any more...

Still Rails 6 months later? :)

Yep, still going strong on my end with it.

In fact, over the last 6 months I've helped a few, 300+ people strong, companies in the area migrate into a Rails environment. Not that it's no longer useful in a two-person team environment...

Rails is what, about 7+ years old now? It's definitely not the hotness anymore, but I've found it to be a very solid framework. It's flexible enough for me to geek out on when I want ( and have the time to ), yet quick enough to solve real world problems when time-to-market and stability are of the utmost importance to me ( my startup ).

7 years sounds about right.

Do you get the sense that there is a "Rails Community"?

Or is that mostly disjointed?

Definitely a strong community for Rails (and pure Ruby). I'm not seeing it disjointed. I can't imagine it slowing down either. What I see is a lot of Rails people having fun with the new hotness and merging it into their existing apps, or making that new hotness one component of the whole stack.

But, this is just a perspective from my little corner of the world :)

Fun is essential. If it ever stops being fun, it will stop growing.

Right now most node tools are indeed pretty Ruby-esque. I'm not sure exactly why this is or whether it's good or bad, but I do think that most of the node community is into making tools, not apps. As Joyce said, a lot of Ruby has gone that same way.

Though I'm mainly a PHP guy right now, I think that in 5 years I'll probably be doing server-side JS. A lot of PHP's stated values are in line with node's stated values, but the node toolchain has not yet benefited from a PHP influence.

Even though I'm not a huge fan of frameworks in general, I think the inherently functional nature of node makes it somewhat ill-suited to the traditional procedural PHP paradigm of one view / one script.

Also, I think there are some things about node's implementation of SSJS that are just fundamentally flawed, particularly npm. npm is absolutely the worst package manager I've ever worked with, and I'm honestly at a loss to explain why node guys think it's not a bucket of fail. Its entire philosophy of keeping copies of old versions of dependencies is supposed to make things better by preventing upgrades from causing breakage, but I'd rather take the hit up front and not maintain different versions of dependencies everywhere.

I'm also of the opinion that if they'd started making node a year or so later, they may have opted to use AMD instead of their (blocking *gasp*) require system. I also think it's just plain weird that the app has its own http server, but you have to put it behind an nginx proxy and slap a process monitor over it to reboot it when it crashes (which is a little to frequent for a production system, based on experiments I did with node several months ago).

One day SSJS will be an important part of the web development landscape, but I'm not certain it's going to be node. And, even if it is, there are a few things I'd like to see change before I jump ship and add some PHP flavor to the Ruby party going on right now in the node world.

You May Also Like: