Hacker News new | past | comments | ask | show | jobs | submit login

Interestingly six of the top ten built on Ruby!

Python is also strongly represented, but zero started with back-ends on Java, .Net. PHP, or other more broadly popular options.

This is strong evidence that the startup world is dramatically different from that of enterprises and businesses where tech is ancillary (which dominate total numbers in popularly shared statistics). In many ways it's a vindication of PG's old essays. Though we're not all using Lisp, startups lean towards it.

How much of this can be attributed to the efficiency or superiority of Ruby as a language vs most of these now maturing start ups being founded during the peak Rails era? If we look at new Unicorns founded today in 8-10 years we'll probably see slightly different stacks based on what is popular and new today, although to be fair I think a lot of the biggest "tech" unicorns IPOing the 2030s won't be traditional web applications.

As far as I remember, Ruby has been dumped by half the engineering community on almost since its inception. Not only that, but when Ruby came out, there were plenty of other options to choose from. The fact that those options were not chosen over Ruby should say something.

Alas, with most non-Ruby devs it is nearly impossible to compliment that brilliant, wonderful language (and Rails). It's become popular to look for a reason to hate a language you don't write in, and usually tech stacks are sold by putting down other stacks, like when NodeJS came out.

While this is not completely incorrect, it should be pointed out that they would have dumped e. g. python just as well, since the primary complaint is about speed.

Also, "dumped" is the wrong word, because you insinuate here that they stopped using ruby altogether. That is not the case; the percentage usage declined in relative terms, but I do not know of any of these companies to have gone down to zero percent in regards to ruby. Which is typical - big companies use all sorts of different languages.

> Alas, with most non-Ruby devs it is nearly impossible to compliment that > brilliant, wonderful language (and Rails). It's become popular to look for a > reason to hate a language you don't write in, and usually tech stacks are sold > by putting down other stacks, like when NodeJS came out.

When it comes to speed, they have a point - there is just no contest between C and C++, when comparing it to ruby or python.

In my opinion, though, most of these who critisized ruby and python, are actually also people who are VERY very bad in either of these two languages. Some of them are still stuck with C and perl, too old to learn anything new. And no, the "I'm gonna learn a new language every week" crowd does not count - I have seen too much atrocious coding pattern by these people.

JavaScript is also a partial reason simply because of how important the www became - look at PHP's decline, which is a LOT due to JavaScript.

I actually agree with you.

And of course, everyone understands the speed argument. But that has already been settled. Speed matters when speed is very important. I've seen people recommend that I stop using Python and learn Rust to create a medium sized API. The average response times for the API that I had already completed was 30ms. That's a fraction of a second. I haven't used Rust yet, so I don't know what the performance difference would be, but why on earth should someone rewrite an application to save themselves a unit of time indiscernible to both the developer and the customer? Even if my load times increased a fair amount, nothing would be lost.

As far as people who don't mind learning another language, I can understand why that's fun, because it is. But when you have work that needs to get done and needs to be done with assurance, you don't have time to learn another language and figure out its quirks, shortcomings, and strengths all while trying to build that feature. My belief is that you should be able to write a language like a member of its community. If you don't have the intention of doing that, then you shouldn't really be messing with it. (for example, don't write Python like it's Ruby)

It has been my experience in New York City that people who criticize Ruby and Python tend to come from languages that are strongly typed and use them at work. It is cool to hate on a language because if you do, then you get to feel better about yourself just by subscribing to another community and hiding underneath that umbrella. You don't have to contribute to open source, answer questions online, or give talks at your local meetup. You get to call yourself a better engineer just by subscribing.

Anyway, I got way off topic. But the point is that when Ruby came out, there were plenty of options. People went with Ruby and Rails probably because it's a lot of fun to finish your work. I know that I really enjoy finishing my work.

Oh man, I just realized that my super-sensitive trackpad reorderd my words again. I was trying to say that Ruby gets "dumped on" by other developers. Not "dumped" as in swapped out.

There has never been a "Rails era" in which Ruby represented 60% of the back-end server market share, or even 10% of the share of the languages I listed.

I'm aware of that. My comment was more about new startups at the time choosing Rails (and getting Ruby with it) with it being the reason why many startups in the list are built with Ruby, rather than an inherent strength of Ruby as a language. Rails did (does?) seem like a superior environment for quickly prototyping and launching web applications, and it's entirely possible nothing has supplanted it. My comment about future unicorns is mainly that Python might be dominant in AI or biotech focused startups, C# might be dominant in AR/VR startups, and more web applications are SPAs built mostly or entirely in JavaScript, so Ruby might have had it's day as people are building early tech in new fields.

> My comment about future unicorns is mainly that > Python might be dominant in AI or biotech focused > startups

That's rubbish. Why should python excel here in biotech related aspects but ruby not?

Note: I am a molecular biologist by trade who went into using ruby primarily. I also use python a lot.

I remember the old HUGO project; lots of that code was written in perl. So why exactly would ruby be unfit here but python would? Please give your EXACT reasons.

> so Ruby might have had it's day as people are > building early tech in new fields.

I partially agree in regards to javascript; I disagree that there ought to be a hype-buzzword trend. The whole fake AI field ticks me off - they don't understand why they can never achieve true intelligence, yet they keep on claiming it. And people parrot how python will be DOMINATING in the fake AI field. So many fakers.

How many of you guys actually even understand neurobiology?

Having worked at a few of the top ones, many of them are now investing huge $$$ to rearchitect their tech platform to Java and services. I understand that Ruby allowed them to grow fast, but I am wondering if starting with Java to begin with would have allowed them to avoid massive investment to address tech debt at the expense of growth and profitability at a late stage.

Most likely, starting with Java would have led to delivering an MVP and iterating too slowly to result in a viable business.

My gut says probably not?

More technical debt comes from growing quickly (engineers, turnover, employees) and changing business assumptions, not the programming language.

You only get to have the problem of rearchitecting for scale if you're successful. You can't worry about that too much when you're still trying to find product/market fit.

Perhaps they should switch over to Elixir instead. It's somewhat similar to Ruby, but the performance of the Erlang VM (BEAM) is second to one for multithreaded and multiprocessed workflows, as is usually the case for many clients on a server for a web app. Of course, Elixir is not as fast as say Rust or perhaps even Java for raw computational work, but I'd say the tradeoff is worth it.

This is why languages such as D and Nim are interesting. They support both styles of development. You can always use the RAD style to get to something people like, optimize the fast paths, and still use RAD style on experimental features.

The prebuilt libraries are the main advantage Ruby and Python have. A converter for them to new languages would negate that, though.

Can you elaborate further? Why is Java better than any of the other languages commonly discussed in hn?

Types, among the most performant garbage collected languages out there, very mature dev tooling that can speed you up in many ways, large library set, history of being more open than C#. Also many data libraries are made with it and interface well with it, such as kafka, hadoop, etc.

And there are many good engineers who are well versed with the language.

Why not Scala then? Only issue might be getting Scala engineers, but then I'm assuming good java devs can quickly catch on Scala..

Scala has bad build times and a compiler that people have a hard time understanding AFAIK, so it's future development is more suspect. And it has as reputation of large companies moving away from using it: https://en.wikipedia.org/wiki/Scala_(programming_language)#C...

While something like kotlin has a small learning curve and gives you a lot of the benefits of scala. And it's backed by google, jetbrains & the investment that goes into android. Most people understand ADTs, nullable types, lambdas and data classes fairly readily.

I think it basically comes down to a company making a system out of a dynamically typed garbage collected language of either php, javascript, python or ruby, and suffering the perf issues (~8x slower than C/C++) and lack of type safety that it gives. Also those languages typically have ecosystem issues as far as the robustness of their libraries go (like javascript).

A more mature company settles into a typed GC language (Java, C#, Golang) and a typed static language for perf benefits when needed (C++, Rust). Yes there are typed versions of various dynamic languages now, but you don't get the speed benefits that the typing gives you, and a large part of the library ecosystem that you will interact with will still be untyped under the hood.

Let's not forget the issue isn't really the language, but the anti-patterns that can create absolute hell.

See Rails callback hell as an example.

I think that is inevitable, but the Ruby Rails community is working hard to delay that happening. i.e You should be able to grow longer without thinking of moving languages and backend.

Now that Shopify, Github is ( or going to be ) Taking more hands on approach in Rails development rather than Basecamp, which other web framework have this luxury of billions dollar companies doing live testing for it?

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