Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There's basically no tool for doing that, aside from relying on tests to tell you a callsite is now incorrect. "find and replace" is... okay, up to a point, but obviously that has its limitations (especially once you start metaprogramming).

That being said, I still love Ruby. I have all sorts of little tools written in it that would have been a pain to do in another language.



Coming from a Clojure background which is … different. But I understand the enthusiasm around similar language features.

But to borrow words from another comment I find Kotlin “ruthlessly productive”. Apart from the lambdas, functions, data classes and immutably, it’s the ability to quickly and correctly refactor that makes me feel like I can work at speed and try stuff out.


I wish I could find Kotlin as ruthlessly productive as Ruby, but... I'm having a hard time doing so. It's got nothing to do with the language itself - at work, I really enjoy Kotlin.

Here's where Ruby shines for me: when I'm whipping up a script, I can toss a `Bundler.setup(:default)` at the top of the script, `vim mything.rb`, `$> ruby mything.rb` (or `./mything.rb` if I hashbang at the top), and I'm off to the races.

With Kotlin, it feels like I need to set up a project in IntelliJ, `$> ./gradlew run`, wait 10 seconds for the whole thing to compile, and finally my thing is running.

Is there a streamlined way to run a Kotlin script without building a whole jar, from the command line? I know this is generally not as easy with compiled languages. The D programming language is a notable example that has a "D script" mode (hashbang with `rdmd`), which quickly compiles+runs in a single step.


kotlin has support for being run like a standalone script. I believe the convention is giving them the `.kts` extension.

Here is an example with a shebang https://github.com/Kotlin/kotlin-script-examples/blob/master...


Thank you! The syntax for specifying dependencies was the bit of the missing puzzle piece for me.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: