5 ms·
Teaching Distributed Systems in Go (2013)
- elchief 12y agoMan, Google sure is good at marketing their language. Front page of HN like every day.
- cnbuff410 12y agoWhy can't people love Go not because of Google, but the language itself? Don't be deceived by your hate towards any specific company, otherwise you will miss a lot of beautiful, useful, adorable things in this world.
- Chronic26 12y agoGoogle created or not, there are many better alternatives to Go.
- mrweasel 12y agoI do actually. Google isn't a company I'm to happy about these days, but I do like that they're spending at least some of the money earned from the advertising business on funding projects like Go. Go isn't a language I've used in production, but it's something I'm playing around with. I really like the standard library, there's a few thing ( like variable assignment ) that just wrong, but overall it's really a fun language. The main feature I really really want to make use of is the statically compiled binaries. Deployment just becomes so much easier compared to pretty much anything.
- withdavidli 12y agoWhile I do see Go a lot, I don't usually see Dart. People can just like the language, but the upvote system is anon...
- gerardvanvooren 12y agoI bet there are more postings about Rust than any other language these days.
- Daishiman 12y agoFrom a theoretical standpoint, Rust is a far more interesting language.
- gerardvanvooren 12y ago... than any other language??? I am not talking about Go here. Rust gets more coverage than any other language these days.
- dscrd 12y agoFrom a practical standpoint, Go is -- at least for the time being. And this is not primarily a site for academic PL theorists, is it?
- Daishiman 12y agoThe potential for Rust to innovate in a space completely dominated by C and C++ in the past decade has piked the interest of people who had never considered any other language for development. Go, in contrast, is fairly unremarkable language. That doesn't make it bad in any way (tried and true combined with a primary emphasis in maintainable software is a winning combo), it's just that it's attacking a space which many other languages have dealt with before.
- dllthomas 12y agoThe idiom is "piqued interest". Go has more "Piked interest".
- dllthomas 12y ago"And this is not primarily a site for academic PL theorists, is it?" Wait, this isn't LtU?
- evidencepi 12y agoAs a gopher, in fact I don't feel that golang can be called "the Google's language". Google still relies on C++ a lot. I believe in go because I trust the go team! Especially after reading Rob Pike's blog on the motivation of developing this language, I told myself, this language will Go far. FYI: http://commandcenter.blogspot.it/2012/06/less-is-exponentially-more.html http://commandcenter.blogspot.it/2012/06/less-is-exponential...
- Daishiman 12y agoLooking at the reviews and purpose of the class, I wonder why couldn't it be done with Erlang, given that for the tasks they're being asked to do, it should do quite nicely, and though the syntax is unusual, it's a small language that's remarkably simple.
- krat0sprakhar 12y agoThe professor does mention why he decided not to go ahead with Erlang - I favored going with a c-like systems language because I'm more familiar with it and was less comfortable teaching in Erlang.
- lostcolony 12y agoI always found that kind of surprising. I found it easier to learn new concepts/ways of programming with new syntax. When the syntax feels familiar to a language I already know, I find I either am slipping into habits from the language I know, which may or may not be idiomatic, and which may or may not even do what I think it does, or I just don't bother learn them in the first place, assuming they behave the way they do in the other language. The sort of extreme example of this is this particular bit of Erlang that seems familiar from a C background myFunc(Val) -> if Val -> io:format("Val was true", []) end, io:format("the end", []). myFunc(false). When executed you'd expected it to print just "the end". It doesn't; the if statement throws an exception. It looks similar, but behaves differently, and that makes it harder to learn than the constructs that are completely unfamiliar.
- yodsanklai 12y agoI recently learn a bit of Go and Erlang. Erlang is surprisingly powerful considering how small and simple it is. In particular, I liked the convenience of atoms and pattern matching for writing simple protocols. I'm a little put off by the dynamic typing, it's convenient but very error prone. On the other hand, Go uses static typing with type inference which is a good compromise between conciseness and safety. And I also much prefer the Go syntax.
- 12y ago
- gerardvanvooren 12y ago(nagging mode) I always like that white letters onto a white background of blogspot. This is a hint to blogspot. Use ordinary HTML/js/css so that people with their browsers set to maximum security still can read what's on the blog.
- evidencepi 12y agoYeah. Just finished the 440 course and became a gopher! Thank you Dave!
- xkarga00 12y agoI just have to defend my thesis and after that i will get my BS degree in Informatics Engineering but i am seriously thinking of talking one of my (ex-)professors into changing the language of use at Parallel Processing, one of my faculty's optional courses. It was the last class i attended (circa one year ago) and even though i enjoyed using C + MPI (it was the first time i really got into concurrent programming), sometimes it was a real pain in the ass. Nowadays i am 100% sure that Go would be a perfect fit for that class. I think i have to send him a link of this blog post...
- yodsanklai 12y agoI recommend this online class at MIT http://css.csail.mit.edu/6.824/2014/ http://css.csail.mit.edu/6.824/2014/ (I learned about it in some other comments on HN). In particular, there are a few self-evaluating labs in Go (essentially, increasingly complex fault tolerant distributed key-values service). I really enjoyed doing them and found Go to be a great language for the task. Generally, I disliked a few things about Go: lack of sum types, error handling, lack of genericity. But apart from that, it's really convenient and easy to learn.
- juhanlol 12y agoI'm also doing the labs too. I'd like to find someone who also enjoys these labs for some code reviews and discussions.
- MoOmer 12y agoAll: This Prof is awesome. The last version posted on MIT Open Courseware was from 2006. I'm going to go ahead and guess that video/audio recording/editing resources etc. are limited, and this is not a priority course. That didn't stop the Prof from posting all lecture notes online [0] and using Github to host assignments [1]. Will check this out later; though I recently started using Go and love it. I was able to recently build the smarts of a distributed back-end application with existing Apache projects, some shell, and a lot more Go than I anticipated; which was excellent. [0] http://css.csail.mit.edu/6.824/2014/schedule.html http://css.csail.mit.edu/6.824/2014/schedule.html [1] http://www.cs.cmu.edu/~dga/15-440/S14/assignments.html http://www.cs.cmu.edu/~dga/15-440/S14/assignments.html
- tagrun 12y agoUnions and generics are indeed left out (see Go's FAQ). What do you mean by "lack of error handling"? Like Rob Pike says, errors are just values in Go, and you have the whole language to handle them. If you mean exceptions, there's panic and recover.
- yodsanklai 12y agoyes, I meant exception. I didn't know about panic and recover, i'll look into it. Thanks.
- MoOmer 12y agoSome source code and assignment info from Spring 2014 available here: http://www.cs.cmu.edu/~dga/15-440/S14/assignments.html http://www.cs.cmu.edu/~dga/15-440/S14/assignments.html
- claystu 12y agoAre there really no good GUI libraries for Go, and if so, is anyone working on correcting this?
- tagrun 12y agoIs GTK3 good enough? https://github.com/conformal/gotk3 https://github.com/conformal/gotk3