aeturnum 3 minutes ago

This is a weird response to a weird article. The original article doesn't define its terms and, as Robby points out, that makes it hard to critique. If a language is only "serious" if it can scale infinitely for all use cases then sure Ruby isn't serious - most languages aren't.

That said - this response and the critique seem to basically agree. The critique can be summed up as "Ruby doesn't work forever" (and so it should never be used) and this is saying "Ruby doesn't work forever" (which is fine). I could almost understand this post as saying: 'Ruby isn't serious and that's not a problem for anyone who uses it.'

I will say that I found it funny that the original article attacked Ruby for being all the way down at "18th place" (This is inaccurate - it's 14th in 2024) on the SO dev survey - while talking up Scala which is 9 places further down on the survey[1].

[1] https://survey.stackoverflow.co/2024/technology#most-popular...

taylorallred 3 minutes ago

I see people waxing poetic over Ruby a lot saying that it's a language "built for the human". The thing is, every language is built for humans (or at least should be) but we tend to have different definitions for what "built for humans" means. Ruby certainly has some clean and expressive syntax, but I personally find it difficult to use because of its dynamic typing (which makes it hard to know what the types are while I'm writing it) and the heavy use of macros and other magic (which does unknown operations without my knowledge and introduces symbols into the scope mysteriously). That said, it clearly works great for some humans, just not for this human (me).

epgui 41 minutes ago

This article feels like someone is defending their language. And that doesn’t bother me, but I don’t value that.

I don’t care about what’s popular or what feels most familiar. What I want is a dispassionate discussion of how different language features impact code quality, and I think you can only find that in more abstract discussions. The kind that turns people off with its talk of monads and applicatives.

  • hartator 5 minutes ago

    > dispassionate discussion of how different language features impact code quality

    I think we can start disagreeing here.

    The metrics shouldn't be solely code quality, but also simplicity, readability, and how fast you can express yourself in it.

    Code quality will go up the more language friction you add: types, "one way" of doing things, and function-oriented programming. Same code in a language with heavy types and strict functions will be of course "more solid". However, it will take 10x the time to write, be less flexible, and harder to understand.

  • jasonpeacock 25 minutes ago

    > What I want is a dispassionate discussion of how different language features impact code quality

    This can be difficult because code quality, productivity, safety are hard to objectively define and measure, so we always fall back to differences in interpretation and experience.

  • SatvikBeri 26 minutes ago

    Do you know of any articles/papers that try to do in-depth analyses of which features are helpful for building big systems?

    Most posts I can think of basically say "X language is good" or "Y language is bad", but I'd really be interested in arguments like "feature A is better at accomplishing goal Z than feature B"

maxverse 21 minutes ago

So glad someone already spoke up about this -- I love Wired, and I think that piece is really poor (not because I love Ruby or think it's without fault, but because the argument it makes is essentially "it's not Ruby or Python, which have static typing tools.")

  • jmuguy 13 minutes ago

    That Wired article might as well have been a GPT summary of the shit people have been saying about Ruby for two decades.

    It is beyond stupid to continue to act like "it doesn't scale" is a real argument. Not every application is or will ever be Twitter.

Ataraxic 28 minutes ago

I love ruby. It's certainly not sentimental; I enjoy writing it and working in it, certainly a lot more than javascript.

I do feel like these sorts of attacks on ruby are quite weird. It's totally ok not to enjoy working in any particular programming language, but I wonder what the angle is to write about it is.

Arguments regarding ruby's successes are always so weird to me. Github, Twitter, Coinbase, and Shopify are all examples of great success. Challenges with scaling are successful problems.

It's a great tool and if you read this, consider and evaluate if ruby is appropriate for your next project. :)

jmorenoamor an hour ago

As a Python enthusiast for 20 years, just ignore and enjoy.

mkl95 17 minutes ago

Ruby is one of the most fun programming languages out of the 6+ languages I've worked with, and I was very productive with it. Unfortunately, due to my experience working at a Ruby shop where Rails misuse and abuse crippled the company, I don't enjoy using Ruby anymore, and will never recommend using Rails for production-grade software. Hopefully you've had a better experience with Ruby and still enjoy writing beautiful software with it - hopefully not with Rails.

  • Towaway69 4 minutes ago

    I had a similar experience.

    I love Ruby but too many companies assume I said Rails. I would also never recommend Rails for anything.

    Instead I’d use Sinatra and Ruby any day.

jurgenkesker an hour ago

I indeed really liked Ruby because of it's expresiveness, it being totally OO, the lovely readable and writeable syntax.

But yeah, that was 20 years ago. These days I find Kotlin to be the perfect fit for my projects, because of the static typing and its ergonomic syntax. I just don't feel confident about Ruby projects when they start growing. But, I still love the language, although mostly for small things.

  • zug_zug 37 minutes ago

    Yeah. I was pretty neutral on ruby, until somewhere I worked some coworker put an @ on a variable relating to sessions and suddenly people started seeing each other's accounts.

    Now some people won't fault the language for that, but it feels like a footgun and I've noticed a trend that often the worst (I.e. most dangerous) gravitate toward languages with the fewest safeties in them (less type safety, no compile checks, no memory safety, little concurrency safety, less safety around shared state)

    • jcheng 20 minutes ago

      Why do you think this is worse than someone saying about Java: "some coworker put `this.` on a variable relating to sessions and suddenly people started seeing each other's accounts"? Because it's less obvious what "@" means rather than "this."?

      Edit: I forgot that Java has implicit `this`! That's so, so much worse!

    • mono442 15 minutes ago

      This can happen it every language. I have seen the same thing happen in a project written in Java when someone has wrongly set the bean scope.

    • brightball 18 minutes ago

      I have been using Ruby for 13 years and only once have I seen anybody use an @ on a variable…and it was part of a distributed caching strategy for an ad randomizer.

jrm4 6 minutes ago

Anyone else feeling like discussions like this feel archaic? due to Generative AI?

For all its problems, the presence of AI feels like it should solve some of these quibbles for the vast majority of people who program. I can't quite put my finger on why just yet, though.

  • ricogallo 2 minutes ago

    I feel the same. I think the reason is that GenAI has effectively abstracted away the tooling layer. Not perfectly, and not always efficiently, but in terms of going from requirements → workable outcome, it has removed much of the pain of choosing one developer experience over another.

  • WhyOhWhyQ 3 minutes ago

    I don't understand what this comment means. It sounds like you think all programming has ended, which is not the case.

  • tovej a minute ago

    What do you mean? Programming languages all have different strengths and weaknesses that are completely orthogonal to LLMs.

    Even if you vibe code an entire system, a human will eventually have to read and modify the vibe code. Most likely in order to refactor the whole thing, but even if by some miracle the overall quality is alright, somebody will have to review the code and fix bugs. The programming language and it's ecosystem will always be a factor in that case.

waffletower 10 minutes ago

Seriously, I think it is a petty mistake to characterize Ruby as unserious. I am not drawn to the language myself, and my previous interest in it waned after debugging dependency rot in a cloud deployed Rails app more than 10 years ago. However, to label it as unserious would be nearly as unserious as labelling python unserious.

lemonwaterlime an hour ago

Ruby is a joy to program in. I started exploring it after using Haskell and Smalltalk and was pleasantly surprised when the language would do things like both of them.

robbyrussell an hour ago

Ruby’s biggest flaw is that it insists humans matter. Some people hate that.

  • kace91 6 minutes ago

    If by that you mean prioritising the coder's experience (ergonomics) I usually feel better as a human when I’m not bitten by some magical effect.

    It is a joy to write Ruby, I’ll give you that, but it is a pain to live around other people’s Ruby at scale.

  • _verandaguy 29 minutes ago

    This take is almost as condescending as saying that Ruby isn't a serious language.

    Ruby arose and became popular because it caters to a niche that was underserved by the competitors of the time (and while I'm no historian, I think Rails had a big role to play in Ruby's popularity).

    Ruby is very ergonomic, and so is Rails. Frankly, almost 10 years after moving on from it, ActiveRecord is the yardstick by which I measure the ergonomics of all other ORMs in other languages, but what ergonomic means will vary from domain to domain.

    With languages like Ruby and Python, it's very easy to get from nothing to an app that will work generally well enough almost straight away. A lightweight syntax, a lot of implicit functionality, and a flexible type system are all great for that, but in my current niche, I couldn't use it (I currently work with Rust, and the explicit control is a huge selling point, despite the much heavier syntax and more complicated semantics). That doesn't mean Rust was built without the human experience of using it in mind, though, and arguably the opposite's true.

  • snapcaster 40 minutes ago

    As someone who doesn't know ruby i have literally no idea what you mean by this

    • tayo42 35 minutes ago

      Ruby tries to make things close to natural language.

  • MangoToupe an hour ago

    As opposed to what?

    • jcheng 6 minutes ago

      At the time, Java. J2EE (entity beans and session beans), Java Server Pages, Apache Struts. I think it's hard for people who didn't live through it to appreciate just how painful it was to work in that stack circa 1999-2003, like it just doesn't seem plausible that the whole industry would go along with a stack with that much boilerplate for that little added value.

      Back then, Ruby and Rails opened a lot of people's minds to the idea that we were allowed to make "delightful" a consideration in API design, not just S.O.L.I.D. or whatever. These days, there are way more mainstream languages, frameworks, and communities that take humane APIs seriously.

    • petre an hour ago

      A.I. obviously.

mono442 18 minutes ago

RoR was a breath of fresh air when it was released, things could be done quicker and with much less lines of code but nowadays I don't think I would choose to use it again. Other languages has caught up.

pmontra an hour ago

> Culture doesn’t reliably reward the serious. Neither does business. It rewards the resonant. The clear. The human. The work that connects.

Culture maybe, but business rewards what make business going on. Only that and Ruby proved that it can make businesses start and keep them going on. The few ones that exceed the capabilities of the runtime had to pivot to something else, in part or completely, but would we had a Twitter if they started coding in pick-your-favorite-serious-language? Maybe a competitor would have overrun them. We'll never know.

What I know for sure is that Ruby has been paying my bills for nearly 20 years. That's more than any other language I used, serious or not serious. It worked for me.

Puzzled_Cheetah 32 minutes ago

> Culture doesn’t reliably reward the serious. Neither does business. > It rewards the resonant. The clear. The human. The work that connects.

Enshitification is a very rewarding strategy, depending on which side of it you're on, and I think you'd struggle to argue that's, 'The resonant. The clear. The human. The work that connects.'

The fact of that matter is that business and culture reward a vast range of different approaches in different contexts, and this holds over multiple levels of abstraction. From the sort of staff you want in particular jobs, all the way through to your position as a company relative to the market. Do you want your payroll admin to be playful? Really getting down, feeling that vibe - pay them whatever man - it's all in the vibe dude? Or do you want them to do their job to a standard? Do you want your impression as a company producing finance software to be that you're all about the resonant, the clear, the human, the work that connects? Or do you want it to be that you help the organisation meet its audit burden?

And just as business rewards different things in different contexts - so does programming. I'm not going to do low level systems programming in Ruby. I'm not going to go and do graphics programming in Rust. I'm not going to engage in banging out a CRUD app in C. You choose the best tool for the job given what's reasonably accessible to you at the time the problem occurs. Sometimes it's because a particular language gives you good access and support to a set of libraries - sometimes it's because the code you're working with was already written in that language. Sometimes the features of the language are well suited to particular tasks.

It's not a matter of the tool being serious or not. People are serious or not. Languages are just things and what makes the language serious when you pick it up is whether you're approaching your work seriously or not.

_dwt 28 minutes ago

I have the strangest feeling that at some point this received a 's/—/...' pass.

That aside, while I'm "old" enough to remember this kind of cultural/vibe-based rivalry between programming language communities, and read enough to know it predates the greyest of living greybeards (TIMTOWTDI vs the Zen of Python, "Real Programmers Don't Write Pascal", "BASIC considered harmful"), I am not sure that this works any more as an argument.

It's a bit tone-deaf to suggest that the difference between Ruby and other communities is that Rubyists are the (only?) ones who care about "how code feels"; that's a pretty core part of the sales pitch for every PL I've ever seen promoted. I am actually nervously awaiting the first big PL that advertises on the basis of "you may not like it, but LLMs love it".

I suspect the real problem is that data science + ML/AI drove (roughly) a bajillion people to Python and LLM training corpus makeup will keep them there. Meanwhile all the Rubyists (ok, I'm being a little inflammatory) that cared about performance or correctness went to Rust (or had already left for Erlang or Haskell or Elm or... whatever). Who's left over there in the dynamic-types-or-bust Ruby world? DHH? (Not an uncontroversial figure these days.)

markaroo an hour ago

Ruby is a little silly, but given its pedigree of generational internet projects, Rails is indisputably a serious framework.

josefritzishere an hour ago

I read this whoel article and I still do not understand what criteria make a programming language serious. Obviously it's very different from Python but I don't understand "serious" or "non-serious" as a way to describe this.

xpe 25 minutes ago

A nicely done article by Robby, given that arguing definitions is too often a thankless waste of time. Some selections from [1] ...

> Arguing about definitions is a garden path; people wouldn’t go down the path if they saw at the outset where it led.

See [1] for some tips on moving past the fruitless arguments:

> Personally I’d say that if the issue arises, both sides should switch to describing the event in unambiguous lower-level constituents ...

> ... Or each side could designate a new word, like ‘alberzle’ and ‘bargulum,’

> ... and then both sides could use the new words consistently. That way neither side has to back down or lose face, but they can still communicate.

> And of course you should try to keep track, at all times, of some testable proposition that the argument is actually about.

> Does that sound right to you?

[1]: https://www.readthesequences.com/Disputing-Definitions

tovej 8 minutes ago

This reads as if it was written with ChatGPT, find-replacing all the em-dashes with elllipses. Nearly every paragraph ends in a "That's not X, that's Y" -type statement.

If this isn't AI slop it's certainly badly written.

mberning an hour ago

It’s as serious as you want/need it to be.

bee_rider an hour ago

> Ruby attracts a particular kind of person. Not better. Not smarter. Just… different. People who care how code feels to write and read. People who see programming as a craft that can be expressive. People who understand that most of our careers are spent living inside someone else’s decisions, so joy isn’t a luxury… it’s the only way this work stays humane.

The idea that caring about how your programs feel to write or read is somehow “different” seems weird to me. I don’t write Ruby so maybe I just don’t appreciate this difference.

But I mean, I write fun-to-write, silly little experiments in Octave, Fortran, and Python… I don’t know if anyone would enjoy reading them, but I don’t really see how a language could prevent you from finding joy in programming (other than Java of course /s).

  • cuddlyogre 35 minutes ago

    >I don’t really see how a language could prevent you from finding joy in programming

    By saddling the writer with tons of syntax and gotchas that is hard to keep at the top of his mind when trying to create.

    Languages like c++ and java might be powerful, but there are so many hurdles that are between start and end that unless you are proficient in the language or have a desire to learn the language, it's very tempting to just give up.

    Languages like ruby and python are not fast, but their syntax is so straight forward, the effort to go from a to z is a fraction of other languages, leading to the developer to be able to deliver faster.

    From the point of view of a developer that loves to learn, simpler languages inspire me to learn more complex languages, which in turn gives me more opportunity to enjoy my chosen craft.

  • phantasmish 34 minutes ago

    I love Ruby (… contextually, with the most important part of that context being “for small programs”) and its general culture (_why is/was amazing) but hate Rails.

    In practice this means I don’t use Ruby professionally any more, because there aren’t a lot of non-Rails Ruby jobs. And since I write a lot of python at work, that’s my go-to for my own quick little personal scripts, too, just for simplicity’s sake as far as what I have to keep in “working memory”, if you will. Plus it’s already installed on most systems I touch, unlike Ruby.

    Like I do care about how “joyful” a language is but I also care about how hard it is to work with if a codebase has been through a bunch of contractors’ and agencies’ hands and it’s kind of a mess and the test suite hasn’t been updated during two full years of active development. For my own “joy”’s sake, give me Go or c# or maybe even Java if you must, under those circumstances. It’s unlikely I’ll find much joy in Ruby when that’s happened, which is often.

dzonga an hour ago

Ruby is a fine language that puts humans over machine.

however the success of rails was also its biggest albatross. Ruby though fine for system tasks (such as system automation etc, chef existed yeah - but we haven't seen new gen tools built after) - people forgot it could do those.

the other is failure of certain sjws to separate say dhh the programmer vs the person. & not being aware to how money (velocity & gravity) move the world e.g shopify involvement in the ruby ecosystem.

failure to understand that beginners are the lifeblood of an ecosystem - till this date don't know if ruby can be effectively used on windows. most people have windows machines not mac's or linux boxes.

it didn't fail cz it was too slow (its fast enough)

badlibrarian 39 minutes ago

There are major gaps in platforms slapped together in the VC Party / Ruby era that seem to have unresolvable tech debt. Or perhaps Ruby just attracts the types of people who would rather talk about F1 racecars on Twitter than instruct a few of their thousands of employees to fix the shipping calculator.

Ruby was not designed to be a serious language. It was designed to be fun like PHP but not ugly like PHP. Meanwhile PHP grew up and Ruby grew out.

It's okay to love a thing and realize that it has some unsolvable issues and some people around it destined to keep it that way. Most things are like that these days.