7 ms·
Lol. Do you think you are just going to use go and everything is going to scale to FB level size? Facebook was already at a scale larger than 99.99999 percent
by DoesntMatter22 3y ago
Lol. Do you think you are just going to use go and everything is going to scale to FB level size?
Facebook was already at a scale larger than 99.99999 percent of sites before they had HHVM
- throwawaymaths 3y agoOf course not. One uses Erlang and scales to Whatsapp scale.
- pjmlp 3y agoRemember when Twitter was written in Ruby?
- jarjoura 3y agoLOL, at least Ruby inspired a new generation of languages that we have today.
- ramesh31 3y ago>Remember when Twitter was written in Ruby? Ruby is the exception to the rule. Friends don't let friends start new Ruby projects in 2023.
- epolanski 3y agoRuby in 2023 is miles ahead it was 10 years ago.
- pdimitar 3y agoYet it's still super behind tech like Elixir or Golang, which are both faster and give you more compile-time guarantees.
- DoesntMatter22 3y agoBehind how? There are no good web frameworks for Golang at all, and relatively few sites being built with it. Elixir? Okay, it's a nice language that is also dynamically typed. It has some advantages but good luck finding anyone with knowledge of how to program in it or has even used a functional language before. I don't personally use Ruby these days but to say it's super behind is just silly. Golang is as similar to Ruby as C++ is.
- pdimitar 3y agoPeople are starting to recognize benefits of even gradual typing en masse these days, while some of us knew it for 10+ years. Not to be an elitist, I've made plenty of other mistakes and I am trying to not look down on anyone, but to discount types is not a well-informed take IMO. That's what I mostly meant by saying Ruby is behind Elixir and Golang. And mind you, Elixir is strongly but dynamically typed and I still find it much better than Ruby.
- DoesntMatter22 3y agoI'm not discounting types at all. I started in strongly typed languages and only gradually moved to dynamic languages. For massive apps generally dynamic languages are not good. However, Ruby also has a lot of creature comforts that Elixir and GO don't have. Maybe there wouldn't be a product at all with GO or Elixir. It's hard to say.
- veggieburrito 3y agoRespectfully disagree about not starting new Ruby projects now - can we still be friends? It works and is easy to get started for simple stuff, same with PHP for some folks or Django etc.
- pdimitar 3y ago"Easy to start" is oversold in my experience. At one point you want more guarantees upfront.
- veggieburrito 3y agoMore guarantees like how? Genuinely curious. I’ve been working with Nest.js lately and it’s good but rails is still more plug and play in my opinion.
- pdimitar 3y agoMore guarantees as in asserting on exact data shape which also includes some typing guarantees like "function argument 1 is always gonna be this struct" (basically a map with keys guaranteed to be present). In Ruby you get nothing like that, all your function arguments are just variable names. This increases testing friction a lot. I've been all over the spectrum: from PHP and Ruby through Elixir (combining best of static and dynamic types IMO, though still flawed) to Golang and finally to Rust which is super strict. To me Elixir and Golang are close to perfect. Rust takes it too far and development velocity can suffer a lot until you become an expert (which can take quite a while). Plug and play is nice but my opinion remains that it's oversold. Quickly whipping out prototypes is not the only virtue of a programming language (though technically that's a feature of Rails, Ruby's killer app, and not of Ruby itself).
- DoesntMatter22 3y agoThe problem is that is only so helpful anyway because you have to send the data to the front end and then translate it back, and in my experience that is where most of the issue is. If you are building a front end facing site you are constantly going to be fighting with that.
- DoesntMatter22 3y agoWhy not exactly? What language would you suggest?
- pdimitar 3y agoElixir, Golang, maybe even Rust (that one is a hard sell though, there could be a lot of friction at the start and part of it persists even when the project matures).
- DoesntMatter22 3y agoLiterally none of those languages existed when Shopify was launched. Did you expect them to get into a time machine or make that happen or what?
- pdimitar 3y agoTrue, I lost track of the original problem, sorry. Still, at one point it's OK to admit the original tech is no longer as useful and migrate to something else IMO.
- DoesntMatter22 3y agoI appreciate your admission here. We can disagree about usefulness I guess. Ultimately Ruby has worked just fine. They didn't report massive issues, and the DB is going to be the bottle neck way before Ruby, so I just don't see an issue. If I knew I was building a site for a massive load would I use Ruby? No. But I don't think it's a terrible choice either.
- DoesntMatter22 3y agoRemember how Shopify is still processing hundreds of millions of transactions in Ruby on Rails without an issue currently?
- pjmlp 3y agoExcept that Shopify is actually paying a couple of enginners to write a Ruby JIT compiler. Not only that, the community felt the pressure to write several JIT compilers already. So....
- DoesntMatter22 3y agoSo what? A company is trying to streamline their process and save costs? Is there any large company at all that hasn't invested in making their tool chain better? You talk about it like they are a failure. Lol
- pjmlp 3y agoCosts that wouldn't have happened in first place if a scripting language hadn't been chosen in first place.
- balder1991 3y agoWhat we can’t know is whether they would have been fast enough to tweak their product to their current market without using a scripting language. Companies who do that aren’t sacrificing performance for nothing, scripting languages make a lot of things simpler and closer to the business domain, which cannot be ignored (anybody who’s in a huge project that requires a 30 min. compilation often enough to kill productivity knows what I’m talking about). Besides, you can even use optimized C and get none of the benefits (but still all the drawbacks) because of the algorithms you’re using or your database or something else entirely such as microsservices etc. making differences in language speed negligible. I guess the point is the language speed on backends don’t matter as much as many other things (network, database, architecture setup etc.) and usually the gains you get with your language being faster aren’t high unless you’re in a tight loop or you’re like Amazon where even a few milliseconds gain is more money.