“Microsoft’s new C# programming language is gaining in popularity, with usage nearly doubling in the last six months, a new study shows. C# is Microsoft’s new Java-like language and a crucial piece in the software company’s .Net Web services strategy, in which software is made available over the Net to be accessed by multiple devices, such as PCs, cell phones and handhelds. Twelve percent of all North American software developers have begun using C#, up from 7 percent six months ago, according to a new survey by market research firm Evans Data. The firm also predicts that the number of programmers using C# will double to 24 percent in the next year.” Read the rest of the report at News.com.
http://www.heise.de/newsticker/data/cp-04.05.02-009/
…that these new C# programmers are mostly VB programmers and people who are commanded by their employer to do so.
I think that C# is a nice language, but every time you hear reports like this, they either directly or indirectly say that C# is stealing away Java programmers (since C# basically is Java and was made to squash Java). I do not believe that such is the case.
Having used both, I find web programming in Java very straight forward. I program in Java and use HTML to present what I have created (whether it be applets, JSP or Servlets). With C#, it isn’t quite that clean.
As I said, C# is a nice language. C# is an outstanding replacement for VB, but not a really good one for Java in my opinion.
This sounds like bull we hear about the XBox.
MS’s .Net strategy is failing. The consumer half is already dead. The business half certainly isn’t dead, but the days of jumping on the latest MS ‘bandwagon’ because it is ‘gaining’ momentum’ are over.
Businesses are in no mood to sign up for something that is little more than an attempt by MS to save their shrinking guaranteed revenue streams from their desktop and office suite monopolies.
Unless you are diehard MS fanatic or still run your business with the assumption that MS is always the safe bet, C# and .Net are worthless.
The future lies in open standards that run on MacOS X/Linux/Windows.
C# is a great langauge, I constantly get angry at Java for being lacking features, and surprised to see them in C#. .NET is very nice indeed, and you can do quite a lot with it. I would recommend everyone who is interested in these things to give C#/.NET a try and see for yourself.
Although the language looks nice & has a bit more pragmatism than Java (ie native code), I can’t take it seriously till it is available from several other vendors for several other OSs. I don’t want to waste my life being an MS slave, been there done that. Again as with Java, it’s not just the language, its the potential infinity of the class libraries. I lost interest in Java after 10000 API were added, I have no interest in C# outside the language and a basic x platform kit I could use outside MS.
Personally, I very much like C# as in “programming language”, not necessarily as in “Ms bashing ideology”.
Nothing else to add. Thank you for reading this.
If you think that C# is basically Java, then you have another thing coming. C# is similar to Java but fixes the mistakes that the Java creators made. It really is an excellent language and is only dismissed by those who do not want to give Microsoft any credit.
As for the comment about web development with C# not being “clean”, I guess you have never researched “ASP .NET”. It is very clean and expands a lot on Java/JSP.
-G
I imagine most of these new C# programmers are former Win32 programmers who used to use C++ and VB. Big deal. I suppose it’s better that those programming for Windows move away from travesties such as C++ and VB and move to C#.
I don’t know what all the fuss is about C#. Or Java for that matter. .NET itself it cool, yes. But as languages, both C# and Java are rehashes of very old ideas with more and more money wasted on hyping them.
Personally, there’s nothing in C# and Java that I need that I don’t already have in Smalltalk and Common Lisp. A lot of just “average programmers” (so called by MS and Sun in their language visions) find C#’s and Java’s resemblance to C/C++ to be the most important feature that they have over Smalltalk and Common Lisp. Fortunately for me, the damage done by C/C++ syntax is reversible. But as long as other people like C#, to each her own.
JJ, there is already another compiler vendor. See the GNU Mono [1] project, which has already done significant work towards creating an open-source .NET runtime and C# compiler. The C# compiler is largely done, and works on Linux and Win32, and compiles itself. Go play with it, and have fun.
[1] Mono project: http://www.go-mono.com/
And I think that Tao/AmigaDE is better than the CLI just because is something released before that is already working on most platform w/out many problems
Shinnable languages are already something you can find in gcc…
Java is getting better and is mature
And I just like C and is ok for my needs (and java,python,perl,ruby etc etc etc seems a bit more free than C# or the .NET)
Are they kidding? 24%? Of programmers? There’s no way. Period. End of story.
Even a beautiful, compelling language couldn’t grab 24% of programmers away from whatever they’re entrenched with now. This is baloney, pure and simple.
How did they arrive at this “sample”? I’d like to know.
-Netanyahu
http://www.go-mono.com/c-sharp.html
Employee: here it is:
1) It’s better overall than Java.
2) It’s a Microsoft product.
Boss: I said a list !
Employee: here it is:
1) It’s better overall than Java.
2) It’s a Microsoft product.
3) It’s better overall than Java.
4) It’s a Microsoft product.
5) It’s better overall than Java.
6) It’s a Microsoft product.
[snip]
I love C#. I don’t give a fzuck one way or the other about Microsoft. I’ve met plenty of knee-jerk Microsoft lovers — mostly low-rent VB hacks — and God knows there are knee-jerk Microsoft bashers around everywhere.
Whether you love or hate Microsoft has NOTHING — and I mean absolutely NOTHING — to do with an objective evaluation of C# as a language.
I am a coding fool. You’ll have to take my word for it, but I consider myself an expert Java, Delphi, C++, C, C#, and Delphi programmer. I write code on Windows, Linux, and Mac OS X. (Never on any other Mac OS, though.)
I used to love Java, and I still think it’s a great language, but its only technical merit over C# is that I can have a single codebase run on most platforms with a decent JVM. Yes, C# ties you to Windows, and depending upon your requirements, that might be a very bad thing. If being tied to Windows is a problem, then hey José, *don’t* use C#. Use Java. Other than that, C# is a better Java than Java.
Some reasons why:
C# has a single unified type system like Smalltalk. There is no awkward division between primitive types and objects. (This rules. Really it does.) Performance is maintained through a mechanism called boxing. Look into it.
C# has value types called structs, which are like classes except that they live on the stack and die immediately when they go out of scope instead of waiting for garbage collection.
C# has superior iteration mechanisms using interfaces like ICollection, etc. and the foreach construct. (Although it’s still not as good as the internal iteration in Smalltalk.)
C# assembly/namespace “mechanism” is much less of a pain in the ass than Java’s packages. Take it from someone whose worked extensively with both, but if you don’t believe me, take C# for a test drive and see.
C# has properties as a first-level language construct. You may think this is not necessary, but when your language plugs into an IDE it can be extremely useful.
If you are targeting the Windows platform and have no cross-platfrom needs, C# is a better choice than Java. If you need cross-platform capabalities, Java is still a great choice. Remember: I didn’t say Java sucks. I just like C# a lot better.
I think VB is an absolute piece of shit. And I say that because I’m the best VB programmer I know. I know that hunk of shit backwards and forwards. Because of that, I feel I can criticize it with some authority, because I know whereof I speak. I’m sorry, but if you’ve never worked extensively with C# than you have to admit your opinion of it is somewhat suspect.
Cheers.
I just noticed I listed Delphi twice. I used to really love Delphi.
reziThat’s excactly what I thought when I saw that
It’s funny what you can do with numbers, depending on what you want to express.
& should be imprisoned for his ill eagle hostage taking
i went to the launching of .net in my country. i find it funny that whenever they mention that the .net framework will be cross platform, they always point out that it will work on windows, pocket pc’s, and mobile phones. all of it to promote their own ms platforms (yes ms makes cell phone software now). sun also promoted java as a cross platform (or was the word multi platform?), meaning it will work on windows, linux, bsds, macs, palm, pocketpc, mobile phones, etc. i will point out that the .net framework is being ported to linux (mono) and to mac (by ms, but didn’t say when), but i doubt it will work well with those platforms. and ms says only development on ms OSs will be supported.
i’m sure most java programmers would like to try out c#. but that’s about it. just a try out. i’ve talked with a lot about the cross platform thing, and they say “what the #@$$?”
just goes to show how microsoft believes they are the only software company in the world.
Although VB sucks, it still does the job of being a language that makes creating reasonable Windows apps fairly easy and it did create a hugely successful component industry that will still be around for a long time to come (long after VB is dead).
Like I said before, once MS Office .NET comes out (which will completely integrate the Common Language Runtime) VB and VBA will be history and you will be able to do everything in C#, J#, Eiffel, Ada or anything you want.
I have heard some Linux people pine for a development tool that would let them create X Windows GUI applications as easily as VB does for Windows (of course they want a proper, clean implementation with a real language though). Does Kylix fill this role now? I don’t really know and I haven’t kept up with this issue on Linux but the last time I checked there didn’t seem to be any kind RAD tool available.
If you think that C# is basically Java, then you have another thing coming.
No, I’m not mistaken. I worked at Microsoft when C# was being created. It was really funny. Before MS lost the lawsuit with Sun, J++ was going to be the main new centerpiece to VisualStudio. There were presentations floating around that claimed VB would take a back seat (or disappear all together) and that J++ (or rather Java) would be the premier coding tool of VisualStudio.
After the lawsuit was lost, however, a Microsoft-owned Java clone was designed and created. It ended up being called C#. Sure they made improvements on Java, but so has Sun with it’s latest Java SDK.
C# is a great language for certain things. I have stated that. It’s greatness comes from two places. Java and Borland’s Delphi and C++Builder tools. If I am going to write a desktop application, I will do it with C#. But web programming with it sucks.
As for the comment about web development with C# not being “clean”, I guess you have never researched “ASP .NET”. It is very clean and expands a lot on Java/JSP.
-G
On the contrary. I have created several custom controls for the company I work for and have dealt a great deal with ASP.NET.
That is exactly what I’m talking about. Why the hell should I have to use ASP.NET in order to make a web app in C#? Java doesn’t have that requirement.
I will admit that the VB style environment for writing ASP.NET apps is a cool RAD environment, but I thought this discussion was about C#. Not ASP.NET.
As I’ve said before. I like C#, but only for Windows desktop application programming. Not for web programming.
If I create a very simple web page using C#, I also have to deal with ASP.NET and either JScript or VBScript and I am mostly tied to Windows and am tied to expensive web server technologies. I can do the same things with Java, only it’s free, I am not limited to any platform, and can use a wide variety of web server. This is why I think Java is better. It is more flexible.
For a beginner who wants to write programs for the web, it is much easier to learn one language (Java) than to have to learn three or four (C#, ASP.NET, VBScript, JScript) to get the same job done.
Yes, I have.
C# is a great langauge, I constantly get angry at Java for being lacking features, and surprised to see them in C#. .NET is very nice indeed, and you can do quite a lot with it. I would recommend everyone who is interested in these things to give C#/.NET a try and see for yourself.
Yes, it is very easy to fork over several thousand dollars for development tools to “give C#/.NET a try”. If you wan’t to actually put C#/.NET to use on the web, it’s a lot more costly than that.
By the way, what features are missing from Java exactly?
When I attended an MSDN conference last year the presenter said that VBScript was completely dead in ASP.NET and that if you did anything in it you would be using pure VB.NET, C#, J# or whatever for your entire application because ASP.NET uses the Common Language Runtime (which is almost the whole point of it, right?). JScript is still supported as a core .NET language, but not VBScript by any means. I distinctly remember the speaker making this point very clearly. I am not hallucinating.
Sooo…is it actually plain old vanilla ASP that you are talking about, or what? What you are saying about ASP.NET in this regard isn’t making any sense to me at all.
An example of using C# directly within ASP.NET:
http://www.123aspx.com/resdetail.aspx?res=912
Camel, you have some explaining to do.
This is a better code example that shows both C# and VB.NET side-by-side, to run within ASP.NET:
http://www.123aspx.com/resdetail.aspx?res=245
“Yes, it is very easy to fork over several thousand dollars for development tools to “give C#/.NET a try”.”
Microsoft isn’t the only one to play with FUD. Several thousand dollars is a complete lie. Here, download the .Net SDK for *free* from Microsoft:
http://msdn.microsoft.com/downloads/default.asp?url=/downloads/samp…
This includes the full framework, documentation, examples, and the command-line comiler. Or, if you’d rather use an IDE with GUI builder, you can buy the standard edition of C# for a measly $90:
http://www.amazon.com/exec/obidos/ASIN/B00005RV4X/qid=1020634750/sr…
If you don’t like C# and you don’t want to use it, fine, I’m not one to say what tools you must use. However, if you’re a professional developer, you’re only doing yourself a disservice by burying your head in the sand and chanting “C# is evil!”
A good developer is always educating himself about new ideas and technologies. Considering C# and .Net are a major focus of the biggest software company in the world, it would be irresponsible for a professional to not at least learn about it.
C# has a single unified type system like Smalltalk. There is no awkward division between primitive types and objects. (This rules. Really it does.) Performance is maintained through a mechanism called boxing. Look into it.
I always hear that argument from the “Java isn’t object oriented” camp, but it is rediculous. If I want to store an int in memory and nothing more, why would I want to generate the overhead of creating an Integer object? If I do want an Integer object, Java provides one for me. If, however, I don’t need an object but only a primitive type, Java allows me to better utilize my resources by declaring a primitive.
Java was originally designed to be used where memory is a tight commodity. Frivilous use of memory is fine on a computer with a gig of RAM, but is ridiculous in other applications. Frankly, I’m glad that the creators of Java had the forsight to include both primitive types and class wrappers of these types. That provides me, the programmer, the option to use whichever I prefer.
I think VB is an absolute piece of shit. And I say that because I’m the best VB programmer I know. I know that hunk of shit backwards and forwards. Because of that, I feel I can criticize it with some authority, because I know whereof I speak. I’m sorry, but if you’ve never worked extensively with C# than you have to admit your opinion of it is somewhat suspect.
I couldn’t agree with you more on VB. I had to program in it for over a year before. What a nightmare.
I disagree with your comparisons of Java and C#. Like I have said before. C# is a great replacement for VB (then again, so is a rancid fart). C# is good for Windows programming. No, it is great for Windows programming. I just don’t think it comes anywhere close to what Java offers in the realm of internet programming and cross-platform support.
Whether you love or hate Microsoft has NOTHING — and I mean absolutely NOTHING — to do with an objective evaluation of C# as a language.
True, if a language was seperate from it’s implementation, and if C# wasn’t about it’s implementation and its future.
” A good developer is always educating himself about new ideas and technologies. Considering C# and .Net are a major focus of the biggest software company in the world, it would be irresponsible for a professional to not at least learn about it. ”
WTF? New technologies? C#???
C# is absolutely worthless. I’m not in business to prop up MS’s shrinking profit margins. And I’m not in business to tie my entire business software to Windows,IIS,IE,Exchange,Outlook,Media Player, and every other piece of garbage MS product.
And the fact that some clown thinks C# is just keen changes nothing for me or the vast majority of business out there.
Camel,
C# has primitive types in the “classic” sense. It’s just that they are semantically equivalent to objects. For instance:
int i = 3;
i++;
These are primitive “value” types — no objects here. But I can say:
int i = 3;
MessageBox.Items.Add(i.ToString());
When the compiler sees i.ToString(), it “boxes” the variable i into its “pure object” equivalent.
Boxing is what allows primitive types to remain efficient while at the same time remaining inside a single type hierarchy. I don’t have to write special case code for my primitive types to store them in collections, etc., as I would with Java.
“WTF? New technologies? C#???
C# is absolutely worthless. I’m not in business to prop up MS’s shrinking profit margins.”
Relax, pal. I’m not claiming C# is the best thing since sliced bread. I’m not saying you should be using it. And I’m certainly not saying that because it comes from Microsoft it’s great.
When I say “new technology”, I don’t mean “new” the way fire or the wheel were new in their time. But as a way of developing Windows apps, this is in fact a new way to do it. If you don’t want to develop Windows apps, fine, don’t.
My point is that as a professional, you’re being negligent if you don’t even take a look at it. Many anti-C# posters are basing their arguments purely on the fact that it comes from Microsoft. I don’t personally like Microsoft, but I do like to reach the 95% of the world running Windows at home, and if C# makes my job easier or my products better, then I’d be stupid to ignore it.
I’d be much happier working with someone (or buying a product or service from them) who tried C# and .Net and decided it didn’t fit their needs, rather than somebody who just turned away screaming, “Bill is Satan!”.
Educate yourself, that’s all I’m saying. Many of you have read up on or even tried C#, and decided it wasn’t for you. Great – I can totally understand and respect that.
“Yes, C# ties you to Windows, and depending upon your requirements, that might be a very bad thing.”
How can anyone read that sentence with out laughing out loud?
Unless you’re just a Window’s home coder who wants to play with the latest MS toy, the days of entrusting your entire company to just one vendor are over.
The consumer half of .Net is already dead in Hailstorm.
The biz half isn’t dead but has been met with lukeware reaction from the IT world thanks to the multitude of left over 1990s era “no one ever got fired for choosing MS” IT folk. Thankfully they’re a dying breed.
<SERMON>
Wildly emotional rants aren’t necessary Tuttle, really. Please calm down and maybe give us some technical reasons why C# is so absolutely worthless, if you can.
If you can’t back up your opinion with facts and just resort to idiotic name-calling then your opinion is worthless and you are not doing anything to contribute to the quality of this forum. Just because Microsoft has a lot of popular products does not alone constitute proof that they are garbage. If they are then tell me exactly why and don’t ask me trust in your sage wisdom, OK?
BTW, I am a Microsoft platform developer but I am doing what I can to learn more about the Java world because I accept the fact that Java is so entrenched that it is always going to be fairly popular and I may just have to write some code that will run on a Nokia cell phone some day. Who knows? If you think that .NET is going to fail and that no one wants it in the face of all these reports to the contrary then you are plainly in denial, IMO.
When someone gets dogmatically religious about technology then something has already gone terribly wrong. Forget the dogma, OK? We don’t need it. Give us facts.
</SERMON>
is an evil multi-headed hydra that eats babies, writes buggy software, and steals your blanket. Come on, folks. Again, I’m no Microserf, but I swear it seems like some of you actually take the position that it’s impossible for Microsoft to create anything worthwhile at all. Microsoft is the devil, according to your religion. The source of all evil. People, this is irrational.
We’ve been highly productive at our company with C# and ASP.NET. We love the language, the IDE, and the software we’ve created with it, and so do our customers.
I am a professional programmer. Why was I not asked what language I am using? These type of stats are always inaccurate and can not be trusted.
Besides, what is the point of these stats? To hear the C# is growing in use should not be the a factor in what language a programmer should be using for any given project.
Ignoring Gil Bates name calling response.
What is bizarre about responses like Phuqker’s is even MS themselves don’t make such claims. MS’s publicly stated goal of the whole .Net/C# Java ripoff is to turn the Internet into a giant tollbooth controlled by themselves. They want a tax on every financial transaction that takes place on the net, banking, music, business to business, anything. All running exclusively on Windows servers and Windows clients.
So excuse me for finding no use in a single platform proprietary language that is nothing more than a tweaked ripoff of Java.
Thank god a half of the .Net nightmare has a already failed with Hailstorm and the XBox.
If it doesn’t run on Linux, MacOS X, (insert platform), it is useless. Name calling doesn’t change that fact.
All I see in your little rant are lots of opinions with virtually nothing in the way of facts to back them up, Tuttle. I think we would all appreciate it if you would stop trying to sell us your dogmatic opinion as fact. It is not fact and it is not even worth engaging your unsupported opinions in argument because there is nothing to be gained as you have no prestige worth taking whatsoever, IMO.
For our sake, please try to learn the difference between the two, OK?
“we would all”
“our sake”
???
C# appears to be a divisive issue, simply because it’s a Microsoft product. My personal philosophy is to use (or recommend to those who must make the decision) the best tool for the job at hand after evaluating all the options. When the decision has been mine, I have sometimes chosen tools from Microsoft and sometimes not. When it came to Windows-specific development, I used to be a foaming-at-the-mouth, fanatical Delphi developer. Now I think Visual Studio.NET/C# are superior to Delphi for Windows development. (Odd. It’s the first time I ever thought a Microsoft development tool was the best tool for creating Windows applications.) The company I’m working at now is a Microsoft shop. That’s their decision, not mine. The only non-Microsoft tool we use is Python, which all the developers love. For my own personal web development, I used Apache/PHP/MySQL.
My point is to show that discarding Microsoft simply because it’s Microsoft is absurd. The company I’m at hasn’t been hexed by going the Microsoft route, although I’ll admit it’s expensive. I probably wouldn’t have done it were it up to me. But if someone else is paying the bill, Microsoft’s development tools are a joy to work with.
IBM and Nokia. These are staunch Java supporters, so I think Java has still a long lease on life.
“If it doesn’t run on Linux, MacOS X, (insert platform), it is useless. Name calling doesn’t change that fact.”
Did Java run on Linux, MacOS, etc. from day one? I don’t actually know, but find it hard to believe it ran on every platform from the very beginning. I do know that the early MacOS implementations were so entirely crappy that “cross-platform” GUI development was pure fantasy.
Ximian is working on Mono, a .Net implementation for Linux (http://www.go-mono.com). No doubt Mono will eventually be available on the BSDs too, and possibly OS X. There’s been talk about Microsoft doing an OS X version themselves (they do develop software for that platform).
Again, C# may not be right for you, but given a bit of time it may be more cross-platform than you expect.
I can’t actually get anything out of these comments other than a bunch of lame slashdot posturing. It seems that someone let the linux zealots rule the roost, and now anything that isn’t a *nix product gets wasted in the forums.
Too bad really, since OSNEWS USED TO BE A GREAT PLACE TO GET GOOD INFORMATION FROM PEOPLE THAT KNEW WHAT THE *&@% THEY WERE TAKING ABOUT.
I’m not going to post an opinion on this, but for those who may be interested:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Dn…
“The company I’m at hasn’t been hexed by going the Microsoft route, although I’ll admit it’s expensive. I probably wouldn’t have done it were it up to me.”
And now they’re locked into to one vendor for their entire IT infrastructure. I guess any requirement for basic business sense isn’t a requirement for the decision makers at that company.
I keep on looking at C#, knowing deep down it’ll help when I next look for a job.
But each time I seea public variable with should be private with get/set methods, I back away a little.
But as I’ve only ever use it to create a little bug that crashed for no good reason (well maybe a good reason, but I’ll be buggered if I can work it out) on that funky game MS released I can not really give a fair analisys(sp)
Ohh Java supported just Solaris and Windows at the begining (just like .net only supports Windows & BSD , but now runs on everything from a Nokia phone to err big stuff with JVM’s .
mlk
mlk,
each time I seea public variable with should be private with get/set methods, I back away a little.
d00d, what are you talking about? Properties? Properties are not public variables. They are syntactic sugar for Java’s canonical get/set methods.
Java:
public class Watusi
{
private int i = 0;
public int getI()
{
return i;
}
public setI(int i)
{
this.i = i;
}
}
Watusi w = new Watusi();
w.setI(5);
C#:
public class Watusi
{
private int i = 0;
public virtual int I
{
get
{
return i;
}
set
{
i = value;
}
}
}
Watusi w = new Watusi();
w.I = 5;
These are functionally equivalent classes, even in terms of encapsulation. Both have a private variable i which in Java is accessed through the get/set methods and in C# through the property I. Please explain to me how this breaks encapsulation.