Live data from Hacker News

Go runtime: 4 years later

go.dev

141–150 of 296 posts

Re: Go runtime: 4 years later

#141

Earlier quoted context omitted.

Plugins for a compiled binary are just plain hard. Changing the code works better with an interpreted language. Usually you see the software implement it's own interpreter or a scripting language on top to handle this.

I know, I was thinking C# does something like that though, so I was hoping it would be achievable. The annoying part about the scripting language is that if something is written in Go, you want developers to also work in Go, otherwise the people writing plugins for your software, knowing better the API and use-cases, have a disconnection with the language actually used for the software, losing potential opportunities…

C# (usually) runs on top of a VM with a JIT, so the linking is effectively always done at runtime.

It's also why it can do things like generic virtual methods - it can compile an instantiation and adjust the vtable at runtime.

Re: Go runtime: 4 years later

#143
post #51

Still yearning for an Ocaml-like language that uses the Go runtime.

Go disliking is due to its syntax not semantics. Go as a dynamic language runtime platform will be interesting; the platform defines the semantics and languages define syntax. On similar lines, Fable [0] project recently announced rust & dart runtime support making F# a very attractive choice. [0] https://fable.io/blog/2022/2022-06-06-Snake_Island_alpha.htm...

Go dislike has many different reasons, and some of them are semantics - e.g. the way nil interfaces work, or the dance you have to do to add an item to an array. And then there's the whole issue with FFI, which has nothing to do with syntax, and everything with Go threads being "special".

Re: Go runtime: 4 years later

#144
post #90

Love go as a platform.. self contained binaries have been a miracle for ops..but have a few big hangups about using the language full time because of the sucky ergonomics. * No optional/named parameters. Writing a whole function per parameter for function chaining is excessive. This would not be difficult to add to the compiler (i've done it and have seriously considered using the fork) but it seems like the team is…

I think if Golang would have been invented a couple of years later it def would have had sum types. But then, Rust probably wouldn’t have had its insane tooling that is most likely inspired by golang

Re: Go runtime: 4 years later

#145
post #74

Still yearning for an Ocaml-like language that uses the Go runtime.

go runtime is not VM like JVM [0]. Go doesn't run on top of runtime, more like run along side it. That's why there's go for embedded where it has no runtime. So it's very less likely other language reuse go runtime. [0] https://go.dev/doc/faq#runtime

Go doesn't have bytecode interpreter or JIT, but it still needs a VM, if only for green threads.

Re: Go runtime: 4 years later

#146

It is probably a bit misleading when so many say: 'golang is easy', it is not, it is as difficult as Java or other language, probably easier than c++ and rust, but definitely not an easy language. it makes great sense for network with concurrency, not so with real time or low resource devices to me.

I found it much easier than java, and a bit harder than python, for reference

Re: Go runtime: 4 years later

#149
post #51

Still yearning for an Ocaml-like language that uses the Go runtime.

Go disliking is due to its syntax not semantics. Go as a dynamic language runtime platform will be interesting; the platform defines the semantics and languages define syntax. On similar lines, Fable [0] project recently announced rust & dart runtime support making F# a very attractive choice. [0] https://fable.io/blog/2022/2022-06-06-Snake_Island_alpha.htm...

What? Go’s syntax is great. But it lacks sum types.

Re: Go runtime: 4 years later

#150
post #144
post #90

Love go as a platform.. self contained binaries have been a miracle for ops..but have a few big hangups about using the language full time because of the sucky ergonomics. * No optional/named parameters. Writing a whole function per parameter for function chaining is excessive. This would not be difficult to add to the compiler (i've done it and have seriously considered using the fork) but it seems like the team is…

I think if Golang would have been invented a couple of years later it def would have had sum types. But then, Rust probably wouldn’t have had its insane tooling that is most likely inspired by golang

It’s not like sum types weren’t known a decade before that. Or generics. They just didn’t care.
Post reply on HN