15 ms·
Google searches for React and node.js exceed searches for Ruby on Rails by 100% and 50%, respectively [1]. Some people have used this to argue that React/node a
by MakerSam 5y ago
Google searches for React and node.js exceed searches for Ruby on Rails by 100% and 50%, respectively [1]. Some people have used this to argue that React/node are more popular than Rails. But I wonder if perhaps this discrepancy appears in Google Trends because it takes more google searches to accomplish the same thing in React/node versus Rails. I feel the Rails ethos of "convention over configuration" allows me to accomplish the same objective with less googling.
[1] https://trends.google.com/trends/explore?cat=31&date=today%205-y&q=%2Fm%2F0bbxf89,%2Fm%2F0505cl,%2Fm%2F012l1vxv https://trends.google.com/trends/explore?cat=31&date=today%2...
- jmondi 5y agoAs someone who came from other MVC frameworks outside of Ruby, learning Rails has been a cluster-f of searching through documentation circa 2013. The whole rails “convention over configuration makes it easier” is a load of bologna, because the only way to know the “convention” is to either have gone to a rails boot camp, reading the docs top to bottom, or maybe watching rails casts. The best way to work on rails is to either already know rails yourself, or be working with a rails guru, which admittedly there are a bunch of those. At least with a configuration over convention you can just look at the code and figure out what is happening. With rails, there are certain magical things you just Need To Know and the only way to know those things are to already know them before running into it.
- andrei_says_ 5y agoWhat are some specific “magical things” that are not mentioned in the rails guides? There’s always room for improvement and the documentation is an important part of the framework.
- MakerSam 5y agoI don't think the Rails Guides mention Devise, the authentication gem, which is pretty important if you want create a public facing website with users. The devise documentation is pretty good though. Again, a little bit of a learning curve, but once you learn it you can add user authentication to your site pretty quickly. https://github.com/heartcombo/devise#getting-started https://github.com/heartcombo/devise#getting-started
- craigmcnamara 5y agoIt's not in the guide because it's not core Rails. But there is a great site called RubyToolbox to help you find things that aren't core Rails. https://www.ruby-toolbox.com/categories/rails_authentication https://www.ruby-toolbox.com/categories/rails_authentication
- jemmyw 5y agoYou don't need devise, so I think it's good it's not included. It used to be that devise was good to use as it had the best practice way to set up the password fields etc. But that has been moved to rails core. It's still worth reading the devise documentation, but I'm so familiar with how it sets things up I can just set it up manually faster than messing around with devise itself.
- nomilk 5y agoAFAIK there's nothing in the rails guides to help with authorisation. I googled and couldn't decide between pundit and cancancan. I went with the latter because of some tutorial videos I found. But it wasn't easy: 1. I couldn't find documentation for methods so common as `can?` [1], and 2. the 'magic' of how rails automatically sets instance variables differently and sometimes not at all before each action was also very confusing. Like many other things, it was confusing until you understood what it was doing, but figuring out exactly what it was doing and why took hours of experimenting with the behaviours of each action, and being the recipient of quite a lot of condescension on stack overflow for even asking. [1] https://stackoverflow.com/q/63674415 https://stackoverflow.com/q/63674415
- matt_mb 5y ago"Reading docs top to bottom" is the answer to this frustration. It's strange that people don't think this is something they should do.
- Drew_ 5y agoAgreed but as evident in this post's discussion, developers only have the desire to do so once for <insert-favorite-web-framework> and then the need to do so again for any other framework is understood as the other being clearly terrible and immature.
- mirekrusin 5y agoWhen people ask me how to improve their programming this is my first advice - speed read docs/stdlib top to bottom and keep writing a lot of little things. It’s amazing how many people choose painful path of learning through osmosis.
- weatherlite 5y agoYou're right but tbh some docs are kinda horrible. Tried to go through the Spring MVC docs, didn't get far. But maybe I was just being impatient idk.
- jmondi 5y agoIf you want to make an app from scratch, you must first understand the universe. This is a ludicrous approach for most. Sure, if you learn from reading and love to read technical manuals, go for it. But to imply this is the best way for most to learn is completely ridiculous.
- wtallis 5y ago"Best way to learn" seems too vague to have a productive conversation about. If your goal is to become proficient with a framework, then reading the docs top to bottom is probably a great thing to do, but if you merely want to hack together a one-off project over a weekend then it's probably not worth investing the time to exhaustively learn about all the features and paradigms of that framework.
- emodendroket 5y agoIf that's not bad enough you're probably working on a legacy app with a whole bunch of mix-ins, proxies, Active Record callbacks, and other nonsense that makes it nigh on impossible to understand what any code does.
- weatherlite 5y agoSaying that mixins and callbacks are always incomprehensible is silly. They're just a way to pack up code and they can work beautifully. If you don't wanna use them you're gonna have to write the logic in some alternative way, so a bunch of service objects I guess? Does that automatically make code comprehensible - the fact it's using many small classes? I'm sure people can and are writing shitty services as well.
- wonnage 5y agoThere’s nothing more frustrating than debugging some ruby module with 10 different mixins defining functions with generic ungreppable names like “user”. Then it turns out the mixins have mixins. The common refrain is well, don’t write shitty code then, but all code starts off looking good to the person who wrote it. I guarantee if you have 400 engineers working on a Rails app it will end up in this state because it (ironically) lacks sane guardrails
- weatherlite 5y agoRubymine's autocomplete got to a state where I barely ever have to grep anything. Look what you're describing can happen, it's just not that often or is the norm. It's usually some crappy legacy project no one wants to upgrade or touch that reaches such a state, there's absolutely no reason why what you described can't be refactored. The fact it isn't being refactored tells you more about the company/teams working on it than about the framework.
- emodendroket 5y agoRubymine's autocomplete is the best available but it's pathetic compared to what IntelliJ platform can offer in most languages.
- MakerSam 5y agoI agree that Rails has a kind of a steep learning curve. Also agree that I didn't find the Rails Casts helpful - I found them out of date, so I didn't spend any time watching them. For me, learning how to learn a new thing at times seems like the hardest part for me. For Rails, the best I've found is the Michael Hartl tutorial [1]. He walks you through setting up a blog with Rails - first the quick way and then the hard way, so you walk away with a nice understanding. He keeps the tutorial up to date and he's been available for questions when I've emailed him. It costs a few bucks ($39) but well worth it IMHO. I spent a few weeks going through that book, did a few apps on my own, and then was able to create new apps fairly quickly. The official Rails Guides are a great resource too and kept up to date too [2]. Configuring your local rails development environment is pretty easy with the thoughtbot laptop script [3], otherwise it can be kind of a pain to do it from scratch. [1] https://www.learnenough.com/ruby-on-rails-6th-edition-tutorial https://www.learnenough.com/ruby-on-rails-6th-edition-tutori... [2] https://guides.rubyonrails.org/ https://guides.rubyonrails.org/ [3] https://thoughtbot.com/blog/laptop-setup-for-an-awesome-development-environment https://thoughtbot.com/blog/laptop-setup-for-an-awesome-deve...
- boredtofears 5y agoI couldn't have had a more opposite experience. My last job was as a solo dev on a legacy Rails 3.2 project. I didn't even know Ruby when I took the job, but have a lot of experience with other MVC frameworks. Learning Rails has mostly been a breeze with a lot of "I wish framework <X> did it this way, this makes a lot more sense" type of moments. Rails docs are among the best I've ever used for a framework personally. They blow most things in the JS ecosystem out of the water.
- jack_riminton 5y agoAgree. Perhaps the original poster was struggling to get to grips with the MVC setup because beyond that Rails is pretty easy to understand Sure there are bits of 'magic' but you could build an entire AirBnB clone before you'd need to dive into them
- atmosx 5y agoApparently people prefer blog posts to docs. This is not a problem of course, until you need to either debug (hence understand what you're doing at depth) or build something non-trivial.
- space_fountain 5y agoThe problem with Rails is not a lack of blog posts or docs, it's that there's often no way to find what doc you need to read without already understanding the framework. Reading the entire docs and then trying to remember and understand it is a style under which some people learn well and I think it is important for mastery, but the ability to trace back and understand a small piece of a framework is valuable too especially when you're first starting out. Certainly when I try to understand something with node or js libraries I don't jump to blog posts, but I am usually able to find what I need to google to to get the docs I want. That wasn't the case with rails when I was first starting
- machiaweliczny 5y agoNo the real problem with Rails is autoimport and bad tooling that you can't jump to source easily. I would love rails if jump to definition worked well but it's deal breaker.
- cooervo 5y agothe same BS happens with django
- bsder 5y agoAs a beginner, I didn't find this to be true. Django worked fine and could do what I wanted. I suspect that if I were coming from Javascript where "I know what I want to do" if only I could "make Django do it", I would feel the impedance mismatch. This is a very standard problem--"You can write FORTRAN in any language." Leaving behind the idioms you are used to and adopting the idioms of your new environment takes time and energy.
- ecshafer 5y agoI have the exact opposite experience. I have done a lot of Java - Spring, Node + Angular / React development. And having just started a job with Ruby on Rails, I have never found a new language + framework + ecosystem to be so easy to jump in on and learn and understand. The convention over configuration works really really well.
- wonnage 5y agoI’m not sure if this is still a thing but I remember the Rails community being obsessed with aliasing methods and other ways of dynamically defining code at runtime. Coupled with the fact that Ruby is already hard to statically analyze and ‘grep’ is your only hope… good luck following the alias_method_chain rabbit hole…
- rmbyrro 5y agoShouldn't we read the docs for everything we use? I'm appalled everything I realize most developers don't actually read docs... It's unbelievable. Do we expect things to work the way each of us imagine? Or what do one expect when starts using something without reading the documentation?
- rileytg 5y agomost rails devs i know started with this guide: https://www.railstutorial.org/ https://www.railstutorial.org/ combine that tutorial with skimming the top guides gets someone from 0 to very productive in days or weeks depending on prior experience.
- conductr 5y agoWhen I learned rails the community had a fundraiser to fund the documentation writing (this was v0.7 or so IIRC). Being able to read the docs sounds like a dream come true.
- hw 5y agoThere is a reason why most coding bootcamps are based on Rails and React instead of Go, Java, PHP, .Net etc - they are easy to learn, work and reason with. > the only way to know the “convention” is to either have gone to a rails boot camp, reading the docs top to bottom, or maybe watching rails casts. I mean, when learning a new language or framework, reading the docs or watching videos and tutorials are part of the course? What other MVC frameworks have you worked with where someone new could just go in and start building an app without actually learning it first?
- anm89 5y agothis does not match my experience. the official rails docs are extremely comprehensive and are totally up to date. this is also true for a majority of the popular gems in the community
- mrinterweb 5y agoSo maybe your problem is there is too much documentation that spans too far back and getting current relevant examples and docs is the hard part. The rails guides are kept current, but any popular framework that has been around for a while is going to have a similar problem. Rail's guides are pretty good compared to many others I've seen. Also there are books, courses, video series, and plenty of other resources that are up-to-date. There is no shortage of high quality up-to-date learning content available. It just may take some work to weed out some of the older content.
- akudha 5y agoThere was a lady in one of my previous projects whose job was to maintain the integrity of sensitive financial data (she was doing a lot by hand, as they wanted a human to check every number). In the 2 years or so I worked there, there was not a single mistake from her. I didn't hear much appreciation for her from others, but my CTO used to call her the most important person in the company. Some tools, some people just work, just do their job quietly and efficiently. They do not get any appreciation, precisely because they are too efficient and go unnoticed. JS is not one of them for sure.
- emodendroket 5y agoI would suspect searches are overwhelmingly weighted to beginners to a particular environment.
- oblio 5y agoHeh. That would have been the case 30 years ago, but nobody can hold info an entire stdlib in their head anymore. Advanced users just move their searches from Google to the reference docs page.
- stereocodes 5y agoAre you looking for actual stats from developer surveys? you should check stack overflows yearly pulse: https://insights.stackoverflow.com/survey/2021#most-popular-technologies-language-prof https://insights.stackoverflow.com/survey/2021#most-popular-....
- brightball 5y agoI have honestly wondered the same thing regarding Elixir.
- dontcare007 5y agoMaybe RoR is easier. React also seems to change daily, hence a need to keep searching for today's solution. To yesterday's problem...
- rmbyrro 5y agoNever thought from this angle and it does make sense. Probably doesn't explain all the difference, but a considerable part of it is not unreasonable to assume.
- jacquesm 5y agoOr maybe the documentation for the one is better than the other.
- dysoco 5y agoI doubt this, at least for my country a simple search in LinkedIn of "NodeJS" and "React" have tenfold the results of searching for "Rails" or even "Django". It might be a bubble but basically every new startup and small/midsize company are using NodeJS and even big companies are building new services with it.
- zelphirkalt 5y agoAt the least, it is a self-reinforcing tragedy. ("Look, all the big players use framework xyz as well, it cannot be that bad then!") JavaScript being thrown at problems, for which it is not so well suited with all its warts. Web developers being thrown at problems, with which they do not have experience, because "Now we can use JS in the backend as well!". In many cases it sets organizations up for getting stuck at local maxima or for straight failure.