C# or Java...

AntiFreze

Golden Member
Oct 23, 2007
1,459
0
0
I have extensive knowledge in HTML, CSS. Intermediate knowledge in javascript, php, asp. I have worked doing some elementary stuff in visual studio with .NET 2.0 (adding pages, editing sitemaps, creating basic usercontrols).

I'm ready to start on my developer path. I just don't know which language to pursue: C# or Java. My company uses both, but I'm trying to think about the long term. Obviously i'll keep up to date with the newest techs, but I don't know which one to pursue for now.

Can anyone provide some feedback our your personal opinion on which one you think?

Thank you.
 

imported_Dhaval00

Senior member
Jul 23, 2004
573
0
0
Some of my views might be opinionated, but I am sure the folks from the Java realm will surely voice their concerns. To start off, I come from a M$ world.

Since you already have experience with .NET, I'd suggest you go with C# because you already know the tools. The learning curve won't be as steep. In the long run, you want to pursue both Java and C# - you'll be able to sell yourself better (and probably enjoy the challenge, too). As far as the languages go, the basic concepts are the same, so transitioning from one to the other shouldn't be hard.

I am a fan of C#, but there is so much more to programming than just C# and Java. All my manager needs to do to make me feel like a newbie is to put me on a new project ;). So your "long run" is myopic in the sense that with programming you'll have to be ready to adopt the next best thing. i am sure others here will come up with smarter responses.
 

Rangoric

Senior member
Apr 5, 2006
530
0
71
If you want the broadest range of things look into Java, you can easily pick up more C# as you go.

If you want to more easily build on what you know, look into C#.

IMO I'd look into C# because it builds on what you already know so you can get to a higher level of it faster.

Also, C# would be better if you plan to go Server side as Silverlight isn't as widespread as JMs, so if you want to do rich client side stuff do Java.

Overall I like C#/VB/C++/even Javascript more then Java so while I'm trying to be unbiased, pick where you want the code to be used (Web Servers, In a Browser, etc) then a language may present itself to you instead of having to guess which one :)
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Silverlight is going to gain traction for the simple reason that it relies on the same technology stack that drives the rest of modern Windows client and server development. So if you are a .NET programmer and want to do rich internet apps then you can either wade through action script, or just use what you already know. I expect thousands of developers to do the latter.
 

JasonCoder

Golden Member
Feb 23, 2005
1,893
1
81
Originally posted by: Markbnj
Silverlight is going to gain traction for the simple reason that it relies on the same technology stack that drives the rest of modern Windows client and server development. So if you are a .NET programmer and want to do rich internet apps then you can either wade through action script, or just use what you already know. I expect thousands of developers to do the latter.

You ain't just whistling dixie. ActionScript is fine and all (trying to be nice here) from what I've seen but it don't hold a candle to the .net fx. Want to manipulate the HTTP header to work with something like WebDAV or ATOM services? FUCK THAT! Want to do any sort of remoting at all? Well step right up and throw down $1500 for the software to do it.

Really Adobe, I don't think ms needs any help getting converts. And excuse my language, but it's really just absurd IMO.
 

AntiFreze

Golden Member
Oct 23, 2007
1,459
0
0
Thank you all for the advice. I think I'm going to build off what I already know and go with C#, but also keep up with java when I can.
 

postmortemIA

Diamond Member
Jul 11, 2006
7,721
40
91
Originally posted by: JasonCoder
Just found this... might be of some interest.

http://www.infoq.com/news/2008/12/Ja-NET (Java 5 SE JDK on .NET)

sorry, but that is useless. he is not gonna learn java through some nasty port. Sun's JDK is free, and so are top JAVA IDEs: Eclipse and NetBeans

as for OP, you'll learn the best when you do a real project, so be open to both C# and Java projects.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
as for OP, you'll learn the best when you do a real project, so be open to both C# and Java projects.

I wish that were truly feasible. If the attitude of hiring managers was "hey, I don't care what you've used in the past; just demonstrate your problem-solving skills and I am sure you can learn whatever you need to" then it would be. I have worked in both Java and C#, as well as C and C++ on Windows and Linux. But when I need to find a job, as I recently did, two choices pop up: take a junior position in the Java world and starve, or go back to what I have expertise in and make a decent living. Things are too damned complicated now for anyone to remember everything, and all the average programmer needs is access to the web to figure out anything in twenty minutes. But in an interview the first damn question you'll be asked is always a variation on "What is the fourth argument to FooApi.BarClass.DoSomething() and why is it important?"

Stupid, but there it is.
 

postmortemIA

Diamond Member
Jul 11, 2006
7,721
40
91
If you have read original post, you'd see that OP already has job in company that uses both C# and Java.

Where I work it is often case that people are asked to step up and learn something new.

I agree, during the hiring process, employers are too picky and have a huge wish list. What they often get is people learning along the way.
 

imported_Dhaval00

Senior member
Jul 23, 2004
573
0
0
Originally posted by: Markbnj
as for OP, you'll learn the best when you do a real project, so be open to both C# and Java projects.

I wish that were truly feasible. If the attitude of hiring managers was "hey, I don't care what you've used in the past; just demonstrate your problem-solving skills and I am sure you can learn whatever you need to" then it would be. I have worked in both Java and C#, as well as C and C++ on Windows and Linux. But when I need to find a job, as I recently did, two choices pop up: take a junior position in the Java world and starve, or go back to what I have expertise in and make a decent living. Things are too damned complicated now for anyone to remember everything, and all the average programmer needs is access to the web to figure out anything in twenty minutes. But in an interview the first damn question you'll be asked is always a variation on "What is the fourth argument to FooApi.BarClass.DoSomething() and why is it important?"

Stupid, but there it is.

Can you please elaborate on your experience.. maybe even in a separate thread? I am sure many are willing to find out what experienced professionals are going through, especially given the economic situation. I mean I see lots of hiring activity within my firm, but it'll be nice to step into someone else's shoes and try and take some pointers away.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Originally posted by: postmortemIA
If you have read original post, you'd see that OP already has job in company that uses both C# and Java.

Where I work it is often case that people are asked to step up and learn something new.

I agree, during the hiring process, employers are too picky and have a huge wish list. What they often get is people learning along the way.

I did read it, of course. My point is less about the OP's ability to be open to multiple languages now, and more about the way that middle management works to pigeonhole developers into specialties.

Can you please elaborate on your experience.. maybe even in a separate thread? I am sure many are willing to find out what experienced professionals are going through, especially given the economic situation. I mean I see lots of hiring activity within my firm, but it'll be nice to step into someone else's shoes and try and take some pointers away.

Ok, I'll give that some thought.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Knowing it like I do now, I really don't understand why other languages even survive.

Probably because there's a lot of us that don't have a JVM installed, from a user's perspective I absolutely hate java. And now that Mono's become such a big part of Gnome I've already got that installed so why should I need another cross-platform virtual-machine?
 

Train

Lifer
Jun 22, 2000
13,584
81
91
www.bing.com
Java used to be the future, then it stalled. I'm not sure who dropped the ball, the developers, the vendors (like IBM, who was pushing Java hard for a while) or Sun themselves. But nowadays it just seems too fragmented. Too many options, too many diverging concepts and frameworks. No visible roadmap.

C# came along and in a shorter life span has achieved what Java was meant to; an awesome, multi platform, high performing, rapid development, managed environment.

In the coming years If Sun or somebody doesnt take the reins of the Java community and start doing some serious moves forward, it wont even compare to C# anymore. I see a lot of programming blogs out there describing Java as "plateaud" when looking for something to compare C# to.
 

evident

Lifer
Apr 5, 2005
12,128
748
126
i <3 java, but i never touched C# so i can't compare. iheard they are similar though
 

imported_Dhaval00

Senior member
Jul 23, 2004
573
0
0
I don't know... from an engineering perspective, I want to know Java, too. But I have been caught up in all things M$ - at the end of the day, the amount of integration that is done at the development level in M$ products is highly commendable. Surely, not everything is bug-free, but just being able to do so much across the board is just amazing. I mean C# is just a means to port into other technologies and concepts - SQLCLR, Generics, ASP.NET, WPF, Forms, Integration and Reporting Services, etc. And I know people who use Visual Studio on a daily basis can relate.

My pet peeve is that M$ is flooding the market with too many technologies which is not bad by itself, just overwhelming. But at the end of the day, when you engineer products and see the wheels turn, the sense of satisfaction is worth the pain. So, I guess you should also weigh in the factor that from a future perspective as to how do you want to manage your career. You could master C# and porting over to something *based* on C# could turn out to be pain-free. At least that's my experience - you could argue that mastering C# could expose you to more technologies and could lead to more skills-diversification?

I'd like to hear from the Java folks as to how the language allows for diversification (beyond the cross-platform stuff).
 
Sep 29, 2004
18,656
67
91
Originally posted by: Dhaval00
I'd like to hear from the Java folks as to how the language allows for diversification (beyond the cross-platform stuff).

I'll answer your question, but I don't know what you exactly mean by diversification.
 

imported_Dhaval00

Senior member
Jul 23, 2004
573
0
0
I meant more along the lines of growth - to be specific, easier growth. For example, if I know C# constructs, I can easily write SQLCLR functions, stored procedures, etc. I don't have to go *learn* a new language from scratch in order to exploit the SQLCLR concepts. At the base level, all that you learn about C# (assemblies, events, statics, etc.) is still valid inside SQLCLR.

The same concept (of building on top of C# skills) can be expanded to things like WPF, WF (I am not including WCF because that is just a glorified wrapper), Integration Services, etc. Overall, in the end, if I am up-to-date with the concepts, I have the liberty to *sell* myself better - that's what I meant by diversification. Sorry for not crystallizing.

Does that make sense?
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
I think the earlier word that you used, 'integration' is more applicable than 'diversification.' I work in both worlds, Linux/FOSS and MS, and what you see with MS products is the benefits of a single company driving a uniform, platform-wide vision of how things work together. The CLR, CTS, and CIL are probably the single greatest advance in development technology in more than twenty years. Visual Studio is easily the best dev environment that we've ever had access to. The whole thing is incredibly well thought out. Which is not to say that the class framework that everyone identifies with .NET is perfect, but the underlying technologies on which it rests are a thing of beauty.

The FOSS side of the world is impressive simply because so much of it is free, and works as well as it does (I pay over $1000/year for the privilege of access to all MS's stuff), but there are a lot more warts and incompatibilities.
 

JasonCoder

Golden Member
Feb 23, 2005
1,893
1
81
In my experience the Java camp is more open to 3rd party app infrastructure. Whether it is O/R tools (hibernate came from the Java world), app servers or what have you. This could be viewed as simultaneously a strength and a weakness because Java also seems very fragmented.

Compare that to the MS world where you can (not necessarily should) run on everything end to end completely MS made. Sometimes I think it can make your average MS dev too timid tho, with respect to 3rd party tech.

Full disclosure: I'm a C# dev.