7 ms·
Previous discussion with 207 comments https://news.ycombinator.com/item?id=3953434 https://news.ycombinator.com/item?id=3953434 Then, the original author wrot
by npalli 13y ago
Previous discussion with 207 comments
https://news.ycombinator.com/item?id=3953434 https://news.ycombinator.com/item?id=3953434
Then, the original author wrote a follow-up which had another ton of comments on his blog and another 162 comments on HN.
https://news.ycombinator.com/item?id=4455225 https://news.ycombinator.com/item?id=4455225
I wonder if anything new can be said here.
- babawere 13y agoMost importantly can go lang really take the place of C++
- wglb 13y agoYes, please.
- jerf 13y agoIn this situation, Rust seems more likely. Go may have sacrificed the absolute top end of performance by making GC an unavoidable memory management mechanism. You have a variety of tools to manage garbage generation with careful programming which aren't necessarily obvious on a casual reading of the spec, but AFAIK you can't actually fully escape the stop-the-world GC. It is not clear to me that Go will ever escape stop-the-world, either. There's still some room for it to get better, but the Erlang-esque "per process heap" will probably never be available, or at least, not for a long time and only when writing your code in a way the optimizer can understand. Still, you will be able to do "pretty darned well" in Go. And there's a lot of use cases for which that will be indistinguishable from the "absolute top end".
- jandrewrogers 13y agoNo, a garbage-collected language cannot replace C++. Explicit control of memory and deterministic operation is an important tool for some types of software e.g. high-performance server software.
- masklinn 13y agoAnd no2, a language which can not be consumed by others can not replace C++. Because of the runtime requirements (both GC and goroutines), it is not possible to use a Go library through an FFI, you have to embed a go program instead as you do Python or Lua.
- 6d0debc071 13y agoI'm not sure there's any reason that garbage collecting and manual memory management can't exist in the same programming language. I can't think of any where they do, but it seems like you should be able to assign memory manually and have that as an exception. :/
- 0x1997 13y agoRust supports both manual memory management and GC.
- plorkyeran 13y agoC# supports manual memory management (in "unsafe" blocks). They don't coexist very well because a standard library written for manual memory management looks rather different than one written for GC.
- trimbo 13y agoAzul has made a JVM with predictable GC. http://www.azulsystems.com/technology/java-garbage-collection http://www.azulsystems.com/technology/java-garbage-collectio... So yes, it is possible to have pauseless GC. That won't fit all problems that C++ is used for (like embedded), but it certainly hits on the server software side of things.
- cwzwarich 13y agoTo run it on x86, you need a heavily modified Linux kernel. You also sacrifice about 30% or so of your throughput on the extra operations that allow for the dramatically reduced latency, which may not be acceptable for some people.
- 13y ago
- deleted 13y ago[deleted]
- cdavid 13y agoNot likely because things like gc makes interoperability with other languages difficult. Pretty much every language can interoperate with C.