Ruby Together
rubytogether.org
rubytogether.org
I wish I wasn't afraid that demand for it would vanish over time, which makes me reluctant to invest skills in its ecosystem. It seems so small and uncommon today compared to others.
* top companies using it? (shopify, github, stripe)
* number of stars on github for projects? https://github.com/rails/rails has 50k stars
* place in the Redmonk language rankings? https://redmonk.com/sogrady/2021/08/05/language-rankings-6-2... shows it at #9
* ability to get a good paying job? https://marketing.dice.com/pdf/2020/Dice_2020_Tech_Salary_Re... has the ruby salary at 114k, more than typescript/javascript
I am an active member of the ruby community so am definitely biased, but I'd love to know. Sorry if that's combative, but I always wonder how folks choose languages based on popularity. If there's anything folks can point at, or if it is more of a gut feel. (Unless it is javascript or C, which are always going to be around because of their huge deployed base.)
Edit: added place in the redmonk ratings. Changed to be less combative.
Frankly I'm not a fast learner, unfortunately. Although it's possible that I've convinced myself of that because I hate the Java ecosystem so much that my brain just doesn't want to absorb information about gradle and intellij configuration and java dependency management and so on.
I guess what I’m trying to say is if you end up focusing on working only with what you’re proficient at, you may be missing out on other opportunities that you may end up enjoying more long-term.
My email is in my profile.
I'm not into Ruby but I see people hesitate similarly about my preferred lang and mostly think they should just take that leap.
Depending on the size of the library it might make sense to rewrite it. Using C extensions is more popular than Python or other languages
Based on my ambient knowledge, I wouldn't want to write anything in the machine learning space in ruby. Or for that matter in any language other than python (or maybe scala/java, if you are using spark).
Or are you suggesting that python has more/superior libraries compared to ruby across the board?
That is not to say that you can't get a job and you might win the market by doing something increasingly rare in relatively high demand. Or you might not. Or you might do ruby for a multitude of other reasons but relative popularity better not be one.
- https://trends.google.com/trends/explore?date=all&q=%2Fm%2F0...
- https://trends.google.com/trends/explore?date=all&q=%2Fm%2F0...
But this is well known :)
Nor is Ruby a secure bet, nothing is really. Ruby is niche but it still has a very strong community, there is almost nothing web related Rails and the community haven't solved. I think people overrate the importance of community size. Does it matter if JS has 10 million devs or 20 million? Not really imo. Maybe even 10 is better than 20, less decision fatigue.
Besides, unless a language has a strong point compared to others, it's a hard sell, like PHP is good on web, JS is known by everyone and ecosystem is huge and python is good for ML and scientific stuff but what's the selling point of ruby besides rails?
With that said I do like the language itself (but not the typing system in 3) and would like to use if there's a place for it.
I'd say it is custom webapp development (with rails) and scripting on the command line (anything bash can do, ruby can do better).
PHP is good on the web with the huge installed base of wordpress, but when it comes to custom web app development, ruby (well, rails, really) holds its own with laravel, symfony and the other MVC frameworks.
That's true but you could say that about zsh too, and any number of other languages. Usually, the important reason that shell programming is used is the lack of need to install anything to run a script, which makes it easy and portable, and hence, reliable.
I can't write a script in Ruby and share it safe in the knowledge it will work on another system, especially if it relies on a gem or two. I'd much rather go with something that compiles and move a binary around if I'm dropping dash/bash/zsh. If I was forced to choose an interpreter to do that kind of work, perl would be much safer than Ruby, Python or Javascript.
completely agreed. on a linux system, most of my shell scripts are written in ruby at this point, simply because it is much better to work with than bash.
* The text editor I use day to day.
* A messaging middleware server
* A private cloud orchestrator (running ~1000 VMs across on-prem, a couple of colo's, managed servers and
* Many web application backends for various sites; e.g. e-commerce, CRM systems.
* Forecasting and simulation framework for a VC.
* Framework for statistical analysis of error rates for OCR engines, and models to attempt to reduce the error rates by applying various clustering methods (for my MSc; "dipped down" to C for kmeans a couple of other things via FFI; 95%+ of the lines of code was Ruby)
* Map-tile renderer (we rendered custom maps based on hundreds of layers of proprietary map data for customers) and the webapp to go with it (document managed linked to map data)
* FUSE filesystem doing on demand rendering and caching of the map tiles mentioned above for newly uploaded layers.
* Code to generate terraform files to deploy infrastructure.
And when I have time I play with writing game code using DragonRuby.
I can do all of this in a dozen other languages too. I've done in Ruby because Ruby is pleasant to use and feels most productive to me.
I think these 2 quotes by matz describe best ruby's philosophy.
> I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language
> Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run fast. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.
That's why I wish ruby to succeed but after 20+ years of the language being around and python is taking all the scripting needs outside of web, I'm not sure what area is left for ruby.
Feels soft, malleable, agreeable, and defines the minute-by-minute experience of using it.
Puts me in a state of flow and contributes to me looking forward to coding sessions.
In devops, at least, Puppet extensions and facts can be written in ruby.
I much prefer ruby as a scripting language, as well.
* Job board for Ruby https://jobs.gorails.com/
Name a tech unicorn from the last 15 years, they probably have some ruby/rails code that is foundational to the company. Many have adopted microservices and newer languages like Go, but the core Ruby codebases aren't going away any time soon.
Even outside of the rails ecosystem, ruby is a wonderful scripting language for writing small tools with. I prefer it to Python when I need something more powerful than bash/sh.
But for me the most important has always been to enjoy myself as much as possible. That's also how I can do my best every day. If that means having a 10% lower salary or half the number of job postings I'm fine with it.
If I really needed to find a non Ruby job I'm sure I still could, there's enough demand in general.
What is the the fundamental difference between Ruby and Lisp enthusiasts? The easy answer is OOP vs FP, but as soon as you dive into the details the distinction becomes more difficult. A thread [vs] between Alan Kay and Rich Hickey is perhaps informative, but not illustrative.
I know that I lean towards lisp, but I cannot articulate why lisp usage fits my mental model more readily than smalltalk/ruby does. Is the gulf between Lisp- and Smalltalk-inspired languages that meaningful?
Not to disagree with your conclusion just that it seems likely to bias in favor of ruby and rails.
[1] https://trends.google.com/trends/explore?date=today%205-y&q=...
The points others make here are true, there are a ton of ruby shops, and demand for someone with a couple years of rails experience is still quite high.
But the issue is not where ruby is now, but where we see it in the long term. My predicted timeline is something like:
1. Right now, plenty of companies are still being founded on rails. The demand for ruby devs well outstrips the supply. I don't think it's the clear favorite anymore, though, even among trendy SF startups. 2. 5 years from now, far fewer companies will be being founded on ruby. It'll be rare, and mostly just when the founder happens to be a seasoned rubyist. 3. 10 years from now, the supply of rails devs will continue to trend upward, but the demand will have been trending downward for a few years and the good jobs will start to be harder to come by (relative to other tool chains) 4. 15 years from now, Ruby will still be going strong at large companies, but few or no early-stage startups will be using it. It will be seen as stagnant and enterprisy. 5. 20-30 years from now, Ruby will be kind of archaic. The demand for seasoned devs will still be there, but it'll be specialized roles to manage a legacy codebases that drives a lot of revenue and isn't worth replacing in a modern language. There will be few jobs, but also few senior rubyists so the jobs will pay well.
So, honestly, you could pick up ruby today and make a whole career out of it. If you're 25 years old, it might be getting a little tough as you approach retirement, but otherwise you'd be fine.
That said, a lot of people don't really want to work in a language that occupies stage 5. I know I don't want to be limited to only working on ancient codebases. And so I, like a lot of people, am hesitant to go all-in on ruby right now. It seems like it's a little too far down the hype curve to base the next 25 or so years of my career on.
On the other hand, it's certainly possible I'm wrong here. One thesis is that JS fatigue will drive a new wave of developers to Rails. Rails has been betting on that with a bunch of features that, theoretically, allow you to skip a lot of what you'd otherwise need JS for.
Personally, I'm unconvinced. I think the future lies in JS-native tech. Specifically Typescript and an all-in-one Rails-like tool like RedwoodJS or something similar. But then, few of us can really guess how these trends will turn out over the course of long decades. ¯\_(ツ)_/¯
People have been saying Ruby on Rails will go no where since it launched. So far their 5 year predictions have always been wrong.
Personally, I think startups are exciting. I think Rails will still be a favourite with startups in 5 years time because it lets you build MVPs fast. It gives you sensible defaults for things that don’t matter that much but doesn’t enforce them.
The latest updates to to Ruby 3.1 and Rails 7 let you build even faster.
As you mention Ruby on Rails now has a compelling answer to writing frontend JavaScript in Hotwire and Stimulus.
It will soon have a compelling answer to mobile apps too.
Ruby is finally improving it’s static analysis, async and threading weaknesses.
I don’t mind if it’s boring, I’d still bet that Ruby on Rails will be even better for it’s niche in 5 years time.
It’s a safe bet when everything else in startup land is risky.
Ruby is starting at a knowledge/awareness deficit and long term it's going to be hard to keep a quality edge to make up for that.
On the other hand, the interest in it is simply declining, and consistently so (check out the Google trends post above).
> Ruby is finally improving it’s static analysis, async and threading weaknesses.
They're great things (not sure if with "static analysis" you refer to static typing), although threading will never be realistically adopted, giving the 25+ years long history of thread-unsafety (both in terms of library and culture).
I was thinking more like AST based tools, although static typing is very helpful.
I think we've discussed threading stuff before, I take your points but I'm still hopeful to see how things pan out in the next few years.
I'm in a similar boat, with the caveat that on linux, I use ruby as my main scripting language rather than bash, mostly because I find bash to to be a terrible language for anything remotely complex. Ruby has great integration for running shell commands, while also allowing you to write your scripts as an actual program, which is great.
For me, the language I have written almost nothing in, while it is secretly my favorite, is Elixir/Erlang.
Come on in the water's fine.
You can still find work in pretty much any language. Think COBOL is a dead language? :)
https://rubytogether.org/news/2021-10-21-ruby-together-and-r...
For rapid prototyping, I think RoR has still something to say.
I like Django but I see little use (correct me, if I am wrong) from big Startups.
I was able to setup a tiny custom status page with RoR picking a module found on the web, and starting customizing the app for my own goals.
AngularJS and React are the king on the frontend in this years, so the Django/RoR approach seems a bit "old"; nerveless on RoR guides you find a way to use RoR only as an "API" Layer, so integrating it with an Angular frontend, for instance.
And with K8s and microservices, scaling is not a big issue if you code a share-nothing stack.
But that both lack severely for complex business flows, -logic and integrations. Both are strong for CRUD cases, with accidental workflows attached to those operations. But that both lack tooling, and have the wrong architecture, to support complex, intermingled, businesslogic over time.
Spring, ASP.net, Rails, Symfony, Django all follow very much the same patterns and architecture.
I'd love if Rails' ecosystem becomes more vibrant like Laravels'
Comments like this show how the community, unconscious, ties them together too.
I think for Ruby to truly thrive again, it must become more than 'the language rails was once written in'.
I'm a Ruby developer. I don't particularly like Rails (but don't hate or avoid it either) and I'm more and more convinced that Rails is doing Ruby more harm than good in the long run.
There are really neat complete frameworks like hanami, padrino and grape (not sure how active they are, though) too.
My point was not that "its impossible" just that compared to other languages, the Rails framework is an Elephant In The Room.
Python is much larger than Pytorch, Pandas, Django or whatnot. Typescript was built for React mostly, but outgrew that rapidly. Javascript is no longer focused around on framework (like it was in jQuery times, if you consider jQuery a framework). Java-for-web often boils down to Spring, but Java is much, much more versatile than that.
With Ruby? There's chef, puppet, some sinatra, capistrano and then there is ... RAILS!
https://news.ycombinator.com/item?id=28954525
Was there something new here on the main page that needed posting?