←back to thread

140 points ksec | 2 comments | | HN request time: 0s | source
Show context
simply-typed ◴[] No.41083880[source]
The fact IntelliSense and jump-to-source are supported at a very superficial level goes to show the heavy drawbacks of dynamic types.

Sorbet may fix things, but at that point, just use a language with more mature tooling around types, like Python or TypeScript.

Dynamic types offer dubious marginal benefits but bring tons of downsides. The demonstrations in this article reflect that.

replies(6): >>41083934 #>>41083947 #>>41084060 #>>41084088 #>>41084115 #>>41084491 #
ecshafer ◴[] No.41083934[source]
I like coding in Ruby a lot more than Python or Typescript. From using the Ruby LSP in the article daily (though I am not on the team) I can say it works quite good and I have very few issues with navigating Ruby source. If I were very worried about types, going to Python or Typescript seems like not a very good solution. Python barely has more type support than Ruby, and Ruby is making a lot of gains in this area. Might as well go to an even more expressive and powerful language like F#, Haskell, Ocaml, Scala, or similar.
replies(2): >>41084293 #>>41085751 #
barrenko ◴[] No.41085751[source]
Ruby has practically no support in a basic tool like VS Code. (Love Ruby btw)
replies(1): >>41086075 #
1. simoncion ◴[] No.41086075[source]
I've tried the VS Code(ium) Shopify Ruby LSP plugin, and it's just BAD.

Have you tried the 'solargraph' VS Code(ium) plugin? I've found it to be pretty good. If you haven't do give it a try, but do know that you need to build the YARD documentation for installed "gems" for Solargraph to not be dogshit.

As described here [0], you run 'yard gems' to build said documentation. Do note that the method of having this documentation always be generated doesn't seem to work with "gems" installed with Bundler. Very frustrating, that.

[0] <https://solargraph.org/guides/yard>

replies(1): >>41098255 #
2. barrenko ◴[] No.41098255[source]
Thanks, will eventually give it a try.