Learning Java or C# as a Next Language?
AlexDV asks: "I'm currently a second-term, CIS major at DeVry University. This coming term, I will have the choice of studying either Java or C# for my Object Oriented Programming class. Now I'm a diehard Linux user, so I'm slightly conflicted here. Which should I take?"
"I know C#.NET is primarily a Microsoft language, but, with Mono gaining momentum, it could very well become a major development platform for Linux as well. Novell has really been pushing it lately, and there seems to be a lot of very cool Linux apps being developed with it.
Java, on the other hand, is inherently more Linux-friendly due to its intentional cross-platform nature, but at the same time it doesn't really seem to be inspiring the same kind of developer enthusiasm as Mono. However, it's clearly not an insignificant OSS development language, with the recent news that Java has surpassed C++ as the #1 language for SourceForge projects.
Anyway, I though I'd toss that out there and get some opinions from other Slashdot readers. Any thoughts, advice, and/or rants are appreciated :)"
Java, on the other hand, is inherently more Linux-friendly due to its intentional cross-platform nature, but at the same time it doesn't really seem to be inspiring the same kind of developer enthusiasm as Mono. However, it's clearly not an insignificant OSS development language, with the recent news that Java has surpassed C++ as the #1 language for SourceForge projects.
Anyway, I though I'd toss that out there and get some opinions from other Slashdot readers. Any thoughts, advice, and/or rants are appreciated :)"
Well if you choose Java, then you can use free Eclipse IDE which is excellent. Otherwise if you choose c#, the ony decent ide is visual studio which will cost you a fortune.
Dont waste you time reading stupid sigs like this.
The language (whether C# or Java) is just how you express what it is you're trying to accomplish.
Now - With all that said: I'd take Java, for one simple reason: It's been around longer and there are more free resources out there to help you with it.
But remember - as much as 90% of what you learn in Java will apply to C# and vice versa, as long as you focus on the base language (and not API's like SWT, Swing, or WinForms).
Yes, the command line c# compiler (csc.exe) is part of the free .Net SDK, as are the VB.Net compiler (vbc.exe) and JScript compiler (jsc.exe). There's actually a lot of cool stuff bundled in there, including a debugger and an IL assembler and disassembler.
The exact opposite, actually. .NET has an excellent framework for web services.
I have to agree to Eclipse. I had some co-workers who had to learn Java for various courses they wanted to take, mainly for continuing education. They both came back with the same comment, Eclipse made programming fun again. Just because of that I would promote Java over C#. Most IDEs get in the way of programming, Eclipse actually helps, especially for new Java programmers. My experience with Visual Studio is limited to 5 and 6, and I never could get my head around it properly and always found myself frustrated with it, always going back to emacs.
The biggest problem with leaning Java is the class libraries. Eclipse makes it easy to learn them, especially with the ctrl-space completion.
Software Engineer & Writer of Military Science Fiction and Fantasy Blog: petermwright.com Twitter: WrightPeterM
It doesn't matter. As a DeVry student he gets a free software bundle that includes:
.NET
Windows 2000 (or was it 2k3?)
Windows XP Pro
Microsoft Office Pro
Microsoft Visio
Microsoft Visual Studio
and something else.
Price is not an issue in this.
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
And your reading cmomprehension is also pretty low. It is for the express version; For practical reasons, it is useless for the professional evironment.
.net framwork, and you will have to buy in order to continue development that includes the newest framework.
.net versions. so when you want to clients that may have upgraded, and some that haven't, you will need to keep a different branch of code, and a separate version of VS express, for each .net version.
Also, it won't work whjen the comeout of the next
Express editions are NOT compatible with different
So, the first hit is free.
The Kruger Dunning explains most post on
As for features that C# offers that Java doesn't... Wikipedia has a list and links to other sites with more. Whether or not you find these features useful or painful is a matter of taste, though. Many of the features of C# were created to make Visual Basic-style GUI creation easy and painless. C# offers operator overloading, true multidimensional arrays, delegates and unsigned types. Unless you have the pleasure of running in an entirely Java/managed environment, those unsigned types are a life saver (or at least a sanity saver). Delegates (multicast function pointers) make wiring up event-based GUIs a little easier. True multidimensional arrays are either invaluable or useless, depending on the kind of software you write. Operator overloading can also be useful, provided it's used carefully (and can cause no end of confusion if it's not).
I used up all my sick days, so I'm calling in dead.
"A Lisp programmer knows the value of everything, but the cost of nothing." - Alan Perlis