Many of the core team members of Rails have long moved on to other technologies.
Companies don't see Rails as something that will give them an edge anymore. Yes, it is quick to develop a prototype in, yet the ongoing performance optimizing burden and the mess it becomes at large scale are not worth it anymore.
Competition has been catching up, and many modern frameworks have taken the best out of Rails, while ditching the not-so-good parts.
The job market for Rails devs seems to be pretty dry. Many Rails devs I know, including myself, do not get even 10% of Rails job offers anymore, as it used to be until a couple of years ago.
Ruby, as a language, is completely stuck and stale, and has been for a long time now. There is no real innovation, the single-threadedness and the GIL are just not good enough in 2017. Ruby 3 has been announced for 2020, and if you ask me, what is promised in terms of features is rather too little, too late.
Rails, as a framework, has been steadily releasing improvements and new features, yet those are either not that relevant, or poorly implemented (e.g ActionCable). The framework's creator, DHH, has been very opinionated about the strength of Rails monolithic approach. To me, this is not where the industry is heading (like it or not) and Rails is going to have a tough time keeping up with the latest software architecture trends like microservices (again, like it or not, microservices are here and they solve real problems).
Rails will be there for a long, long time, no doubt about it. But for many of us, it's just not that sharp knife it used to be anymore. Better accept it sooner than later.
Ruby(VM) is unfortunate for not attracting critical mass of users and capital. I mean cmon you can't really compare jvm.clr,v8 and ruby vm. It really is unfair. Ruby supports a lot of magic,different paradigm and the runtimes mentioned earlier received billions in funding over decades. Of course they are "fast".
I mean you need really expensive ingredients to succeed in 21st century in tech. You can be fast and elegant (Crystal,Nim) but what does it matter if you are not mature enough (java,c#,js). Or you are mature enough (ruby and its ecosystem) but you are not fast enough and you did not try enough to cover other markets (adoption by big companies was fairly low, Rubymotion was a poorly executed project so no Android/iOS coverage because of the high costs and lack of interest from community)
The thing is, as you point out, the world has moved in this decade and we have seen most of the Rails key points transposed to other tech stacks, old elephants learning new tricks --see Symfony in PHP, Spring in Java, etc...
Add to that that Rails is mostly feature complete: it's the best tool for developing what DHH calls "elegant monolyths", and I feel the proposition remains true.
But, as the rest of tech stacks has moved on, so has happened in the edge tech stacks, with things like microservices, concurrency, async frameworks, etc, i.e: Node -which seems to be waning due to JS fatigue, Elixir... Rails doesn't seem to be targeting those because Rails doesn't need them.
This is kind of a sad reflection, but Rails is the best frameworks for building things that the industry needs less and less: it is neither "enterprise" in spirit, although it is in capability, and is neither the cool kid in the block.
We will see less developer mindshare because "cool" devs will have moved to sexier things, and "enterprise" teams will go the way of the newer .NET and Java buzzwords.
Microservices are cool but a nightmare to manage,maintain and keep everyone in sync. It's a buzzword in my book but I believe only a handful companies can really benefit from them.
Java/C# are strong in enterprise and while this community dismisses enterprise what I mean is that it is used everywhere and by everyone. You want to communicate to some obscure endpoint that manages this container ship ? SOAP api is there to serve you along with ready to use libs.
Besides..
C#/Java You want to build desktop apps ? Check You want to build mobile apps ? Check You want to talk to hardware (printers,peripherals) ? Check You want to build APIs ? Check You want to build Games ? Check You want to build traditional web apps ? Check
Thanks to Facebook and other companies this is also becoming more and more possible with Javascript as well.
What can Ruby/Rails offer ? Not much.
I'm not sure that's at all what he was saying, though.
Today, web clients are a thing for many applications (and I build some too). So we're left with RoR to build static pages and APIs, which seems clearly overkilled. I still use rails on many projects, because it's cool how activerecord and actioncontroller allow to build something fast. But actionview, journey, the helpers, the asset pipeline, etc all feel like we're bringing in a lot for no advantage, when writing web clients.
Most of it really just goes back to the fallacies of distributed computing. A lot of people don't think about ways that microservices, by way of being decoupled, can be less efficient or fail between components, the network, etc where a monolith can't… until after they're built (or never).
The majority of apps in the world don't reach the point where the benefits of microservices outweigh their tradeoffs. Or they choose microservices to fix a problem that is really that the app is not decomposed well into clean modules and components. Even the creator of microservices says to go monolith first (https://martinfowler.com/bliki/MonolithFirst.html).
Sure, sometimes they do. But more often than not they introduce more problems than they fix, or at best, they fail to fix the original problems.
Most of the benefits that people who choose microservices are looking for come more from good design and are completely orthogonal to microservices vs monolith. For example, separating code out into separate repos and deployments doesn't automatically separate concerns. But microservices inherently introduce a lot of challenges in orchestration, managing state, testing, deployment and all kinds of things that are much easier with a monolith.
Microservices is one of the most cargo-culted ideas in software development these days. I suspect there will be a backlash against it before too much longer. Will there be a resurgance of interest in Rails? Probably not. I suspect something at a much higher abstraction level will take over.
I would then move on to learn about elixir and Phoenix if I were in your position. Phoenix is similar enough to the good parts of rails but all the really nice stuff is way better than rails. ActionCable in rails is a joke compared to what elixir can deliver.
I have a fair bit of Java experience but it isn't current (I did Tomcat-based stuff).
Or, if you ask me, learn Elixir + Phoenix. I'm betting part of my future career and my company on it, because I believe that it's the future. But Go, Clojure or Scala are great choices for web development as well these days.
Very rarely does anyone say this. But both Matz and DHH were slow to realise those problems. Cant really blame them since Matz dont even write much Ruby, he write C. And if Rails is all about extracting code from Basecamp. May be Shoptify, GitHub and Cookpad ( All magnitude larger then Basecamp )should step up the game for Rails development.
Outside Rails, Ruby fail to attract any Scientific usage, or even General Programming.
RoR wont die. But it will likely falls into a niche that will gets smaller and smaller. May be yes, it is too little too late.