|
I'm always surprised I like Rails. It's my guilty pleasure. I find languages like Elm, Racket, and Elixir to be much more sane and exciting than ruby. And I find the design of frameworks like Phoenix and Yesod to be very elegant when compared with Rails. And at least in theory, I like the idea of composing a bunch of libraries together into an app rather than using a big 800 pound gorilla framework like Rails. But in practice, I'm more productive will Rails than anything else. I've spent most of my time the past few years with other languages and frameworks, but I'm still more productive with Rails than anything else when making webapps. Of course, there is a lot of understandable excitement these days around SPA tech like React, which you should probably use on the frontend. Just set Rails to API mode. The productivity of Rails is all of the useful backend features that have been packed in. Out of the box, you have database integration, migrations, data validation tools, email sending, web sockets, background jobs, file uploads, and a dozen other features, all wrapped up in a simple architecture. Simple to integrate gems can add pretty much any feature you need, like authentication, graphql, or search. On top of that, the wealth of documentation and example code is really incredible. And since Rails projects all have the same core and architecture, most knowledge you gain on one Rails project is transferable to any other rails project. I wish I could say the same for my work in React projects, for example. React projects often use dozens of other libraries, and each project requires me to learn that project's unique set of libraries, their architectural decisions and so on. If you want to get hired right now? Learn React, redux, and friends. But if you want to MVP a project and need something for the backend, Rails all the way. |