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?
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.
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...
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.
I disagree. The problem isn't with getting an implementation for some favored sort algorithm, it's about integrating with external systems. That's a million times easier when you're not crafting the equivalent of an untyped curl call dealing with raw JSON bodies and can instead use official SDKs provided by the external system provider.
Not even GCP offers a client SDK in Dart, let alone AWS or Azure. Sure, there's a Postgres package for Dart, but you're working with raw arrays on the result rows - no Dart support in sqlc. What about a payment provider like Stripe? Nope. Or an email provider like SendGrid? Also no.
I mean... this is one of the reasons why Go is so popular. You're practically guaranteed to find an SDK for the service you need to connect to. And that's not because the Go team at Google had some special marketing magic that the Dart team at Google didn't have access to, that's just organic growth. Do you really think services are going to wake up across the industry and start offering Dart SDKs??
https://newsletter.masilotti.com/p/build-mobile-apps-the-rai...
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?
These days it seems like bugs.ruby-lang.org has most of the chatter.
Mruby for example (embeddable Ruby). It's used a bunch by Japanese game studios in place of say, Lua, but it's nearly impossible to find any information about how to use it in English.
The largest non-Rails focused Ruby convention also happens in Japan.
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.
There are more discussions on Perl being dead, than Ruby being alive.
It seemed that the only thing anyone used ruby for, was for web with rails. Any solution that didn’t involve rails (e.g. sinatra) wasn’t further it.
At a time where other frameworks (thinking mostly of Next+Vercel and Laravel here) are merging their frameworks with hosting, deployment, services and ops the Rails ecosystem has gone the other way and tried to bring back "you can host it yourself on a VPS!".
While there are merits to both approaches, the market really seems to have spoken and it prefers the integrated approach.
They were decent free frameworks that started getting popular, and the hosting/deployment tooling came later as a way for the companies to make money.
I don't see Rails skipping the tooling there as a bad thing, although I also don't see adding that tooling as a bad thing either.
---
That said - I really don't like modern Rails all that much. And I think that does directly play into the issue, because I think you're entirely right that Ruby and Rails are tightly coupled in a bad way for Ruby.
Basically - Modern Rails reminds me of legacy ASP tooling from the microsoft world... It does it all, magically (wizard me up a new controller, magic man!), and god fucking help you if it breaks. It's not that it's impossible to untangle, but good luck hunting down your exact spot where the magic broke and then finding decent documentation for your specific version of Rails, buried under all the blog-trash weight of the old versions.
Combined with relatively poor documentation (seriously, why is this so bad?), and it's not a fun framework to use as a newcomer.
The cherry on top is that lots of companies that are Rails shops are now fairly mature, and have relatively large codebases and teams, and Ruby is genuinely bad for large teams.
My first run in with Ruby was for CLI tooling way back around it's initial 1.0 release, and I like Ruby quite a bit in that space, but I won't install it just for that. Too much momentum for Node/Python which are almost always there in some form or another by default.
Rails needs a "Dotnet Core" variant with less magic, less stuff in general, and solid conceptual documentation as a breathe of fresh air. Because I'd actually pick Dotnet Core over Rails right now (or ideally, neither).
You mean doing what Ruby did 19 years ago?
I worry that Heroku is now in an uncomfortable middle position between much easier to use systems and much more enterprise devops systems like AWS.
Ruby should look at how the PHP ecosystem was modernized. Sure the syntax has always been awful and is even more degraded now, but the ecosystem is globally in a much better place.
It grows, in my opinion, out of a desire for programmers to be interchangeable code extruders. The idea that a company might have to train anyone, or that a new hire might have to gradually adjust to a team's chosen languages and idioms, is antithetical to the dream of programmers as cheaply replaceable cogs in the machine.
This is a chicken-and-egg problem, and I suspect it can only really be solved when the labor market for programmers heavily favors workers. It's only then that large numbers of professional programmers significantly weigh aesthetics of language in their choices of job. It's also then that startups, which might have cultures that are more opinionated and/or less risk averse when it comes to language choice, are abundant and thriving. The rise of Python at Google worked on that same basis, didn't it?
I don't know that anyone can control the fate of a programming language like this. Maybe all you can do is make sure it's a lovely, useful language and the rest is up to fate.
Sure. I never said this desire on the part of management is generally irrational.
It's just that this (often rational) preference for "safe bets" leads to ossification and repetition. It's self-reinforcing and eventually becomes disconnected from the inherent virtues or vices involved in the thing chosen.
If you enjoy participating in this network effect as a hiring manager or tech lead or whatever, or feel it's part of your duty as an ROI-maximizer, that's fine. You're probably right.
It just seems clear that when such feedback loops are strong and risk aversion is high, it leaves little room for new languages to break into the "market" by competing on their intrinsic merits. So when that happens, it'll coincide with times and places of relatively high industry optimism and developer freedom.
> Same as using open standards
Open standards are about interoperability and user freedom, and don't really have anything to do with novelty or popularity.
> Same as using [...] well-known design patterns
A common pattern in designs of solutions for common problems that is counterproductive, or even just not very effective, is called an "anti-pattern". The honorific "design pattern" is reserved for patterns that are Actually Good™ in some way that would hold true even if no one knew them.
Consequently, "this design pattern isn't well known" just means "this solution is highly effective for addressing a common problem, but isn't very famous".
"Use well-known design patterns" is at least as much about choosing things because they're elegant, composable, flexible, performant, etc., as it is about choosing them because they're famous— hopefully much more so.
Ruby is still a great language for individuals who want to do things as opposed to simply create slop so they can get a chill job.
Forget TIOBE, maybe look at how much actual software or how many startups use Ruby. I bet it outperforms relative to the total amount of people who use it.
It means that basically, Ruby is huge in the SF Bay thanks to its adoption by startup founders, but it is a lot less popular outside of the Bay Area.
This is the one thing that most developers dont understand when ever we talk about Ruby ( or any programming languages ). The economics of a programming language, you could hate Objective-C all you want but Apple could force people to program in it as long as they hold the 1 billion Active iPhone with 60% to 70% of Apps store spending and online purchasing power.
Edit: The one way to make Ruby popular. Make the best blogging, forums and Wiki software open source and fight the hell out of it for market share. These three category make up a lot of current third party Web consumption usage without being held by big tech.
PaulRobinson•1mo ago
There's the lede. :)
shevy-java•1mo ago
block_dagger•1mo ago
dismalaf•1mo ago
Ruby is more like Smalltalk and Perl had a baby...
lioeters•1mo ago
He continues: "C++. Well, I've programmed in it but it's kind of like, please spare me - so I prefer C."
I also liked this part:
> ..From a specification perspective, Lisp and SmallTalk are like seniors to me. There's a lot I can reference from them. They're like a treasure trove of ideas. If anything, I often go to them, get ideas, and incorporate them into Ruby.