7 ms·
I'd take a second look at Go. It has a number of innovations over C# - and of course also a number of shortcomings. It's quite a different language, much more s
by Nitramp 13y ago
I'd take a second look at Go. It has a number of innovations over C# - and of course also a number of shortcomings. It's quite a different language, much more so than Java compared to C# (1.0 even).
A couple of things of the top of my head:
* goroutines and efficient multithreading, both in terms of syntactical constructs and language implementation. Go doesn't have await/async because it fundamentally doesn't need them.
* a type system that works without inheritance or subtypes but rather static duck typing, quite different from any other language
* very memory efficient layout of data structures, internal pointers
* small set of builtins with maps, slices, channels (that do have 'generic' types for their members) to reuse, rather than re-implement
* comes with a well designed build and packaging system
* comes with a very convincing standard library
It's worth taking a look. C# surely is a nice language, but it inherited many of the design flaws of Java, in particular with respect to the runtime and memory layout. Google does use Java internally a lot, Go gets uptake in spite of that competition.
Regardless of language merits, licensing C# can indeed be a problem, as can be the operational complexity of managing Windows running on hundreds, thousands, ten thousands etc of machines.
- dubbledidu 13y agoDid you ever actually use Go for a few minutes? Most of these bullet points are plain wrong.
- jawr 13y agoWould you care to elaborate on this?
- dubbledidu 13y ago* Their implementation sucks so much that most decently built concurrency implementation will beat Go-routines by a wide margin. Just have a look at all those people on the Go mailing list whining about the scheduler. Not even talking about the fact that building concurrency mechanisms into the language is plain stupid. We all saw how well that worked out in plenty of other languages before. * You know why pretty much no one uses structural typing? It's not because the “brilliant” designers of Go “invented” it, it's because most language designers realized that it is a poor idea before shipping the language. I think it is pretty telling that in languages which support both nominal and structural typing pretty much nobody is using structural typing. * I'm not seeing how a language which requires passing around void* pointers in every data-structure and casting at pretty much every corner can be considered memory efficient. * Hard-coding collection classes with special cased syntax into the language, so that everyone who needs to have something slightly different is completely fucked ... what is this? 1980? * Their packaging system is an unmitigated failure. Nuff' said. * Do they have a working Unicode implementation yet (I mean more than the “We use UTF8 for strings ... which is like 0.5% of what Unicode is about”)? What about (Big)Decimal? A working date/calendar abstraction which isn't a terrible joke?
- drivebyacct2 13y agoThis is a pretty fucking funny and ironic comment.
- kemist 13y ago> Their implementation sucks so much that most decently built concurrency implementation will beat Go-routines by a wide margin. It's worth noting that they're aware of the schedulers problems, and Dmitry is working on a significant revamp. https://docs.google.com/document/d/1TTj4T2JO42uD5ID9e89oa0sLKhJYD0Y_kqxDv3I3XMw/edit https://docs.google.com/document/d/1TTj4T2JO42uD5ID9e89oa0sL...
- icedchai 13y agoI'm interested in more details on the packaging system issues. (The biggest problem I see is lack of versioning, but there must be more.)
- freyr 13y agoTake his criticism (not sure it even merits that title) with a grain of salt. Many people on HN and on the mailing list have sung the praises of Go's packaging system.
- dubbledidu 13y agoYet another Go fanboy getting a bit defensive without having to add anything constructive? If you actually checked your “claims” you would see that people are singing so many praises that the mailing list is continually filled with proposals to fix the worst parts of Go's packaging system.
- freyr 13y agoYour post has no substance, other than to say some people on the mailing list don't like it. But other people on the mailing list do like it. So your post is meaningless and useless. If you actually have problems with Go's packaging, and care about it enough to write as much as you have, why didn't you simply point out the flaws?