Hacker News new | past | comments | ask | show | jobs | submit login

Not only that.

Many of us that like C++ also do actually like GC systems, but what I personally don't want to give up is the expressive power of modern languages.




Let's put it this way:

If it wasn't for the Google brand -- with the power to promote Gophercons and hire full team language devs -- there wouldn't be a chance to see Go rise above Nimrod, D et al.

What they do have going for them is:

1) A rather complete standard library (because of many paid full time devs compared to any indie language) 2) An easy familiar syntax 3) A simple (but far from complete or unique to them) concurrency story with Channels/Goroutines. 4) Nice tooling (again due to many paid full time devs -- Java and C++ have better, but most languages have worse).


Yes, I do agree.


If you compare RAII and GC, RAII looks better to me practically in every aspect. The only advantage of GC over RAII is perceived simplicity (developers don't need to think about ownership specifics). But the price for it is too high (unpredictability), and that simplicity quickly deteriorates into overblown complexity when people hit problems caused by GC. Pragmatically, RAII is simply better and cleaner, as well as fits better with concurrency safety which implies clarity in memory ownership.


RAII does not work in all cases, though.

RAII for shared resources also induces cache problems if not implemented with lock free algorithms, which are quite hard to get right without some GC help.

There is also the issue for cyclic data structures and a stop the world effect when destroying big data structures.

Personally, I favour GC with (with/using/defer/scope) than pure RAII and was a bit disappointed that the C+11 GC API proposal was just partially adopted into the standard.


Combining RAII and GC (explicitly choosing what to use for various data) can be an interesting hybrid approach. Looks like Rust does exactly that, allowing you to explicitly define which data is garbage collected (while the rest is handled with standard RAII):

http://static.rust-lang.org/doc/master/std/gc/index.html




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: