Hello everybody,
I’ve been working with ruby and ruby on rails for more than 10 years.
I love Ruby and Ruby on Rails, but the community is slowly disappearing. It’s not even close to what it used to be.
The idea of this post is to discuss it together and try to understand what the problem is or how we can help the community.
To see how we are and if something can still be done or is it a lost cause.
The problems I see:
The non-existent documentation and books for all those who do not speak in English. (I speak in several languages (Spanish / English / Russian and Romanian) and if a programmer does not speak English there is no way for him to learn ruby or rails, there are neither books nor documentation. I was trying to find something for the non-English speaking team members and the best I could find are books from 2007
Outside the United States, Macs are much more expensive so anyone who is just starting out or wants to learn to program uses Windows. What makes us not have new programmers, since doing something with ruby on rails in windows is torture and if you try to learn …
Outdated gems. Years ago ruby was great because you had a gem for everything, nowadays this happens in python but not in ruby.
A lot of bad publicity from “experts” comparing ruby on rails with php or node (not frameworks apples to oranges comparisons)
5)Existing quality courses. Personally I would love to be able to buy a course for my team so that they can learn new things, improve etc … but outside of the basics it is non-existent.
That said, I would like to do my best to attract new programmers to ruby and rails, there is a lot of potential but it is not used.
As I said before I speak in English, Spanish, Russian, and Romanian (Russian and Spanish natively)
I am willing to help and participate in any project that helps to improve the image of ruby and attract new programmers.
I live in Barcelona so I could even offer space in the Barcelona office for meetings if necessary.
But basically I would be willing to dedicate my free time to help the community as much as possible, it does not matter if it is programming something to improve the community, creating articles, tutorials, translating documents anything.
**I guess I’m not the only one, why not get together and do something cool together?
And make this community amazing again **
I would recommend Windows users use WSL, then you’re in a real Linux/Unix environment. It’s also increasingly feasible to do all your development work in the cloud.
What outdated gems?
There are tons of great courses on Ruby on Rails…Not translated from English unfortunately (from what I know). Join the StimulusReflex Discord group—there’s a bunch of folks there who have courses out on that as well as Hotwire. Check out GoRails…heck just buying Jumpstart Pro is a major learning opportunity.
I think the community is actually on an upswing from a few years ago and the future of Ruby is brighter than ever. I guess it’s all just down to the lens you’re looking through.
P.S. Several good Ruby/Rails podcasts as well…Remote Ruby, The Ruby on Rails Podcast, Rails with Jason
I would recommend Windows users use WSL, then you’re in a real Linux/Unix environment. It’s also increasingly feasible to do all your development work in the cloud.
It is not by far an option, a lot of problems and makes rails much slower because of read / write problems and more things.
GoRails… jumpstart …
But do you think a decent programmer should know how to install jumpstart (paid) or do basic things by following basic tutorials?
I mean more useful things, documentation accessible in more languages, (seriously, nothing can be done to translate it?)
Are there really no volunteers to help?
At the same time integrate it with more information about good practices, advanced solutions etc …?
Currently everything is very, very limited only to those who are speaking in English and MacOS/linux
And it is one of the few programming languages that I can think of that are completely unusable in windows (which makes it difficult to learn for those who are starting and cannot afford a mac)
I used to work with Apple computers in the 80’s and hated what Apple was doing then. I never got the whole Mac thing and all of my Rails work is on Linux Machines. Ubuntu has excellent documentation (in English) on how to get things up and running. Linux has the advantage of being free (como cerveza ) and you can install it on most older laptops & desktops.
You can catch these courses on discounts regularly where they cost $10 - $13 US.
On a related note, I have a young Venezuelan friend (21 anos) who wants to become a computer programmer. Would you be willing to talk to him over chat and give him some advice?
On a related note, I have a young Venezuelan friend (21 anos) who wants to become a computer programmer. Would you be willing to talk to him over chat and give him some advice?
Hi, yes sure.
Just tell him to send me a pm.
The truth is that the last few years I have found that the rails community has become very lazy.
Even Phoenix (elixir) who is young has a much more active community than rails.
In part I think that the good old programmers who have made rails so good and ruby are not so active anymore, and the new ones are used to easy things and are not very willing to create and share things.
I was hoping to find more interested people here, I thought maybe we could create a team of devs who who loves ruby/rails and among all create a list of things to improve and do it in our free time.
This list has become quite quiet of late, but the Slack instance is really busy. You can invite yourself here: https://www.rubyonrails.link and the admins will let you in in a day or two (at least, that was my experience). The only reason they do that step is to keep out the spam bots. There are a lot of younger people there who are fighting the good fight, building new things and discussing them with people of all experience levels. There are even old people like me, who were mature programmers when Rails was invented, still trying to reach back and help the next person up the ladder.
Sadly, Rails is simply not keeping up with the times.
Javascript has gotten really good and instead of embracing it, we reject it in fear.
Stimulus Reflex and Rails Link as mentioned above have active communities. It would be good to survey the newcomers and find the problems they see. Not just with Rails but with software development as a whole.
Ruby was much more capable back a few years ago, we even had ruby mobile apps with Ruby Motion.
As I see it, current state of software development requires a decent level of English. Not just for the docs: the communities, Stack Overflow and most of the resources… It is something that is like it is. For me is more of a concern the need for upgrades in official docs and adapted them to the new times (check Laravel or Phoenix to check what I mean). Also I feel that having black holes like no mention/guide for deployment, that is something fundamental contributes to more barriers for newcomers. (And not so newcomers)
PD: I’m also from Spain. Let’s keep in touch, it is nice to have also nearby people sharing the same passion.
I think we shouldn’t compare Ruby to Python. Python is being taught in academia and also dominates machine learning, there is just no chance Ruby can get that big. There’s quite a lot of luck involved in these things - Python isn’t objectively better in any way but it’s inventor (Guido) got a job at Google and well the rest is history - it became the scripting language of choice at Google and from there the path to academia and data science was much easier. If he didn’t get the job in Google who knows what would have happened with Python.
I’m all on board helping Ruby and I recommend it to anyone who listens, but at the same time lets keep our expectations realistic; Ruby had a crazy spike when Rails just came out since it was truly a revolutionary thing, it was as big as Node is now and every new startup would use it. But 15 years later all major languages have a Rails clone. It is very very difficult to become and remain one of the top 5 (or even 10) most used programming languages especially when you compete against Megacorps like Google / Microsoft that push their own languages. Ruby is very close to the top still (TIOBE Index - TIOBE) 2 positions below from php. In fact if I remove SQL and Assembly from that list Ruby is #9. Redmonk shows the same result The RedMonk Programming Language Rankings: January 2021 – tecosystems
I honestly think we should be thankful for what we have and not take anything for granted.
There are really two differing perspectives on Ruby at this point among those using it.
Are all the Ruby gems out there, the Rails framework, the language syntax, CLI tools, deployment, etc. encased in concrete? In other words, is all we have by now pretty much all we’ll ever have?
Or are we just at the beginning of a long arc of technological history and the Ruby (or something very much like it…Crystal?) ecosystem of 20 years from now will be wildly more sophisticated than what we have now, and quite possibly far more popular?
I’m firmly in the latter camp. I don’t think we have anything to worry about, certainly nothing to apologize for, and I wonder at which point the continued handringing over the future of Ruby will itself cause more harm than whatever might be actually happening.
P.S. This is all open source, folks. If you don’t see the tools you want, build them! If you can’t find the communities you want, start them! If you can’t find the educational materials you want, write them! You truly have all the power at your disposal.
I find the type of comments which say - in effect - ‘If you are on windows you are on your own’ , or which imply that ‘real programmers’ only use linux, most annoying.
I have/do work on mac/linux/windows at various times and they all have difficulties when it comes to setting up and installing development environments. Whatever your platform you will have to learn how to get past them.
When I started learning and programming Ruby/Rails I was working in a windows server environment, and most people had windows laptops. RoR worked then, and it can work now too. (I hope. I am setting up a windows laptop as an alternative working machine now.)
On the other hand, it is useful to understand the basic command line usage of other systems, so that you can be useful on whichever system you land on.
From a far off perspective, I’ve had great interactions with some Ruby/Rails people. My current problems are that Rails has taken several steps in directions I thoroughly disagree with, and so the community is working in a different direction to the one I am following. But that is my problem…
Sorry I can’t comment on resources for non-English speakers
Well, all the gems with C extensions depends on standard Linux libraries. OSX is a close Unix cousin and has brew, so it’s not an issue.
But on Windows, it’s a pain in the butt to fix. Personally, I’ve spent enough time trying, and I’m convinced it’s a waste of time.
Sorry but not sorry, ruby and rails are just not fun to work on Windows and personally, I don’t care. Someone who cares enough might fix this. When will that happen? No one knows.
I believe rails is disappearing or “declining” simply because there is so few junior jobs out there compared to some other stuff. Which is weird because is Ruby on Rails is as good as it ever been.
I don’t know guys, personally having been experimenting with other web frameworks lately such as phoenix and django, I kinda like how much autocompletion I can get from vscode with these compared to whenever I’m writing rails code.
Obviously that would require a bit more setup from the user side and more wiring together and being more explicit about your code. This is from the rails doctrine
While I like rails making thinks “nicer” for the programmer I also think it would better at times to make it more clear for the machines. 2021 not everybody is using macVim, emacs or Textmate
This from agile web development discussing this very topic, where is my IDE?
The point I’m trying make across is a developer that starts today, is most likely going start with html, css & javascript. That person is most likely going to install vscode as his first text editor as such being exposed to amazing type hitting thanks to the language server capabilities and maybe a while later whenever the person starting to pick up rails. He probably going to dislike how little information he can get from his IDE. I myself sometimes forgot the basic command in routes.rb file that I’m forced to hit google for an answer rather than the IDE being able to tell me
Couldn’t agree more! There was definitely a lull on the backend of the “Rails is slow” bandwagon, but I think more and more people are getting burned out from the whole “microservices” scene, especially at a startup/small project level. And that’s where Rails shines: it’s fantastically easy to get up and going with something REALLY powerful. If you do need to scale later, it still fits really neatly at the core, even if you add a bunch of microservices and client apps around it.
Personally, I think Rails is hitting the"Slope of Enlightenment in this graph of tech adoption:
But I’m all for more community efforts. From someone who’s been out of development for a while and coming back and wanting to get back into Ruby and Rails, the thing I feel that is missing is a stronger “education as marketing” effort. There’s a lot of courses and tutorials (especially video ones) for Javascript and all its frameworks, but less and less on Rails, especially the new hot stuff (i.e. Turbo, Hotwire, Stimulus et al).
I just wish vscode was a bit better, even with solargraph installed and configured the experience is still awful. I think the main issue is rails itself. Static analysis might not be possible here. The trend over the years has be more towards making the code smarter more explicit just look at something elixir phoenix. I just wish rails would take some of the ideas or at very least work towards this path. Maybe making the framework less magical and the IDE more aware of the code you’re typing
Well, all the gems with C extensions depends on standard Linux libraries
Does anyone know how did PHP solve this btw? They also use C extensions for stuff like mysql/postgres no ? and they are considered super friendly for beginners from what I remember.
The thing about using automated code tracing in Ruby or Rails is that all that metaprogramming magic comes at a price. If the method you’re searching for was built on the fly when the object was initialized, then it doesn’t exist in the code tree to be found and shown to the developer. That’s why using the API documentation in Dash fills in so many holes.
The other point about IDEs vs Editors is that Ruby has a strong culture of code being brief and specific. It’s very easy to point to examples of complex applications being built up out of truly tiny classes, some small enough to fit entirely in a single terminal window in vi, or in the case of ActiveRecord subclasses, being entirely empty. Where IDEs really sit up and bark is in enormous code libraries and headers, where thousands of methods are described in a single file. It the whole language and framework are optimized for “smaller is better”, it’s no wonder that the editing tools of choice tend to be smaller as well.
A recent discussion on our end has been to create something for Ruby as well, including a Windows deployment of the environment.
A colleague of mine who heads up our team started adopting cross language work flows that are very similar to Ruby’s way of thinking but in different languages like PHP and others. He’s got 30 years of Dev experience because he started really early. We’re a team of polyglots that program Desktop, Mainframe, Web, Mobile and anything in between. We’ve open sourced what we do and our PHP tool set has been stable for some time with similar things in the works for other languages and works on any platform. We want to create the same experience for Ruby.
The Windows dev issue is a thing even for PHP devs. I often bang my head when facing issues that are non issues outside of Windows. OpenSSL, Xdebug anyone? So we’re creating standard deployments and binaries to work around this.
My personal opinion is Ubuntu is available and offers many of the advantages of Mac in terms of package management and ease of getting started. Ubuntu = happy devs.
But from experience it’s painful to get a Windows dev there without them checking out to the “configure my PC branch” as they get more involved with learning Linux than actually coding.
Virtualizing is equally bad as it abstracts away what a dev should know and uses even more memory than is really necessary. Often making issues even more complex when something breaks. We’ve considered many options including Docker, Ubuntu Multipass for Windows with Hyper-V and Vagrant and are now simply building out complete binaries that makes installing a Dev Environment much easier on Windows.
Ruby has and still has one of the most natural language styles out there and we love it! People often try to create new trends by making light of things that have come before. In my opinion although NodeJS is trendy it’s fairly frustrating to have to commit npm packages to your repo before they disappear. So all Opensource is having these kinds of challenges. It does also feel like it takes an awful amount of moving bits to just get a Node + Express project moving. But a Ruby project by comparison just moves. There’s no right and wrong language.
I’ve noticed that Ruby has a great following in some parts of the world. Out where we are in South Africa very few people know about Ruby. In fact, if I don’t specify Ruby on a new project, I’d probably be hard-pressed to find any such projects. We’re set to start up in Panama as well in the next 90days. So we may be able to help spread Ruby out there as we’re recruiting a team in Panama.
I think we may have a lot of synergies in what we’re trying to achieve in the Ruby space. So it may be very beneficial for us to chat. I’ll drop you a PM with my detail and can introduce you to the head of our team.