Link to home
Start Free TrialLog in
Avatar of Carl Sudholz
Carl SudholzFlag for Australia

asked on

.NET/C# or Java, Which would you choose?

Experts,

I'm having trouble deciding between learning .NET or Java.  What would you do if you were me?

I am at a crossroads in my software development career. I have been writing applications in MS Access and Excel, and now have the desire to move out of the office framework to develop self contained, distributable desktop applications. My apps will do much the same thing as in MS Office, but without the need for MS Office.

I am very proficient in VB6 (MS office 2003 development - Access and Excel).  At uni I did lots of Java(2) and a little C++.  So I'm familiar with both, although I have forgotten much of both.  That said, I expect I'll pick it up again quickly once I get back into it.  

My applications have the following traits:
- They are small and self contained (less than 100 objects typically)
- Often they will be data driven requiring connection to a DBMS (mySQL)
- Distributable as desktop applications (mobile and web development is not in my scope but will be in the future)
- My  clients are mostly (90%) MS Windows users, but it would be nice to have the applications work on Mac too.
- Be in an object orientated language
- Utilize open source code / applications / plugins etc
- Ideally, I would like to import / utilize code from my MS Office applications in my new applications.

I have narrowed the choice down to either Microsoft's .Net (C# / Visual C#) or Sun's Java platforms.  I am familiar with both, and they are both common and serve my purpose.  However, I'm not sure which to choose.  

So, if you where me,which language would you choose to develop your talents in and why?

Thank you.

Carl
Avatar of for_yan
for_yan
Flag of United States of America image


If there is a possibility that you want to move beyond MS with your applications, then I believe java would be a better choice
as it is more general.
You will not be able  to utilize code form MS - this would probably be the only issue among your points which
would be a problem. There are still some good classes which will help you to read
and manipulate with some office files.
For other points Java should be OK.
 

Avatar of kaufmed
You will not be able  to utilize code form MS
Not entirely true. There is the Mono Project  : )
Avatar of Carl Sudholz

ASKER

Thanks,

I'm leaning towards the .Net framework (C# and Visual Basic .NET) because:
- My core client base is Windows OS (portability for me is a low priority).
- Visual Basic .Net means I need not learn a new syntax as I can achieve all I need to without do so.
- It appears the Microsoft tools (studio / studio express / SQL express) are more productivity (quick clicks / automated wizards etc) orientated (which suits me) than Java (productivity is a high priority)  
- .NET is more compatible with my existing knowledge and code in Visual Basic 6 (saving considerable rework)
- In terms of functionality there appears to be very little difference between .NET and Java (for me anyhow)

Here are a bunch of useful comparisons on the topic.
http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp
http://www.techrepublic.com/article/the-choice-between-c-and-java-is-a-platform-issue/1058718
http://stackoverflow.com/questions/58595/should-i-learn-c-or-java
http://www.jvoegele.com/software/langcomp.html
http://improvingsoftware.com/2009/04/19/a-managers-retrospective-on-the-c-versus-vbnet-decision/
http://www.vbrad.com/article.aspx?id=63
http://www.vbrad.com/article.aspx?id=65

Extra thoughts are welcome.

Thanks
If your priority is to turn out the apps more quickly then it is better to
stick to what you knoew better - no questions about it, especially
 if other platforms are not so essential to you.
I had the impression that you had also long-term goal to diversify your
skills and "develop your talents".
If the speed is big priority and you are proficient in VB6 - no question
.NET will be faster for you.
SOLUTION
Avatar of Jacques Bourgeois (James Burger)
Jacques Bourgeois (James Burger)
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
mostly because the Visual Studio editor for VB is a lot more convivial than the C#
I find it to be about the same.

AFAIK, all of the VB6 functions have been ported into VB.NET, along with having the .NET-specific stuff available. This means that your learning curve will be really low to start off. I would suggest picking up the .NET-specific stuff up, though, because I would expect MS to drop the old VB6 style in future versions of VS. For the time being, you shouldn't have to focus much on the language itself to get up and running. Rather you can focus on learning how apps are deployed and how the newer XML configuration system words (over the old .ini system, although you can still use .ini if you really love it). You can also jump into web development if you like, since the upper-end versions of VS (and the targeted Express editions) allow you to use the same language you love (plus a little HTML) to quickly develop web applications.
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
hi!

If you are going to work on windows OS, then definately go for Microsoft's .Net (C# / Visual C#)
Because you would save lot of unnecessary trouble and waste of resources trouble shooting Java on OS.
Thanks!
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thank you everybody.  .NET it is.  

I will begin with VB.net on and move into C# in the long run. This will manage my learning curve while still allowing me to output some useful stuff.

In the space of programming platforms, Microsoft certainally have come a long way in the past 10 years (since I was at uni).