I was wondering if some people here code in C# too. I started yesterday with it, with only (quite much) c++ and (very little) java experience.

I started writing an expression evaluator that is able to translate expressions into sequences of commands for a virtual stackmachine (if you really care, I can tell you more about it), but I really started to like C#, because of several reasons: the beauty of the language OOP-wise, the ease to use it (don't care about pointers, see arrays as objects), etc, etc.

The only thing I didn't like was to notice that there exist several versions of the language, and I wanted to use a so-called Generic (for C++ coders, something like a template), and I had to download visual express beta 2005 to use C# 2.0.

I also have to say that the GUI of vs 2005 is very very smart, it has handy dropdown menu's that popup when you code (nothing new), but for example if you have an enum called Enum, and if you switch on that enum and write the case's, it will popup only the members of Enum. And it has tons of other such smart things.

Why I started this topic is because that it surprised me, as low-level minded coder. I never looked at C# at all, because of the idea "C# is way to high level, C++ and win32asm are good enough. .NET code doesn't even run on a real processor but it runs inside The Matrix :)".

Well, I spoke enough for today, what do you think about it?
Posted on 2004-10-28 09:54:31 by lifewire
Microsoft took Java, removed its easy portability, added some Microsofty features and called it C#... To me C# is just a copy of a copy of C++. If you want to use a C#-like languages then you should have stuck with Java. It has all of the features that you're talking about, there is only one version of the language (since Sun sues anyone that doesn't abide by their rules) and has several very nice free IDEs.

Spara
Posted on 2004-10-28 12:34:52 by Sparafusile
No. I never got into C at all. The first C I did, I noticed all the libraries were written in assembler, so I thought why bother with it. Quick & Dirty in (V)Basic, everything else there's Master Control ( like Master Card :-D ) language ( MASM ).

Regards, P1 8)
Posted on 2004-10-28 12:49:39 by Pone
I program in C# and I like it. Good language design, good class library, much better gui library, good development environment - all are the nice things.

C# is NOT java clone - it is not interpreted, but JIT-compiled. In other words, when CLR framework executes .NET assembly, it compiles each referenced methods into native code at runtime. So it enables better optimization for target platform. Of course, there are performance penalties because of managed code, garbage collector and such, but for most tasks it's sufficient.

So it's not entirely true that ".NET code doesn't even run on a real processor" ;)
Posted on 2004-10-29 12:07:19 by omega_red
I don't like C# because of, for example, what happens if you don't mark a method as virtual in a base class and as override in a subclass. In Java the correct method is always called, in C# not (unless you mark it explicitly, in C++ it's the same, but C++ is an extrange mix of things, so it cannot be blamed). That's not very OO in my opinion. In fact, after programming in Smalltalk for a while, neither Java nor C# nor C++ are very OO anymore. There are too many thing wich those languages restrict, that shouldn't be restricted, not by the language at least. I stille like C++ better, then Java. I don't like C#.
Also, for a modern language, it has too many keywords.
Note that Java 1.5 doen't count as Java...They made a few steps back with the printf() thing (useful? maybe....but the idea behind Java was not to repeat mistakes of the past, and printf() is one of those).

Just because .NET compiles to native code is not enough to say that C# is not a Java clone. It is. And worse, it's a bad clone (what I said about vitual/override, it sucks).
Well, I don't want to start a war here, just my opinion.
Posted on 2004-10-29 12:28:52 by GogetaSSJ4
C# is NOT java clone - it is not interpreted, but JIT-compiled.

It may come as a surprise to you, but Java implementations used JIT compilation before C# even existed.
Posted on 2004-10-29 16:23:24 by death
who cares, JIT, interpratations..

C#, JAVA.. they both stink.
get over it and use asm ;)
Posted on 2004-10-29 16:42:17 by wizzra
I like C# because I get paid to use it. Never used Java (never liked it, actually, so I didn't use it), but I actually do like C#. It is a robust language. About the virtual/override mentioned earlier: doesn't seem to bother me. If I know the rules of how the language behaves, then it isn't a problem. The only thing that bothers me about C#/.NET in general is that it doesn't support multiple-inheritance. They say it isn't important but there are many cases where I've had to do some very unnatural "workarounds" to get what I wanted because I can't derive from a base class and my own class so code reuse is achievable but only by inject more code into the equation as proxy/stubs.

C++ is a great language (not for the beginners, however). My only beef with it is that in the Microsoft VC++ 2005 64-bit inline assembly *will not* be supported and they have no active plans to add it in a future release. That matters to me because of my emulators, I use it. And for my PearPC 64-bit port I would definately have used it. I'm still trying to figure out of the Intel C++ 8.1 64-bit compiler supports that feature.

Never used Smalltalk, the syntax looks too foreign to me for my tastes.

COBOL.NET, now there's a winner :shock:


Thanks,
_Shawn
Posted on 2004-10-29 19:49:00 by _Shawn
I like C#. It is more flexible than Java and it has better libraries (there is no Queue class in java) and more helpful constructs like foreach and properties with get and set variants, which makes code more readable, and operator overloading. It also has always had enums, which java only just got in 1.5!
Posted on 2004-11-01 18:57:30 by stormix