5 ms·
It's funny how we hear so much about Ruby's decline yet 3 of the highest-valued startups - Stripe, Shopify and AirBnB - are up there making fortunes with it whi
by cutler 5y ago
It's funny how we hear so much about Ruby's decline yet 3 of the highest-valued startups - Stripe, Shopify and AirBnB - are up there making fortunes with it whilst contributing to Ruby's vibrant ecosystem.
- deleted 5y ago[deleted]
- trustfundbaby 5y agoOh wow. they still use Ruby at Airbnb? For some Reason I thought they'd moved to Go or the JVM.
- square_usual 5y agoI don't know about go (some cursory googling reveals a few open source projects, but nothing concrete) but you might be mistaking their work on Android libs for moving their backends to the JVM. For reference, their style guides are for JS and Ruby only so far.
- hack_the_news 5y agothe post mentions "At Airbnb, backend services are mostly written in Java "
- esprehn 5y agoYes, most of Airbnb's backend is JVM: https://medium.com/airbnb-engineering/building-services-at-airbnb-part-1-c4c1d8fa811b https://medium.com/airbnb-engineering/building-services-at-a...
- PaulWaldman 5y agoIsn't this more of a reflection of when these companies originally developed their platforms? Similar to Facebook and their use of PHP. It would be interesting to see in a few years what the next successful unicorns are building with today.
- yashap 5y agoAnecdotally, TypeScript seems very popular among startups today. And for good reason - between Node.js servers, ReactNative mobile apps and React web apps, you can build everything in a single language. A language that’s naturally very productive while getting a product off the ground, pretty maintainable over time, with good enough performance (and concurrency support) for most use cases. Agreed that PHP was the #1 startup language in the Facebook era, then Ruby in the GitHub era, and I think TypeScript now. But while they’re all very productive “early days” languages, TS stays much more productive over time. Go, Java and Python are all popular startup choices too, but I think TS is the top startup choice right now, and a great choice at that.
- comp_throw7 5y agoYeah, Typescript is a complete no-brainer as a pick - even if you're only picking a backend language. The type system is better than anything this side of Haskell, while still letting you write boring imperative code without getting in your way for every little thing if you just need to pipe some data around. Performance is really not an issue unless you're doing very CPU-intensive work which you can't offload to a native library for some reason, or you need to scale vertically rather than horizontally (which is even rarer). Compute cost only really starts being a worthwhile optimization target at the "hundreds of billions of requests per day" level, and even then you're not gonna see much of an improvement from moving to Java unless you're actually very good at tuning threadpools (and it might still not be enough of a win compared to whatever else your developers could be doing with that time).
- IshKebab 5y agoRust's type system is also better than Typescript, and I would say Dart is slightly better too. But I agree Typescript is very very good, and you get access to such an enormous ecosystem it's worth it in most cases, and it's only a few times slower than C++/Rust. Not 50 times like Python or Ruby.
- 5y ago
- jzoch 5y agoStripe is actively moving away from Ruby to Java. All new services must be written in Java
- tejinderss 5y agoIs there any source for that? Their public github profile shows that Go is their most preferred language these days.
- ksec 5y agoI upvoted you only to get attention. You will need reference for this. >But nearly all of Stripe’s codebase is implemented in Ruby running on the default Ruby VM (YARV). Not only did we not need Java VM-level interoperability, choosing either alternative Ruby implementation would have made for a difficult migration path. https://sorbet.org/blog/2021/07/30/open-sourcing-sorbet-compiler https://sorbet.org/blog/2021/07/30/open-sourcing-sorbet-comp...
- 0x640x6D 5y agoHow/why did you land on Java for all new services?
- Matthias247 5y agoNot at Stripe, but I guess it was picked as a compromise between efficiency and developer productivity. Dynamic languages like Ruby and Python don't perform well in the first area, native languages like C++ not much in the latter. Rust might be better, but it's still harder to learn than Java and there's less experienced developers to hire. That tradeoff usually leads companies to pick one of Java, C# or Go.
- hota_mazi 5y agoThe same argument can be made of PHP, COBOL, or even FORTRAN. None of this is changing the fact that Ruby has been on a sharp decline for a decade now and it's probably never coming back. My personal interpretation: Ruby is extremely slow, dynamically typed, and RoR hasn't kept up with the web innovations of the past decade.
- ch4s3 5y agoThe new hotness seems to be html over web sockets, which Rails does.
- eyegor 5y agoI'm not sure how this applies to those languages. Ruby has an actual ecosystem via gems, and has a pretty nice syntax and language features so it's not hard to pick up. Pretty modern feeling even on older language versions. I think most of why it lost popularity is because faster ergonomic solutions have appeared, and python is a more popular competitor for dynamic backend langs (mainly due to ecosystem size). COBOL, PHP, and FORTRAN all lack modern ecosystems (package managers, etc) which hinder them significantly. COBOL is dead for new development because it has horrible ergonomics compared to modern languages. There's a reason why companies will pay big bucks if you're willing to maintain old COBOL with nearly no qualifications. PHP is still widely used, but it's also got some language quirks and was mainly aimed at backend work. Since most web dev tries to offload onto the user instead of the server now, it's disappearing for both reasons. FORTRAN is still widely used in academic research and the modern language version (f90+) is actually pretty nice to work in imo. It's a decent competitor to C/C++ and the compilers are nuts for scaling which is why it sticks around for scientific work. It's practically free to move from single node to a full cluster workload using only compiler flags.
- simion314 5y ago>COBOL, PHP, and FORTRAN all lack modern ecosystems (package managers, etc) which hinder them significantly. I think your PHP info is wrong, PHP has a package manager named composer. So if you need to connect to amazon S3 amazon published a package (that does't depend on 100 leftpads) https://packagist.org/packages/aws/aws-sdk-php https://packagist.org/packages/aws/aws-sdk-php Maybe is not modern enoug in your opinion? Then what is missing except lefpad and color-red ?