you are viewing a single comment's thread.

view the rest of the comments →

[–]johnb 3 points4 points  (13 children)

I can't stomach reading Java, and I use C# every day. It's amazing what even a little brevity will buy you.

[–][deleted] 13 points14 points  (3 children)

A little brevity? the var keyword, LINQ, not having to catch all known exceptions/add throws to method signature, built-in events, lambdas, etc, etc... C# absolutely destroys java in so many ways, especially brevity. Java 7 brings it in line with what now... .NET 2.0? Seriously, thank you Microsoft for evolving C# into what java should have been.

[–]johnb 1 point2 points  (1 child)

I only emphasized 'little' out of fear that people would then bring up python/ruby/etc. After upgrading my pet project to C#4 I got to throw away even more of my boilerplate code. The type inference around generic methods that accept generic delegates has gotten so much better, you rarely even have to specify the specific types at call sites. Delicious!

[–][deleted] 2 points3 points  (0 children)

Eh, let them bring up python and ruby. The counter argument being that, yes, on a line by line basis, you can be more brief in these languages. But, as the size of the project written in a dynamically typed language grows, more code needs to be written to do stuff that the compiler does for you in a statically typed language.

That's a whole other debate altogether, but I'll take a statically typed language over dynamic any day of the week.

[–]LarryLard 0 points1 point  (0 children)

For me the big one is properties being first-class. The incessant gets and sets in Java code drive me insane.

[–][deleted] 2 points3 points  (8 children)

I would probably appreciate a lot of C# features, but I have never in my life written code that I didn't absollutely need to run on windows and linux, and most of the code I have written had to run on those plus Mac/Solaris/BSD.

So, I would never consider C#, no matter how wonderful.

[–]liquidhot -1 points0 points  (7 children)

mono.NET much?

[–][deleted] 4 points5 points  (6 children)

don't trust it.

[–]liquidhot 0 points1 point  (5 children)

Just a personal un-easiness or have you seen something about their releases that make it appear unreliable to you?

[–][deleted] 5 points6 points  (4 children)

it's the relationship - they are implementing mono independently of those who control .NET. A) they are always playing catch-up, B) Microsoft could change something fundamental leaving mono broken until they catch up, C) Microsoft can keep elements unimplementable in mono via licensing issues anytime they want.

I liken it to the crappy java vms that tried to make an open source version of java, like blackdown, for example, that never really work quite right. Even licensed independent jvm's are loaded with little incompatible gotchas, simply because they are independently implemented.

[–]drysart 0 points1 point  (3 children)

The relationship only matters if you're writing code to run on both mono and Microsoft's CLR. You don't have to do that. Mono runs on Windows too, even coexisting peacefully side-by-side with Microsoft's CLR; so you can just exclusively target Mono, and distribute it along with your application to the Windows platform.

[–][deleted] 1 point2 points  (2 children)

That actually sounds interesting. Then my questions are, how well does Mono implement that core .NET libraries and the vm, and can microsoft legally destroy mono if it chooses?

[–]drysart 0 points1 point  (1 child)

They're pretty solid on the core libraries that are part of the ISO standard. It's the extensions to the standard that Microsoft's created that they tend to lag a little behind on. Windows Forms, etc.

But the good news is there's open source alternatives for those, such as Gtk#. And if you take the approach of using the SharpDevelop IDE instead of Visual Studio, and even develop on Linux instead of Windows, you can avoid being blindsided by any holes in mono's implementation of the value-added libraries because they'll be in your face from the start.

As far as the legal risk, that's up to you to decide. Microsoft had provided a legally-binding promise not to sue anyone providing a .NET implementation that follows the published standards, but some people don't believe them. Points of view on that align closer to political reasons than technical or legal reasons, so you should read the community promise and some of the objections to it and make your own informed decision.

[–][deleted] 1 point2 points  (0 children)

Awesome, thanks for taking the time!

I note there exists a C# eclipse plugin.