rbs VS rubocop

Compare rbs vs rubocop and see what are their differences.

rubocop

A Ruby static code analyzer and formatter, based on the community Ruby style guide. (by rubocop)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
rbs rubocop
20 39
1,875 12,491
1.2% 0.3%
9.7 9.8
about 22 hours ago about 17 hours ago
Ruby Ruby
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

rbs

Posts with mentions or reviews of rbs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-21.
  • A decent VS Code and Ruby on Rails setup
    8 projects | news.ycombinator.com | 21 Feb 2024
    I saw no mention of RBS+Steep, the latter providing a LSP. I use it a lot and very much like it, although it's still young and needs love, but it's making good, steady progress! I've been very pleasantly surprised by some of the crazy things Steep can catch, completely statically!

    You appear to be working on projects with Sorbet (which I tried to like but found it fell short in practice, notably outside of the app use case i.e it's mostly useless for gems) so it may be a tall order to try on those. Maybe you can give RBS+Steep a shot on some small project?

    RBS: https://github.com/ruby/rbs

    RBS collection (for those gems that don't ship RBS signatures in `sig`, integrates with bundler): https://github.com/ruby/gem_rbs_collection

    Steep: https://github.com/soutaro/steep

    VS Code: https://github.com/soutaro/steep-vscode

    Sublime Text: https://github.com/sublimelsp/LSP

    Vim (I'm working on it): https://github.com/dense-analysis/ale/pull/4671

  • What it was like working for Gitlab
    3 projects | news.ycombinator.com | 11 Feb 2024
    I don't know what you mean by "Static typing is not webscale".

    > https://news.ycombinator.com/item?id=39159481

    Bugs exist in all code written in all programming languages and you will find bugs in programs written in statically typed languages too as you know. Programming languages are rarely chosen for the absense of bugs alone though or we'd all be using SPARK Ada or something.

    > spitting out code as fast as your keyboard works, or is is not having features do weirdo things

    This is a straw man. No-one has suggested that "spitting out code as fast as your keyboard works" is what Rails allows you to do, or that Ruby code results in features that "do weirdo things".

    In reality engineer productivity is important and Rails enables it in a web environment.

    > I have more than once tried to contribute fixes to GitLab's codebase, and every time I open the thing in RubyMine it hurpdurps having no earthly idea where symbols come from or what completions are legal in any given context.

    Yes, I prefer writing statically typed languages and I would /greatly/ prefer Ruby to be statically typed for a number of reasons, but it will likely never be so in a way I consider to be usable (see https://github.com/ruby/rbs). Not being able to definitively tell what a method returns or where one is defined is a total PITA, but it's one of the array of up and downsides to Ruby, with each language having a different set.

    > I trust JetBrains analysis deeply, so if they can't deduce what's going on, then it must take an impressive amount of glucose to memorize every single surface area one needs to implement a feature.

    You don't need to know how all of Rails works to write a Rails app, as I'm sure you know, so this seems like another mis-representation of the truth, just as you don't need to know how the compiler or CPUs work to do a lot of (most?) programming.

    > That or, hear me out, maybe "it works on my machine" is a close to correct as the language is going to get without explicit type hints as a pseudo static typing

    You seem to be suggesting that Ruby on Rails applications behave unpredictably on a machine to machine basis but that's not really how Ruby works in practice, or matching on my experience.

  • InfoQ Interview: Rich Kilmer on the Power of Ruby
    1 project | news.ycombinator.com | 15 Jun 2023
    Are you familiar with rbs (https://github.com/ruby/rbs)? If so, what issues do you see with using that over TypeScript?
  • Building GitHub with Ruby on Rails
    11 projects | news.ycombinator.com | 7 Apr 2023
  • Ruby 3.2’s YJIT is Production-Ready
    8 projects | news.ycombinator.com | 17 Jan 2023
    Ruby does have optional type annotations, if you want them:

    https://github.com/ruby/rbs

  • Crystal for Rubyists
    9 projects | news.ycombinator.com | 28 Nov 2022
  • Is anyone using RBS?
    3 projects | /r/ruby | 8 Mar 2022
    Is anyone using RBS? Or, is it still half-baked? I haven't seen any recent posts about it this year. Though, I see the repo has some recent activity.
  • RBS introduced manifest.yaml
    2 projects | dev.to | 25 Dec 2021
    Currently rbs collection resolves stdlib dependencies, but rbs -r LIB option doesn't resolve them unfortunately. For instance, logger depends on monitor, but rbs -r logger doesn't load monitor.
  • Catching up on things
    7 projects | /r/ruby | 19 Dec 2021
    Here is link number 1 - Previous text "RBS"
  • The future of rbs collection
    9 projects | dev.to | 28 Sep 2021
    Partial clone reduces the impact, but it just procrastinates the problems.

rubocop

Posts with mentions or reviews of rubocop. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-02.
  • Must-have gems for mature Rails
    8 projects | dev.to | 2 Feb 2024
    gem "rubocop" - https://github.com/rubocop/rubocop | Set up code guidelines for your dev team, I recommend using whatever Standard recommends.
  • I Love Ruby
    12 projects | news.ycombinator.com | 18 Dec 2023
    I believe if you use the `||` operator instead of `or`, then things just work out fine. I agree it is really annoying. But I am pretty sure if you use a tool like RuboCop https://github.com/rubocop/rubocop (a static code analysis tool) then it will catch bugs like this. Note that I am not recommending Ruby. But in my experience if you want to work with a language and it has a community style guide and a linter that enforces it, it will save me some heartache.
  • Mastering Linters : A Code Quality Assurance Comprehensive Guide using Ruby on Rails
    1 project | dev.to | 8 Nov 2023
  • code review / feedback for improvement
    2 projects | /r/ruby | 16 Sep 2023
    Adopt some sort of consistent formatting. Your top-level module starts off indented, seems like wasted space. May I suggest RuboCop?
  • An Introduction to RuboCop for Ruby on Rails
    3 projects | dev.to | 13 Sep 2023
    By default, out of the box, RuboCop comes with a default set of pre-configured rules. The documentation will tell you Rubocop's default rules.
  • I live and work in the US where protests against police brutality have been ongoing for days, and coming to work this week the word "cop" has an uncomfortable feeling about it.
    3 projects | /r/programmingcirclejerk | 7 Jul 2023
  • Code Reviewing a Ruby on Rails application.
    6 projects | dev.to | 3 Jul 2023
    RuboCop is a Ruby static code analyzer (a.k.a. linter) and code formatter. Out of the box it will enforce many of the guidelines outlined in the community Ruby Style Guide. Apart from reporting the problems discovered in your code, RuboCop can also automatically fix many of them for you.
  • Xeme: I'd value your opinion on my new Ruby gem
    5 projects | /r/ruby | 29 May 2023
    But I will encourage you to adopt Rubocop to enforce the style you want, so that if others want to contribute, they can write with spaces and then run rubocop -a and end up with the styling you prefer. Tabs indentation support was added a couple of years back: https://github.com/rubocop/rubocop/pull/7867
  • Welcome to Rails Cheat Sheet
    3 projects | news.ycombinator.com | 13 May 2023
    In my last job I encountered my first Rails codebase ever (mostly REST APIs but a few server-rendered views as well). After the initial chaotic impression of the codebase (it was a startup after all) with all the Rails magic on top, I really fell in love with the framework after a more experienced Rails dev introduced a few key conventions and helpful libraries to the codebase.

    Out of those, I’d at least add the RuboCop [1] linter and the BetterSpecs [2] guidelines to this list. Both helped tremendously in eliminating bikeshedding in the team and freeing up brainpower to solve actual problems. The first one helped me learn intricacies of Ruby bit by bit right in my IDE and the latter guided us to write tests in a style that’s easy to maintain and trust.

    [1] https://github.com/rubocop/rubocop

    [2] https://www.betterspecs.org/

  • Ruby 2.7.8 Released
    1 project | /r/ruby | 1 Apr 2023
    RuboCop had a setting for this but it was removed for Ruby 3 because there are valid reasons to pass a hash into a method, and linting it might break code. Here is the issue referencing the commits where it was removed, if you ever need to do this again you could just find an earlier commit.

What are some alternatives?

When comparing rbs and rubocop you can also consider the following projects:

dry-validation - Validation library with type-safe schemas and rules

sorbet - A fast, powerful type checker designed for Ruby

Rubycritic - A Ruby code quality reporter

steep - Static type checker for Ruby

coc-solargraph - Solargraph extension for coc.nvim

typeprof - An experimental type-level Ruby interpreter for testing and understanding Ruby code

bullet - help to kill N+1 queries and unused eager loading

rubygems - Library packaging and distribution for Ruby.

Reek - Code smell detector for Ruby

Ruby on Rails - Ruby on Rails

Pronto - Quick automated code review of your changes