15 ms·
Why Ruby on Rails still matters
- Sparkyte 2y agoAs someone who directly worked on Ruby on Rails with developers, their worflows and deployments. It is far too niche to be viable in the mainstream and provides even less incentive to newer languages. But it is a fun language. Also latest Python is faster than the current Ruby let that sink in. You can go even faster if you do a compiled Python like PuPu.
- deleted 2y ago[deleted]
- the__alchemist 2y agoAlong this vein: I learned programming ~15 years ago. On my own, as a hobby. Now it's a hobby and day job. Lots of tech churn in this time period. I've branched out into many domains. The constant that's been with me from start to end: Django. Because it's fantastic and versatile. I still am kind of bitter the tutorial I followed wasted so much time on tangents regarding VirtualBox, Vagrant, Chef... I program most things in rust, but not web, because there is nothing there that compares.
- stevev 2y agoI love Ruby. However, based on my readings, Rust, rocket, seems like a compelling choice due to its true parallel processing capabilities, strong typing, and impressive speed. Perhaps the author has yet to explore other technologies outside of Rails.
- pgcosta 2y ago"It struggles with LLM text streaming, parallel processing in Ruby[3], and lacks strong typing for AI coding tools." What's the struggle specifically? How these general articles of opinion get to the first page of HN I'll never understand. Just random statements without anything to back them up.
- y0ssar1an 2y agoYou know a language is dying when you start seeing articles like this.
- raintrees 2y ago"Developers choose Rails today because, 20 years later, it remains the most simple and abstracted way to build a web application." Well, then there are those of us who use Django for similar reasons :)
- mathgladiator 2y agoI've started to use PHP again because AI deals with it nearly perfectly such that I can focus entirely on the product without trivia deep dives.
- thdhhghgbhy 2y agoI miss writing Ruby.
- hot_town 2y agoWasp is the Rails for JS (React/NodeJS/Prisma)
- zombiwoof 2y ago[flagged]
- e12e 2y agoYour comment would be more interesting with a bit more context. Which version of rails? Did you work in rails for a year, then rewrite? How long did the rewrite take? Was it a rails monolith - server side rendering and no api? Was the database schema good - did you keep it for the rewrite? Was it a good fit for react?
- Glyptodon 2y agoI suspect maybe they weren't experts if Flask + React seemed to solve whatever the problems were. (Particularly since using React with Rails is fine.) That said, I've encountered a solid number of Rails projects that have been dumpster fires because their devs didn't follow conventions AND had horrible modeling/schema issues. (Example: let's create our own job system that's many times worse than Active Job for no real reason...) The other recurring thing that I see come up a lot with Rails projects is that nobody can really agree on where to put their business logic for anything complex.
- ramkalari 2y agoI once had to fix a Rails project where the original developer chose not to use ActiveRecord, ActiveJob or any of the Rails built in features. Not sure why he wanted to go that route unless he wanted to learn Ruby at the customers expense.
- graypegg 2y agoI really like web apps that are just CRUD forms. It obviously doesn't work for everything, but the "list of X -> form -> updated list of X" user experience works really well for a lot of problem domains, especially ones that interact with the real world. It lets you name your concepts, and gives everything a really sensible place to change it. "Do I have an appointment, let me check the list of appointments". Contrast that, to more "app-y" patterns, that might have some unifying calendar, or mix things into a dashboard. Those patterns are also useful!! And of course, all buildable in rails as well. But there is something nice about the simplicity of CRUD apps when I end up coming across one. So even though you can build in any style with whatever technology you want: Rails feels like it _prefers_ you build "1 model = 1 concept = 1 REST entity" Next.js (+ many other FE libraries in this react-meta-library group) feels like it _prefers_ you build "1 task/view = mixed concepts to accomplish a task = 1 specific screen"
- andrei_says_ 2y agoFigma, online photo and video editors, canva and browser based games are the only non-CRUD examples I can think of from recent memory.
- philip1209 2y agoYeah, I agree. Too many degrees of freedom can degrade an experience, if not used properly.
- zdragnar 2y agoThe problem with 1 model = 1 rest entity (in my experience) is that designers and users of the applications I have been building for years never want just one model on the screen. Inevitably, once one update is done, they'll say "oh and we just need to add this one thing here" and that cycle repeats constantly. If you have a single page front end setup, and a "RESTful" backend, you end up making a dozen or more API calls just to show everything, even if it STARTED out as narrowly focused on one thing. I've fought the urge to use graphql for years, but I'm starting to think that it might be worth it just to force a separation between the "view" of the API and the entities that back it. The tight coupling between a single controller, model and view ends up pushing the natural complexity to the wrong layer (the frontend) instead of hiding the complexity where it belongs (behind the API).
- tantalor 2y ago> Next.js now serves as the most common tool for building a startup. This is completely unfounded.
- philip1209 2y agoIf you normalize for for market cap, I think it's a reasonable assumption. But, yeah - maybe it's a bit inflated.
- neric 2y agoThe number of crypto exchanges and news paper I've seen that run on Nuxt.js
- taormina 2y agoBecause cyrpto exchanges and newspapers make up the majority of startups? Most scams don't advertise themselves as startups and most newspapers are just dying and going out of business, not rebranding as startups.
- martinsnow 2y ago[flagged]
- apsurd 2y agowhat problem does nextjs solve? So as to not be disingenuous, I suspect you're making a false dichotomy that rails = backend and nextjs = frontend and so they solve different problems?
- martinsnow 2y agoMuch more accessible to frontend engineers so you can detach what would be backend problems to your frontend engineers. Often many microservices will be available but no cohesive endpoint or gateway will be available. Task your frontend with creating the gateway because they know the access patterns and they know what they need.
- apsurd 2y agoOk. I can understand that problem on a 30 person eng-team at med/large company. It makes sense why nextjs kills my soul every time I touch it. For side-projects it's just me, for startups it's a few people where the entire premise of the company may change monthly, not to mention the API and product assumptions. Perhaps it's just the millennial in me. Intentional frontend/backend bounded expertise is rather silly in a fledgling company.
- martinsnow 2y agoWe're talking multiple multiple business units spread out multiple disciplines. Funnily enough we can settle on a common backend language and frontend language and even frameworks in my org but apparently on HN everyone wants to be special? I would love to see how many features got shipped a week with that setup.
- dmix 2y agoFrontend engineers don't have to be isolated in their own world. If they can learn JS and the craziness of JS frameworks they can learn Ruby or Python or whatever. Way too much complexity is added to web app development because of this idea that backend and frontend are two completely different worlds.
- philip1209 2y agoFor the hundreds of people reading this article right now - you might be amused to know that you're accessing it from a mac mini on my desk: https://www.contraption.co/a-mini-data-center/ https://www.contraption.co/a-mini-data-center/ (The CPU load from this is pretty negligible).
- adamtaylor_13 2y agoI actually read that blog post too last week (or the week before?) and I’m genuinely considering this. Render is crazy expensive for blog sites and hobby apps.
- philip1209 2y agoHere's the core scripts I use for the mac mini. They're a bit raw, but hopefully useful: https://gist.github.com/philipithomas/ed57890dc2f928658d2c90ba128f1d8e https://gist.github.com/philipithomas/ed57890dc2f928658d2c90...
- shadowangel 2y agoI was using an old Samsung s8, with a USBc ethernet adaptor it was more then capable serving allot of requests.
- mattgreenrocks 2y agoLove all the projects you have going. Do you use a template for the landing pages? Or DIY? They look great!
- philip1209 2y agoThanks! Postcard was made with some help of TailwindUI.com. Booklet's homepage is based on a Webflow template: https://webflow.com/templates/html/gather-saas-website-template https://webflow.com/templates/html/gather-saas-website-templ...
- raitom 2y agoWhat kind of Mac mini do you use (cpu and ram)? I’m really interested in making the same thing but I’m not sure if the base M4 mini is enough with just 16gb of ram.
- andrewstuart 2y ago“Your grandpas vinyl records” as analogy for Ruby on Rails. Love it.
- Axsuul 2y agoAny thoughts on Inertia.js, which seems like a good solution for React + Rails? Feels like you can have your cake and eat it too. https://github.com/inertiajs/inertia-rails https://github.com/inertiajs/inertia-rails
- choxi 2y agoIf you just want React+Rails, the rails generator command comes with a bunch of options to set that up for you, including setting up and configuring: React/Vue/etc, a bundler like vite, typescript, tailwind. It looks like inertia has additional features though.
- x0x0 2y agoinertia, I think, avoids writing an api to bridge rails/react
- winterbloom 2y agoim not aware of the generator supporting all that here's what I get `Possible values: importmap, bun, webpack, esbuild, rollup`
- inanepenguin 2y agoThis looks fairly lightweight and clean, but you immediately replace a large portion of the Rails ecosystem with React and will constantly need to account for that when deciding how to build your application. By sticking closer to "the Rails way" you get the support of it's massive community. If Intertia.js development halts, then you're stuck with either a) adopting something else, or b) maintaining the tool for your own use cases. Using something like this would, imo, be closer to building a Rails app in API mode with a separated frontend than adding a new library on top of Rails.
- phaedryx 2y agoThis looks interesting. I think I'll try it out over the weekend. Thanks for sharing.
- hrdwdmrbl 2y agoJust because of job availability, I've been a JS (Node, React, Next, etc.) dev for almost a decade now. I still feel much more productive with Rails. Rails isn't the right tool for every job, but I find that it's the right tool more often than not. Rails is architected really well. Many decisions don't need to be made at all, and everything has a place. Plus, it's very friendly to extensibility and has a healthy ecosystem. It's mostly about the code that I don't need to write. It's really years beyond most other frameworks. Next will get there, but it will take it another 5 years. No shade on others, but Rails is just well built software with many years of learning and improving. For highly reactive or "dynamic" systems, it probably isn't the right tool. Building a Figma or Notion. As @graypegg said in their comment, most websites work best as "CRUD forms". Though I would have said the same about email, but Hey.com exists so YMMV...
- deleted 2y ago[deleted]
- Alifatisk 2y agoRoR is a beast, it has its place. The issue we have today is that everything is to fast paced, so fast that people feel the need to follow the latest and greatest, or they will be left behind. This has (in my opinion) lead to a false sense that if something is not hyped as often, then its not used either.
- artursapek 2y agoNah, RoR failed because nobody wants to write code in an untyped, monkey-patch-friendly language anymore.
- Alifatisk 2y agoI don't really know if I would agree on saying that RoR failed, from recent my experiences, it's still a sought after tool for startups. I do share your opinion on the untyped part, it's a bit of a bummer but there are gems to Ruby that helps with that. Regarding the monkey patches, it's a concern many have and because of that, there is now a cleaner way of doing it! It's called a refinement. It's like monkey patching but in a more controlled way where you don't affect the global namespace. https://docs.ruby-lang.org/en/master/syntax/refinements_rdoc.html https://docs.ruby-lang.org/en/master/syntax/refinements_rdoc...
- user432678 2y agoFailed or not, but at least for 2020 Y-Combinator Ruby-based startups valuation was more than other programming languages based startups combined. https://charliereese.ca/y-combinator-top-50-software-startups/ https://charliereese.ca/y-combinator-top-50-software-startup...
- artursapek 2y ago"Initial back-end language(s)" Lmao you really think Stripe is still running primarily on Ruby? Yeah it's good for prototyping because it's fast to write in, but unmaintainable as hell for a real business.
- amazingamazing 2y agoIt’s interesting to see how convention over configuration had its hay-day in the 2010s. Angular, EmberJS, Django, and Rails were very, very popular. Now, the new type of modern stack, e.g. React/NextJS with bespoke backends consisting of things like NodeJS spaghetti with express seem to have a lot of traction. I base the above assertion mainly on looking at Who’s Hiring posts btw. sidenote - is NextJS really the best “convention over configuration” approach for react? I’d love to just use ember, but most of the community has moved to react, but I really enjoy the opinionated approach
- jay-barronville 2y ago> sidenote - is NextJS really the best “convention over configuration” approach for react? I’d love to just use ember, but most of the community has moved to react, but I really enjoy the opinionated approach You might like Remix [0] (I do). [0]: https://remix.run https://remix.run
- Trasmatta 2y ago[flagged]
- cpursley 2y agoCan we stop American-moralizing everything? People are allowed to have their own opinions, even annoying ones that offend our sensibilities.
- Tainnor 2y ago> People are allowed to have their own opinions including the person you replied to
- Trasmatta 2y ago[flagged]
- luketheobscure 2y agoThis is an unfortunate comparison. I actually chose Next.js because of its similarity to Rails - it's a batteries included, opinionated framework that favors convention over configuration (though it's not sold that way since these are not the currently trending buzzwords). There's absolutely nothing preventing you from using both tools. Rails works great as an API supporting a Next.js UI.
- caiohsramos 2y agoI'd say Next.js is the opposite of a "batteries included" framework. No abstractions for ORM, background jobs, sending emails, managing attachments, web socket communication - all very basic stuff when dealing with a production application.
- sankumsek 2y agoDo you have a suggestion for a more Rails-esque framework (maybe Django)?
- graypegg 2y agoIf we were keeping in the JS ecosystem, there’s Redwood [0] which has been around a while*. [0] https://redwoodjs.com/ https://redwoodjs.com/ * not comparable to Rails or Django’s definition of “a while” but it’s quite mature.
- Lio 2y agoBy all means use Django if you specifically want to work in python but otherwise if you really want a Rails-esque framework why not just use full stack Rails? You get much out of the box with Rails 8 now like deployment, caching, job queue, Hotwire, Turbo Frames and mobile.
- Onavo 2y agoAll these features are stateful or realtime. In a cloud/serverless world, they are all separate managed services ("compute/storage separation"). That's the trade-off of Next.js, greater productivity by standing on top of more hosted dependencies. Theoretically unlimited (within datacenter limits) scaling, bottlenecked only by your credit card.
- gatinsama 2y agoI am using Django and I do understand the sentiment. But everything old is new again. Today there is better tooling than ever for these tools. I am using Django with htmx + alpine.js and sending HTML instead of JSON. Breaking free from JSON REST APIs is a huge productivity boost.
- rubenvanwyk 2y agoAlso wanted to mention Django & Python because Python is evidently doing even better in the age of AI and building back-end heavy ML apps with it is much than in Javascript land.
- Mystery-Machine 2y agoI feel for you. I'm a Rails developer and I recently joined a Django project... Django feels so far behind Rails... But everyone has their own preference and opinion...
- Glyptodon 2y agoTBH I've started to like the GraphQL ruby layer in Rails projects as it creates a pretty clean boundary that works well with boilerplate and is more standardized than REST APIs. And I find that the "convention based" approach lends itself well to having AI write stuff for you.
- mbell 2y ago> Rails has started to show its age amid with the current wave of AI-powered applications. It struggles with LLM text streaming, parallel processing in Ruby Not at all my experience, actually it was incredibly easy to get this working smoothly with hotwire and no javascript at all (outside the hotwire lib). We have a Rails app with thousands of users streaming agentic chat interfaces, we've had no issues at all with this aspect of things.
- pmdr 2y agoAgree. What Rails actually lacks is thousands of ready-made boilerplates that everyone and their grandma can use to spin a chat interface. Any programmer worth his salt should be able to write his own.
- infamouscow 2y agoThe real problem is programmers that understand how a computer works end-to-end is becoming increasingly rare, and possibly accelerated by the adoption of LLMs. A lot of them prefer to write Ruby because it is simply the most beautiful language they know of. Technical details are merely a formality expressed in code that borders art. I was under the impression the industry was collectively moving in that direction, but then bootcamps ushered in a new era of midwit frontend developers hell bent on reinventing the wheel from scratch (poorly).
- Capricorn2481 2y agoThis makes it sound like new devs entering the work force are learning Ruby, which doesn't really make sense. I mean, look at the article title. Ruby's audience seem to be people that have been using it for 8+ years. The commenter you're replying to, in fact, is saying lack of fundamentals is the reason people AREN'T using Ruby
- x0x0 2y agoI've done all of the above in Hotwire. It really is a fantastic tool. I'd rate it as about 90%-ish of what react gives you at 5-10% of the development effort. React sites can definitely be nicer, but they are so much more work.
- cjk 2y agoIn an era of microservices-and-k8s-all-the-things, Rails monoliths are a breath of fresh air. For stuff that's really performance- or latency-sensitive, tacking on a satellite service in Go or Rust works great.
- btown 2y ago> Rails has started to show its age amid with the current wave of AI-powered applications. It struggles with LLM text streaming, parallel processing in Ruby, and lacks strong typing for AI coding tools. Despite these constraints, it remains effective. A plug for Django + gevent in this context! You have the Python type system, and while it's inferior to TypeScript's in many ways, it's far more ubiquitous than Ruby's Sorbet. For streaming and any kind of IO-bound parallelism, gevent's monkey-patches cause every blocking operation to become a event-loop yield... so you can stream many concurrent responses at a time, with a simple generator. CPU-bound parallelism doesn't have a great story here, but that's less relevant for web applications - and if you're simultaneously iterating on ML models and a web backend, they'd likely run on separate machines anyways, and you can write both in Python without context-switching as a developer.
- cess11 2y agoJust move to Elixir. Phoenix is Rails-like enough and the platform is excellent for parallelisation, clustering in specific hardware and so on.
- arrowsmith 2y agoAnd if you want to make the move, I know a great resource: http://PhoenixOnRails.com http://PhoenixOnRails.com </shamelessselfplug>
- freedomben 2y agoNormally "switch languages" isn't great advice, but in this case I think it's worth considering. I have heard people coming from Django and Rails background describe Elixir as "a love child between python and ruby". Personally I love it
- aragilar 2y agoBut does Elixir come with a whole scientific computing ecosystem?
- canadiantim 2y agoDoes Django still matter too?
- pphysch 2y agoI think anything that applies to RoR applies equally to Django. RoR got there first, but Python is a more relevant PL with broad ecosystem. I would always recommend learning Django over RoR, unless you specifically want to learn a niche language.
- JodieBenitez 2y agoYes.
- mati365 2y agoOne of the biggest issues is that newer tools often lack Rails integrations. I recently built one for CKEditor - happy to share details if anyone's interested. https://github.com/Mati365/ckeditor5-rails?tab=readme-ov-file https://github.com/Mati365/ckeditor5-rails?tab=readme-ov-fil...
- philip1209 2y agoThis Youtube series was doing some cool things integrating TipTap, but never finished: https://www.youtube.com/watch?v=XWfyffFWbDI https://www.youtube.com/watch?v=XWfyffFWbDI
- usernamed7 2y agoAfter all these years, rails is still my favorite framework to build with. Although I have become increasingly bored/frustrated with the front-end development in rails, which lacks a solid rails-way.
- caseyohara 2y ago> front-end development in rails, which lacks a solid rails-way. Hotwire/Turbo/Stimulus with import maps is the prescribed way. Tailwind is emerging as the preferred CSS lib.
- philip1209 2y agoHave you checked out Hotwired? https://hotwired.dev https://hotwired.dev This book has a good intro with more advanced patterns: https://railsandhotwirecodex.com/ https://railsandhotwirecodex.com/
- ram_rar 2y agoStarting today in what scenario would RoR would be a better option than Next.js for building web app? Assuming one has to start from 0 -> 1 .
- prh8 2y agoAlmost all scenarios
- moojacob 2y agoI’ve worked two summers on a Next.js app and Rails for a side project that I’ve spent 300 hours on. I would choose Rails if the interactivity could be made only with forms. Rails is simpler, opinionated, but a lot less powerful. But I was making a whiteboard which is super interactive I’d choose next.js. The con with Next.js is it’s just more complicated, some of my coworkers often shot themselves in the foot by not putting code inside useEffect
- philip1209 2y agoI outline two in the article: 1. One-person software project 2. Complex enterprise app with lots of tables, like a vendor management system.
- Glyptodon 2y agoI don't hate NextJS or anything, but I've never met a JS backend that I loved a whole lot compared to a conventional Rails one. They always turn out to be missing little details and trying to fill them in always like round hole square peg misalignment that just never quite ends.
- taormina 2y agoI mean, any scenario? I'm not trying to be snarky but server-side Javascript has always been a weird code smell from first premise. Now, when to use RoR vs a lighter-weight framework like Sinatra is a more interesting question, but it's about what you need out of the box.
- verisimilidude 2y ago
- aosaigh 2y agoIs Next.js really that popular? What else are people building back-end applications with? Are they just NOT building back-end applications and moving to services like Next.js with function-based hybrid backends?
- saltcod 2y agoYes and yes.
- xpe 2y agoTo go in the other direction, static site generators (SSGs) also have a place on the menu. Build locally. Host them on your favorite CDN. I personally really like Zola (Rust), inspired by Hugo (Go).
- hombre_fatal 2y agoFwiw, Next.js has a solution for that: https://nextjs.org/docs/pages/building-your-application/rendering/static-site-generation https://nextjs.org/docs/pages/building-your-application/rend...
- dceddia 2y ago> lacks strong typing for AI coding tools I've heard this criticism a few times – the fear that LLMs will be bad at Rails because there's no types – and I don't think it's accurate. At least in my experience (using the Windsurf IDE with Claude 3.5 Sonnet) LLMs do a very good job in a Rails codebase for stuff like "I want to create a new page for listing Widgets, and a Create page for those Widgets. And then add pagination.". I've been able to spin up whole new entities with a model/view/controller and database migration and tests, styled with tailwind. I think the reason strong types don't matter as much as we might assume is because Rails has very strong conventions. Routing lives in routes.rb, controllers go under app/controllers, most controllers or models will look very similar to other ones, etc. Type information is something that has to be presented to the LLM at runtime for it to be accurate, but convention-over-configuration is stuff that it will have picked up in training data across thousands of Rails apps that look very similar. On top of that, the core Rails stuff hasn't drastically changed over time, so there's lots of still-accurate StackOverflow questions to train on. (as opposed to something like Next.js which had a huge upheaval over app router vs pages router, and the confusion that would cause in training data). In my opinion the future of LLM-aided Rails development seems pretty bright.
- philip1209 2y agoI've noticed that, in agent workflows like Cursor, they're able to use built-in type checkers to correct errors. With Ruby, it doesn't have as much information, so it has to rely on testing or linters for feedback.
- dceddia 2y agoI haven't seen it run into a ton of issues like this when it can see all of the files, but I did hit issues where it would make guesses about how e.g. the Stripe gem's API worked and they'd be wrong. Overall with Rails though, testing has always been pretty important partly because of the lack of types. I have noticed Windsurf is pretty good at taking a controller or model and writing tests for it though!
- freedomben 2y agoYou make some good points, but I think as AI continues progressing down the road of "reasoning", any data points that allow it to reason more will be helpful, including (and maybe especially) types. AI could definitely reason about rails too, and perhaps it will quickly get really good at that (especially if it "understands" the rails source code) but it's hard to think of a situation in which less data is more useful than more data
- matijash 2y agoRuby on Rails has an amazing DX (e.g. engines). We are trying to recreate that for JS with Wasp (https://github.com/wasp-lang/wasp https://github.com/wasp-lang/wasp)
- krashidov 2y ago> Many of today's most polished products, like Linear and ChatGPT launched as Next.js applications, and treated mobile apps as secondary priorities. Linear was started on next.js? I thought they built a custom sync engine? https://linear.app/blog/scaling-the-linear-sync-engine https://linear.app/blog/scaling-the-linear-sync-engine I feel like this article is hyping up the importance of next.js.
- jeremy_k 2y agoThe data layer is an orthogonal choice to the frontend framework / library. You could use Next.js + any API to create an application. You could use Next.js + a sync engine to create an application. You could use React Router + Vite + any API to create an application. You could use React Router + Vite + a sync engine to create an application.
- krashidov 2y agoIsn't next.js a full stack framework though? Like can't you have it do server side rendering? https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations https://nextjs.org/docs/app/building-your-application/data-f...
- matijash 2y agoFull-stack is an overloaded term, but it used to mean "a completr solution for building a web app." From the comment above: Next.js is the opposite of a "batteries included" framework. No abstractions for ORM, background jobs, sending emails, managing attachments, web socket communication - all very basic stuff when dealing with a production application.
- hombre_fatal 2y agoNext.js solves the hard thing of server rendering + frontend hydration of JS components. So if that's the battery that you need, pretty much nothing else has it except for Next.js. These days, I tend to want a web framework to do the hard things for me rather than the tedious/boilerplate but simple things like email-sending.
- mostlysimilar 2y ago> Rails has started to show its age amid with the current wave of AI-powered applications. A feature, not a bug. Rails will continue to be good for building things long after the AI boom has died down.
- jaredcwhite 2y ago[flagged]
- codr7 2y agoI don't follow, what has that got to do with Rails?
- jaredcwhite 2y agoWhat has conduct of stewards of open source projects presumably adhering to their Code of Conduct statements got to do with said open source projects? Really?
- codr7 2y agoIsn't that more, like, your opinion?
- gvurrdon 2y agoDo you have any references for either fascist sympathies or alternative frameworks? I'd be interested in taking a look if so.
- seneca 2y agoThis kind of holier than thou prig behavior has mostly run its course in tech. I don't think most people find these arguments very compelling anymore. I, for one, am glad. I look forward to being able to work with people with differing opinions without having to be bludgeoned by them again.
- jaredcwhite 2y ago[flagged]
- seneca 2y agoI do! I also look forward to working with your trans friends if they're capable and can get along with people who have different opinions than they do. That's what adults do.
- openplatypus 2y agoRoR needs to distance itself from DHH to matter.
- werdnapk 2y agoWhy? That's like somebody saying Linux has to distance itself from Linus because they have some sort of grudge against them or they don't like the authoritarian position they have over the project.
- deleted 2y ago[deleted]
- dismalaf 2y agoLiterally everything interesting about RoR is because of DHH. Hotwire, Import Maps, Kamal, etc...
- rednafi 2y agoI feel the same, but for Django, even though I don’t write Python as much these days.
- UncleOxidant 2y ago> It became the foundation for numerous successful companies - Airbnb, Shopify, Github, Instacart, Gusto, Square, and others. Probably a trillion dollars worth of businesses run on Ruby on Rails today. Do those companies still run their businesses on RoR? My impression was that companies started out with it, but migrated to something more robust as their traffic grew.
- philip1209 2y agoI know for sure Shopify, Github, and Gusto are big Rails shops. Amazon was recently hiring for Rails to work on a podcast app they bought, too.
- tate_thurston 2y agoYep, I’m at Amazon, now working on said podcasting subsidiary, ART19. We’re a rails shop. There are a few acquisition companies and teams using Rails inside Amazon.
- Levitating 2y agoAirbnb, Shopify and GitHub I can say never migrated away from RoR. The others I don't know. Shopify is actually quite active in Ruby development and famously uses the new JIT compiler.
- troad 2y agoShopify made the new Ruby JIT compiler. [0] They're on the Rails Foundation, as is 1Password, among others. Stripe is still in on Ruby too; they're behind the Sorbet gradual type system, and Ruby is a first-class language for working with their API. I always hear the stereotype of companies starting on Rails and migrating later, and I think it sticks around because it makes some level of intuitive sense, but it doesn't actually appear to happen all that often. I guess successful companies don't see the need to rewrite a successful codebase when they can just put good engineers to work on optimising it instead. [0] https://shopify.engineering/ruby-yjit-is-production-ready https://shopify.engineering/ruby-yjit-is-production-ready
- lenerdenator 2y agoRoR is great. Ruby just needs to grow beyond it. I worked at a company that, when faced with the choice between rewriting its Django apps in Python 3, and rewriting them in RoR, decided to go with the latter. Now, I didn't like that since I was on an undermanned team that had literally just started a major update of a Django site, and it arguably wasn't the right way to go business-wise, but a lot of ideas that have come into Django over the years were ideas that existed in RoR. I'd like to see that sort of innovation happen in some of the other spaces that Python is in, if for no other reason than to prevent monoculture in those areas. There needs to be offerings for Ruby in other areas, like scientific computing, machine learning/AI, and data analysis that get the same uptake that Rails does.
- Levitating 2y ago> I'd like to see that sort of innovation happen in some of the other spaces that Python is in I think the language itself is definitely good enough to support the things Python does. But Ruby lacks in things like documentation and standards. RDoc isn't great, neither is bundler and there's no alternative to PEP. Ruby's ecosystem does have some interesting alternatives to Pythons ecosystem. Like Numo for numpy, and Jupyter also supports ruby. But for a matplotlib alternative you have to bind to gnuplot. I still use Ruby much more than Python anyway, my scripts often don't need external packages and Ruby as a language is such a delight to work with.
- henning 2y ago"Another trillion dollars worth of companies is being built on Next.js, and these web apps are faster and more polished than what could have been built on Ruby on Rails." This makes absolutely no sense. HTTP is HTTP. Maybe one framework makes something more convenient than the other, but more "polished"? What does that even mean and what exactly is Next.js enabling?
- mulnz 2y agoNo.
- fijiaarone 2y agoI only read the first sentence, but try running a Next.js app from 2 years ago. Good luck with that.
- Sincere6066 2y agoWhy is the ruby/rails community so weird. Half of us just quietly make stuff, but the other half seems to need to sporadically reassure everyone that it's not dead, actually. > Rails has started to show its age amid with the current wave of AI-powered applications. Not everything needs to have bloody AI.
- pmontra 2y agoA former customer of mine is creating AI apps with Rails. After all what one is those apps need is to call an API and output the results. Rails or any other system are more than capable of doing that.
- dismalaf 2y ago> Not everything needs to have bloody AI. And even if it did, the Ruby eco-system has AI stuff...
- philip1209 2y agoankane to the rescue, as normal
- dismalaf 2y agoTrue hah. Of course even if they didn't already most AI libs are actually C++ libs that Python interfaces with, and Ruby has probably the best FFI of any language.
- zdragnar 2y agoBased on what I've seen from job postings in the US, you can't start a company in healthcare right now unless you've got AI featuring prominently. Sadly, I'm not even talking cool stuff like imaging (though it's there too), but anything to do with clinical notes to insurance is all AI-ified. Truly, it is the new crypto-web3 hype train, except there'll be a few useful things to come out of it too.
- 2y ago
- czhu12 2y agoRails makes me really appreciate the dictatorial nature of it (dhh). Compared to the free for all landscape in javascript, Rails moves a lot slower, but decisively. I started using rails in 2014, and I think this is some of the most exciting days in rails. Hotwire, Turbo, Stimulus + no build JS pushed the framework into what feels like next generation web development. While all the same patterns exist in javascript, it seems like there are 5, 6, 7, 8 ways to do everything. Something as trivial as authentication has multiple implementations online, with multiple libraries, which is hugely frustrating.
- yayitswei 2y agoI wouldn't say Rails is the most simple and abstracted way to build a web application. More so than Next.js, yes, but there are both older and newer technologies that keep things simpler.
- jrochkind1 2y agoSuch as?
- yayitswei 2y agoSimple and abstract are subjective, but for me: PHP, jQuery, htmx, Electric Clojure.
- pmarreck 2y agoOf course it still matters. What else would both teach programmers that nice languages exist, and that OOP leads to a nondeterministic spaghetticode hellscape? ;) (I once spent an entire month debugging a transient login issue (session loss bug) on a million-line RoR app. Most of the bug ended up being something which merged a HashWithIndifferentAccess with a regular Hash, and key overwrite was nondeterministic. This type of bug is doubly impossible in something like Elixir- both since it is data-focused and not inheritance-focused, and because it is immutable.)
- Tainnor 2y agoHashWithIndifferentAccess is one of these IMHO stupid design decisions of Rails that sacrifice maintainability (and consistency with Ruby, the language) just for the sake of making things slightly easier to write.
- jes5199 2y agoit’s been quite a few years since I’ve worked in Rails, but I miss it sometimes. None of the other platforms ever completely replicated the functionality of a standard Rails environment circa 2009, so we reinvent the wheel every time. Basic stuff, too: ORM hooks, validations. It’s always a relief when I get to work with someone who has also worked on Rails before, because it means we have a shared vocabulary - there’s no equivalent thing among Python programmers, or JVM programmers, or anywhere else that I’m aware of
- ehnto 2y agoLaravel for PHP has a similar scope, community and exposure I would say. Having mostly done agency work my whole life I have seen a lot of frameworks, in a lot of languages. Rails and Laravel are the standouts for just QoL experience, and Getting Shit Done. They're engineered to get out of the way, and modular or extensible enough to enable deeper modifications easily.
- danhaywood 2y agoFor JVM, Apache Causeway provides similar capabilities (in fact, even more abstracted than RonR). Full disclosure: I'm a committee on that project. https://causeway.apache.org https://causeway.apache.org
- troad 2y agoIn an era where everything and their mother is getting rewritten in Rust, surely we should be able to get a proper, fully featured, batteries included web framework out of it too. But it seems like all Rust web frameworks are either extremely low level (so low level that I don't see their value add at all), or extremely unfinished. Last I checked, even things like "named routes" or TLS were exotic features that required manual (and incompatible!) workarounds. It's kind of fascinating to me that all the frameworks in 'slow', dynamic languages (Rails, Laravel) are feature packed and ready to roll, and everything in 'fast', static languages is so barren by comparison. The two seem almost exactly inversely proportional, in fact. A batteries-included web framework in Rust with comparable built-in functionality to Rails, and comparable care for ease-of-use, would be game changer.
- cratermoon 2y agoCOBOL still matters, too. Would I chose to start a new project with it today, in 2025? Hell naw.
- cjohnson318 2y agoI think Rails's big contribution is the idea of convention over configuration. Maybe this my own myopia, but Django feels like Rails, and NextJS also borrows from Rails. I've only managed one Rails project in production, and I had to come up to speed really fast to support it, but I loved it.
- thr0waway001 2y agoI haven't learned PHP nor Ruby but if I had to go with one it would be PHP. Seems like I'd get the most utility out of it and prospects in my area. In fact, I've never seen a RoR job posted in my area. Mostly PHP, Python and JS. But you know, you gotta give credit where credit is due. Laravel would not be a thing if it weren't for RoR. RoR was incredibly influential. Ok, so maybe I exaggerated, I've dabbled in these languages. Not really formally learned them. Or at least .... I can't say I've learned them if I haven't done any paid work with them.
- JodieBenitez 2y ago> In fact, I've never seen a RoR job posted in my area. Mostly PHP, Python and JS. The trick is to get jobs where people don't care about your tools but only the results. And then you can use whatever tools you want. Did that long ago with Django when there was literally no Python jobs in my area.
- DeathArrow 2y ago>It became the foundation for numerous successful companies And after the MVP phase passed and the company became successful, they usually rewrote the software in something else.
- forgingahead 2y agoThis never happens in real life....."rewriting software" is the introverted programmer's wet dream because it gives them relevance and the idea of respect. No serious business "rewrites software in something else" once they start to take off.
- cowsandmilk 2y agoI can point to plenty of companies that have rewritten products at scale. That said, specifically relevant to the article, I believe Shopify and GitHub continue to run Ruby on Rails.
- willsmith72 2y agoshopify is hugely invested in react and even full stack react through react router. still rails is great for the backend of course
- procaryote 2y agoYou don't do it for fun*, but because the rapid development duck-typed dynamic language you used to get to MVP quickly is not the language you need to keep it working under load and a growing feature set. It's a terrible and difficult transition that makes you question if the first language was really such a good choice after all, although it did get you where you are right now, which is more than you can say for a bunch of companies trying to do everything future proof from day 0 (* well, some people do, but they don't tend to survive)
- kilroy123 2y agoI so wish we had Rails for JavaScript. Many have tried but no equivalent exists.
- neonsunset 2y agoIt does not when ASP.NET Core exists. UX just as good or even better, 10x performance.
- globular-toast 2y agoI haven't actually used RoR, but I've used Django extensively and understand they are fairly similar. How do people build things that aren't just CRUD? Django calls itself a "web framework" but I think that's wrong, it's a CRUD app framework. Is RoR the same? The main problem I have is the mixing up of low-level logic like web and database etc with high-level logic (ie. business rules). The easy path leads to a ball of mud with duplicated business rules across views and forms etc. How are people dealing with this? Does RoR fit into a larger application architecture where it does just the CRUD part and some other systems take over to do the business part? It always seems to start well, you have your models, and views just doing CRUD stuff. But then someone says "I don't want to have to create an author before I create a book, let me enter new author details when I enter a book", and then the whole thing breaks. You need some logic somewhere to create authors but only in certain cases and of course the whole thing needs to be one transaction etc. Then you end up basically undoing all the simple views you did and essentially fighting the system to handle logic it was never designed to handle. In essence, these systems make the easy stuff easy and the hard stuff even harder.
- Tainnor 2y agoYou can certainly write complex applications in Rails that go beyond CRUD. But in my experience (which may be outdated, I haven't written Rails in years), it requires a lot of discipline and going beyond what Rails itself offers. Sometimes you may even have to fight some of Rails's conventions. There are some people who have tried to abstract such things into yet another framework on top of Rails, e.g. I recall Trailblazer[0], but I have no idea if anyone still uses it. [0]: https://trailblazer.to/2.1/ https://trailblazer.to/2.1/
- matt-p 2y ago"Next.js enabled websites to approach iPhone app quality." This is a fascinating perspective, because building PWAs with raw js and very early react I always felt these were as good as iPhone app quality.
- teleforce 2y agoIt's very interesting to note that you can build and maintain meta web framework like RoR with Ruby, Django and even D language. Go and Rust are amazing languages, but why can’t they produce a Rails-like framework? Is it just a matter of time before Go/Rust create a Rails-like framework, or is something fundamental preventing it? Perhaps this article by Patrick Li (author of Stanza language) has the answers [1]. [1] Stop Designing Languages. Write Libraries Instead: https://lbstanza.org/purpose_of_programming_languages.html https://lbstanza.org/purpose_of_programming_languages.html
- the__alchemist 2y agoI'm wondering this too. Lots of rust web promises, but so far all we have are Flask-likes, and statements-of-intent. Give it time? If you ask about this in rust communities online, they will tell you they don't want something like this, that Actix etc do everything they need. I'm baffled! Maybe they're making microservices, and not web-sites or web apps?
- searls 2y agoI seem to observe that people drawn to rust are into systems programming and people drawn to rust are into minimal services programming and any attempts at building a batteries-included CRUD framework are so against the grain of the community’s common interest that it never goes anywhere. Ruby, meanwhile, optimizes for programmer happiness and Rails optimizes for programmer productivity. What other language-framework ecosystem has the same values alignment?
- the__alchemist 2y agoMakes sense. My thought is, while Rust shines in a low-level setting,(Systems programming, embedded, performance-sensitive scientific computing etc) it has enough niceties that I want to use it elsewhere. Package management, enums, result and option types, clear error messages, expressive data structures etc. These are (to me) not enough to make up for the lack of a batteries-included web framework.
- 2y ago
- revskill 2y agoNot adopting SPA architecture is the MAIN mistake of DHH and RoR committee.
- Calamitous 2y agoI'd argue it's the main benefit.
- m11a 2y agoIt's still my favourite web framework. I just wish the Ruby language had better support for type annotations (like Python does). Then it'd be sorta perfect for me