Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Does Node dominate at new startups?
19 points by callmeed on Aug 2, 2014 | hide | past | favorite | 25 comments
I had a long conversation with an engineering manager at a public tech company. He told me, basically, "Ruby is dying. Most new, funded startups in SF/SV are building in NodeJS if it's a web-based app (or a mobile back-end)."

Is there any validity to this? Is there any recent survey data on what startups are using (or maybe what YC companies use)?



Heh... I just realized I have no idea what any other Triangle area startups are building in. And more to the point, I don't really care. I mean, if I met another startup founder at an event or something, the question "what is your tech stack?" would be pretty near the bottom of the list of things I'd ask. I actually can't even think of a reason I'd want to know.

I'll go back to what Steve Blank and others have said: most startups that fail (and most do), fail because they build a product nobody wants, not because of technical problems with the product. If you believe that is true (and I do), the tech stack really just isn't a very important decision at all. And I think that's especially true if you stick to anything even remotely close to mainstream: Node, Rails, Grails, Django, Flask/Pyramid/Pylons/Whatever-it's-called-now, Scala+Play, Java+Spring MVC, Whatever-Clojure-uses, etc.

Now, if you said you were building using Algol-68, SNOBOL, RPG/400 or MUMPS, then there might be a legitimate question regarding your ability to find and hire good developers, etc. But I'd still almost be willing to bet that "building a product nobody wants" would be more likely to be the culprit if the company failed, than the tech choice.

That said, we use Groovy and Grails here. Node is on my list of "things to play around with when I have some free time" but nothing I've heard yet gives me any reason to think that it's a "game changer". Feel free to convince me otherwise though.


I've worked quite extensively with Node, and I'd hesitate to call it a "game changer". The game has not changed - there's nothing about Node.js that fundamentally alters the way people build web servers.

I mean yes, there's the whole async thing (nothing new), but that's really only in pursuit of performance, and Go (way more performant) will catch up to Node's library selection within a few years.

All that said, I quite enjoy working with it: I find Javascript pleasant, and it's easy to create elegant solutions to the problems I encounter day to day. Finally, Node powers some absolutely fantastic front-end tooling (Bower, LESS, Gulp). Even if it's not powering your sever, I recommend it as part of the front-end workflow.


> anything even remotely close to mainstream: Node, Rails, Grails, Django, Flask/Pyramid/Pylons/Whatever-it's-called-now, Scala+Play, Java+Spring MVC, Whatever-Clojure-uses, etc

The etc covers Go based servers nowadays. PHP backends are still fairly common, and maybe even Perl 5 is still used.


Thanks for the input.

If there was a web framework for Ada, I'd be all over that ;)


Node.js is an interesting bet for startups. It's hot, yes, and that means that there's a lot of people with a small amount of experience with it. As someone who's worked heavily with Node (and various Node devs) for a while now, it's easy to do very, very wrong. It's not like using Ruby on Rails. The frameworks available for Node.js won't guard you from screwing yourself and your entire team. There are few conventions on how to structure your app. If I tell an experienced Rails dev about a problem I'm having with my Rails app, they can probably navigate to the right directory with their eyes closed. If I tell a Node.js dev I'm having a problem with my Node app, they'll ask for the repo and get back to me in a few minutes.

Without at least one very experienced Node.js dev on a team, the project has an extremely high likelihood of ballooning in complexity by the 3-4 week mark, quickly exceeding the 7-plus-or-minus-2 rule and becoming unmanageable. I've seen it happen multiple times. I've made it happen. It's pretty much unavoidable (unless the devs you have on your team are already senior-level with multiple other technologies, and even that isn't guaranteed to save you).

Node.js is powerful tech - it allows one to build featureful, highly scalable systems and do it damn fast; but it can also break your startup.

Sorry for the tangent, I know this doesn't exactly answer your question. I can't be the only one who's realized this though, so Node.js is probably not a default choice the way Ruby was. If you're looking for "new hotness" points, it seems like Go would be the best bet.


Same applies for things like Meteor.js which are based on Node.

Lot's of people dabble in it but to truly know how to not screw it up when building something bigger it takes patience, experimentation and serious effort.

This is somewhat compensated by the speed of development you have with such platforms and is a tradeoff.


Define very experienced. People use these terms somewhat loosely and I'd love for a semi-concrete definition relative to concrete measurements that I could check off.


It should be noted that none of these comparisons - Ruby\Node.js, nor Rails\Node.js, are really apples to apples.


This is very true. I made a point to say "the frameworks available for Node.js" above, but I didn't feel like carrying the rest of that language throughout the rest of the comment. Feel free to replace occurrences of "Node.js" with the above language for comparisons to Rails.

Ruby/Node is a pretty fair comparison as far as evaluating "backend server tech". While yes, Ruby is a language and Node is a runtime (thus perhaps making JRuby/Node a more apt comparison), Node.js is far enough removed from client-side Javascript in terms of libraries, knowledge required, etc that I find it pretty easy to compare the two. With Ruby, you find a web framework, supplement with libraries, and code yourself up an app. With Node.js, you do the exact same thing. Good enough for me.


Do you have any good reading to learn about avoiding those pitfalls with node?


I wish I did. I can say that watching a lot of Rich Hickey's talks and Gary Bernhardt's Destroy All Software screencasts have made me a better programmer in general, and that has carried over into my Node development practices.

Here's a few nuggets that will help you:

- Use promises instead of callbacks, specifically Q. Don't let anyone tell you the performance will hurt you - I guarantee that promise execution time is not your bottleneck.

- Use event listeners for things like kicking off email notifications.

- Use Mandrill for sending those emails.

- Use promises.

- MySQL is still good tech.

- Use Sequelize to make using MySQL/Postgres not hurt.

- Abstract into middleware when you can.

- Bogart > Express.

- Use promises.

- Use dependency injection (Omni-DI is a good library for this).

- Route handlers are for orchestration, not core business operations.

- Avoid for loops. Prefer Array methods like forEach, map, reduce, and filter.

- Use promises.

I plan on doing more writing about this sort of thing when I have time.


No. We work with startups and usually get access to their code and so we get a pretty decent sample, and Rails still seems to be the most popular choice.


He was asking specifically about newly founded startups, while your answer is about startups in general?


I don't see much difference in the trend depending on age. We do see Node! We just see a lot more Rails.


I've heard the opposite declared many times (Node falling, Ruby rising)...there's never a lack of people who are quick to declare the death of any specific technology.

That being said, I work for a new, funded startup in SF, and our web stack is based on Node.


Thanks for the input. If you don't mind me asking–is your startup web or mobile first?


Web - but when the time comes to focus on mobile, Node should still serve us well.


I work at a startup in New Zealand -- Hoist -- where we're building a platform as a service type offering entirely in Node. It seemed like the best choice when we started out a year ago and has paid off. It's fast and freeing to work with. It certainly might be harder sometimes than "established" languages but it's far better regardless. I'm so glad we're not using Ruby, personally, and my feeling is that Node is the new hotness. We share an office with another, funded startup that's also building in Node.


As someone working in SF right now, keeping tabs on all the companies and technologies out there, I don't particularly consider Node to be the new hotness. Currently, Ruby probably has the plurality of mind share, followed by Python and Node.

But I think the greater trend is one of polygot backends. Startups bringing several different languages onto the backend, when necessary to scale beyond the initial web app. This does involve a slow dispersal of mindshare away from Ruby/Rails. Things like: Node, Python, Go, Scala, Erlang, and so on.


I honestly don't know, but Ruby does seem to be on its way out. It might be a long death since there are so many Ruby developers, but I think it is probably on the way out. The main reason is that Ruby doesn't do anything particularly well except it is easy to learn. There are several alternatives that are equally easy to learn now and have more compelling use cases. Time will tell of course, and I am most likely wrong.


Platforms like Node become a necessity as you'd rather be faster to market and be more agile vs. being caught out building something that is useless in a nicely scalable platform over a longer period. Lean startups FTW.


It's hard to say that a Node.js solution will get you to market faster than Ruby on Rails (where something as complex as user management is a drop-in). If anything, choosing Node would be the opposite of your advice.


we use PHP. does the job. if something works, people are familiar with it, why do it differently? the outcome is the same and the outcome is what brings sales.


node startups get all the rockstar ninjas. whatever good that is.

ruby startup gets all the round A funding and big exits.

php startups become huge corporations.


A related question: If you have worked on both ruby and node.js, which one you have selected?

(We selected node.js for our startup.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: