Live data from Hacker News

RubyMine is now free for non-commercial use

blog.jetbrains.com

61–70 of 83 posts

Re: RubyMine is now free for non-commercial use

#61
post #59
post #52

Earlier quoted context omitted.

Anecdata that something is effective in 98% of cases is different from provable static verification that works 100% of the time.

> In general it's impossible to "find usages" or "go to definition" > Anecdata that something is effective in 98% of cases is different from provable static verification that works 100% of the time. Ruby has its faults. But you're not making sense complaining first about the "in general" situation, then complaining about a 2% situation. And it is a 2% situation, I'll add my anecdata as verifying 98% (or better) it wo…

> But you're not making sense complaining first about the "in general" situation, then complaining about a 2% situation.

The use of "in general" has long established usage in mathematics to refer to properties that hold for all objects in a given collection [0] [1]. Thus, if 2% of those objects fail to satisfy these properties, you cannot say that such properties hold "in general."

> Secondly, you're mixing concepts of static typing and metaprogramming by saying "the language not only fails to equip IDEs and tooling with the static typing information that would grant definitive answers to such questions." Static typing is not the solution, or at least not the only solution, to metaprogramming concepts.

Propose alternate solutions then.

IDEs and tooling (let's leave LLMs and other stochastic methods aside for now) can only inspect the lexical, syntactic, and semantic (types) structure of source code in order to navigate and validate it. Thus, information that is absent from the lexical, syntactic, and semantic structure of the source code, is unavailable to the IDE and static tooling. Ruby, being a dynamically typed language, does not statically encode any structure regarding types, callgraphs/callsites/usages, definitions, or otherwise, in the syntax of the language alone. The behavior of a Ruby program - how its methods are defined, where they are defined, and which runtime objects invoke send what messages to whatever recipients, are only discoverable at runtime, because nobody bothered to put this information in at compile/typecheck time. You cannot discern information that simply is not there.

> For example, if I statically define a Ruby object via RBS, I may still do the things you list that are problematic.

Yes, and this is because RBS is not actually a sound typesystem [2] [3]. You can declare whatever fake types and interfaces you want in RBS; there is absolutely nothing stopping me from simply using `#define_method` to overwrite your implementation, destroying your static guarantees, or using other runtime metaprogramming facilities to delete your method, change its signature, or otherwise violate whatever other invariants you assumed you had when you wrote the static headers/type declarations and had them checked by the static verifier.

It doesn't matter if you statically verify the code, when the language offers innumerable opportunities to destroy those static guarantees, after they were established, at runtime.

> Thirdly, you're complaining about runtime issues making things difficult for the IDE while doing a lookup. What language and IDE do you prefer that does this so much better?

I already provided an example of C# ReSharper upthread [4]. C# actually provides the static typing information that the tooling requires in order to navigate the AST with deductive certainty, not loose approximations or heuristics as in RubyMine.

Out of curiosity, did you study computer science formally at a post-secondary institution, or did you learn from a bootcamp?

[0] https://en.wikipedia.org/wiki/Glossary_of_mathematical_jargo...

[1] https://en.wikipedia.org/wiki/Glossary_of_mathematical_jargo...

[2] https://en.wikipedia.org/wiki/Type_safety

[3] https://www.typescriptlang.org/play/typescript/language/soun...

[4] https://news.ycombinator.com/item?id=45105283

Re: RubyMine is now free for non-commercial use

#62

Good news, I just wish Ruby had better DX on Vscode across all platforms. The ecosystem now is broken. Things barely work. All I want is syntax highlight, autocomplete and jump to definition without any ai stuff. I guess RubyMine is the only proper way to use Ruby.

Agreed, I'm not sure how the github/shopify folks are doing their own work these days. I have to keep one archived extension + 2 others to try and cover the basic feature set you expect. I realize Ruby typing means some things aren't possible, but the fragmented toolset means the simple things keep breaking. I think some sort of 'champion' or company push will be needed to tidy things up at this point. Ironically, Shopify owns one of the Ruby extensions but it is feature incomplete.

Re: RubyMine is now free for non-commercial use

#63
I needed to pick up Ruby for a two year job, and RubyMine made my Ruby learning so much fun. I really appreciated the clever autocomplete and especially the suggestions. It would give recommendations like "this works, but it's not how people do things in Ruby. Try this instead" and the recommendation actually looked so slick and elegant (and Ruby-like, and not Java-like where I come from). I hope in my heart that sometime I'll have to use it again.

Re: RubyMine is now free for non-commercial use

#65
post #62

Good news, I just wish Ruby had better DX on Vscode across all platforms. The ecosystem now is broken. Things barely work. All I want is syntax highlight, autocomplete and jump to definition without any ai stuff. I guess RubyMine is the only proper way to use Ruby.

Agreed, I'm not sure how the github/shopify folks are doing their own work these days. I have to keep one archived extension + 2 others to try and cover the basic feature set you expect. I realize Ruby typing means some things aren't possible, but the fragmented toolset means the simple things keep breaking. I think some sort of 'champion' or company push will be needed to tidy things up at this point. Ironically, Sh…

There is a good talk about this issue if you are interested, https://www.youtube.com/watch?v=pOuy51ZCGEw

Re: RubyMine is now free for non-commercial use

#66
post #8

This is awesome. Over the past four years I went from Sublime Text, to VS Code, to a 'dual IDE' setup (neovim and cursor). I hear rubymine has the best support for documentation and source code lookup capabilities (vitally important). Curious of its AI capabilities; how much of a step down would it be going from cursor to rubymine? I guess it could be used stand-alone purely for its documentation/source capabilities,…

Depends what your most used part of Cursor is - from my view the only thing Rubymine is missing is the next edit prediction which I've heard they're working on currently

The agent, chat mode and full line completion all work well

Re: RubyMine is now free for non-commercial use

#67
post #61
post #59

Earlier quoted context omitted.

> In general it's impossible to "find usages" or "go to definition" > Anecdata that something is effective in 98% of cases is different from provable static verification that works 100% of the time. Ruby has its faults. But you're not making sense complaining first about the "in general" situation, then complaining about a 2% situation. And it is a 2% situation, I'll add my anecdata as verifying 98% (or better) it wo…

> But you're not making sense complaining first about the "in general" situation, then complaining about a 2% situation. The use of "in general" has long established usage in mathematics to refer to properties that hold for all objects in a given collection [0] [1]. Thus, if 2% of those objects fail to satisfy these properties, you cannot say that such properties hold "in general." > Secondly, you're mixing concepts…

I didn't read your comment -- I'm sure it was insightful and well researched.

The fact that it ended with an elitist ad hominem attack tells me enough.

Re: RubyMine is now free for non-commercial use

#68
post #67
post #61

Earlier quoted context omitted.

> But you're not making sense complaining first about the "in general" situation, then complaining about a 2% situation. The use of "in general" has long established usage in mathematics to refer to properties that hold for all objects in a given collection [0] [1]. Thus, if 2% of those objects fail to satisfy these properties, you cannot say that such properties hold "in general." > Secondly, you're mixing concepts…

I didn't read your comment -- I'm sure it was insightful and well researched. The fact that it ended with an elitist ad hominem attack tells me enough.

Just paying it forward. As a visible minority in Canada, I am subjected to this kind of passive aggressive, plausibly deniable ad hominem on a regular basis - and often by the very same Canadian white progressives who claim to have been educated out of such bigotry and racism. When in Rome...

Re: RubyMine is now free for non-commercial use

#69
post #8

This is awesome. Over the past four years I went from Sublime Text, to VS Code, to a 'dual IDE' setup (neovim and cursor). I hear rubymine has the best support for documentation and source code lookup capabilities (vitally important). Curious of its AI capabilities; how much of a step down would it be going from cursor to rubymine? I guess it could be used stand-alone purely for its documentation/source capabilities,…

It’s a very noticeable step down from cursor in terms of AI integration IMO, but also a huge step up in almost everything else.

For a while I was running both cursor and RubyMine in tandem and switching between as needed, but lately I’ve been using Claude code for most stuff, in a RubyMine terminal and I hardly miss cursor at all.

Re: RubyMine is now free for non-commercial use

#70
post #40

Earlier quoted context omitted.

It’s a bit of a step down from cursor and vscode in terms of AI integration, but I still prefer my jetbrains ides (goland and rubymine). GitHub broke most aspects of their extension for jetbrains last week and didn’t seem to notice. That wouldn’t have happened for vscode (they might break it but they’ll also be in a hurry to fix it). I haven’t tried jetbrains own AI though. It might be fantastic for all I know.

It's different, I wouldn't necessarily say it's worse than Copilot, and I have been happy making the switch given my usage is included with the Jetbrains All Products subscription I already pay. If you're expecting inline completion that reads your comments and shits out a fully formed function like Copilot, you'll be pretty annoyed - but that's been a positive for me as the completion doesn't constantly try to get i…

That sounds nice. You’ve talked me into trying it out.
Post reply on HN