If only the JVM didn't have slow startup speed I would almost exclusively write Groovy scripts.
There is just something so awesome about shoving your dependencies right in the script and not worrying about pip, easyinstall, system libraries etc [1].
Maybe Java 10 will fix the startup speed (or whenever jigsaw is done correctly) but I doubt it.
> Groovy needs two lines (@Grab and import) to get a dependency. Golang only requires the import. Perhaps Groovy needs to be rewritten in Go.
I'm not dissing Golang but it isn't even remotely the same. A major portion of the OP content was about using Python instead of shell scripts.
Golang is not scripting language. You need to compile for each platform and the code is opaque once it is compiled. Not to mention Golang might not have dependency issues at runtime but the overarching consensus is that certainly has issues with compile time dependencies management (auto checking stuff out from github is not effective).
> Perhaps Groovy needs to be rewritten in Go.
I normally don't say this... but that is just dumb fanboy comment.
EDIT: apparently you are working on a scripting language powered by Go called Gro. I'm not sure if you just mistyped and meant Gro instead of Go.... and reading your blog it seems you must have been severely burned by the Groovy community.
I didn't mistype. Go would make a good language for writing dynamic languages such as Apache Groovy in. My own Gro is just one example of such a dynamic language.
> Go would make a good language for writing dynamic languages such as Apache Groovy in
Wasn't the whole point of Groovy to have something Ruby-like that was more intimately tied into the JVM ecosystem? Seems to me that Go would be just about the worst imaginable [0] implementation language for that.
[0] Or at least, in the class of extremely poor choices that includes all languages that are not themselves especially targeted to the JVM platform.
I think his point was instead of using the JVM runtime to now use the Go lang runtime. Of course you would need the interpreter for each platform like Python does but Go has a unique runtime. I'm not sure how dynamic it is but you can certainly run a scripting language in it and make it easy to access other Go stuff.
I'm not sure how easy it would be to access ad-hoc libraries without recompile though since Go doesn't really have dynamic loading of libraries (or maybe it does now?).
Little tangental ... After reading his blog I'm a little concerned though that the dude (Gavin) has spent an enormous effort defending his stance on how poorly the Groovy organization is... I'm not saying his wrong but is almost obsessive and a waste of energy.
> I think his point was instead of using the JVM runtime to now use the Go lang runtime.
Right, my point was that a central part of the point of Groovy was being for the JVM, it wasn't a language in search of a runtime.
So, while there might be an argument that a language like Groovy for Go runtime might be useful (I'm somewhat unconvinced of that), it just seems not to be the case that Go is a good choice for a language such as Groovy (that is, it is not the case that Groovy is an example of a language for which it would make sense to use Go as the implementation language.)
> to access ad-hoc libraries without recompile though since Go doesn't really have dynamic loading of libraries
In the current version of Gro, I recompile (just like "go run"), so there's a 1 second lag even for simple scripts. For the same reason, the very basic REPL provided has a 1-second process time for each command. There's talk on reddit.com/r/golang about building a VM for Go so maybe in future Gro can use those.
> Are you going to change your middle name now to "Gro"
"Gro" is short for the "Grover edition of the Groovy language".
> has spent an enormous effort defending his stance on how poorly the Groovy organization is... [...] almost obsessive and a waste of energy
I've averaged a blog entry a month for the last 5 years. It seems like enormous effort and obsessive to you because you saw them all at once.
Yes I think I realize your point. But original it came across though like:
"oh your script can just be rewritten in Go and while we are at it Groovy should be rewritten in Go".
But yeah I would be interested in platform agnostic scripting language with out GIL, cheap threads, easy dependency access. I'll keep Gro on my radar :)
Are you going to change your middle name now to "Gro" (I did find that amusing albeit I'm not sure I know your entire history with Groovy)?
There is just something so awesome about shoving your dependencies right in the script and not worrying about pip, easyinstall, system libraries etc [1].
Maybe Java 10 will fix the startup speed (or whenever jigsaw is done correctly) but I doubt it.
[1]: http://docs.groovy-lang.org/latest/html/documentation/grape....