Some flavour of C is the majority. C, C++, VC++ and then there are other variations that I don't know the names off off hand.
Why doesn't everyone use C#?
It has many advantages, but some major disadvantages.
1. Currently, its platform specific. To be even more specific, windows with the .Net framework installed on it.
Now, in the future we should see .Net frameworks ported over to other platforms. There is a java based .Net framework for OS X either out or comming soon. There is also at least one version for Linux being developed. Also there is a
very stripped down version of the framework on a linux distrobution for aspx (ASP.Net) support.
Now, this disadvantage quickly becomes an advantage. Once the framework spreads, your app will work on all platforms universally. Now, I think there are going to be some down n dirty OS specific incompatabilities... IE, if you make a program to do disk management for PC, many options may not have Mac equivilants.
Currently (that I'm aware of), you have to write C for a specific platform, then port over any system specific changes. Not a
huge deal if done properly using OOP principles.
2. C# is a higher level programming language. You can write your own OS in C (or C++). It can do that. It can get into memory and start playing with really fine stuff. Not as fine as Assember
:shudders:
I'd assume, but much lower than .Net
You can make your own bootable programs in C. Unless they come up with a .Net framework for a computers Bios, I wouldn't bet on that sort of benefit for C#.
3. Speed.
All optimizations and competent programming granted, .Net runs, on average, just a little faster or a little slower than vb6. vb6 can be routinely trounced by the various flavours of C.
So, if you NEED more speed than .Net can give, C or C++ might be a better fit.
There is also speed of programming. From what I gather, C's lower levelness comes at a huge price. You have to start at a lower level and work your way up. Apparently C++ helped in that aspect a bit and I'm sure there are classes and packages out there to help you get some rapid development in.
I have negligable experience programming in C, so I can't rightly compare. But since VB6's advantage over C was its speed of development - especially database, and .Net is more comparable to vb6 in its application development, I'd say C# would be faster to develop in than C or C++.
I don't think C or C++ really has .Net's componant drag n drop features. I know VC++ had a flavour of it and it was clunky compared to VB6.
4. .Net is a single language.
.Net is basically a single language with VB, C#, J#, etc being more like dialects within the language.
I don't know much C# at all, but I can look at a code example in C# and know immedietly whats going on. I gather that C# has a few more options that VB doesn't have directly, but not too many.
Thats not all. ASP used to be an internet scripting language. Now its a .Net language. Better yet, you can code ASPX (or ASP.Net) in VB, C#, J#, etc.
Once you know C#, you all you have to do is learn the internet specific functions, procedures and componants and you can program in your C#.
****
Whats going to happen when Microsoft releases its' .Net native Operating System?
Right now the .Net framework itself is like an inbetween laying ontop of the OS. This is a gobetween.
I'm imagining the speed once its native...