1. Controlled by a single company whose business is surveillance and which has added surveillance "features" (for example it fetches packages from their cache by default)
2. Slower than Java and has GC pauses
3. Promotes non-free software by making distribution of binaries without source easy
4. Its devotees insist on reimplementing things that already have perfectly good implementations
5. Mostly worthless type system that doesn't prevent null pointer accesses
Conversation
Notices
-
Federated Republic of Sean (freakazoid@retro.social)'s status on Saturday, 28-Sep-2019 17:35:16 UTC Federated Republic of Sean
- Adrian Cochrane repeated this.
-
Federated Republic of Sean (freakazoid@retro.social)'s status on Saturday, 28-Sep-2019 17:42:50 UTC Federated Republic of Sean
6. Its GUI options are so bad that Electron is a popular choice for making GUIs for it.
Adrian Cochrane repeated this. -
Federated Republic of Sean (freakazoid@retro.social)'s status on Saturday, 28-Sep-2019 17:45:21 UTC Federated Republic of Sean
7. Reinvents the C runtime so that if you want to link against C code you need to have 2 runtimes, thus creating Java levels of non-interoperability.
Adrian Cochrane repeated this. -
Federated Republic of Sean (freakazoid@retro.social)'s status on Saturday, 28-Sep-2019 17:48:34 UTC Federated Republic of Sean
8. Encourages highly concurrent code through goroutines but provides no isolation between them, creating a security minefield.
Adrian Cochrane repeated this. -
codesections (codesections@fosstodon.org)'s status on Saturday, 28-Sep-2019 17:58:34 UTC codesections
I'm not a huge fan of #golang, for some of the reasons you mentioned and for some different ones (a primary aim seems to be making devs more replaceable, which I'm not on board with).
But re:
> Promotes non-free software by making distribution of binaries without source easy
I'll say that there *are* a lot of advantages to being able to distribute free software as a statically linked binary too—it's something I like a lot about #rust development
Adrian Cochrane repeated this. -
Lorenzo (ranfdev@linuxrocks.online)'s status on Saturday, 28-Sep-2019 18:23:19 UTC Lorenzo
@freakazoid
> 2. Slower than java and has GC pausesReally? I've always read the opposite.
The go GC has improved a lot...
Now the GC pause can take less than 200us (in go 1.5 the same task took 30ms)Read more about the GC here:
https://blog.golang.org/ismmkeynote
(By the way, I've only looked at the graphs, I should read it too)Adrian Cochrane repeated this. -
Federated Republic of Sean (freakazoid@retro.social)'s status on Saturday, 28-Sep-2019 21:46:37 UTC Federated Republic of Sean
I don't believe Go was deliberately created as an attempt to gain a bunch of control and goodwill of community developed software, or as an attack on Python. But I do believe these goals are part of the reason Google has invested so heavily in it while attempting to deprecate Python internally.
Adrian Cochrane repeated this. -
Federated Republic of Sean (freakazoid@retro.social)'s status on Saturday, 28-Sep-2019 21:53:19 UTC Federated Republic of Sean
My point is not that Go is terrible in terms of features or that some other language is in every way superior. It's that Go doesn't bring enough to the table to justify the fragmentation it has brought to open source. It would almost certainly have been unsuccessful had it come from almost any other source. I suspect most people who adopt it do so because a) Google and b) curly braces.
Adrian Cochrane repeated this. -
codesections (codesections@fosstodon.org)'s status on Sunday, 29-Sep-2019 00:09:58 UTC codesections
> My point is not that Go is terrible in terms of features or that some other language is in every way superior. It's that Go doesn't bring enough to the table to justify the fragmentation it has brought to open source.
I disagree. I think Go brings a *lot* to the table—for businesses.
* Short learning curve means you can hire without caring if applicants know Go, driving down salaries
(1/2)
Adrian Cochrane repeated this. -
codesections (codesections@fosstodon.org)'s status on Sunday, 29-Sep-2019 00:11:25 UTC codesections
("advantages" of go, cont'd)
* "only one way to do it" means programmers all write the same code, making them all more replaceable
* dependency management/fast compile times makes it easier to throw large teams at a project without people getting in each other's way (as much)Now, *I* don't like those features. For the sort of work I do, they're anti-features, in fact. I wish golang did not exist. But I don't think companies are embracing it illogically, or as a fad.
Adrian Cochrane repeated this. -
Federated Republic of Sean (freakazoid@retro.social)'s status on Sunday, 29-Sep-2019 04:43:22 UTC Federated Republic of Sean
@ranfdev Oops, turns out I'm wrong. I didn't realize how much Java had stagnated. Well, scratch that one off the list.
Incremental GC does have a pretty big overhead, though. Low-latency GC overhead can be up to 50%. Which is not a big deal compared to, say, Python's reference counting, but it is compared to Rust without GC. And scanning the heap uses a lot of memory bandwidth, making large heap sizes impractical.
Adrian Cochrane repeated this. -
Federated Republic of Sean (freakazoid@retro.social)'s status on Sunday, 29-Sep-2019 04:48:51 UTC Federated Republic of Sean
@codesections You make a really good point, though, not just about Go but about "readable code" generally. Google even has a "readability review" process which requires a certified readability reviewer.
But I do believe that languages should be learnable and code should be readable. Perhaps it's not so much about readability as it is about designers deliberately limiting the expressiveness of PLs to trade off elegance and conciseness for interchangeability.
Adrian Cochrane repeated this. -
Federated Republic of Sean (freakazoid@retro.social)'s status on Sunday, 29-Sep-2019 05:02:47 UTC Federated Republic of Sean
@codesections Sorry, the correct term is "Googley".
But now this makes me think I should be using Haskell, Racket, Clojure, or some other extremely expressive language. Not that my Python code doesn't tend toward similar levels of expressiveness. I did just write a small parser combinator library for a relatively simple parsing problem.
Adrian Cochrane repeated this.