Every once in a while I try to write a medium-sized program in Go, and I always come away feeling conflicted. It really is a "much better C" (assuming you want garbage collection). But it's been a decade since I've willingly written much straight C code, and I've been using generic types and exceptions for over 20 years now. And so I doubt that Go was really aimed at me, because it deliberately excludes features that I find natural. In particular, when I try to do "exploratory" programming in Go, I end up ripping up hundreds and hundreds of lines of code every time my strategy changes. Most of this code is error-handling and manually-instantiated versions of what should be generic functions in the standard library.
I'm waiting to see if Rust will fill the niche that I really wanted Go to fill: A fast language which allows me to get close to the machine, but which also offers a pleasant variety of sensible abstractions. On some level, the last such language I used was Dylan, which made some serious mistakes, but which nonetheless tried to deliver both speed and abstractions. Oh, and Scala, but Scala is really just Haskell for people living in the Java ecosystem, except with more dubious magic.
But at this point in my life, I don't check out new programming languages unless (1) they contain non-trivial new ideas, or (2) they're reached sufficient popularity to show up in my new feeds on a regular basis and to provide a huge number of useful libraries. I can't be bothered to deal with languages that merely remix existing ideas tastefully unless they can actually gain some traction.
Posted Oct 4, 2013 17:58 UTC (Fri) by b7j0c (subscriber, #27559)
[Link]
no take a trip to godoc.org and look at the mountain of libraries that have already been written. why? because Go is simple. Rust is not simple. i still hope it is a success, but it still has another year or so until it achieves both a "1.0" label from its own development team, plus enough "batteries included" to make it useful in real projects (i have seen what is available now for libraries...it would not be considered "batteries included" by modern standards)
my guess is Rust may be killed by bad timing. Go is getting huge momentum, people are already running their businesses on it and you can make a living as a full-time Go programmer (i am arguably doing this now and have been for a year). Java8 will de-stupid Java just enough that it won't be worth it for most coders to drop Java in favor of Rust. and now someone will respond by telling me Rust is designed to replace C++, not Java...nonsense. nothing is going to "replace" C++.