4 ms·
Erlang is great, and I miss working with it, but I'd never want to write much in the way of 'quick scripts' with it. Something like Ruby feels much more product
by davidw 7y ago
Erlang is great, and I miss working with it, but I'd never want to write much in the way of 'quick scripts' with it. Something like Ruby feels much more productive for that.
- tombert 7y agoHeh, escript isn't so bad once you get used to it. Clojure would be a great language for small-ish scripts if it weren't the dog-slow startup times, and has excellent concurrency support. I hear that GraalVM might fix that but I sadly haven't had a chance to play with that yet.
- jdminhbg 7y agoGraalVM does in fact fix that. There's a (new-ish) project called babashka that lets you do some basic scripting for example: https://github.com/borkdude/babashka https://github.com/borkdude/babashka
- didibus 7y agoYa, GraalVM fixes it. But it requires a compile step, so it's not as nice for scripts. My favourite for scripting right now is Joker: https://github.com/candid82/joker https://github.com/candid82/joker Joker is a Clojure dialect which is interpreted, thus it starts super fast (but runs slower, but fast enough for scripts). Its design is to be batteries included for all things scripting. So it's just a self contained executable with everything you need for scripting. It's implemented in Go. I use it wherever I would have used bash or powershell prior. There is also Babashka: https://github.com/borkdude/babashka https://github.com/borkdude/babashka which is a similar idea, it's an interpreted dialect of Clojure with fast start times designed for scripting. The difference with Joker is that it is newer and more experimental, and it is implemented in JVM Clojure, compiled with GraalVM and has no Windows support for now. Anyways, I really recommend the use of Joker. Its awesome for scripting. I just put its binary in all my bin folders and script with it. It's great.
- cutler 7y agoEven if GraalVM fixes startup times aren't JVM languages just too long-winded for scripting? Perl, Python and Ruby dominate the scripting world for a reason - standard libraries for file, dir and pathname manipulation written in a concise language. Scripting is a style of coding, not just a means to an end. It is here that dynamic languages excel. Clojure is the leanest of the JVMs but doesn't it still rely on Java for file, dir and pathname manipulation?
- davidw 7y agoThere are JVM versions of Python, Ruby and Tcl, so it's not really about the VM itself.
- slifin 7y agoIt relies on the implementation of its runtime, JVM, .net, JavaScript, BeamVM etc but uses it's own language for those operations, slurp/barf etc So as a developer it's all the same until you start leveraging the features of your particular runtime but this does make code sharing viable
- dragonwriter 7y ago> Even if GraalVM fixes startup times aren't JVM languages just too long-winded for scripting? Perl, Python and Ruby dominate the scripting world for a reason Ruby is a JVM language, in that JRuby is a very complete competitive, current, and widely-used-in-production Ruby implementation.
- cutler 7y agoBy JVM languages I really meant those designed originally for the JVM, ie. Java, Clojure, Scala, Kotlin & Groovy.
- dragonwriter 7y agoEven so, Clojure and Groovy aren't particularly long-winded, nor is Scala despite static typing.
- 7y ago