3 ms·
The complexity is about the bare minimum to express concepts like concurrency, pointers, and interfaces, in my opinion. The ways Go seems complex are because i
by david-cako 6y ago
The complexity is about the bare minimum to express concepts like concurrency, pointers, and interfaces, in my opinion. The ways Go seems complex are because it doesn't try to hide how memory works as much as other memory-managed languages, and in turn, as an engineer, you can write application and web-level code that performs almost as well as C and gets you thinking about things like a C programmer. I think Go just seems familiar to people that come from a variety of languages.
For me, the simplicity, batteries-included, and minimal primitives are a breath of fresh air, whereas in many languages I've felt like I have to learn "a whole new thing" each time I plug in a new library or try a new framework. Go has a web server, JSON, SQL, crypto, compression, and more built in, and it's all stuff you'd want to use directly in production. In Go, code and docs are just easier to write and navigate too. Compare, for instance, the prevalence of Reader/Writer types to how all-over-the-place implementations of buffers and asynchronous code are in other languages and ecosystems, or how many different build systems, dialects, and frameworks most languages have. The locality of most Go packages means you'll find better docs and help, and more canonical examples of how to do something.
Swift is another "deceptively simple" language to me. Swift has quite a few features, which means more prerequisite knowledge to read code "in the field". You're less likely to understand code by looking at it because there's more ways it can pan out while the developer is thinking about how to write it. I found that to be an especially big problem with JavaScript; I generally tell people to start writing JavaScript with a particular toolchain like React/TypeScript so they can set up a project and get on the right track fast. Go's ecosystem is opinionated but still just flexible enough, as I would say most of the features are.