News for hackers. Stuff that matters.
Re:The Problem with Go by kcartlidge on Wednesday November 02, 2022 @05:06PM (#33442912)
You're right with half of these, though 4 is as you say purely opinion and 2 depends on the circumstance. It is worth noting however that with `go run main.go` (or similar) you can execute Go without needing to build a binary first so it can behave exactly like a scripting language.

And Go builds virtually instantly, meaning for any non-trivial script (and if you prefer Go of course) it's a virtual certainty that given the negligible build time and far better performance a Go 'script' done this way will massively out-perform a Python script.

In other words if you don't accept 4 (and I like Python so not a dig) and you have a need for 2 then 3 can become irrelevant and Go is a good choice.

Re:The Problem with Go by tracker1 on Wednesday November 02, 2022 @06:32PM (#33443804)
just realized you can use shebang with a go file... sweet.
Re:The Problem with Go by hitpointdrew on Wednesday November 02, 2022 @08:55PM (#33445199)
> 4 is as you say purely opinion

I mean sort of opinion, it’s a pretty solid fact that there is less TO read, maybe you can argue that doesn’t make it more readable.

Go

    package main  
    import "fmt"  
    func main() {  
        fmt.Println("Hello, World")
    }  
Python

    print(“Hello World”)

Seems like a no brainer to know which one would be easier and faster to develop sysadmin scripts in from the above alone.
Re:The Problem with Go by kcartlidge on Thursday November 03, 2022 @04:36AM (#33448441)
What you've shown is that Go takes 5 times as many lines of code, but this is a trivial example based on boilerplate. Once you scale your codebase up beyond a handful of lines the percentage which is actual boilerplate becomes negligible and this example ceases to be valid.

As an aside, I can't deny that on a per-line or even per-scope basis Python is often more readable. But at the meta level where you're dealing with an entire codebase, which to me is more relevant, the structural aspects come into play and that's where it devolves into pure opinion.

In other words, comparing for readability across a handful of lines is not valuable unless you're only dealing with codebases which are also only a handful of lines.

Of course the main driver of this thread is script files, and for readability Python probably does win as they tend to be short. But I'd argue that as long as something is readable enough (which Go is) then other factors like performance may need to come into the decision.