=> https://www.ardanlabs.com/images/gopher-kart/other-gophers.png To kick it off: Go is funny language. I have a hard time taking it seriously, and that's not because of the name, but because of the way it "feels". Don't get me wrong, Go is a **great** tool to have under your belt, but it just feels very ... "childish" ... to **me**. Other than the chills I get whilst working with it, I think Go is a pretty nifty language, and I'm sure you'll pick up on that further down in this blog post. If anything, the above statements were icebreakers, but also my genuine feelings. := Go has the "I can do anything! just not very well ..." [0] feeling to it, and that is very much true! I don't write software in Go because it's "blazing fast!" or "great on memory!". I write software in Go because it's "fast!" to write in. > [0] Having the aforementioned quality is not particularly a bad thing, I think it actually benefits Go! Now, here are some pros and cons that I have gathered up during my experience with the language: These are in no particular order, and solely **my** opinions. ## Pros Reasons for anyone to learn or to use Go! * Fast enough: Go isn't Rust fast, but it's not Node.js slow. * There are **lots** of resources. (books, documentation, libraries, tutorials, et cetera) * It's quite easy to pick up. (having had prior experience with C-like programming languages) * Go can do just about anything you pin at it. * It runs on Plan 9! ## Cons Nitpicks, not deal-breakers! * Garbage collected: This isn't necessarily a hard-con, but it contributes to more memory overhead that I'd prefer not to waste. (not as much as Node.js, though) * Go can feel *too* simple stupid at times, and not in a KISS way. * The dependency management and "package manager" is downright creepy: `$ go get ...` seems extremely pre-mature and underdeveloped, even many years into Go's life One thing you might see a lot when there is talk about Go is the claim that Go hasn't "found it's niche" or "it has no real purpose". To that I say: Go's niche is its simplicity, its ability to introduce someone into the compiled language space, and to develop software with speed. ## Who Would I Recommend Go To? People who ... * don't have much time for boilerplate material, * people who want to get their foot into the lower-level side of programming, (or compiled languages) and dare I say it ... anyone! ## Resources => https://golang.org/ golang.org => https://interpreterbook.com/ Writing An Interpreter In Go by Thorsten Ball => https://compilerbook.com/ Writing A Compiler In Go by Thorsten Ball => https://go.dev/wiki/Plan9 Go Wiki: Go on Plan 9 => https://9lab.org/plan9/go/ Plan9/Go