top | item 44940270

(no title)

vindin | 6 months 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.

discuss

order

myaccountonhn|6 months ago

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|6 months ago

> 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|6 months ago

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.

jmuguy|6 months ago

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|6 months ago

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|6 months ago

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|6 months ago

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|6 months ago

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.

pxc|6 months ago

> 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|6 months ago

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.

vindin|6 months ago

I've noticed the exact same thing. Every tablestakes component has a gold standard library (sidekiq, puma, devise, rake, vcr, and so many others) and all seem to have been updated within the last week. The community might be small and have a dull outward appearance, but anyone who works with Ruby knows that the ecosystem has been blooming with life for 2 decades.

lenerdenator|6 months ago

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|6 months ago

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|6 months ago

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 months ago

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

realusername|6 months ago

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.

revskill|6 months ago

Rails has bad spa suppott.

dismalaf|6 months ago

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.

ccakes|6 months ago

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

nik736|6 months ago

There is the API only mode :-)

pier25|6 months ago

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

tonyhart7|6 months ago

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