I’ve always used VSCode and more recently VSCodium for programming, but the ruby debugging experience has been atrocious so far compared to Python. Is there anything I’m doing wrong? Or do I have no choice but to use RubyMine?
I use Emacs for Ruby / Rails development. My debugging happens in the console and for editing Emacs takes care of pretty much everything.
What kind of things are you missing?
I guess I should just use the console. I’m used to easily accessible hover documentation most of all. I know ruby has dynamic typing but for Rails it feels like it should be able to make better guesses as to what’s going on.
Reading a bit more. Maybe it’s python culture shock but this is nuts to me. WYM I need to do a separate tooling setup just to get type annotations? What is going on? Ruby typing 2024: RBS, Steep, RBS Collections, subjective feelings — brandur.org
I don’t think you’re imagining things. Python has a really strong culture around IDE tooling in general and typechecking in particular. I think it has to do with the adoption of Python by performance fiends like Meta and their efforts to make it easier to profile/debug performance issues.
I have always found the VS Code experience with Ruby (or at least Rails) to be pretty lacking. Blog posts recommend a lot of extensions that, once installed, seem to fight with each other or with the stuff that ships with Rails. (Python has this problem too sometimes, if you install too much of the Microsoft Python extensions instead of just the linter/formatter/LSP used by a given project.)
Ruby also has open classes—I forget the term for this but basically you can add/overwrite method on even like, the base string type in arbitrary user code, without having to inherit from it. This probably makes it harder to build a functional typechecking system.
Thank you, that contextualizes some things. I remember one being able to do things like open classes with python, not sure what precisely the difference is there, but it definitely shows in the tooling. Maybe it is just the culture like you said.