Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Also here: http://pdos.csail.mit.edu/6.824/labs/lab-1.html

> You'll implement this lab (and all the labs) in Go.

I'm really glad to see this :-)



Go seems pretty good for things I might otherwise prototype in Python and then rewrite in C++ in order to get better static guarantees and performance. Does that sound fair?

CSP/Actor concurrency instead of exposing raw threads is a huge win. Focusing on interfaces instead of ancestry is also a huge win. However, it's really tough for me to get over Go's treatment of null and global mutable state.

It seems to me a bit of a waste to design a new statically typed language that intentionally allows the most common type error, as if Tony Hoare's Billion Dollar Mistake wasn't a mistake. One of the smartest things Bjarne Stroustrup did was disallow null in C++'s reference semantics.

It also seems a waste to give a language somewhat Erlang-like CSP/Actor-based concurrency, and then allow direct mutation of global state. This makes it much easier to introduce concurrency bugs, and also hurts garbage collector performance.

Maybe I just tried out Go too early. Does Go still use the Plan9 ABI and come with a copy of kenc so you can recompile your C source to be linkable against your Go code? Are the language creators still the only ones allowed to create generics?


Yes and yes. Though you don't need to manually do anything (dunno if you ever did), it still comes with the Plan 9 C compiler for bridging Go with C, and generics are still hardcoded.




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

Search: