Since the screencasts are over 10 years old now, I'm wondering if Ruby on Rails is still going strong. What resources would you recommend to get into Ruby/Rails specifically? Same question for TDD? Thanks!
If you want to learn Ruby on Rails in 2022 please check https://gorails.com
But the question is probably around one's personal choices: is this the framework to invest my energy and time? Are there far better frameworks? Where is the market headed?
In the early days of Rails, and indeed any popular framework, the sense we get of an explosive growth. As a result of this there is an imbalance of jobs and developers and jobs seem easy, plentiful and well compensated.
This is really a question of the ratio of dev:positions. Most answers to this tend to focus on the positions component (take a look at stack, or upwork or indeed or whatever!). Perhaps someone on HN will suggest a metric or public gauge for the competition as well.
Edit: added slightly more context
I ask as I dont understand why people say drop Rails and learn Go. And I am looking to learn a new language along with Ruby and Elixir.
Why is Go compared with Rails and not with Ruby?
If Go does not include a default support for web frameworks then what web framework would you suggest for doing a web SaaS like management of posting on social media?
I dont want to create this but i use it as an example as it has image uploads, date/time, jobs, … things I can do easily in Rails and have already battle tested solutions available.
According to Hired's State of Software engineers 2022, Rails is the 2nd most in demand skill.
- There's lots of RoR jobs.
- They keep improving it.
- What RoR taught me made me a better architect in every other stack.
It’s a great time to start using Ruby for web projects.
I think Rails is one of the most productive and capable frameworks for building and evolving CRUD applications, which is the reason it still remains my recommendation for new startups.
I prefer the “explicit is better than implicit” norm in the Python community over the “powerful yet mystifying magic” I find in Rails. (This is personal preference.)
I also appreciate Python source code being easier to manipulate with tools than Ruby, since Ruby did not have a formal grammar the last time I checked. Any tools that did exist appeared to usually include the yacc/bison file from MRI (the main Ruby implementation) as the best approximation of a language definition.
https://octoverse.github.com/#top-languages-over-the-years
It also has a funky syntax, while not a big deal, doesn't do it any favors in a C --> Javascript world. Django, golang, etc. are free. I don't recommend starting new projects in ruby, but as always YMMV.
So I'd recommend to look for job ads on local platforms and check if companies are looking for rails devs.
https://news.ycombinator.com/item?id=5483752
Interesting to compare answers to today.
Note that, just like any other tool it has pros and cons, one should analyze the system requirements and use whatever makes sense. I would however, dare say that it is a great fit for majority of businesses.
Honestly, majority of frameworks out there today will get you 90% of the way: Rails, Laravel, Phoenix and Django just to name a few.
As I get older, I tend to prefer boring tech myself..
I enjoyed Ruby as a language quite a bit. Having experienced some of Rails' scaling issues, I doubt I'd personally pick it for my next startup. I know time to market is vastly more important than scale, but it's also not hard to pick a different tech that DOES scale easier.
So, yes, there will be plenty of Rails projects to work on for the foreseeable future. The only concern I'd have is if you're being asked to work on a very old code base. That can get really hairy, really quickly. But that's the case with any language/stack.
Judging by the responses here, Rails is no longer fashionable. I find it to be quite boring and predictable, which is how I like my frameworks to be
Just stay the hell away from React and it's great
But Rails is a different story. For jumpstarting a greenfield API or CRUD app, there is nothing quite as good as Rails. Django and Symfony and other frameworks have tried to imitate Rails, but Rails is still way out in front, with better tools, and the marriage of Rails tools with Ruby's advanced meta-programming is something difficult to replicate elsewhere.
If your company needs a custom CRM or CMS, Rails remains the best starting place.
I know some people of the community moved to Rust or Node. But the Rails ecosystem is still the most complete out there.
The framework, as the language, is still evolving, getting quicker and integrating will all sorts of other tools (GraphQL, Elastic, etc).
Ruby is much faster in 2.7/3.x as it was in 1.9/2.0 era.
Rails is starting to try dropping node and all the JS package craziness. But still supports all them. So you can pretty much do HTML-over-the-wire, plain jQuery or go full-blown React/GraphQL/API using webpack or similar.
I tried to get used to Go several times but it always failed. Go lacks an interactive console. Its syntax is ugly and very limited and not expressive, which means I had to reinvent the wheel all over the time. Why the heck Go has not even have reduce function? It is true, that using Go ends with a TONS of verbose code. The same functionality in another language can be built in a fraction of the time and will have a much simpler and smaller code size
But having worked with Rails code base, it becomes a guess work in a text editor to know what you're getting in a method. The duck typing makes impossible to be sure for text editors unless you resort to some sort of type hinting and that's not Rails's fault, that's ruby.
In 2022, given among all the choices, I'd probably go to either deno + Typescript or golang.
3 months ago https://news.ycombinator.com/item?id=30022185
These days it's mostly Javascript, Go, some Kotlin.
Regardless I work in Elixir because they can pry BEAM out of my cold dead hands. And Liveview is inspiring all other frameworks to build similar tooling that is unfortunately second-best because Elixir and Erlang's BEAM are so well suited to it's workflow.
London: Rails 237, Django 383, Laravel 149
UK (excl. London): Rails 230, Django 406, Laravel 1001
So, yes, there are less Rails jobs overall but considering there are less than twice as many jobs as with Django, which is powered one of the most popular languages, Rails is clearly still very active in the marketplace.
Although it's a hard choice because the books and documentation and training resources are great in Rails, so easier to level up, but I don't think that's where things are going anymore.
It's tricky more generally to see if a technology is still relevant because there is so much hype of new stuff in web development.
Usually after the plateau of productivity, you don't see too many people talking about a given technology, your only signal of success would be something like Who's Hiring and Cmd + F "rails".
Even just a "Ruby on Rails Tutorial" search on YouTube will get you going, too, if that's more your thing.
I'm building Avo to help developers ship apps faster than ever. Avo is to Rails what Rails is to web development.
For more performance intensive tasks .NET Core is used.
There are much better options, but some people just like the crap they know
DHH's blog video feels pretty dated now. Does anyone have any pointers to a decent video tutorial that starts from the basics?
In this context, I'm still very happy to be developing in Ruby and Rails and it still feels very fresh to me most of the time.
It may come down to, like Vim, it's not exactly in the new stuff department, it's 'niche', even, but the super users and hardcore community apparently will never let it down. It is very well taken care of software and I think there's a lot of people in a virtuous relationship with it i.e.: probably a lot of people running it to get things done, doing good business, making money and satisfied enough that it sort of doesn't matter much what 'kids' looking for the hot new tech to fill CVs think about it. I think RoR is super solid in this regard.
Following on the Vim analogy, I think both Ruby and Rails have the 'power tool' quality/deph in that it keeps rewarding you with more power the more you get the handle of it, there's few things like TDD on RoR. When you're senior and you're not afraid to tweak things as you want it anymore, things get really interesting. For example:
- Microservices x monoliths: I've built a Service Object layer, all Services have an API of .new(:param, :param)(sugarized to initialize_with :param, :param) and .call, .call!, .queue. These service objects can be strung together, allowing for composition. call without '!' gives you an object you can say .success?, .result and react however you want. .call! will raise exceptions. .queue runs it async in Sidekiq. We have over 40 of them, in some cases we refactored out a piece of functionality(e.g.: google sheets integration) and just deleted a whole folder of them, just like that.
All of these 'actions' can be run from any context: MQTT message, API call, console, Sidekiq, Sidekiq-scheduled, tests. In ruby *anything* can be mocked anytime, have you thought about the power of this? I can make an expectation that an --instance of a class somewhere will receive a call--, it could be mine, it could be a class in a lib, it could be something in the framework.
- Sidekiq just works and is awesome. Free fault-tolerance, performant, scalable.
- Building custom piece of architecture, ruby scripting is very powerful: we had bots simulating the motorcycles running and talking with the backend way before we actually had a board and software able to do that. MQTT messages are relayed to Rails app through a custom long running service, it's a ruby script. Later on we've twisted it to test Firmware Updates Over the Air feature, basically, scripting the script itself. So we have a CI/CD job that allow us to stress test/spec test firmware. Right now I'm doing a middleware so I'll script Rack/Rails next, TDD is going smoothly.
- Maybe tweaking it further to make it more of an a Event Driven application.
I think ultimately Ruby developers end up being good developers because of the high power+low cognitive overhead style at the heart of the language.
Now for the cons:
- It is indeed becoming niche. Junior developers probably mostly not learning it. Are they really as productive as they could be on Rails though? I think NodeJs stuff are interesting, I wonder though how productive they actually are. Is the stuff they build really bug-free? Fully featured? Well tested? From my experience they are fast but will overlook obvious bugs in their code as if it was ok. I think the Ruby community had tons of good teachers who focused on elegant working code, RailsCasts, DestroyAllSoftware, etc. Also a lot of influential devs and ppl who learned from them & similar sources, a lot of them still participating or who done amazing contributions, like Aaron Patterson, Jose Valim, DHH.. I don't know how exactly we'll deal with this at the company, but our software is so flexible I think we wouldn't have much trouble breaking it up & integrating, at the same time too, though, our application code is so easy to work on I don't think it matters much if a new dev is not a rubyist.
In conclusion, I guess it depends where you want to go with your life, I myself have always thought of handling actual heavy duty shit with software, being in a core product team, not being a 'job market b*tch' etc. Even if I'm not writing Ruby one day because we have decided to switch to something other or that I want to work on a different project that is running X, I don't really care.
Rails was originally released in 2004. Since then, it has been used to build a wide range of different websites and applications. Some of the most well-known sites built using Rails are Github and Airbnb, which is why many people think of Rails when they think of web development. While it has lost some popularity in recent years, as other frameworks and languages have become more mainstream, Rails is still very much alive and kicking.
In fact, in 2018, Rails was the 7th most commonly used framework among all developers according to Stack Overflow's annual developer survey. This survey included over 100,000 responses from software developers representing over 150 countries. It showed that about 30 percent of those surveyed had used Rails "in their careers" or "currently use."
The main question you should ask yourself when considering whether or not to use Rails is whether or not you can use another tool that would be better suited for your project. If you're looking to build a website with a lot of dynamic functionality that needs to be delivered at lightning speed, then Rails could definitely be your best option.