6 ms·
Ruby occupies a similar space to Golang in my mind, where it is "just" a solid business oriented language that gets out of your way. It will never wow you like
by WJW 5y ago
Ruby occupies a similar space to Golang in my mind, where it is "just" a solid business oriented language that gets out of your way. It will never wow you like Rust or Haskell and that is fine, because that is not what it is aiming for. Rails is one of best DSLs for writing simple SAAS apps, too.
That said, different usecases require different languages. I would never use Ruby for a compiler project.
- JohnWhigham 5y agoGo has Google support behind it though. Its journey is far from over (that is, until Google abandons it for another language), whereas Ruby's/Rail's growth phase is more than a decade behind us, and it's hard to know what its future holds. I hope it's a good one since I've been doing Rails my whole career.
- MattGaiser 5y agoFWIW, I had a call with a recruiter a couple days ago who claimed that the most expensive candidates to find at the moment are Rails people. And I'm not a Rails person, so it wasn't flattery.
- JohnWhigham 5y agoI've noticed that as well, that senior Ruby/Rails people will become very valuable in the coming years, which is good to hear. However, 10+ years into the future is the real scary part. Will jobs dry up so much so (especially due to the accelerating pace of tech turnover) that Ruby/Rails will essentially become the FORTRAN of the times? Who knows.
- MattGaiser 5y agoDo companies care about about tech turnover? I have friends everywhere from FAANGMULA to Deloitte to 100 person tech startups (and I am at one myself)to banks. We have a group chat of classmates. No attempts to stem the wave of resignations anywhere as far as we can tell.
- joelbluminator 5y agoUnlikely. To this day Rails is still being chosen for new projects. I see it for example in HackerNews job postings. You can see the company's tech and year of founding so you know it is new startups. Sure, its not close to how popular it used to be, but definitely not dying. And then what about all the existing code? There is a lot. I think Rails has its place and is still good at what it does, a segment of the population will continue loving working with it.
- chipotle_coyote 5y agoNot so long ago, before the rise of Node.js and when it seemed like Rails was The Way of the Future (tm) and everyone was really down on PHP, I used to joke that there was a silver lining to PHP becoming the next COBOL: there weren't many COBOL jobs around, but there also weren't many COBOL programmers around, and if you needed a COBOL programmer the chances were that you really needed a COBOL programmer. As things have played out, PHP has done pretty well at modernizing (I know some would debate that, but that's a different thread), and Rails has faded a bit into the background -- although now I joke that because Rails is well out of its fad phase, it can get down to the real work. I do wonder whether Rails has been kind of a mixed blessing for Ruby all in all, though. I think Ruby is, in itself, a great alternative to Python or Perl, and it's the language I reach for first when I'm writing short utility scripts -- but since Rails exploded in popularity before Ruby itself did, a lot of Ruby programmers really only know Ruby to the degree they know Rails.
- dragonwriter 5y ago> a lot of Ruby programmers really only know Ruby to the degree they know Rails This so bad that frequently I see “Ruby on Rails” in lists of programming languages aside “PHP”, or “Elixir”, or “JavaScript”. (When I was most in to Ruby – but not so much Rails, even then – there was actually a palpable divide in the community between the Rails-only community and the broader Ruby community, some of which was Rails-inclusive.)
- MattGaiser 5y agoGranted, I have never used it a lot except for hacky projects, but I have never used any Ruby except in the context of Rails. Is it really used for anything else?
- JohnWhigham 5y agoYeah Rails is definitely a blessing and a curse. I only know of Chef and Puppet being kinda big, but both of those are waning in popularity.
- throw_m239339 5y ago> FWIW, I had a call with a recruiter a couple days ago who claimed that the most expensive candidates to find at the moment are Rails people. Maybe in USA. In Europe, Rails has been far less popular. Now I imagine expensive candidates means the ability to work on decade old Rails codebases from previous versions, which means with a lot of Rails experience.
- MattGaiser 5y agoSpecifically asked about this. Mixture of old codebases and new. Half the companies using it are 1-2 years old according to him. Lots of 10 person startup teams just fresh off a raise.
- mchusma 5y agoStripe, Shopify, and others are contributing. They are large enough to provide some large corporate assurance, if that is what you are looking for.
- bastardoperator 5y agoDon't forget Square, GitHub, Airbnb, Bloomberg, Zendesk...
- danjac 5y ago> until Google abandons it Given Google's track record I'm not sure that's the most reassuring argument...
- bfung 5y agoWhile not widely advertised, matz works at heroku, which was acquired by salesforce for more than 10 years now. In essence, Ruby is supported by Salesforce.
- Mikeb85 5y agoGoogle abandons as much as they support. The Ruby and Rails ecosystem has Stripe, Shopify, GitHub actively pushing new things all the time, DHH and co working on version 7 right now, etc...
- nixpulvis 5y agoI still get a real kick out of Ruby's elegant and powerful metaprogramming, which is something other languages don't often compare to. class String def colorize(color_code) "\e[#{color_code}m#{self}\e[0m" end end The general advice is to avoid confusing others though, so changing base classes like this is not really a business-safe idea.
- shagie 5y agoIs there a good way to verify that all of the code is business-safe?
- nixpulvis 5y agoDelete it? Otherwise no. But this is true of any language. The truth is in the middle ground.
- shagie 5y agoIt's not entirely true of any language. In Java, for example, one can do static analysis and identify when a class is doing reflection... and flag as an error if the class is doing reflection on a class that is an instance of java.something.
- bradstewart 5y agoHow do you define "business safe"? Java won't prevent you from sending a message to the wrong customer or something like that.
- shagie 5y agoI can look at the code and see if anyone is doing: Class cache = Integer.class.getDeclaredClasses()[0]; Field c = cache.getDeclaredField("cache"); c.setAccessible(true); I can examine to see that java.lang.{something} class is getting reflected on. I can check to see if anything is calling getDeclaredField and flag that. I can see the setAccessible and really flag that. This isn't about coding errors. This is about being able to analyze the code and see if the code is using prohibited methods. Through static analysis, I can verify if anyone is trying to do something tricky with the String class. Can I verify if a method is being modified added to an instance of a String in Ruby through static analysis?
- joelbluminator 5y agoWhat is the wow with Rust? Seriously asking.
- nobleach 5y agoA few things come to mind. Rust has the potential to be fast... VERY fast. It also can be very safe. Pretty much everything in Rust utilizes the Result type (an Either Monad that causes Errors/Exceptions to become first-class citizens). It compiles to a single binary. Many of the packages in the ecosystem are very high-quality (Serde for example). Even still, this doesn't mean anyone should drop what they're doing and migrate all their code to Rust! If you're a Ruby dev (especially if you do Rails) and you're making a living churning out apps with your good old friends like Devise, RSpec, etc. Rust is probably not the thing that'll really wow you. It _can_ do web, and do it REALLY well. But the experience is very different. (Actix/Rocket)
- deleted 5y ago[deleted]
- joelbluminator 5y agoSo Rust wants to be the new C? Like if someone was writing a new OS or code for an autonomous vehicle today is Rust a likely candidate?
- mping 5y agoRust wants to be the new C without C warts, using the compiler to ensure memory safety (up to a point), promoting immutability and having generics baked in. I'm not a C programmer, but I think Rust can fit almost everywhere C can fit.
- zdragnar 5y ago> Rust has the potential to be fast... VERY fast I think this should be phrased differently. There is a minor bloom of zero-allocation web frameworks in go and java, and probably a few others, which blow their peers out of the water and are horribly not at all idiomatic usages of the languages. They can be very fast, but the performance cliff for using idiomatic code is very significant. Does idiomatic rust perform VERY fast? Can it be both very safe AND very performant? I think the answer to both of those is yes, but I honestly haven't used it enough to know.
- bitwize 5y agoGo is not a business oriented language. To be a business language, you need a decimal data type built in (or in the standard library), that doesn't make you go through hoops like this: total = new Decimal(principal); total.mul(1.0 + interest); In other words decimals support the same operations as the rest of the language's numeric tower. Go doesn't have this. Go is a networking language. It's good for writing microservices and network protocol clients and servers. That's about it.
- thealienthing 5y agoI've felted wowed in theory by Rust but every time I come to it, I'm constantly getting stuck by how much the compiler gets in my way. On one hand, the idea that the compiler is your friend that stops you from making dumb memory decisions unlike in c++. But with Rust, I can't get even simple tasks done which really frustrates me. Perhaps Go might be a language to checkout if it "gets out of your way" as you say.
- fomine3 5y agoRuby is for handful hacking lang for me like old days Perl. It seems that thoughts who learned Ruby for production Rails app vs learned Ruby for hack is very different. Python is also great but I still wish Ruby is installed everywhere for writing one-liner since Python isn't good for that.
- sadfev 5y agoI also think Ruby should be the natural successor to peel on all *Nix systems. Ruby is ridiculously useful. Python edges it out for scientific/engineering applications because of Scipy and now Machine Learning ecosystem.