top | item 36400229

(no title)

w7 | 2 years ago

It has:

* Relatively simple syntax.

* "Good enough" expressivity-- nothing that's considered "missing" has been a true blocker for most projects.

* An easily accessible concurrency primitive, with the bonus that the runtime can choose to execute goroutines in parallel (when able)-- this comes with no required function coloring or split in a code base.

* A well opinionated environment packaged with the compiler: default formatter, default method for fetching remote deps, default documentation generator, default race detector, default profiler, default testing system.

* Decent portability-- can cross compile relatively easily from one platform to another, doesn't require a larger runtime pre-installed on the foreign host.

* "Batteries included" standard library.

* Inertia-- enough of an active community to pull what you need from the Internet, whether it's guides or code.

* A "good enough" type system to catch some errors before they become runtime errors.

* A "good enough" abstraction for operating on data with: structs, interfaces, and methods. With composition being preferred over inheritance, and embedding bringing handy sugar.

No language is perfect, everyone has an opinion, but for many people this is "close enough" to what they prefer to work with.

Gophers may just be a bit more vocal about it.

discuss

order

No comments yet.