Hacker News new | ask | show | jobs
by synergy20 1073 days ago
I learned Go on and off in recent years on the side(daily job does not need Go), I like its battery included stdlib and cross platform support.

I do feel its binary size is large comparing to c and c++, and multiple Go executable can not share libraries as easily as how c/c++ uses the shared lib, when I have a few Go binaries they add up, and I do storage constrained embedded development a lot.

On the desktop side, I really hope Go can have a GUI in its stdlib, something like what Flutter/Dart does: adding a Skia kind of engine and let me do GUI cross platform, that will make Go main stream like wild fire.

3 comments

>multiple Go executable can not share libraries as easily as how c/c++ uses the shared lib

https://pkg.go.dev/cmd/go#hdr-Build_modes

you can actually build with shared libraries :)

I think most people I've seen use go, only use a single application, or have it turned into a docker container; so for them this is pointless but just fyi.

I personally dislike static linking but I see why it was used so heavily with go.

not really, it's not something Golang really cares a lot to say the least, to become 'mainstream', Golang actually has to embrace more use cases.

https://github.com/golang/go/issues/47788

Executable size is big or small to which system we are comparing to. It's definitely bigger than C/C++ but considerably smaller than nodejs/electron.

Also having a single binary is good in lots of cases because then you don't have the install runtime/separately install shared library

https://github.com/flutter/engine/blob/main/impeller/docs/fa...

Impeller is the Skia replacement and is in full c++ that supports all platforms.

It will be great if Go team can work with them(both are in Google) and make Impeller a render engine for Go.

With this no more bloated electron.js and no more Java/Swing or Qt, what a dream for the day.