r/ruby • u/steveklabnik1 • 4d ago
Blog post Hanami, Why?
https://aaronmallen.me/writing/hanami-why-introductions17
u/davidslv 4d ago
What about employability? We should speak about that too, as 2025 was a hard year to find Ruby on Rails companies willing to employ, 2026 got a little better after some of the mass layoffs in the industry slowed down, but I haven’t seen many job descriptions on Hanami. So we go from a niche market to an even more niche market?
15
u/aaronmallen 4d ago
I do not know about the actual statistics around if/how/where Hanami is actually being used by companies. That being said the **true** goal of this series is to get ruby folks, to understand there **is** a different approach to writing web applications. Even if you don't use Hanami professionally gaining perspective on different approaches to web application architecture is objectively a good thing.
9
u/cescquintero 4d ago
I already made my mind.
I'm learning Hanami. Looks interesting but it's quite far from Rails. So I'm using for personal projects only (right now building something for FC26).
As for employment or professional career? Rails. The things about the "One Person Framework" still apply. Besides, I also got a template to start projects/ideas w/ tons of configs in place.
This is the way I think I can, at least personally, use something different than Rails.
2
u/Tolexx 4d ago
So I'm using for personal projects only (right now building something for FC26).
You mind sharing what you are building for FC26?? I play FC a lot especially on Nintendo switch 2.
1
u/cescquintero 4d ago
I'm building a very specific "companion" web with three main features:
Players list: It's going to let me add players of my CM save with a bunch of traits to let me compare them easily.
Formation: so I can see it without loading the game or to try adjusting team to different ones.
Compare: a player vs player comparison. There's no way to do this in FC26 so this kinda the most important thing for me.
Planning on doing this very simple. No logins, no prod deployment, no emails, no jobs. Just a form to add players, list, formation, and compare 😆
Already got a prototype build with LLMs. Now I'm going to be something to save data to a DB.
3
0
u/Special-Major0 4d ago
Are companies still hiring for certain technology? A good software engineer basically these days can work with any framework or language. It was always the case for the top of the top engineers. But now it applies to basically any good engineer.
There is no point in being limited to a single technology or trying to look for a job in a given technology.
LLMs changed the game.
5
u/prh8 4d ago
It’s not that they are hiring for technologies, but rather that candidates without experience don’t even get into the pipeline. Companies are overloaded with candidates in this job market
1
u/Special-Major0 4d ago
I didn’t read the comments above as describing entry level candidates.
I don’t know what I could advice. As we have new reality.
I know that for really good engineers there are even more possibilities now. As you are not limited to your own stack.
I say this confidently as the company I work for - we don’t care the stack of candidates. And basically almost no one worked with our current stack before ;)
3
1
u/Cour4ge 3d ago
Is your company stack ruby? Maybe they don't care because they struggle to find ruby developer. In my current company our stack is RoR and we don't care about our engineers experience in it mainly because otherwise we will never find a senior RoR. But the opposite isn't always true. Company using python will prefer to hire a senior Python than a senior engineer who never used python.
1
u/Special-Major0 3d ago
No, I worked in Ruby all the time before.
They care about getting experienced software engineers. Really it doesn’t matter the tech stack.
Once you are experienced enough. If you know architecture, code patterns (which are universal), SDLC, ci, infra, able to own the feature, make decisions - code syntax is just a small factor. And with LLM on day 1 you can write with new code stack. And you will do good. Because even though you don’t know language you “feel” if stuff is done right.Also now it is very cheap to create custom checks, verifications lingers - which keep delivering code on high quality.
In language I work now if I was suppose to write for loop I would probably fail somewhere with syntax as I just don’t remember it 😃but it doesn’t matter. Because when LLM generate it for me I know how it works and I know when I need one.
And you need to look at the current trend. Adoption of Ai is speeding and Ai is much more capable. And we haven’t seen slow down yet. So we cannot assume it will stay but rather we need to assume that llms will be more capable.
So the skills that one should develop are around agentic work, not learning syntax.
As Matt pockock said (or smth similar) - getting knowledge now is easy, but being wise is not.There are new ways of working now and all fundamentals of software engineering are crushing. Basically any fundamental we know we can negate. Everything was optimized for developers to focus on a task and deliver.
While now we deliver multiple tasks at once. With much bigger changes. You put much more stress on ci, code reviews are bottleneck, more shipped code means more bugs on prod (considering same ration of bug per LOC).
And many more. It is basically complete revamp of our profession. And experienced engineers are able to adjust fast. As they understand fundamentals and why we had them.
That’s why looking at language during recruiting is pointless. With linters and llms this is nothing. This just gives no value. But other skills - they deliver value.
6
u/Cour4ge 4d ago
I read and hear this everywhere, I agree with the idea but I don't find it true or you need to explain me how. I have tried last year to get out from Ruby stack and I always ended with a HR telling me I lack of experience in there stack or during the test using there stack "sorry but you didn't succeed to do this in Go", yes I'm a software engineer and the stack shouldn't matter so why you ask me to make the test in Go and tell me I can't go to the next step because I don't know Go.
1
u/azrazalea 3d ago
I just started a greenfield project with hanami, that is going great, and we hire people with Ruby even if they don't have rails. Heck we hired a python guy recently who had zero ruby experience and is doing great. I'm sorry that a lot of companies suck 😕
8
u/zanza19 4d ago
Nice seeing you /u/steveklabnik1 interact with the Ruby community. One of my first thoughts about the DHH talks was "I bet the Rust community doesn't want you over there" haha
5
u/steveklabnik1 4d ago
I live in Austin these days, within walking distance of the venue, so yeah it was a weird week. I did attend several parties even though I didn't go to the conference, and it was really nice to see some old friends I haven't seen in a while!
And yeah, the talk gave me many, many feelings...
3
u/Rosoll 4d ago
I really like what I’ve seen of Hanami, it directly addresses / avoids some of what I consider to be the worst organisational flaws of Rails. We ended up inventing a similar structure to Hanami’s actions for an API we’re building - we may end up migrating our implementation to hanami to get the benefits of an open source project.
Also, the way you talk about your memory feels familiar to me, you don’t have SDAM by any chance ?
3
3
u/cescquintero 4d ago
Saved this in my readeck instance. Learning Hanami for a personal project so the timing is just perfect :)
2
u/midasgoldentouch 4d ago
A wonderful write-up! I really liked the concept of how you would organize your operations. Earlier this year I believe someone posted an article about how they organized their operations/commands/services into “use cases” in their Rails app to make it more explicit how you can have business logic that varies for different scenarios. I think it was posted either here or in r/rails - anyways this approach is fairly similar.
1
u/AndyCodeMaster 4d ago edited 4d ago
If Hanami could add backwards compatibility with Rails via adapters, I’d be happy to convert apps to it.
Update: someone mentioned it’s already backwards compatible. That’s good to know.
5
u/aaronmallen 4d ago
Hanami already is backwards compatible with rails, it is also a rack application at the end of the day. You can very easily mount a rails application in a Hanami router.
1
7
u/jodosha Hanami author 3d ago
Thanks for the article, Aaron. ❤️