Remix.run Logo
vindin 7 days ago

I don’t understand why Ruby and Rails get a reputation for being outdated or “legacy.” Over the last several years both have seen massive numbers of contributions, both in improvements and new features. I’d be surprised if any tool for building a new web app could even come close to what Rails has to offer across the full stack.

myaccountonhn 5 days ago | parent | next [-]

I've been toying with Perl+CGI-scripts lately and find its super productive with the benefit that I can do serverless without the lock-in.

I don't think the software engineering field is particularly rational and mostly follows trends or what looks good or familiar. We have a proclivity to assume that anything old is legacy. Most developer have never studied any CS history and are quite young, so they're bound to reinvent the wheel as well.

I think its fine to use older technology if its the right fit for the problem, and since the tech is battle-tested, you can read up as to why it went out-of-fashion, and as a result can minimize the risks with using it. It's "predictably disappointing".

piva00 5 days ago | parent | next [-]

> Most developer have never studied any CS history and are quite young

Even the ones who studied it still fall into the trap of novelty for novelty sake. I'm guilty of that as well 20+ years ago at the start of my career, I believe it's one of those wisdom rites of passage someone needs to go through to value the lesson.

Boring old tech that works is pretty good, if it's not unmaintained, gets updates while keeping a stable core, has an ecosystem of good libraries and documentation, I'll always choose it over some new fangled thing from the past 2-5 years.

You need to feel the pain of depending on something that is taken away, or dies a slow but surely death, or creates massive headaches to upgrade, to value the stability of boring old tech.

I feel it's a cycle bound to be repeated by each generation.

mkozlows 5 days ago | parent | prev | next [-]

I'm old enough to have been using Perl with CGI in the waning years of the old millennium. I loved it then, but it's not just hype cycles that caused people to move on to different solutions: Modern stuff is better in a bunch of very real ways.

stevekemp 5 days ago | parent [-]

I found that with CGI::Application, and similar Perl modules you get the facilities of the modern stuff, as well as the portability and simplicity of a simple index.cgi script.

Two things I think Perl always had a good reputation for was CPAN, providing interfaces to "everything", and a high degree of testing. I love that golang and rust both emphasize testing in modules/crates/packages. Writing perl CGI scripts I always had test-cases for the whole lifecycle, and that's something that isn't so common these days writing handlers in other languages.

librasteve 4 days ago | parent | prev | next [-]

if you like perl+CGI, then i suggest you take a look at https://harcstack.org

JSR_FDED 5 days ago | parent | prev [-]

I love this

jmuguy 5 days ago | parent | prev | next [-]

Since it doesn't have as much interest from FAANG people treat it like its dead meat. Rails powers a ton of smaller apps (and some very large ones) but everyone thinks their idea is the going to be the second coming and therefore it needs all the insane optimizations that power Google etc.

UK-AL 5 days ago | parent [-]

The money is in working for a FAANG. So that's what Devs trains for.

There's not much money in working for a small saas unless you're the founder.

Alifatisk 5 days ago | parent | prev | next [-]

It's because it's not receiving a constant hype that other fullstack frameworks have, so people thing it's outdated. But in reality, Rails is boring, it's a beast and it just works

rafark 7 days ago | parent | prev | next [-]

It’s the same thing with php. I would say it’s probably because they are languages from the 90s, but then you have python and JavaScript which are from the same era too and people never question their relevance or “modernity”. All of these languages (even java) have been in constant development since then and all of them have modern features. Why are some considered modern and some outdated when they are all basically from the same era?

A truly modern language is Rust.

doublerabbit 7 days ago | parent | next [-]

PHP typically required a web-server, system administration which is old fashioned. No one wants to do that which is fine as it keeps me employed.

When Ruby made western presence it was clunky. No one knew what it was and it got stuck with that personality. It had an ecosystem too but never hooked in to the western world.

Java is tainted by Oracle and seen as "business".

And it's also weird how Postgres has made an uprising appearance. It was sitting duck back in the 00's. I knew it existed because as an script kiddie I could install a php forum and select it as a database backend but I never did.

Want to make a LCD display? You can simply by slapping a python library in to your code.

Ecosystems pull coders in. Thinking about it, it's probably why Perl was popular before with CPAN.

The old net was special but skills had to be learnt. Remember the days when you had one server for one service?

The new net is terrible but everything is handed to you on a golden plate.

citrin_ru 6 days ago | parent | next [-]

> PHP typically required a web-server, system administration which is old fashioned

IMHO deploying PHP to production is easier than Ruby/Python. You need a web-server but once it's configured (not a rocket science) you just copy all .php files. For ruby you also want to have a web-server (e. g. nginx) unless the load is negligible. If you want to deploy a project with all dependencies you probably need something like rvm but some gems would be easier to install form OS packages (like pg or other wrappers around C/C++ libraries installed from OS packages too). And then for ruby you need an additional daemon (HTTP) which will be restarted on updates (and auto-restarted if it will crash).

voidfunc 5 days ago | parent | prev | next [-]

Postgres didn't really become the darling of SQL databases until rather recently.. i'd say the last 5-10 years. It was a clunky DB back in the day compared to MySQL.

UK-AL 5 days ago | parent [-]

It was clunky because it actually enforced rules.

sunrunner 5 days ago | parent | prev | next [-]

> When Ruby made western presence it was clunky.

At least when I first encountered Ruby it felt somewhat cool and exotic, I think because of a combination of its friendly website (compared to say Java), Japanese origin, and the fact that some of the first Ruby I ever learned was from why's (poignant) Guide to Ruby.

AlienRobot 5 days ago | parent | prev | next [-]

How is it possible that we have this many programming languages and every single one is worse than the other?

sunrunner 5 days ago | parent | next [-]

Perhaps because:

"There are only two kinds of languages: the ones people complain about and the ones nobody uses" -- Bjarne Stroustrup

throwawayoldie 5 days ago | parent | prev [-]

My theory is that this world is actually some other world's hell.

mrits 5 days ago | parent | prev [-]

By western world do you mean California? Because in Austin rails was huge and I was a lonely Django fan

pxc 5 days ago | parent | prev [-]

> A truly modern language is Rust.

Don't recent PHP releases actually have a pretty good selection of nice, modern features? Union types, JIT compiler, pattern matching against types, nullsafe operator, gradual typing, etc. It seems like FP style is better and better supported with each new release, which is another hallmark of modern languages like Rust.

If you're stuck on some cursed, barely-maintained PHP 6 legacy codebase, you can't enjoy these things, but when it comes to choosing PHP for new projects it seems like it's more modern than its reputation.

hakunin 5 days ago | parent | prev | next [-]

This is anecdotal, but one thing I do when comparing languages and frameworks, is browse the most popular libraries on GitHub from that ecosystem, and see how much maintenance they're getting. I usually use the contributors graph, as well as review how/when issues are handled. Ruby projects seem to have the most contributors maintaining the "deepest" libraries of any ecosystem I've seen, consistently, for the longest time. In other ecosystems I keep seeing one guy trickle-maintain some massively popular (based on stars) project that fizzled out over time. You could argue that some of that is due to "completeness", but I keep seeing evidence to the contrary: still many unsolved issues, but the initial activity spike subsides down to a trickle. To me that's what represents the health of an ecosystem: not how many new projects are created, but rather how well supported existing projects are.

lenerdenator 5 days ago | parent | prev | next [-]

I think it's just so strongly associated with a certain era (10-15 years ago) that it's hard for people to get it into the present day. Also, Rails is so dominant in Ruby that there aren't libraries/frameworks for the "latest trends" with as much mindshare.

I wouldn't be against starting a new project in Ruby or RoR.

phplovesong 5 days ago | parent | prev | next [-]

I feel its the MVC part that IMHO kind of sucks. I really dont like how it couples you to all sorts of frameworky stuff. A simple router is what you really need in 99% of cases.

tayo42 7 days ago | parent | prev | next [-]

For anything else you might use ruby for you can use python, so you might as well just use python.

If rails is the best at making web apps, and other ecosystems in other languages maybe get you 90% of the way, might as well use something else and not deal with ruby sucking at other jobs.

cosmic_cheese 6 days ago | parent | next [-]

Surely language preference factors in somewhere. Python is opinionated and not everybody’s cup of tea.

Alifatisk 5 days ago | parent [-]

I prefer Ruby because of it's flexible meta-programming capabilities, like I would easily draft my own DSL if I have an idea of how I want the syntax to look like. This is such a powerful and underrated feature of Ruby in my opinion

nickserv 5 days ago | parent [-]

Funny, I don't like Ruby because it has easy access to metaprogramming. It's powerful, yes, but in my experience it's a powerful footgun that makes the code very difficult to understand and debug 6 months down the line. And if you have a bunch of "clever" programmers working on the codebase, the horror...

realusername 5 days ago | parent | prev [-]

I'd say that other frameworks get you 70% of the way of Rails maximum and if that's what your building, it doesn't help knowning that the language is better in other areas you won't use.

FinnLobsien 7 days ago | parent | prev | next [-]

Agreed!

revskill 7 days ago | parent | prev | next [-]

Rails has bad spa suppott.

dismalaf 6 days ago | parent | next [-]

SPAs are one of those things that few apps truly need. And honestly, these days, if I thought I truly needed an SPA I'd probably just write it in a compiled language that spits out WASM.

But Rails is hard to beat for CRUD apps.

thewebguyd 5 days ago | parent [-]

> But Rails is hard to beat for CRUD apps.

I'm honestly surprised it didn't take off massively for internal enterprise CRUD stuff. It's by far the most productive stack I've ever used, the second closest being .NET w/ EntityFramework.

It was the darling of the early SaaS explosion of the early 2000s, and then just kind of died off in hype.

I like that it's opinionated, stops be from going down rabbit holes, and batteries included. There's nothing in the JS/TS framework of the day world that leaves me wondering "hmm, maybe I should stop using rails for this." It all seems worse, somehow, despite being more "modern."

dismalaf 5 days ago | parent [-]

It's difficult for enterprise to bet against C# or Java and I kind of get it. Following the crowd is a form of hedging your own career, if things go south you won't get fired for it, but if you bet on an obscure language and framework with no support you will.

ccakes 7 days ago | parent | prev | next [-]

Is that a bug.. or a feature? Probably the latter

revskill 7 days ago | parent [-]

U know, nothing beats SPA right ?

andrei_says_ 7 days ago | parent [-]

…In keeping lots of people employed.

All that extra complexity is great for the economy.

delfinom 5 days ago | parent [-]

God, I had to deal with a junior we hired that wanted and attempt to SPA all the forms on a intranet application form.

I struggled to explain I would now have to spend 4 hours updating dependencies, maintaining a node js pipeline and dealing with typescript all because you couldn't handle adding a new fucking single form input to a form with only 3 existing inputs, which would have taken only 3 lines of code between the HTML and C#. The cake was this is an intranet app where the entire form only gets used a few times a year at best.

Pxtl 4 days ago | parent [-]

That shouldn't even be web application you should have some kind of off-the-shelf CMS already in use that you can rely on for forms like that.

nik736 5 days ago | parent | prev | next [-]

There is the API only mode :-)

pier25 6 days ago | parent | prev [-]

It has bad support for anything that isn’t html.

tonyhart7 5 days ago | parent | prev [-]

because they are not javascript??? you realise that ruby and php still need to interact to JS in the end

so why not use JS directly or build on top of that???? that's what people do