There, I said it. Even though most of my professional experience is working in the Ruby on Rails environment, I rarely like to admit that. Not cons...
For further actions, you may consider blocking this person and/or reporting abuse
Replace "Rails" in this post with "Laravel", and everything still applies.
Unless your name isn't Ben
Haha
There's no greater honour for Rails than to inspire others.
I left PHP for Ruby in 2007 and never looked back once.
Was just about to write that, 100% nailed it.
if you had work on both of them, I think you wouldn't say the same
I will say my first reaction to seeing "I'm a rails developer" was to tell you I'm sorry for your loss.
This sort of mindset is something I'm trying to avoid, because at the end of the day the only thing that matters is this.
Does your software solve a problem?
I think we all have some sort of ego when it comes to the software WE use and tend to think of others as not as good, or subpar, it's almost human instinct. The reality is that we should choose whatever makes the most sense for the problem your trying to solve.
This article hits the nail on the head. Software choice is irrelevant if you can't solve a problem with it, and the needs for many startups is quick development and ability to change ships fast. You can worry about things like scalability, testing, etc.. once your business is proven and it is more important for your software to be stable than adding new features.
Hard to tell exactly what your point is, and it seems as though you're contradicting yourself?
Like you're saying your stack choice doesn't matter at first, and then you go on to describe how people choose their stack because it helps them develop quickly and ship changes fast?
Choosing the stack that helps them ship fast and they are comfortable with instead of the stack that will provide the most performance, security, or has the most popularity is the point.
Where is the contradiction? The stack choice not mattering is the exact same thing as saying choose what your good with so you can ship fast instead of worrying about details that don't matter early on like scalability.
"I will say my first reaction to seeing "I'm a rails developer" was to tell you I'm sorry for your loss.
This sort of mindset is something I'm trying to avoid, because at the end of the day the only thing that matters is this."
So you're implying that Ben picked Rails because it's trendy? Like you assume that it's "bad" to "pick a framework you like" and you're implying that you look down upon Ben for being so foolish. Then you go on to say "if the software solves your problem then bingo you're golden" as if this isn't exactly what Ben did by choosing Rails?
Like overall, whatever you're saying just sound self contradictory and confusing. It's as if you're saying "ah ha you're such a fool for picking a framework that is simply trendy, as if you didn't pick Rails because it does solve your software problems."
Dude you good? I explicitly said that I am trying to avoid behavior of looking down on others for the technology choices they make just because those choices are different than my preferences. You are trying to argue on a post that is 2 and half years old that you CLEARLY misunderstood.
Nope never came close to implying this.
I literally said the opposite by stating that this was behavior I am trying to avoid.
The whole point of my comment. Software choice is irrelevant as long as it solves your problem. Of course Ruby isn't able to solve every problem because of how high level it is, but that doesn't mean you shouldn't use it if it solves your problem.
It is honestly like your trying to pick a fight and are intentionally reading the words I'm saying with malice.
I see your point now, but you didn't state it very clearly at first.
Lol, I'm not trying to start a fight, I'm just trying to understand what you were saying, which was very confusing.
This is an amazing post with a lot of words that many Rails developers have tried to say but couldn't. Congrats!
Thanks!
This is because investors in startups (and founders) are only rewarded for productivity when it matters. In one startup, I used Django to build an MVP, because having a product at that point was critical. At another, they measure "productivity" completely differently, i.e., do something so that it looks like we're doing something. That's a poor long-term strategy, but I imagine is more prevalent in the Valley since that startup is closer to SV than the Django MVP one.
That said, I still pretty much use Django, because I care about productivity and moving on.
100%. I wrote an API in Go but the sister web app is going to be in Django 2. There's no way I'm going to write a web app in Go, I'd be many times slower and fighting static typing 😝
I can love both eheh
Slower? I don't really think so
Hi Francis,
I'm totally focusing on me here. Go is definitely faster than Django and Python.
What I meant is that I would be slower in building a prototype MVP of a web app which is essentially Django admin and a few dashboards I guess. That doesn't reflect badly on the language itself just on my limited experience with Go.
Also although I can justify the choice of building an API server for millions of clients in Go I don't feel comfortable enough nor I would find it advisable to build the front-end and administration tools with it.
Hope this clears up my sentence.
Putting it this way, sure clear things up
Great post Ben! Really liked it
😄
Well said Ben, Rails is still a solid piece of technology.
I had to make modifications in a web app I haven't touched in a while and was super happy that thanks to Arel and Rails writing complex queries is a breeze.
Having wrote an app in Go I definitely agree, what you get in power you lose in productivity. It's also hard to find developers and that's another thing you should keep in mind when starting a business venture.
It's like we all forgot that the old saying "premature optimization is the root of all evil" applies also to technological choices.
Rails can be scaled and if you arrive at the limits of it it's, hopefully, because you have a very successful product 😎
These big frameworks are perfectly fine in 2018.
I guess this microservice thing went to our heads a little. Most apps should be a monolith first.
I bookmarked the news on Rails 5.2 ✌🏾
Ruby Conferences will do that to you.
I was at RubyConf last year when I had just accepted a PHP job, and I was already awash with feelings of nostalgia and "why couldn't it have been a Rails job?"
All of my side projects are still in Rails (unless I specifically took them on to help me learn something else).
This is pure personal insecurity, you are a developer on dev.to an awesome media for developers, stop feeling like that and contemplate your accomplishments, what you do should validate you not make you stutter.
Dude, totally.
I started a new job at a small startup in Baltimore about a little over a month ago & their API/admin app is built with Ruby on Rails. Prior to this job the only rails stuff I've done was when I first was learning how to code. I remember loving to program with Rails because of the convention over configuration & how it made it easy to build things quick.
At my first Job their backend was built with express.js & I just remember how messy it was at first. It was hard to understand & follow mainly because their wasn't a well designed pattern in place. And then the team & I spent a lot of time refactoring it to clean it up. And then it was better after but I feel like if we used something like rails we wouldn't have spent 3 months refactoring the entire backend. We could have spent that time creating new features, squashing bugs quicker, etc.
That's the one thing with node.js, it's the wild west out there. All the tutorials, example projects, etc are done differently, so I feel like everyone kind of just create their own pattern which just adds time to get ramped up a lot longer.
At the startup I work now, we use codeship for our CI & heroku for our deployments & it just integrates so well with Rails that it just removes a whole bunch of unnecessary overhead when you're just trying to get your ideas built out & pushed out into the world.
I’m Sal and I am a proud Rails developer.
Somehow I didn't have much to do with Ruby in my dev career.
First I worked at a dev shop that did PHP for years.
Later I switched to JavaScript, when Node.js came out.
Just knew a few students at university who did internships with Rails and they came back pretty disenchanted, so I never considered it later.
Now I'm pretty happy that I went for JavaScript back in the days. Browsers, React-Native, Electron, Node.js, AWS Lambda, pretty much everything can be used with it.
Yeah, I wouldn't really advise anyone who doesn't already use Rails to feel like they need to get into it. Especially when you're well-versed in other fields that are way more hot.
But I think a lot of current Rails developers feel like they are supposed to move off for JS stacks or otherwise. It's just not the case. Rails is in a lovely mature state.
I'm using node by way of yarn and webpack but I never built a node app so I'm just using it as a tool.
I don't know exactly why but I've never felt the attraction.
Does it make sense? There are some technologies that, unless you end learning because it's required of you, you don't pursue.
Am I missing something? Surely, but there's also a limit on how many pieces of tech we need to learn to write web apps.
Depends on what you want to do.
If you build front-ends, you probably need Node.js as a tool.
If you build back-ends, you may use Node.js as the server, but you could also use Rails or something else.
Agreed. I dipped my toes in the GraphQL ecosystem and the "universe" keeps telling me I should use Node for that :-)
This post resonates with me on so many levels. I have been a Ruby on Rails developer for a very long time and I have always been keen to explore other technologies like NodeJS, React etc. I often start new projects which a different stack to follow the latest trends but almost everytime regret the decision of not going with ROR.
Ruby on Rails is a "productive stack" for me. It makes me feel like home.
I'm Bilal and I am a product Rails developer.
A couple of things came to mind while reading this, first is that I believe I read a very Valley place like Y Combinator had been telling startups to "just use Rails" so it's at least not universally dismissed in "big tech".
As for Hacker News, it's like Twitter but without the good parts. While the articles linked can sometimes be interesting, the comment sections are circlejerks that do good to no one. It is, in a sense, an anti-dev.to. Ben, they're not worth the anguish.
If you want to still see the articles linked, use a Twitter account like @newsycombinator (twitter.com/newsycombinator), which only share the story links and no direct links to HN pages and if you still end up on a page with comments (HN or otherwise), extensions like Shut Up (rickyromero.com/shutup/) can help avoid you glancing at them accidentally (you can whitelist sites like dev.to of course.)
Finally, if you want to participate in the madness from a safe, abridged distance, visit n-gate.com/hackernews/, with the caveat that the author of that website is rather vicious, but he does have a way with words. Don't visit if you want to eliminate casual negativity in your life, but the same should be said about HN itself.
With regards to Ruby, I found myself agreeing with a post by a Ruby programmer about the various mental approaches to programming and the tools and languages people use them for here: mkdev.me/en/posts/the-three-types-...
I am firmly in the "programmer-engineer" camp and am not too fond of Ruby and other more "literary" languages, but the post made me appreciate much more how different minds map to different language families.
If you have the time, try out some exercises in a language you don't know or think you wouldn't like. You may not end up liking it still but it will broaden your mental horizon and may teach you a concept or two you can use in your favourite language.
Thank you for this. I am so productive in rails and I keep trying to learn new backends outside of it. I always just end up back with a rails app but every time I hear about it, it's something negative.
Its so easy to use and deploy apps. I am even able to use it for making small, helpful databases for my coworkers and I in my very nontechnical (as in not webdev) job.
I'll just go ahead use whatever I like... As long as I'm finishing what I started, right?
Have fun at the conf!
How was the process of turning a Rails App into a PWA? I am currently working on a Rails App for a Customer and he seems concerned that the app would not be as friendly for Mobile devices. Any thoughts or advise? Thanks for your posts that are always very helpful for Junior Devs like me :)
When we first got invested into the APIs related to service workers it seemed overwhelming but then I realized it's actually just a few simple things to start and you grow from there. The whole PWA ecosystem is still sort of overwhelming because it's not even clear what a PWA is.
But start by just building the most basic serviceworker.js possible, caching a few basic assets and go from there to build a basic manifest.json file and you're pretty much there already. PWA is basically just a website that is fast and has serviceworkers installed.
I do believe that the project Ruby 3x3 will make Rails shine again.
I agree, the only issue is "time to market".
When I was first starting out with software development I tried learning Python, then I tried learning Ruby, I just couldn't wrap my head around them, they were too "esoteric" to me, and it finally clicked with PHP because of it's C/C++ based syntax. Those blocks of code divided by curly braces just made more sense to me.
What I'm trying to say is, it's all subjective, what's easy to some is hard to others. The same applies to Rails, I'm a PHP guy that works with Laravel, and I have just started to delve into the Ruby/RoR world, and to be honest I find it amazing, but it sure ain't easy to me, there are so many subtleties to Rails as soon as you start to build more complex things.
Good post. I think it's also important to remember that these elitist, fashionable mindsets are part of a hacker-news-proggit-bubble that only really represent a tiny fraction of the actual industry. They are arguably pretty important for the forward momentum of our industry, but need to be taken with a grain of salt.
It's easy to start thinking that certain ideas or technologies are past their use-by date when you are surrounded by a strong, unified voice that is always looking for the next big thing. The reality is that the vast majority of the software world is out there working on super legacy codebases that even make rails itself look shiny and new.
Crowd: Hi, Ben!
(Sounds like a 12-step program — very different than a 12 Factor app.)
Seriously, though...we were gung-ho on Rails for about five years, up until 4.0 was new and shiny, and then we spent the next three years writing fun, readable, effective Rails-free Ruby with a ton less overtime and stress.
Why? As Nick Sutterer put it in his book Trailblazer: A New Architecture for Rails:
Fortunately, there are other choices. We now prefer Ruby development with the Hanami framework, which will be Very Helpful if you, as I was, had been looking in at the shops kicking butt with Clean Architecture and related concepts, then looked back at Rails'
ActiveModel::Base
class and its hundreds of methods, thinking "how on earth am I going to understand that?" The answer: you're not. Deal, and adapt, or continue to throw yourself up against the serrated reinforced-concrete wall that you're beating yourself against now.Rails can be used to write great software; there are dozens of large-scale, successful apps that prove that point; several of which are produced by companies that I'd dearly love to work for. But, as Sutterer said in the quote above, it is possible. But do you really want to bet any money that you'd terribly mind losing on those odds?
I'm an ex-Django developer who hasn't ever done more ruby than it takes to edit my Sass configuration because it seems like hard work and too many (). I never thought it was n00bish.
I think Rails looks awesome except for maybe getting into monkey patch hell, and the fact that for years I thought the logo was a tentacle.
It's still on my wishlist for things to learn!
Why ex-Django :D ? Where did you migrate to? :D
I moved to agencies which are all PHP, unfortunately.
Try to introduce best practices and frameworks to make your life easier. I've heard good things about Laravel.
Thanks for sharing this, Ben. I'm with you! I just love that dev.to is a Rails app (or to paraphrase you, an app that contains a lot of Rails). It's important to set an example and I'm glad to see you doing that.
I also sometimes share your reticence to admit the Rails affiliation - although I'll stand on the hill + defend Ruby as a beautiful language to anybody who would say otherwise.
I recently had to make a stack decision between Rails + Phoenix for a big project, one that I'll be spending the next year or so building. I've already got production apps written in both frameworks and find them both really beautiful in their own ways, but the decision came down to my team being faster with Rails. We can do more in the same time. But I'm still using Elixir to write various helper apps + 'bots ;) And for the gnarly front-end stuff, I'm staying functional with Elm all the way.
❤️😭❤️Thank you Ben. I've had many conversations with fellow developers where I've been made to feel immature/out-of-the-loop/plain not smart for saying things like, "Well, I actually enjoy programming in Ruby." It's nice to hear "hey you can still use Rails it does a lot of things"
I'm on Rails since 1.0, still a fanboy to this day (and I have tried tons of other frameworks along the way, am excited about non-Rails stuff (ES5+, Vue right now) so it's not like I'm running full-blinders-on-mode).
If it comes to bootstrapping/quick idea validation/just f**in do it, still nothing beats Rails in 2018, not even close.
hi @ben when i was about to start my rails journey I also affected by the notion of rails phobia . I read many article online which saying only one thing "rails is dumb ass ,its so slow bla bla bla " .I agree its slow to some extent but all these article never compare it with other frameworks on #productivity. Rails(aka ruby ) care about the person behind the framework who is writing code . I love to write code and I feel so human while writing code in ruby and rails . It elimated the pain points which i faced in PHP and python .
for example :-
def meow(say)
#do something...
end
looks so beutiful and meaning full , then this in python
def meow(this,say)
#do something...
end
10.minutes.ago
=> Sat, 20 Aug 2016 15:03:30 UTC +00:00
and many more examples ..
I am mahendra , I am proud to be a rails dev
I am a Rails developer and proud :D. I love it.
I needed this. I am an iOS and C# backend developer and have played with ExpressJS in last couple of years. And I hate the inconsistencies of JS. So today I decided to learn Ruby and then finally Rails to use in my personal projects. Thanks for writing this.
From what I've seen, a lot of companies in Toronto are using Rails and the bootcamp I went to taught Rails. It's a straight-forward, approachable MVC and honestly an easy way to at least get an MVP shipped. Rails FTW.
tl;dr: watch clean architecture talk by Rob Martin
long version: many of you guys in comments say how you are fast and productive with rails, and how it has magic. and you dont get ranting about magical aspect of rails that you like so much. startups kicking off with rails (or any RAD framework) and failing to move to more explicit architecture are having hard times and blaming the tool they’ve picked. Solo (or should I say Siloed) projects some of you refer to might survive with business logic residing in your head and expressed with RoR web-specific building blocks for years. For a business running with IT dept and a team (or few) its not the case. You want to scale your business and your team. And this is where obscure, implicit descision on extnding your application user from framework’s User makes little sense to newcomers. Problem is, many modern frameworks are flawed, they pretend that they can help you, by offering building blocks too specific, encourage to use their implementation and move fast, without communicating, that each non-legit extension from framework base class is a technical debt. It building up, and your domain blended into “web” framework, results in an unmaintainable code. And here goes all ranting about RoR - its just one of the frameworks that is too helpful )
Thanks for sharing. I do have similar feelings though, I mostly don't mention much that I'm a rails dev.
But most of my gigs last couple of years are rails - making it fast. I've been dealing with rails problems for so long, that I totally forgot what joy it brings from a start.
I started out building my own project ...and after a lot of thinking, I decided to use rails for it
Man, rails 5.2 really feels solid.
Hey, I'm about to start a new project and I've been thinking about rails. Would you mind to share some of this problems?
Saying Rails is for n00bs is like saying C++ is for experienced programmers.
I don't agree that any one technology is better than the rest. I think that having knowledge about a lot of different technologies can help you with any kind of job. I also think that different languages and frameworks are tailored to solving specific problems.
Rails was your way of solving how to create this website. You also could have used Java or PHP or JavaScript or Dart, and to me it makes no difference. If you used any one of those other technologies, you could probably find a clone of Rails because of Rails history of being a useful web framework.
Amber for Crystal? Rails clone. Grails for Groovy? Rails clone. Django? I think it's a Rails clone? Angel for Dart? Pretty sure that's a Rails clone.
For being a framework for n00bs, people try to be quite a lot like Rails 😉
I really feel that the MVC-like frameworks only work well when you have a very simple domain or are strictly CRUD. I develop Enterprise software, and the limitations of those frameworks always present themselves quickly.
This might make you think that Rails is for n00bs, but I also get hamstrung by some of the features of ASP.NET MVC.
All tools are just tools.
Rails is fun. 🤠
is there any video of your railsconf talk
People call "magic" to things that they don't understand. When we know Rails in deep, we call this "conventions", and they make our life easier.
I've been using Rails for 15 years and quite proud to keep using it.
The first web-app I ever launched was called Markadee and for some reason, it was really popular in Japan. Go figure.
This is incredible, and I resonate so much with the entire thing. Thanks for being an AWESOME rails dev! I miss it so much. 💖
Couldn't agree more! Thanks Ben!
I have use Rails, Laravel & Elixir/Phoenix, and I could say nothing could compare to the productivity that Rails bring to us. And the integration with Javascript like React/Vue, etc make the best of both world.
We basically can create web app with any framework/language, but for my experience when working with Phoenix & Laravel, most of my time was spend on re-invent the wheel on the thing Rails gems had provided us for very long time.
For example, making nested form in Rails is so simple, we don't even have to think, but in Phoenix we have to manually write thing for it, lot of work & effort to mimic Rails nested forms. In Laravel, well I think they don't even know the idea of nested forms.
At the end of the day, only user can decide the success of our web app. I rather choose a framework with high productivity, quick change to user need rather than spend a lot of time (because of our choice of technology) work on a product that nobody want to use because it's take to long to adapt to user need.
I’m Hoang and I am a proud Rails developer.
Yeah the ecosystem in Rails is huge, you rarely don't find a library you need :-)
BTW if you want to elaborate on your experience of using Phoenix professionally I would love to read a post about that. I still say to myself that one day I'll learn Elixir but I never get to it :D
Creator of those parody O'Reilly book covers you might have seen around. 😄
Seriously? :O It's my honor, Ben
I genuinely had no idea Rails was thought of as anything other than just another framework.
vanityfair.com/news/2018/02/how-tw...
Twitter continually blaming all their problems on Rails was a big factor that still hasn't gone away.
Or, from Blaine Cook, who I'd see as a slightly more reliable tech source than Vanity Fair:
twitter.com/i/web/status/965805206...
(Blaine's a lovely chap, by the way, we should try to get him on here).
I'm Justin and I've been a (mostly) Rails dev for the better part of 10 years and I'm proud of it, too.
Good for you! Use what you know, use what you love. I'm a proud Perl (and Mojolicious) user. Sure I see people pointing and laughing at me, but you know what? I'll finish my webapp before them!
web app race :D
Learned it during university courses, it was no easy because of all the under the hood magic. Now i'm using it for work as a monitoring system for industrial machinery which handles thousands of machines. Not bad at all. Rails still has balls, developers just need to understand the real potential of such a framework.
Which web framework you would desire other than Rails for dev.to code base ?
Many people say the same thing for django 🥲
You should be ashamed.
Just playing. As long as the software gets the job done, you've done good work.
Moved jobs from RoR to Django. After 1+ year I still consistantly think "this would have been so much neater in RoR".
Hi Ben,
1 question. So if DevTo is developed on Rails...
How come Wappalyzer deteced the site on Erlang, Cowboy and React?
Is DevTo mixed rails and elixir/phoenix?
Thanks.
"dev.to as an eventually not Rails app."
What are you planning to move it to?
Learning Sinatra at Flatiron and Rails at rubytutorial.com and loving it. Planning a DEV future which hopefully will include Rails. Thanks for a good read.