Matz is a great guy and epic language designer; and ruby is, for the most part (80% I'd say) a very well-designed language too. However had, ruby has a problem (or, several smaller ones, but also one big one: WHERE ARE THE NEW RUBY USERS! This is the big one, the other problems somewhat tie into this, but in part are also partially unrelated, e. g. python being successful means the share will be smaller for ruby, and JavaScript became so important because the browser is so dominating).
TIOBE is for the most part crap, but the tendency is also not completely fabricated. Ruby is at rank #25 with 0.67% right. Again, those numbers aren't that relevant, and they fluctuate WAY too much in suspicious ways - TIOBE has many issues, but ruby was doing better in the past there, so something changed. So, not only needs to be an unbiased analysis, but much more importantly so a contingency plan. I feel that in many ways ruby is also way too japanese centric. This is fine for a language that is only used in Japan, but a language should have no real country-focus per se, it should be usable everywhere without constraint. With a contingency plan I mean specific things to do. You can not solve this with single steps - that approach does not work. We saw this with the quest to make ruby faster. Ok, ruby is faster now, that's great, but then why aren't there more users? If ruby being much faster was the number #1 goal, why aren't older users returning for the most part? Why are new users hardly picking up ruby?
I don't want to make this sound too pessimistic per se, mind you. But ruby is now where perl was about 10 or perhaps even 15 years ago. Perl had the problem of perl5 versus perl6, but also python as stronger competitor. Perl5 failed to go against python. Ironically enough perl5 is more active than perl6 - that was also poor planning the perl folks did. (Version changes can be hugely problematic, Guido does not want python4 largely because python2 to python3 transition was problematic.)
Ruby really needs a plan with several items that work. Even more so as matz will sooner than later go into post-design stage (like Guido did with regard to Python though Guido is still somewhat involved with python, just not necessarily as sole decision maker now).
It's self-fulfilling and nothing to do with the language. Companies want to reduce the number of technologies in their stacks, and Ruby always loses out to Python and Node in part because it's viewed as harder to hire for Ruby skills. So there's less demand, and that leads to fewer people learning it or getting exposed to it on the job.
You also get things thrown at Ruby like how monkey-patching makes it hard to develop at scale which I find unreasonable but is nevertheless part of the conversation.
None of this is really within the gift of Ruby itself to solve. It needs another project like Rails which is so good within its niche that it can't be ignored. Rails itself is tarnished.
If there was a plan to be had here, it would be to merge with Crystal and focus on building native apps for phones. Nobody is really happy with any of the options there - Dart/Flutter were close, but fail on the server side. Kotlin Multiplatform is making a serious go at it but it's still too complicated. Bringing the ease of Rails development to native mobile app development would be huge.
As a long time Dart/Flutter developer, I think Dart is slowly making its way to the server too. It’s more performant than Python (and I assume Ruby too), and nicer to work with than other statically typed languages (which I guess are mostly JVM or CLR based).
The third party package ecosystem is smaller but I think this will become less and less relevant as coding agents get better.
Ruby is an insular language by design. It's intended to be easy to use and "make programmers happy". Whereas popular languages are usually adopted for falsifiable reasons such as performance, type safety, memory safety, etc.
When it comes to languages that don't take themselves that seriously, the tragedy of Ruby is that Python is easier to get into with its much bigger community and ecosystem. Python is more likely to make the average programmer happy.
>>Python is more likely to make the average programmer happy.
Its a weird place to be. I was making ChatGPT write lots of Python code to do some analysis on the Stock market, and it was crazy how much code I was able to write in a day. I'm talking like a million+ lines of code. In a day.
To that end, it also means the cost of Python code today is $0 given how much can be generated so quickly.
Its a useful language, but pretty much anything you do with it today doesn't have as much value.
>I feel that in many ways ruby is also way too japanese centric. This is fine for a language that is only used in Japan, but a language should have no real country-focus per se, it should be usable everywhere without constraint.
I've never heard this argument before. How exactly is it Japanese centric?
As Please Stop Citing TIOBE (https://nindalf.com/posts/stop-citing-tiobe/) points out, languages do have random fluctuations. It’s garbage data, so this is unsurprising. Between 2016-17 Java dropped 42% and C dropped 62%. That indicated nothing then, because they both promptly recovered. It was just noise.
Don’t take TIOBE seriously. You’ll feel better.
Look at the other suggested metrics - Google trends, GitHub repos, Developer surveys etc. None of these are perfect, but they’re more meaningful than TIOBE.
Ruby adoption has been low to non existent for as long as I remember. Lets say, 15+ years now. Python kind of took over scripting space. That also means Perl ceded its space to Python as well. But man Perl does one thing really well, and that is acting as a glue language for anything Unix. So it will always have one good use and it does that really well.
Ruby revival was a thing during the time of Rails, but that went away with React + Node taking over the frontend world almost entirely.
>>TIOBE has many issues, but ruby was doing better in the past there, so something changed.
Tiobe indeed has its issues. But their results do not surprise me. Perl is in the top 10. Python is no. 1. Out side of these things you are going to write SQL for database. And mostly Java for apps, and C for embedded systems. C++ for performant applications. And JS for anything on browser.
Ruby just doesn't have a space and a sufficient following in that space.
There is also that problem of not having a Killer app.
One disgust-moment I had was when AI narrated nature documentary on BBC or BBC-like channel and faked as David Attenborough. Now people may say "he got a great voice, even after he is gone we should have his voice" (he is old but not dead right now, thankfully - protect David at all costs), but I kind of changed my mind. I think AI should not fake stuff to us. So no fake-narrations either - what you see is what you get, at all times. On youtube this is now rampant; I need a minus AI version for youtube since AI just wastes my time.
Funnily enough the BBC have something of a standard when it comes to presenting foreign-language speakers through an interpreter that would have worked well here, AI or not, and that's to play the original speaker slightly before but quieter than the translation. You can hear their true voice and their intonation, but you still get the translation.
Agree with you on voices. I love Attenborough but I would strongly prefer that when he stops working or passes on we not recreate his voice or likeness with AI. It’d ruin his legacy because it’ll leave me with that feeling of disgust when I hear his voice, the exact opposite of what he’d want.
Off topic, but do you comment on reddit under the same handle?
> Matz: But as a programmer, the language I want to use might more often be C. I'm a C programmer, have been for many years. A C programmer for decades.
TIOBE is for the most part crap, but the tendency is also not completely fabricated. Ruby is at rank #25 with 0.67% right. Again, those numbers aren't that relevant, and they fluctuate WAY too much in suspicious ways - TIOBE has many issues, but ruby was doing better in the past there, so something changed. So, not only needs to be an unbiased analysis, but much more importantly so a contingency plan. I feel that in many ways ruby is also way too japanese centric. This is fine for a language that is only used in Japan, but a language should have no real country-focus per se, it should be usable everywhere without constraint. With a contingency plan I mean specific things to do. You can not solve this with single steps - that approach does not work. We saw this with the quest to make ruby faster. Ok, ruby is faster now, that's great, but then why aren't there more users? If ruby being much faster was the number #1 goal, why aren't older users returning for the most part? Why are new users hardly picking up ruby?
I don't want to make this sound too pessimistic per se, mind you. But ruby is now where perl was about 10 or perhaps even 15 years ago. Perl had the problem of perl5 versus perl6, but also python as stronger competitor. Perl5 failed to go against python. Ironically enough perl5 is more active than perl6 - that was also poor planning the perl folks did. (Version changes can be hugely problematic, Guido does not want python4 largely because python2 to python3 transition was problematic.)
Ruby really needs a plan with several items that work. Even more so as matz will sooner than later go into post-design stage (like Guido did with regard to Python though Guido is still somewhat involved with python, just not necessarily as sole decision maker now).
You also get things thrown at Ruby like how monkey-patching makes it hard to develop at scale which I find unreasonable but is nevertheless part of the conversation.
None of this is really within the gift of Ruby itself to solve. It needs another project like Rails which is so good within its niche that it can't be ignored. Rails itself is tarnished.
If there was a plan to be had here, it would be to merge with Crystal and focus on building native apps for phones. Nobody is really happy with any of the options there - Dart/Flutter were close, but fail on the server side. Kotlin Multiplatform is making a serious go at it but it's still too complicated. Bringing the ease of Rails development to native mobile app development would be huge.
The third party package ecosystem is smaller but I think this will become less and less relevant as coding agents get better.
I feel like dart is where Python was 20 years ago. It’s exciting and its integration story is taking off.
When it comes to languages that don't take themselves that seriously, the tragedy of Ruby is that Python is easier to get into with its much bigger community and ecosystem. Python is more likely to make the average programmer happy.
Its a weird place to be. I was making ChatGPT write lots of Python code to do some analysis on the Stock market, and it was crazy how much code I was able to write in a day. I'm talking like a million+ lines of code. In a day.
To that end, it also means the cost of Python code today is $0 given how much can be generated so quickly.
Its a useful language, but pretty much anything you do with it today doesn't have as much value.
I've never heard this argument before. How exactly is it Japanese centric?
Don’t take TIOBE seriously. You’ll feel better.
Look at the other suggested metrics - Google trends, GitHub repos, Developer surveys etc. None of these are perfect, but they’re more meaningful than TIOBE.
and it's not even worthy of being compared to python, the line is so insignificant that it looks flat https://trends.google.com/trends/explore?date=2016-12-02%202...
Ruby adoption has been low to non existent for as long as I remember. Lets say, 15+ years now. Python kind of took over scripting space. That also means Perl ceded its space to Python as well. But man Perl does one thing really well, and that is acting as a glue language for anything Unix. So it will always have one good use and it does that really well.
Ruby revival was a thing during the time of Rails, but that went away with React + Node taking over the frontend world almost entirely.
>>TIOBE has many issues, but ruby was doing better in the past there, so something changed.
Tiobe indeed has its issues. But their results do not surprise me. Perl is in the top 10. Python is no. 1. Out side of these things you are going to write SQL for database. And mostly Java for apps, and C for embedded systems. C++ for performant applications. And JS for anything on browser.
Ruby just doesn't have a space and a sufficient following in that space.
There is also that problem of not having a Killer app.
I mention this because I was put off by Matz's voice in the English audio, it's not his voice!
One disgust-moment I had was when AI narrated nature documentary on BBC or BBC-like channel and faked as David Attenborough. Now people may say "he got a great voice, even after he is gone we should have his voice" (he is old but not dead right now, thankfully - protect David at all costs), but I kind of changed my mind. I think AI should not fake stuff to us. So no fake-narrations either - what you see is what you get, at all times. On youtube this is now rampant; I need a minus AI version for youtube since AI just wastes my time.
Off topic, but do you comment on reddit under the same handle?
There's the lede. :)