4 ms·
> Looking back from 2020, Go has succeeded in both ways: it is widely used both inside and outside Google, and its approaches to network concurrency and softwar
by sfvisser 6y ago
> Looking back from 2020, Go has succeeded in both ways: it is widely used both inside and outside Google, and its approaches to network concurrency and software engineering have had a noticeable effect on other languages and their tools.
Don’t know much about go myself, but I’m interested in examples of this.
- joshuamorton 6y agoArguably opinionated formatters like prettier and black are a response to gofmt.
- ses1984 6y agoDefinitely but what about the impact of go's approach to network concurrency?
- shadowgovt 6y agoBenefits of this for large system projects cannot be understated. The notion that there's a many-to-one mapping between allowed representations of the source code and a canonical representation is very smart because it enables bidirectional preferences; not only can the main source make assumptions about code format independent of individual user preferences, but individual users can have preferences independent of the main source; code that is in a canonical format is easier to apply custom formatting to. In addition, a canonical format makes it slightly easier to do plaintext search indexing, so you can get some of the benefits of having the code parsed into a full AST without needing to do that parsing.
- harikb 6y agoGreen threads without explicit language syntax for yielding - called goroutines influenced similar features in Kotlin. Unfortunately Kotlin is bound to working inside JVM and had to introduce “suspend” keyword. This is a friendlier world to work in than explicit green threads using keywords like async/await in other languages (Dart, Rust, JS)
- bgorman 6y agoClojure has goroutines on the JVM with core.async, no yield needed :)
- Blackthorn 6y agoYou have to explicitly call out your async blocks though -- even worse!
- divs1210 6y agoClojure has core.async heavily inspired from go.