Microsoft has standardized C# and the CLR through ECMA, and issued a promise stating that they will not assert their patents against alternative implementations thereof. Non-standardized APIs like ADO.NET, ASP.NET, and System.Windows.Forms are not protected by that promise, but Mono discourages their use anyway and if they had to remove them, it would not affect the C# compiler or CLR in any way. So this is not a legitimate reason to avoid using Mono, unless you (a) need to use the non-standardized Microsoft APIs or (b) are Richard Stallman.
The Go Programming Language, or: Why all C-like languages except one suck.
41–50 of 110 posts
Re: The Go Programming Language, or: Why all C-like languages except one suck.
#42C, for the level of abstraction it targets is an extremely good language, and this is the reason why it is still alive, and why a lot of big successful projects are written using C. The problem is its standard library. The "get this new language" teams should instead focus on how to incrementally improve C. D was a (bad IMHO) attempt, just retry and make it better, a step after the other. If we will wait the ANSI com…
I don't think so; I think you also need polymorphism and probably exceptions. I think GC would also greatly improve expressiveness, because it makes functional style much easier to implement without redundant copying. But minimally some kind of polymorphism, and no, discriminated unions aren't enough - but Go's interfaces would probably do. Also, some way of hiding data members that doesn't require obscuring casts wo…
Re: The Go Programming Language, or: Why all C-like languages except one suck.
#43> What makes me stay away from it is the non-free nature. Yes, there is Mono, but I wouldn't like to base my stuff on a language that is there because of Microsoft's benevolent permission which it could turn into patent-lawsuits any time. We all know the tricks that company (well, actually any large company) has up its sleeves. Microsoft has standardized C# and the CLR through ECMA, and issued a promise stating that…
However, some commercial development shops won't touch anything LGPL (a license compatible with commercial use). Mono adds additional complexity. The concerns of the FSF are here: http://www.fsf.org/news/2009-07-mscp-mono
The Mono project's perspective can be found here: http://www.mono-project.com/FAQ:_Licensing#Patents
Re: The Go Programming Language, or: Why all C-like languages except one suck.
#44Earlier quoted context omitted.
Do you honestly think everyone on the team that developed the id Tech 3 engine was as 'good as Carmack'? I don't think he wrote the whole engine by himself.
There was one other programmer who worked with Carmack on Quake 3, John Cash. My point is, even having one Carmack level developer on a team is a bridge to far for most. Yes, you can write huge projects using just C, but you honestly don't think most people would recommend it unless every little drop of performance was really that important or you had no other choice or you had a super guru with an amazing track reco…
Re: The Go Programming Language, or: Why all C-like languages except one suck.
#45> Go has no exceptions. I'm not a fan of the verbosity of error handling with exceptions either. It is particularly bad for fine grained error handling. However, I do like that the default state of a non-handled error is to propagate and eventually crash the thing rather than continue with errors that may subtly corrupt things. I haven't used Go, but from the explanation of error handling Go seems to do the latter ra…
result, err := somePotentiallyFailingFunction()
if err != nil {
// Try to recover here
...
// Not recoverable?
panic()
}
And this call to panic works the way you prefer. Note that doing the following: result := somePotentiallyFailingFunction()
won't compile since the number of values on the left doesn't match the right, so if a function can fail and returns an error, you will know.
If you do something like: result, err := somePotentiallyFailingFunction()
And then never check err, it's actually a compile-time error, which enforces error checking, to a point. What's next is the kind of thing you don't like, and it's poor style. result, _ := somePotentiallyFailingFunction()
This assigns the error to _, which causes no errors if you don't use it.Hope this clears some things up.
Re: The Go Programming Language, or: Why all C-like languages except one suck.
#46Earlier quoted context omitted.
C NOT GOOD FOR LARGE PROJECTS? MAKE QUAKE-C Though for Doom3 and on, they did switch to C++, which makes absolutely minimal usage of the language features, heh. I guess old habits die hard.
"they did switch to C++, which makes absolutely minimal usage of the language features" This is true of almost every C++ project I've ever worked on. Unfortunately they all used a slightly different minimal set of language features...
Re: The Go Programming Language, or: Why all C-like languages except one suck.
#47No, I have never written exception-handling code like that mocked in this article. There's a strong correlation between uses of 'catch' and the probability that you're using exceptions incorrectly. Go's lack of exceptions is probably what pushes me away from it most strongly.
This may all be a function of the environment in which my code runs, but I certainly have no interest in going back to my C days when 95% of the source was devoted error handling.
Re: The Go Programming Language, or: Why all C-like languages except one suck.
#48Earlier quoted context omitted.
There was one other programmer who worked with Carmack on Quake 3, John Cash. My point is, even having one Carmack level developer on a team is a bridge to far for most. Yes, you can write huge projects using just C, but you honestly don't think most people would recommend it unless every little drop of performance was really that important or you had no other choice or you had a super guru with an amazing track reco…
Playstation 2 and Nintendo 64 games were written in assembly? Really? I thought C and C++ were common by then.
Re: The Go Programming Language, or: Why all C-like languages except one suck.
#49Positive first, negative second, or better yet, you understand the negative argument through the positive.
Re: The Go Programming Language, or: Why all C-like languages except one suck.
#50No, I have never written exception-handling code like that mocked in this article. There's a strong correlation between uses of 'catch' and the probability that you're using exceptions incorrectly. Go's lack of exceptions is probably what pushes me away from it most strongly.
That's my take as well. Most of the code I write doesn't attempt to recover from error conditions. I would say at least 85% of the time I want the program to exit with enough information that I can tell what happened. So I propagate the exceptions up to the top level. Nothing could be easier. This may all be a function of the environment in which my code runs, but I certainly have no interest in going back to my C da…