[HN Gopher] Response to "Ruby Is Not a Serious Programming Langu...
___________________________________________________________________
Response to "Ruby Is Not a Serious Programming Language"
Related: _Ruby is not a serious programming language_ -
https://news.ycombinator.com/item?id=46106596
Author : robbyrussell
Score : 106 points
Date : 2025-12-01 18:16 UTC (4 hours ago)
(HTM) web link (robbyonrails.com)
(TXT) w3m dump (robbyonrails.com)
| robbyrussell wrote:
| Ruby's biggest flaw is that it insists humans matter. Some people
| hate that.
| MangoToupe wrote:
| As opposed to what?
| petre wrote:
| A.I. obviously.
| jcheng wrote:
| 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.
| lawlessone wrote:
| > it insists humans matter.
|
| Uh how?
| october8140 wrote:
| Uh read this and try using it. https://www.ruby-
| lang.org/en/about/
| andrewl wrote:
| The Semantics and Philosophy section of the Ruby page on
| Wikipedia gives a good overview:
|
| https://en.wikipedia.org/wiki/Ruby_(programming_language)#S
| e...
| snapcaster wrote:
| As someone who doesn't know ruby i have literally no idea what
| you mean by this
| tayo42 wrote:
| Ruby tries to make things close to natural language.
| _verandaguy wrote:
| 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.
| kace91 wrote:
| 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.
| lemonwaterlime wrote:
| 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.
| jurgenkesker wrote:
| 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 wrote:
| 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 wrote:
| 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!
| brightball wrote:
| 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.
| mono442 wrote:
| 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.
| werdnapk wrote:
| I'm pretty sure you mean @@ on a variable and are not common
| in a Ruby project. @@ is a class variable and I can see that
| causing all sorts of problems with data across sessions.
| lern_too_spel wrote:
| How about the fact that Ruby makes immutability difficult,
| and Hash does not copy keys on write and read? Almost every
| program uses a hash table, and Ruby makes them especially
| dangerous.
| Lio wrote:
| At least we have new features for immutability as part of
| Ractors.
|
| e.g. Ractor.make_shareable(data)
| psychoslave wrote:
| Not totally though. Try `if.class` in IRB for example.
|
| But the closest we have in any popular programming language,
| certainly.
| markaroo wrote:
| Ruby is a little silly, but given its pedigree of generational
| internet projects, Rails is indisputably a serious framework.
| mberning wrote:
| It's as serious as you want/need it to be.
| dzonga wrote:
| 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)
| bee_rider wrote:
| > 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 wrote:
| >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.
| tovej wrote:
| C++ is not that complex, and honestly it's one of the best
| documented languages out there. The semantics are very clear
| and you can easily decide to stick to a smaller subset of C++
| if you don't like the advanced features like concepts,
| template metaprogramming, and class hierarchies (I would in
| general advice against OOP in C++, just as I would in any
| other language).
|
| Ruby does a lot of magic stuff to help beginners. That means
| the semantics are unclear. IMO this is similar to how Apple
| optimizes UI/UX for first impressions to drive sales. The
| journeyman user is neglected, simple things are easy to do,
| but the most powerful features are missing for journeyman and
| advanced users.
|
| I'm not saying Ruby is a bad language. Just saying that I
| have the opposite view. I too love to learn, but Ruby did not
| help me learn, it actively got in my way.
|
| You can make a simple language without confusing semantics,
| see Go, C, python.
| cuddlyogre wrote:
| >C++ is not that complex
|
| Relative to what, exactly?
|
| It is very hard to take a statement like yours seriously
| when even veteran developers continue to ship software with
| memory bugs that exfiltrate data and crash systems to this
| day.
| phantasmish wrote:
| 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_.
| josefritzishere wrote:
| 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.
| jmorenoamor wrote:
| As a Python enthusiast for 20 years, just ignore and enjoy.
| pmontra wrote:
| > 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.
| madmaniak wrote:
| Well said.
| epgui wrote:
| 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.
| SatvikBeri wrote:
| 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"
| Towaway69 wrote:
| That's a very good point. My experience is that for large
| project the architecture also becomes important.
|
| Large project have much code but if you can split out
| responsibility because your architecture allows this, then
| you keep your code concise.
|
| One feature Ruby has that helps here is creating Domain
| Specific Language without yacc or lex. This allows for
| concise code where its needed.
| epgui wrote:
| There are languages much better suited for DSLs though.
| SatvikBeri wrote:
| Not quite the same, but I find "data-oriented programming"
| to be a very strong method for managing large codebases. By
| that I mean having data structures that designate the end
| state that you want, having another set of code that gets
| you to those end states, and maintaining a pretty clear
| boundary between the two.
|
| (If you like with "Functional Core, Imperative Shell", this
| is a way to further divide the Functional Core.)
|
| It works well because it narrows the surface area of a lot
| of possible bugs: either your configuration is wrong, or
| your code doing the transformations is wrong.
| epgui wrote:
| There are some programming language journals that people like
| to dismiss as "academic". But "academic" is what I value
| here.
| SatvikBeri wrote:
| There are a lot of programming language journals - are
| there ones you'd recommend specifically for discussions of
| tradeoffs between features?
| jasonpeacock wrote:
| > 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 wrote:
| I would be interested in serious attempts to argue for this,
| even if they can't reasonably be backed up by data.
|
| For example, I think there's a pretty strong argument that
| immutability makes it easier to write multithreaded code
| (perhaps at some performance cost), because it entirely
| prevents common types of bugs.
|
| Similarly there's a good argument that making methods open to
| extension (like Kotlin or Julia) makes it easier for an
| ecosystem to adopt unified APIs without explicit
| coordination.
|
| There's obviously a very strong argument that Garbage
| Collection prevents a lot of memory safety bugs, at costs to
| interoperability and performance.
| hartator wrote:
| > 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.
| epgui wrote:
| > However, it will take 10x the time to write, be less
| flexible, and harder to understand.
|
| Not in my experience: only in the usual ramp-up period in the
| first few months.
| solatic wrote:
| You're looking for a copy of Eloquent Ruby:
| http://eloquentruby.com/
| badlibrarian wrote:
| 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.
| Puzzled_Cheetah wrote:
| > 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.
| Ataraxic wrote:
| 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. :)
| _dwt wrote:
| 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.)
| xpe wrote:
| 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
| maxverse wrote:
| 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 wrote:
| 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.
| pelagicAustral wrote:
| Author has a history of bad-mouthing programming languages,
| that seems to be his meme: https://www.wired.com/author/sheon-
| han/
| mono442 wrote:
| RoR was a breath of fresh air when it was released, things could
| be done quicker and with much fewer lines of code but nowadays I
| don't think I would choose to use it again. Other languages has
| caught up.
| Towaway69 wrote:
| RoR isn't Ruby.
|
| The mistake that most folks make. They start out using RoR and
| think that's Ruby.
|
| That's probably why Ruby will always remain a "web" language
| and won't be taken _seriously_ in other areas.
| mono442 wrote:
| I haven't seen it being used for anything else with the
| exception of some devops tools like chef.
| spidey1 wrote:
| A couple of nice projects I can think of are DragonRuby [1]
| - a 2d engine that uses SDL under the hood and mruby for
| its game logic. I created this [2] game jam entry in under
| two weeks of part time effort (has a few bugs but works)
|
| [3] Sonic Pi - Music creation tool that uses ruby for
| instruction
|
| [1]: https://dragonruby.org/
|
| [2]: https://itch.io/jam/linux-game-jam2023/rate/2101760
|
| [3]: https://sonic-pi.net/
| chuckadams wrote:
| Homebrew would be another.
| mkl95 wrote:
| 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 wrote:
| 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.
| solatic wrote:
| It's one thing for J.K. Rowling to write Harry Potter outlines
| on cocktail napkins. A pen and a cocktail napkin can be quite
| the foundation for expression, indeed. But the same flexibility
| lets other people doodle, and still others blow their nose.
|
| The _capacity_ to enable greatness is neither the same as the
| _encouragement_ to enable greatness, nor the _guarantee_ to
| enable greatness, and there 's a lot of survivor's bias at the
| top of the Ruby and Rails communities.
| waffletower wrote:
| 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.
| tovej wrote:
| 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.
| jrm4 wrote:
| 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.
| WhyOhWhyQ wrote:
| I don't understand what this comment means. It sounds like you
| think all programming has ended, which is not the case.
| jrm4 wrote:
| No, but as I said elsewhere -- it feels like a possible,
| perhaps likely, case that "personal preferences in
| programming and style" become _significantly_ less relevant.
| ricogallo wrote:
| 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.
| tovej wrote:
| 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.
| apsurd wrote:
| No, because pairing with AI is not the same as how we've come
| to define coding/programming.
|
| It's something different. To say that it'll be _better_
| relative to some stated measurement is fine.
|
| Let's use a driving analogy. You can say cars get you from
| point A to point B so self-driving and teleportation are better
| evolutions. But you wouldn't say if someone wanted drive a car,
| enjoyed driving a car, wanted to get better at driving a car,
| they should get in a Waymo. Or teleport.
| jrm4 wrote:
| Right, but lets keep that analogy going, it's a good one.
|
| One can envision perhaps a future where, e.g. the majority of
| people (everywhere) don't drive cars because of public
| transport + Waymos.
|
| In that world, issues surrounding "humans driving" take on a
| _completely different_ flavor and relevance. Safety matters
| less, preferences of interfaces can matter more, etc. etc.
|
| And I suppose it feels like the programming equivalent is
| around the corner, if not already here.
| jrochkind1 wrote:
| these articles feel like they were WRITTEN by gen AI, I'll say
| that!
| aeturnum wrote:
| 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...
| pizlonator wrote:
| > "Ruby doesn't work forever"
|
| Where does the response even address this?
|
| All I know is that Ruby code I wrote 10ish years ago is still
| going strong, for example a whole compiler
| https://github.com/WebKit/WebKit/tree/main/Source/JavaScript...
| aeturnum wrote:
| Here's some places I noticed it:
|
| > _critics love the Twitter example. But look closer. Ruby
| carried them further than most companies will ever reach.
| They outgrew their shoes. That's not an indictment... that's
| success._
|
| > _I've never seen a team fail because they chose Ruby. I
| have seen them fail because they chose complexity. Because
| they chose indecision._
|
| > _GitHub held the world's source code together for years
| using Ruby._
|
| There are many examples of companies that used Ruby at one
| point very successfully but moved on from it once it no
| longer fit their situation. This isn't a critique of Ruby!
| But it is agreeing that Ruby can be outgrown and that, if you
| are looking to start with a language your usecase probably
| won't ever outgrow, Ruby might not be the best choice.
| epolanski wrote:
| GitHub is an example of something that worked better with
| ruby than react...it got much worse.
| BirAdam wrote:
| It also may have had a better time with more recent
| versions of Ruby.
| cxr wrote:
| > Ruby code I wrote 10ish years ago is still going strong,
| for example a whole compiler <https://github.com/WebKit/WebKi
| t/tree/main/Source/JavaScript...>
|
| Neat. How is offlineasm used? (Without going into the details
| about the background of LLInt, that is--what I mean is, how
| is the compiler invoked?) Is it just the reference compiler,
| corresponding to some other machinery inside JSC?
| pizlonator wrote:
| That's how the interpreter in JavaScriptCore gets compiled.
| The interpreter is written in a macro assembly dialect I
| invented and this is the compiler for it.
|
| (I say compiled, not assembled, because it's higher level
| than normal assembly. There's an actual pipeline of
| transformations that happens. Plus a Turing complete macro
| language)
| cxr wrote:
| Thanks, that's helpful. (I mistook the compiler as being
| one that deals with JSC bytecode, either as input or
| output.)
| philipwhiuk wrote:
| It's also funny he wisecracks Java and then loves Scala for
| it's robustness (much of which it owes to Java).
| taylorallred wrote:
| 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).
| mikepurvis wrote:
| Obviously ruby is bigger than just rails, but rails definitely
| popularized the idea of magical objects that are automatically
| syncing state and doing things on your behalf. This is
| presented by fans as surprising and delightful, rather than
| surprising and terrifying.
|
| Popular python projects like requests and flask also lean into
| the idea of providing a programmer interface that is expressive
| but also maximally brief on the happy path--see especially the
| context local proxies in Flask (request, session); these look
| like global module imports, but they're actually request
| specific despite not being passed into your handlers... eek.
|
| On the other side of things, languages like zig and go feel
| like a bit of a backlash to this, that no, magic is bad and
| everything should be explicit, even if it costs us a bit of
| code to do so.
|
| Rust I think sits at an interesting place in this, because it's
| all pretty strict and explicit, but all the macro and type
| system stuff does re-open the door to offering some DSL-like
| things in a way that's perhaps a bit cleaner than what other
| languages would have to do to get to the same place programmer
| interface-wise.
| falcor84 wrote:
| Funny that you mentioned Flask, which literally started as an
| April Fool's joke [0], but that hasn't stopped it from
| becoming the 10th [1] or 11th [2] most popular web framework,
| with over double the number of devs compared to Rails, so
| "seriousness" likely has nothing to do with making people
| want to use it.
|
| [0] https://lucumr.pocoo.org/2010/4/3/april-1st-post-mortem/
|
| [1] https://www.statista.com/statistics/1124699/worldwide-
| develo...
|
| [2] https://survey.stackoverflow.co/2025/technology#most-
| popular...
| wcfrobert wrote:
| > I've never seen a team fail because they chose Ruby. I have
| seen them fail because they chose complexity. Because they chose
| indecision. Because they chose "seriousness" over momentum. Ruby
| just needed to stay out of the way so people could focus on the
| real work.
|
| I am entirely indifferent to the topic of Ruby, but this sentence
| really resonated with me. I'll take momentum over premature
| optimization for scale any day of the week.
| ashishb wrote:
| Here is my single way of deciding what your favorite language is.
|
| It is not "I like to write code in this language" but "If I am
| handed down a production ready system, I would prefer it to be
| written in this language".
|
| A lot of people won't say the same answer to the first and the
| second question.
| falcor84 wrote:
| Yes, but ... this depends strongly on whether your task is to
| maintain that production system in its current state
| indefinitely, or to keep developing it and continuously
| integrate with new technologies under time constraints. If the
| former, the right answer would probably be COBOL. If the
| latter, this is where things get interesting.
| bazoom42 wrote:
| Why COBOL?
| falcor84 wrote:
| COBOL is used for the longest continuously running systems,
| particularly in the financial industry, many of which have
| been in production since the 1960s - mainly on mainframes,
| but noawadays also increasingly in cloud environments.
| There's nothing that comes close to the level of
| reliability that these offer, with the next closest
| probably being Fortran, Ada and Erlang.
|
| I found this article with some numbers [0], with the top
| one being that "95% of ATM swipes rely on COBOL code". If
| you just need to maintain something in production, and only
| occasionally update the business logic, without having to
| upgrade the architecture, COBOL is the way to go.
|
| [0] https://www.pragmaticcoders.com/resources/legacy-code-
| stats
| Twey wrote:
| I think the correlation here is pretty solid but I wonder
| about the causality. There are a few big confounding
| variables; off the top of my head,
|
| 1. COBOL systems are typically written on a much
| shallower software stack with less room for unreliability
|
| 2. banking systems have a ton of effort put into
| reliability over decades of development.
| ErroneousBosh wrote:
| Yes, this exactly. I like to write code in Forth but I sure as
| FUCK don't want it to be my day job.
| lycopodiopsida wrote:
| As long as I've written the system, any language is fine.
| Otherwise, hand it down to someone else!
|
| /s but also true
| nosman wrote:
| I think those are two separate concerns. Writing code and
| running a tech business are two different things. I personally
| love Ocaml and think it's an excellent language and very
| underrated. However, I (probably) wouldn't want a production-
| ready system written in it, because it has a weaker ecosystem
| of libraries and frameworks, and it's harder to hire
| experienced people who already know or are willing to learn the
| language.
| ashishb wrote:
| > I think those are two separate concerns.
|
| Indeed. And the latter, that is, taking over and maintaining
| code written by someone else, is the more common concern in
| day-to-day jobs. More likely that you will get to build and
| improve an existing system than create one from scratch.
| paulbjensen wrote:
| If Ruby pays your bills, then I think calling it a not serious
| language is a bit of a stretch. Just look at Mike Perham's
| Sidekiq - he made a living out of selling a RubyGem.
| andrewstuart wrote:
| The reason people attack Ruby is because Ruby users are vocally
| conceited, claiming "their language" holds some set of special
| place, uniquely created for developer joy and developer
| happiness.
|
| It's this ridiculous conceit and arrogance that in some way
| (never quantified mind you), that makes people want to bring the
| Ruby conceit back to earth.
|
| That's why Ruby gets attacked - because it's nothing special but
| the Ruby lovers club all claim it is.
| peteforde wrote:
| Perspectives like this always tell more about you than whatever
| it is that you're talking about.
| andrewstuart wrote:
| Thank you.
| zemptime wrote:
| The reason I dislike the twitter argument is, even if ruby was
| the root cause, the choice of ruby still launched the business
| and got them to that first success disaster.
|
| The deeper reason I think it's a bad argument is because twitter
| ran into a problem native and new to them - massive fan out
| (celebrity tweet -> millions of followers). that's not the kind
| of thing any language typically does while responding to a web
| request.
|
| Lastly - heavy survivorship bias here. We will never hear about
| all the startups which were "scalable from day 1" on java or
| whatever and fizzled out.
|
| Looking at https://www.wired.com/author/sheon-han/, this author's
| whole strategy seems to be bear poking. The writer is skilled but
| at least in this ruby one they are definitely hate-farming. I'm a
| little sad to see content of this quality in Wired.
|
| Anyway, I'm off. Returning to be part of the usually silent
| majority who is happily using ruby to ship useful software!
| epolanski wrote:
| Countless time has passed since then, ruby isn't the same.
| UnknownUser1234 wrote:
| Ruby is a tool, it's fine. I don't buy into all the emotional
| nonsense about it. Seems more like creative marketing.
| mekoka wrote:
| In the original article, author never actually went into why they
| disliked their experience with Ruby. They listed some historical
| shortcomings which we can only presume they were experiencing on
| the code base they found themself working on. I think the best
| point out of that first article was _don 't pick Ruby as a
| development language in 2025, there are better options for any
| advantage you might think it will give you_.
|
| I think that should've been the main point to attack.
|
| In the present article, the author went for pathos instead and in
| some ironic sense confirmed the previous article's notion that
| Ruby is powered by sentimentality.
|
| Many people that adore Elixir also think Ruby is a no go, despite
| the latter being a strong influence. Arguments against Elixir
| tend to revolve around its lack of traction, not its lack of
| seriousness.
| drdaeman wrote:
| YMMV, but both articles are two nothingburgers. First one
| doesn't say a thing about what's possibly wrong Ruby language
| but rambles something about StackOverflow popularity and
| Twitter issues, second one doesn't say a thing about what's
| wrong with the first article and just tells a tale about Ol'
| Good Times and aesthetic differences.
|
| The fact that it's not some LLM-produced slop for engagement,
| but something that was written by real humans and is somehow
| paid attention by real humans is sort of depressing.
| asa400 wrote:
| > Many people that adore Elixir also think Ruby is a no go,
| despite the latter being a strong influence. Arguments against
| Elixir tend to revolve around its lack of traction, not its
| lack of seriousness.
|
| Elixir is funny. I've done Elixir for years now, and did some
| Ruby at the beginning of my career. A ton of people come to
| Elixir for the familiarity of the Ruby-like syntax but with a
| functional programming basis. They like Ruby but get tired of
| OOP and mutable state and want to try something else. They tend
| to stay for the runtime/VM, called the BEAM.
|
| Don't get me wrong, the Elixir language is nice, but the BEAM
| and its operational characteristics feel night-and-day compared
| to Ruby and most other languages that were designed for a world
| of single-threaded programming.
|
| When you're using the BEAM (any language - there are a few now)
| there's this amazing sense that you're using something that was
| _designed to be operated_. You can instrument anything. You can
| trace anything. You can see the live state of anything. You can
| restart anything. It's a holistic _system_ for building
| systems, not just a language.
| puppycodes wrote:
| I'm certain the users of the ruby app don't care how "serious"
| your programming language is.
| swat535 wrote:
| Do the user of _any_ language care how serious the language
| is?.. nowdays there are so many options to pick from, I love
| Ruby, I use it all the time, but I also like Python, Elixir and
| system languages like C++..
| cloudfudge wrote:
| I enjoyed ruby as a language for a while, but the one truly
| maddening aspect of it is that (as of 10 years ago anyway) nobody
| actually wrote threadsafe gems (because everyone was writing for
| Rails, which was single-threaded). That and the rampant
| monkeypatching that made the standard library hard to count on.
| These are the things that make it feel really "unserious" to me.
| I have no idea if these complaints are still current, though. I
| assume thread safety has been tackled at the very least.
| jasonpeacock wrote:
| > rampant monkeypatching that made the standard library hard to
| count on
|
| That was very frustrating when doing regular development after
| using Rails, all the "built-ins" were actually patched into the
| stdlib by Rails and not available without it.
| jrochkind1 wrote:
| > one truly maddening aspect of it is that (as of 10 years ago
| anyway)
|
| Not really true anymore.
|
| > for Rails, which was single-threaded
|
| Also not true anymore.
|
| Turns out things can change in 10 years, I guess?
| mrinterweb wrote:
| There are many good comments here about why the "Ruby is not a
| serious programming language" article is trash, and it is. What
| bothers me is that this article is on wired.com. I would expect
| more from Wired, and unfortunately, the article will get many
| views.
| jrochkind1 wrote:
| From the article OP is responding to:
|
| > Critically, Ruby's performance profile consistently ranks near
| the bottom (read: slowest) among major languages.
|
| Without a cite, perhaps because it's not really true. Ruby's
| performance is similar to python's. Granted, neither one is going
| to win any competitions, although I'm not sure what the field of
| "major languages" is.
| ModernMech wrote:
| > Ruby's performance is similar to python's. Granted, neither
| one is going to win any competitions...
|
| It's not just that they won't win any speed competitions, but
| that Ruby and Python are bound to come in last place. The only
| question is, which one comes in last and which 2nd to last.
| Runners up include Perl, PHP, and sometimes non-JIT Lua. Choose
| any benchmark, the results are consistent:
| https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
| pessimizer wrote:
| > if a tool feels good to use... that must mean it isn't
| "serious."
|
| Good structure. Always put the strawman up front.
|
| Stay tuned for my article about soda pop which starts: "I missed
| the memo that said that just because something tastes great it's
| 'unhealthy.'"
| ErroneousBosh wrote:
| Back in the olden days, maybe about 20 years ago, two web
| frameworks were really starting to change the way a lot of people
| thought about web development. Not the people at the company I
| worked for, sadly, which is why I went to work for someone else,
| but there you go.
|
| These were Django, and Ruby on Rails. I already knew Python, and
| Django was really well-written, and had great documentation, and
| I could get going with it really quickly. If the docs didn't
| explain it, I could read the source code. Super.
|
| The place worked at hired a guy who was big into Ruby on Rails,
| and I really wanted to like it. I liked the stuff the guy was
| doing, he seemed like a decent sort, and all, and I'm not
| egotistical enough to go "No we will use _my_ thing " if someone
| has a perfectly good alternative. Well, okay, I _am_ that
| egotistical, but not in this case. The point is, I didn 't really
| care which framework we used although I was already able to write
| Python, because anything was better than the hideous ball of
| unstructured PHP4 intermingled with HTML that the company's sites
| were written in at the time.
|
| I really really wanted to like Ruby on Rails, but the
| documentation kind of assumed you already knew a lot about Ruby
| and indeed Rails. Okay, let's learn some Ruby.
|
| The IRC channel pointed me at some video tutorials you had to pay
| for because "that's the future, everyone watches videos to learn
| stuff now", and why's (Poignant) Guide to Ruby.
|
| I did not like w(P)GtR, at all. I didn't like the "I'm so
| wackywackywacky" humour on every page. I didn't particularly care
| about the dog story, which put me off the rest of the whole
| chapter. I've tried reading it again, maybe about five times
| since, and I just do not get on with that American Gibberish Poem
| style of writing.
|
| (I don't much like Alan Ginsberg either, FWIW).
|
| Then the whole Basecamp thing blew up, and DHH was widely known
| as a total shithead from the motor racing scene so it's not
| surprising that he turned out to basically be the sort of person
| my grandfather would have shot if he'd been around in the 1940s.
|
| So, that's kind of why I've never got on with Ruby, much as I'd
| like to.
| tptacek wrote:
| I'm not a fan of Ruby, but the original Wired article is pure,
| distilled rage-clickbait, and nobody should be dignifying it. An
| interesting case where there'd be a more generous reading had the
| piece run solely on a blog, rather than on Wired.com.
|
| But even if it had been written in good faith, this species of
| article (specifically: harsh critiques of popular programming
| languages written by people who aren't ongoing practitioners in
| that language) are a toxin to HN, the resulting language fights
| they gin up one of our closest equivalents to a cytokine storm.
| Don't feed into them.
| pmarreck wrote:
| I switched from Ruby to Elixir about 10 years ago for a number of
| reasons. 10x performance on various algorithms I translated into
| Elixir was one. Another one was 100% immutability, ruling out an
| entire class of bugs. A third was excellent concurrency support,
| which was of course aided by the immutability. A fourth was that
| they tried to retain the friendliness of Ruby.
|
| At least a few emerged later. Pattern-matching + guards are
| godlike and eliminate tons of boilerplate argument-checking
| logic. Per-process GC, no GIL, etc. etc.
|
| A small learning curve to master functional-language semantics
| and I haven't looked back.
|
| Elixir simply scales better in every way- long-term maintenance,
| load, etc.
|
| The Ruby community is/was amazing, though.
|
| The only thing I wish it could do was compile down to a native
| executable or run in the browser.
| Jake8978 wrote:
| Well, robbyonrails mentioned that he is an atheist. From my own
| experience in general, I have found that most people are not
| atheists. They just replaced God with their ego. In software
| engineering I have seen so many egos and self-rightousness, I
| just think I made a mistake of following the craft.
| ajsharp wrote:
| The original wired piece is effectively a lot of words that swirl
| around one poorly argued point: ruby is falling behind because of
| it's lack of static typing support. "Seriousness" is an
| ironically unserious way to evaluate, well, anything, but if you
| were trying to force a definition based on the rest of the poorly
| formed narrative, it must be "static typing". Performance doesn't
| work as serious critique, because...python, and it probably
| shouldn't anyway (within some semi-reasonable range).
|
| Except for static typing and ruby's particular style of
| metaprogramming (one _could_ argue python enables decorator-based
| "meta" programming, but whatever), ruby and python are
| _basically_ the same language, with some obvious semantic
| differences. Of course there is much about ruby and python that
| is very different -- adoption, library support, community, vibe,
| whatever. And you could say that python is at it 's core
| functional with OOP layered on top, while ruby is the opposite,
| it's all sort of irrelevant, they are basically the same, in the
| fundamental daily experience of using the two languages, in that
| ruby/python and go (or java, or elixir, whatever) are very much
| NOT the same. Minus static typing support.
|
| I'm optimistic ruby will figure this out soon, because the sort
| of static typing support that has propelled javascript and python
| is the kind that ruby can and should support. By that I mean
| neither really have static types. Typescript is another language
| that compiles to javascript, and python's typing support remains
| and probably always will be optional, and like javascript, is
| enabled by external tools (mypy, pyright, etc). Neither python
| nor javascript have a type-centric/aware runtime, or even one in
| which types are considered at all. They are still both very much
| dynamic languages that basically have nice developer tooling to
| help developers write "type-safe" code, but really, in
| production, we're just pretending that the types we work with in
| development exist at all in the runtime.
|
| This is not so much a critique of the approach, but the mass
| pretending we do when we critique a language like ruby for "not
| having types" and praising javascript or python for "having
| types" which they clearly do not. But the approach is good, at
| least if you agree that optional typing is better than java/go
| style static typing.
|
| I don't know what's holding ruby back from better supporting
| optional typing, but i hope they fix it soon. My sense is, to
| over-simplify, sorbet got too popular, but it's fundamentally an
| approach you would take if you had to build a type system
| _around_ the language rather than _in_ the language.
| ModernMech wrote:
| > And you could say that python is at it's core functional with
| OOP layered on top
|
| How would you argue that? I don't think a language can be
| considered core functional if it doesn't at least support pure
| functions.
| yomismoaqui wrote:
| Let's be honest, if it weren't for Rails Ruby would be forgotten
| nowadays.
|
| Right now Ruby is a language used to maintain legacy Rails
| systems.
| bluerooibos wrote:
| Frankly I don't think the article even deserves a response. One
| of the worst pieces of journalism I've read in a long time, which
| makes me think it's AI slop.
___________________________________________________________________
(page generated 2025-12-01 23:02 UTC)