6 ms·
It’s 2023 and I still think nothing beats Rails (even with all its flaws).
by alxmng 4y ago
It’s 2023 and I still think nothing beats Rails (even with all its flaws).
- herbst 4y agoThis! Use one of the many admin panels that directly build on your data structure. Administrate, RailsAdmin, ... As well as devise for Auth, Postgres as scalable cheap DB, and so on. I am not sure if any other framework can make a single person or small team this productive (when it comes to CRUD like operations)
- gremlinsinc 4y agoEh, I've tried rails many times just to ask myself what makes this better than laravel? I mean laravel new app --jet (jetstream/saas features) gets me: - authentication/authorization - Including: oauth, tokens, 2fa, etc. - queues w/ choice of redis, memcache, db, etc. - cache w/ choice of redis, memcache, db, etc. - SaaS dashboard w/ teams using something like phoenix's liveview called livewire OR vue + inertia - If you use filamentphp you have the perfect backend dashboard, but without that you still get the consumer saas one with teams, etc. The only package needed above is filament for the above, and that's to have a resource based admin that's just super easy - try a tutorial it'll take a day what it used to take a week to build. Everything else comes baked into the initial app. Rails you have to pick a queuing setup, an admin backend, and setup devise, etc. Having auth baked in just makes things super easy.
- lakomen 4y agoPHP obviously, I had to work with it for 11 years professionally. Right now it's the worst scripting language on the planet. No one in their right mind would start a new project using PHP.
- Okawari 4y agoI started making stuff in rails around 2013, got a job at a PHP firm around 2018 where I've worked with a lot of Laravel. At this point i know Laravel better than rails, I would say. Most of the things you mentioned is either present in rails by default, such as queues and cache. Yes, you have to install external dependencies such as device for authentication etc, but that takes mere seconds to set up. Like, two or three CLI commands and you're done. Rails has "liveview" too in the form of Stimulus. Never heard of filament tho, looks kinda neat. I know there are some similar gems for rails, but I have little experience with these kinds of products. I still pick rails for my private development projects. Laravel and Rails both have their upsides, but none of them are really a game changer enough that I'dd consider dropping rails in favor of Laravel. Some of the things I like with rails in particular are things like * Interactive repl on exception screens in the browser. I can interrogate the state of my request when the error occurred. * "Intellisense" in the rails console(and also interactive repl) is kinda nice. * I find it easier to configure and setup rails in docker than php. * I like that in rails validations are defined on the model and not on the request. * I like the built in form_for, form builder in rails, i like that its also very extendable. Which makes it easy to make reusable components with little to no code. * My IntelliJ is often much better at understanding and parsing my rails projects than my rails projects. * Lots of small rails things such as route functions instead of the route helper. * It feels to me like rails has less boilerplate and is better at generating scaffolds, but that might be because of the laravel code I have been working on.
- herbst 4y agoKinda what lakomen said actually. I started coding with PHP, tried to and semi learned many languages but it took ruby to fully understand why coding is pure fun. Took me several more years to realize that Rails is likely the last major framework I am going to learn and here I am, 10 years later, still rocking it. I dont know anything about modern laravel or fancy js frameworks. But that's part of the magic, Rails still does all that for me, as it already did when laravel wasn't more than a toy framework yet and likely still does in 10 years from now. PHP also is still the worst language I ever had to work with, that's opinionated tho.
- NayamAmarshe 4y agoWhat are the flaws?
- alxmng 4y agoI’d say the biggest drawback is performance. Ruby is slow and resource hungry, Rails leans heavily on reflection. Starting a large Rails app can take 10+ seconds (even with bootsnap). Large test suites can become time consuming to run. Heavy use of partials can noticeably impact rendering time. However, this is not an issue until you have a large app. It’s a small downside compared to the upside. It’s also less of an issue today as servers have become cheaper and more powerful. As DHH said, “…sure, I'd like free CPU cycles too. I just happen to care much more about free developer cycles and am willing to trade the former for the latter."
- NayamAmarshe 4y agoThanks for the reply. I guess it's not as big of an issue if it can save development time. > Rails leans heavily on reflection. Starting a large Rails app can take 10+ seconds This is nothing compared to the spring boot project at my job, takes like a whole minute to start haha
- Okawari 4y agoIf I may ask, how big is that project?
- NayamAmarshe 4y agoWell, it's a business software so a lot of moving parts (but that's also because it's Java and there's a lot of code for not a lot of functionality). I'm not a spring boot pro or anything but I think it's also slow because there are faults in the project. Stuff breaks often, hot reload is a mess and doesn't even work and there's no unit testing.
- udfalkso 4y agoIt’s def a solid option esp. if you’re very familiar with it already. But, I think Elixir/Phoenix beats it handily at this point for someone starting from scratch with either one or that is willing to spend a week or two learning something new.
- NhanH 4y agoElixir and Phoenix is wonderful, but it is not comparable to rails when it comes to pure productivity — Rails is much better. And if you include hotwire into the mix, it is not anywhere a close comparison. Liveview is not comparable due to tech difference (websocket and low lantency requirement), as well as an additional complexity on top of phoenix (you add liveview and your productivity will be affected). Don’t get me wrong, I would still pick Phoenix a lot of the time over rails, but that is despite the lower productivity. Sometimes even Phoenix + hotwire is not a bad idea.
- udfalkso 4y agoSpeak for yourself? I personally find I’m much more productive with elixir/phoenix and the end result is much more performant. (I say this having built multiple large projects with rails in the past)