Hacker News new | ask | show | jobs
by astrodust 3434 days ago
I'm not complaining that Node isn't Ruby, or that Express isn't Rails. What I'm saying is that there's an opportunity in the Node space to create something as fast, friendly, and forgiving as Rails is.

The "translation" there is how comments like that are perceived. "Put up or shut up" is not a good way to build community. Yes, obviously we have options, but the amount of commitment it takes to go with some of them is a lot higher, and in many cases needlessly so.

> I'm not sure what led you to think you need Gulp to get to "Hello, World".

If you have a non-trivial plan for what your application is going to do and you're intending to iteratively deploy it then you really do need an asset handling plan. Gulp does a great job of this if you spend the time to configure it correctly. With ~200 lines of configuration I get minification, compression, asset hashing, linting, auto-starting, and more. In some important areas that's ahead of Rails, especially in terms of control.

I'm talking about cultural concerns here, about the experience of someone new trying to build a Node application and needing to cobble this all together themselves. It took me about six months of iterative work to come up with a reasonable environment to build Node + Express apps. It took me two weeks to get settled into Rails back in 2005, and I've walked people through the same process with every version since Rails 1 and it's rarely more than a few days of coaching. This friction is something that's a serious problem and no amount of hand-waving dismissal of "that's just how Node is" will change that.

If you want to bring new people into your platform, into your culture, into your community you should make a better effort to lay out how things can or could be done. It shouldn't involve foraging through blog posts, Stack Overflow answers, and pestering co-workers for snippets of code, assembling a veritable quilt out of them that you pass on to others like some sacred heirloom.

For example, I'm consistently impressed with the quality of the documentation Node projects have, even humble ones with obviously limited appeal. The Ruby world is filled with crusty, opaque code with half-assed documentation that's often wildly out of sync with the shipping version, even for foundational components like Rake, Rack, or Rubygems.

If Node had a softer start for those that wanted it, respecting the culture of being able to pick and choose on a very granular level, I'm sure people would be more productive, use it on more projects, and contribute more back into the community. This is a lost opportunity.

1 comments

It's interesting to me that your experience with Rails sounds a whole lot like my experience with Node, and vice versa. Granted, I was able more quickly to become productive in Rails for trivial tasks, but the additional time cost it imposed on nontrivial tasks more than swamped the early gain; while I have also found a knee in the efficiency curve for Node, it goes the other way.

But, in general, "friendly, fast, and forgiving" is exactly how I've always found the Node/Express tooling and ecosystem to be, while Rails has been among the least welcoming stacks I've ever had the displeasure to use - and, to your point about having to commit, in deciding "Rails: never again" I essentially threw away most of a year's worth of professional experience, which was so Rails-specific as to offer nothing useful in any alternate context. That's a choice I'm glad I made, rather than chasing the sunk cost, but if we're going to talk about things that require a lot of commitment, I think we have to talk about that kind of thing, too.

Based on the apparently almost mirror-opposite nature of our experiences with these platforms, I'm inclined to wonder whether the characteristics of either are strongly to blame, or whether instead it's a question of preference, or congruence between personal style and that of the platform, or just good vs. bad first impressions.

Not least to that last point, I do agree that a more reliably findable onboarding experience might be warranted. But it does sort of come down to "put up or shut up", harsh as that may sound; again, without a BDFL or a One Right Way, there is no one to mandate such a thing must be done, and thus, until someone comes along with the knowledge and the passion to do it, that thing does not get done. There's some degree of cost in that, to be sure. But the difference in engagement makes it reasonable to ask whether it's as much of a problem as it might seem.