Interview with Salvatore Sanfilippo
blog.fogcreek.com
blog.fogcreek.com
This surprised me a bit. I think most people who tried Go would agree that it is, in fact, a better version of the C programming language. It follows many of the same UNIX-y principles and it's a pleasure to work with, mostly because the syntax just gets out of the way. I'd like to know more about his point of view if he's reading here :)
And while I'm at it, I want to thank Salvatore for giving us redis, which is also a pleasure to work with.
System languages need to be stupidly simple and lack complexity.
One thing that could improve on C, might be very simple things like (immutable?) string as a native type, hashmaps, lambdas, etc. I would love to see some pythonic stuff into C.
Languages NEED to be simple if you want students to be able to learn them. That's what makes the success of C and makes it irreplaceable.
Although I would gladly something like Rust become relevant, if it's backward compatible with C ABIs, why not. But since ecosystems are already divided, I would like to see language dividing things even more.
I think C is a lot harder to grasp. e.g. manual memory management, dangling pointers, unchecked casts, etc.
> One thing that could improve on C, might be very simple things like (immutable?) string as a native type, hashmaps, lambdas, etc. I would love to see some pythonic stuff into C.
Have you used Go? It has all of those things...
"I was asked a few weeks ago, "What was the biggest surprise you encountered rolling out Go?" I knew the answer instantly: Although we expected C++ programmers to see Go as an alternative, instead most Go programmers come from languages like Python and Ruby. Very few come from C++."
http://commandcenter.blogspot.it/2012/06/less-is-exponential...
A "Python-y modern C" would be a better description.
Go probably would not be a good candidate for something like Redis, as performance and memory use could become worse. As pointed out elsewhere, Go has become a better replacement for scripting languages is some circumstances, more than it has been used to replace C.
> I’m not a big fan of new things in IT when they have the smell of being mostly fashion-driven, without actually bringing something new to the table.
Assuming this still refers to Go, I can't think of a new yet less "fashionable" language [1], which is in part why I like it.
I'm building a database in Go, keeping the data off-heap (which solves the GC problem for now.) The performance will lag C currently, but I do think it will eventually get close.
[1] https://groups.google.com/forum/#!topic/golang-dev/GvA0DaCI2... [2] https://docs.google.com/document/d/1TTj4T2JO42uD5ID9e89oa0sL... [3] https://github.com/golang/go/issues/8739
C++ and Java programmers see Go as an intentionally crippled language without inheritance or generics, which they can't quite wrap their heads around. Java programmers have a very hard time accepting the lack of dependency versioning, and the Go team's insistence that it is not important is mind-boggling to anyone who has been using Maven for years.
Ruby and Python programmers see Go as a step back in usability and syntax, and those who have not used a statically-typed language see a lot of boilerplate.
On top of all of that, any of the aforementioned ecosystems have a large set of libraries that are widely known and standard in the industry.
I like Go, and I think most programmers would like it if they gave it a chance, but I think it challenges too many peoples' preconceptions. Compare that to Scala, which you can sell as "better Java" and get people on board immediately.
Have you ever seen him live? It's quite something. I've never seen CDJs subjected to such abuse!
EDIT: snares that is, not Salvatore. I'm sure he takes great care of his CD players.
Also interesting that he did all that great work in a MBA 11"!
Interesting. I wonder how many senior programmers have the same perspective.