• 0

Java VS C#


Programming languages  

108 members have voted

  1. 1. Which language should I concentrate on?

    • Java
      19
    • C#
      89


Question

Hi guys,

I am planning to learn and certify myself with one of these languages. I am wondering which language you guys think I should concentrate on. Which language are there more jobs/opportunities/higher salary out there right now. I am living in Toronto, Ontario if that matters. The company I am working for is using a lot of Java applications which I have to support. So I was thinking if I concentrate on Java this would help me support the applications better. But I have a feeling that C# may be more popular than Java. I am asking programmers who have much more experience than me for their advice. Thanks :)

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/
Share on other sites

Recommended Posts

  • 0

Right tool for the right job. C# for windows platform, java for windows without need of hooks into the OS + any other platform.

VS is quicker to develop GUI apps, but only if the app is going to be run on windows. If you want to gui on multiplatform - java is the way.

yes I know about mono, but who really uses it?

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593785506
Share on other sites

  • 0

I would say both, but if you had to pick probably C#. This may not be true in other areas but where I live, the need for Java developers are going down and the need for .Net(C#) Developers are going up.

But if your company probably is not thinking about ever leaving the Java world, or if you are not planning to leave that company soon, stick with Java.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593785552
Share on other sites

  • 0

As a language, C# is superior to Java in many ways: value types, events, real generics, properties, LINQ, type inference, lambdas, no Integer != int nonsense, and I could go on. But language awesomeness is rarely the sole factor: you need to look at what is more in demand, what pays best, etc.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593785618
Share on other sites

  • 0

In the UK, it appears that Java developers are one of the highest paid developers and in IT in general, only something like a Business Analyst beats it (I'll find a source for this in a sec if I can, but I read it the other day).

Also, Java seems to be the most popular language right now according to this site, which I'm told is rather reliable and is updated monthly: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

As your company already has Java applications (and I would assume it would be unlikely for them to waste time moving the over to C# as there would be no point in reality) I would say stick with Java. Once you learn Java anyway, it shouldn't be too difficult to then attempt to learn C#.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593795884
Share on other sites

  • 0

If you're just trying to learn a language, I'd say C#. And it's not even close.

But if your company is using Java, you should learn Java (unless you're planning on leaving that company soon). Having the real-world examples around you will likely benefit your learning process immensely.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593795900
Share on other sites

  • 0

Java without a doubt:

1. Great multi-platform support.

2. Many compilers/editors/IDE's available for free.

2. You can also develop for open mobile OS's like Android too.

If you just want a simple compiler/debugger, download GNU GCJ/GDB. Then you can do everything on the terminal and avoid bloated, distracting IDE's.

In terms of language features, they are pretty much the same. C# is Microsoft's imitation of Java after all.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593795976
Share on other sites

  • 0

Honestly, I see Java being used less and less every day. I don't know when was the last time that I used a Java based app or something similar (it has been years).

I'd recommend C# any day. Its the best language for me, I love it. Also, Visual Studio is amazing, and Windows Presentation Foundation is starting to take off, with these tools you can make amazingly beautiful apps. ;)

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796044
Share on other sites

  • 0

Honestly, I see Java being used less and less every day. I don't know when was the last time that I used a Java based app or something similar (it has been years).

I'd recommend C# any day. Its the best language for me, I love it. Also, Visual Studio is amazing, and Windows Presentation Foundation is starting to take off, with these tools you can make amazingly beautiful apps. ;)

I use Java based apps every day on my Android phone, but I still don't like Java, haha.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796052
Share on other sites

  • 0

Java without a doubt:

1. Great multi-platform support.

2. Many compilers/editors/IDE's available for free.

2. You can also develop for open mobile OS's like Android too.

Contrarily to what many people think, C# excels in these areas as well. Mono has opened development outside of Windows for years now and a lot of successful software, both commercial and open-source, has been made with it. Monodevelop and Visual C# express are great free IDEs; C# is the only supported language for Windows Phone, and you can use it for iPhone and (soon) Android development, albeit for a price.
In terms of language features, they are pretty much the same. C# is Microsoft's imitation of Java after all.
This was somewhat true with C# 1.0. Today, C# is at its 4th iteration and simply blows Java out of the water with language features.
Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796060
Share on other sites

  • 0

I don't see how certification in Java somehow makes you dumb in C# or the other way around, but if I had th choose one or the other I would go for Java.

We use Java at work, but because GUI is so much quicker (and cooler) to develop in C# with XAML we almost always use C# for our smaller applications and leave stuff like server tech / webapps for Java.

And honestly, once you know Java, the step to learn C# is very small either way.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796076
Share on other sites

  • 0

I also voted for C#. Another factor to remember is that when you get fluent in any of these two languages, you should be able to understand most of the code in the other language as well. I learned Java in university, but for one project I used C#, and I had no problems getting into C# (used some tutorials, articles etc)l.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796084
Share on other sites

  • 0

I use Java based apps every day on my Android phone, but I still don't like Java, haha.

Hah. :)

Well, I have Windows Phone... C# is used for apps (together with Silverlight).

Its really great how a XNA game's code in C# is the same for Windows, Xbox 360, and Windows Phone. The controls are the only thing that need porting. :)

EDIT: Should have mentioned that MSDN is filled with HUGE volumes of information about the language, the platforms it can be used on, and many other things.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796096
Share on other sites

  • 0

Contrarily to what many people think, C# excels in these areas as well. Mono has opened development outside of Windows for years now and a lot of successful software, both commercial and open-source, has been made with it

I disagree. Multiplatform support for C# is quite poor compared with Java. I don't think anyone can dispute that fact. I'm aware of a couple of apps written using #c that work well, but no where near the number of Java apps. Banshee is a good example. Although it's nice software, it's written in GTK+. And therein lies the problem. C# has no multiplatform UI API.If you want it to work well on Linux you'll have to code it in GTK, in Windows, Windows Forms. WIndows Forms is proprietary, meaning it can't be implemented across platforms. This is typical of Microsoft. With Java, you can just write your UI's using swing, Java's cross platform widget toolkit. That's just one example.

. Monodevelop and Visual C# express are great free IDEs; C# is the only supported language for Windows Phone, and you can use it for iPhone and (soon) Android development, albeit for a price.

Monodevelop and Express are nowhere near as good as eclipse.

This was somewhat true with C# 1.0. Today, C# is at its 4th iteration and simply blows Java out of the water with language features.

The truth is, they are both so similar, it's hardly worth mentioning. Clearly Microsoft designed C# based on Java, hence the similarities. Languages like Vala, Java, C#, and Google Go are all very similar in features, syntax, etc. The only major differences are in the API's/Libraries, which take far longer to master/learn than simple syntax differences. Java for instance, has vast libraries and code available because its maturity.

In the end, multiplatform support, non-proprietary open standards, and well supported/mature API's/libraries are far more important than trivial language differences. And in these respects, Java is the right choice.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796174
Share on other sites

  • 0

Its really great how a XNA game's code in C# is the same for Windows, Xbox 360, and Windows Phone. The controls are the only thing that need porting. :)

Ever heard of OpenGL? Well that works across all platforms, not just Microsoft ones like DirectX does. If you want to be tied to a single platform, then DirectX is your man ;)

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796196
Share on other sites

  • 0

I disagree. Multiplatform support for C# is quite poor compared with Java. I don't think anyone can dispute that fact. I'm aware of a couple of apps written using #c that work well, but no where near the number of Java apps. Banshee is a good example. Although it's nice software, it's written in GTK+. And therein lies the problem. C# has no multiplatform UI API.If you want it to work well on Linux you'll have to code it in GTK, in Windows, Windows Forms. WIndows Forms is proprietary, meaning it can't be implemented across platforms. This is typical of Microsoft. With Java, you can just write your UI's using swing, Java's cross platform widget toolkit. That's just one example.

Nothing stopping you from writing GTK+ for Linux, Mac, and Windows as it's supported on all platforms.

Monodevelop and Express are nowhere near as good as eclipse.

Opinion. I find both to run way better than Eclipse.

The truth is, they are both so similar, it's hardly worth mentioning. Clearly Microsoft designed C# based on Java, hence the similarities. Languages like Vala, Java, C#, and Google Go are all very similar in features, syntax, etc. The only major differences are in the API's/Libraries, which take far longer to master/learn than simple syntax differences. Java for instance, has vast libraries and code available because its maturity.

In the end, multiplatform support, non-proprietary open standards, and well supported/mature API's/libraries are far more important than trivial language differences. And in these respects, Java is the right choice.

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java#Feature_comparison

Look at how many "No"'s are in Java. Many of them (generics, events, properties, operator overloading, expression trees, lambdas, query language) aren't what you call "trivial language differences". In fact, many of these are very powerful features.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796202
Share on other sites

  • 0

Nothing stopping you from writing GTK+ for Linux, Mac, and Windows as it's supported on all platforms.

Except you then have to rewrite your entire UI from scratch. What a great idea...

Opinion. I find both to run way better than Eclipse.

And the comment I responded to wasn't?

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java#Feature_comparison

Look at how many "No"'s are in Java. Many of them (generics, events, operator overloading, expression trees, lambdas, query language) aren't what you call "trivial language differences". In fact, many of these are very powerful features.

Operator overloading? Really? Most people probably never even need to use those so called "features". If you are one of them, then good for you, but I certainly wont miss them, and many professionals seem to agree. Those kinds of things are more of a check-list to say "yes, we have that". Not every design pattern needs those.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796236
Share on other sites

  • 0

Except you then have to rewrite your entire UI from scratch. What a great idea...

Wrong. If you are creating a multiplatform application in the first place, why would you not use multiplatform libraries in the first place? If someone started with WinForms on Windows, they most likely have no interest in multiplatform in the first place. Please, use that brain man.

Operator overloading? Really? Most people probably never even need to use those so called "features". If you are one of them, then good for you, but I certainly wont miss them, and many professionals seem to agree. Those kinds of things are more of a check-list to say "yes, we have that". Not every design pattern needs those.

Congratulations. You picked out the most trivial feature out of the many non-trivial but still useful features I listed. You're right. Not every design pattern needs certain features. But, for those designs that can benefit from those features, it's better to have them than have to come up with otherwise more difficult solutions or workarounds to get the same functionality.

Please, cut the MS hate/fanboy crap. Your posts are just spewing with it.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796256
Share on other sites

  • 0
C# has no multiplatform UI API.If you want it to work well on Linux you'll have to code it in GTK, in Windows, Windows Forms. WIndows Forms is proprietary, meaning it can't be implemented across platforms. This is typical of Microsoft. With Java, you can just write your UI's using swing, Java's cross platform widget toolkit. That's just one example.
C# has bindings for the most popular multiplatform UI toolkits. The fact that Swing is integrated into Java isn't a major advantage; I think you'd be hard-pressed to find anyone who really wants to develop with Swing nowadays.
Monodevelop and Express are nowhere near as good as eclipse.
For Java, probably not. :laugh:
The truth is, they are both so similar, it's hardly worth mentioning.
Dynamic type binding, declarative SQL-style requests, functional programming, run-time generics support, user-defined value types, pointers and a unified type system are not exactly trivial differences. These features can have a major impact on how you approach design.
multiplatform support, non-proprietary open standards, and well supported/mature API's/libraries are far more important than trivial language differences.
I agree that the platform differences are more important, especially since both .NET and Java support many languages. I can't speak for the .NET vs Java libraries in general since they are both absolutely huge and I'll probably never have fully explored either, but so far I can see that development studios much prefer .NET/WPF for developing their own internal tools. In terms of maturity, .NET already has over 10 years of real-world, successful use, and is improving a lot faster than Java which development seems somewhat stalled.
Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796280
Share on other sites

  • 0

Wrong. If you are creating a multiplatform application in the first place, why would you not use multiplatform libraries in the first place. Please, use that brain man.

That's the point. Java's swing libraries are a built-in GUI toolkit giving you consistency across platforms. With C# you have to go outside of the framework to get such a feature.

Congratulations. You picked out one trivial feature out of the many non-trivial features. You're right. Not every design pattern needs certain features. But, for those designs that can benefit from those features, it's better to have them than have to come up with otherwise more difficult solutions or workarounds to get the same functionality.

Hold on, you listed those "features", and called them powerful. If you didn't mean it, then why write it?

Please, cut the MS hate/fanboy crap. Your posts are just spewing with it.

I'm making an argument for the use of Java, as per the OP's question. If you don't like what I've have to say, then don't read such threads.

Link to comment
https://www.neowin.net/forum/topic/982324-java-vs-c/#findComment-593796286
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • A few years ago walmart had the 512 models on clearance for $35. I bought 3 of them. I should have purchased more.
    • I'm fine with a little reasonable promotion of Edge, but the degree which they do it right now I consider extremely unreasonable. 
    • Microsoft AI boss no longer believes that AI will replace human workers by David Uzondu Mustafa Suleyman, the head of Microsoft AI, recently took back his statements concerning white-collar jobs that he gave to the Financial Times in an interview made back in February, where he claimed that AI would replace office workers within 12 to 18 months. On Monday's episode of The Verge's Decoder, Suleyman recast the technology as more like a helpmate than a tool designed to take over your job. He explained that smaller office duties will "increasingly become digitized, automated" as people generate more digital materials. During the discussion, Suleyman emphasized a "very important distinction" between "tasks" and "jobs" to clarify his previous claims. He argued that his earlier comments only referred to individual actions that people perform at their desks. Suleyman used to work for DeepMind, the research lab he co-founded in 2010 alongside Demis Hassabis and Shane Legg, before he left in 2022 to establish Inflection AI and build an empathetic digital assistant. Microsoft hired him in March 2024 to lead its newly formed "Microsoft AI" division, placing him in charge of consumer products like Copilot, Bing, and Edge. His February comments also detailed plans for Microsoft to achieve self-sufficiency with a $140 billion infrastructure budget to train frontier models, predicting that creating a customized AI will soon feel like creating a podcast or a new blog: The 41-year-old is not the only AI executive who's softened his "AI will replace you" stance. OpenAI's CEO, Sam Altman, last month used X to push back against employment panic by arguing that his startup builds tools to assist humans rather than build replacements. He had previously garnered backlash by suggesting that many modern office roles that AI might replace did not qualify as "real work" in the first place, at least when you compare desk jobs to physical, historical labor like farming.
    • Adobe Acrobat Reader DC 2026.001.21662 by Razvan Serea Adobe Acrobat Reader DC software is the free, trusted standard for viewing, printing, signing, and annotating PDFs. Its the only PDF viewer that can open and interact with all types of PDF content – including forms and multimedia. It’s connected to Adobe Document Cloud – so you can work with PDFs on computers and mobile devices. Adobe Document Cloud is a revolutionary, modern and efficient way to get work done with documents in the office, at home or on-the-go. At the heart of Document Cloud is the all-new Adobe Acrobat DC, which will take e-signatures mainstream by delivering free e-signing with every individual subscription. Document Cloud includes a set of integrated services that use a consistent online profile and personal document hub. With Adobe Document Cloud, people will be able to create, review, approve, sign and track documents whether on a desktop or mobile device. Businesses will be able to take advantage of Document Cloud for enterprise which provides enterprise-class document services that integrate into systems of record such as CRM, HCM, CLM, and CMS, adding speed, efficiency and transparency to getting business done with documents. Adobe Acrobat Reader DC new feature highlights: Work with PDFs from anywhere with the new, free Acrobat DC mobile app for Android or iOS. Select functionality is also available on Windows Phone. Use the new Fill & Sign tool in your desktop software to complete PDF forms fast with smart autofill. Download the free Adobe Fill & Sign mobile app to add the same option to your iPad or Android tablet device. Save money on ink and toner when printing from your Windows PC. Store and access files in Adobe Document Cloud with 5GB of free storage. Get instant access to recent files across desktop, web, and mobile devices with Mobile Link. Sync your Fill & Sign autofill collection across desktop, web, and iPad devices. Adobe PDF Pack premium features includes: Convert documents and images to PDF files. Use your mobile device camera to take a picture of a paper document or form and convert it to PDF. Turn PDFs into editable Microsoft Word, Excel, PowerPoint, or RTF files. Combine multiple files into a single PDF (web only). Get signatures from others with a complete e-signature service. Send, track, and confirm delivery of documents electronically instead of using fax or overnight services (tracking not available on mobile). Store and access files online with 20GB of storage. Download: Adobe Acrobat Reader DC 64-bit | 719.0 MB (Freeware) Link: Adobe Acrobat Reader DC Home Page | Release Notes | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Meta will now use data from outside businesses to personalize AI responses by David Uzondu In an update that's rolling out globally (except in a handful of countries), Meta will use your data from outside businesses to personalize your AI responses and your primary feeds. Meta already utilizes your shopping activity to target ads, but the company now plans to expand this tracking to personalize other "parts of your experience" like feed algorithms and AI assistant chats. The company is replacing the two settings ("Your activity off Meta technologies" and "Activity from other businesses") that currently let you disconnect off-platform activity with a single, renamed setting called Activity from other businesses. If you don't want Meta to manipulate your feed and AI responses using your outside history, you can just turn the Activity from other businesses setting off in your account settings. This toggle resides within your Accounts Center, applying your choice to every connected profile. Turning this off will not stop companies from sending your data to Meta. The company will still collect your web interactions, but it only uses them to train products, while still accessing external accounts you connect. When The Verge spoke to Meta spokesperson Emil Vazquez, the representative said that this update will exclude several locations at launch, including the European region, the UK, Brazil, Thailand, South Africa, Turkey, South Korea, Ecuador, Nigeria, and Kenya. The new update comes at a time when the social media giant is recovering from a major PR disaster involving generative AI. Last week, there was a huge security issue on Instagram where attackers figured out a way to trick Meta AI into handing over account ownership (even if the victim had 2FA enabled). Some of the affected accounts include the dormant Obama White House profile, cosmetics brand Sephora, the Chief Master Sergeant of the Space Force, and security researcher Jane Manchun Wong. Internally, the company also had to scale back plans on its Model Capability Initiative (MCI), an employee-monitoring program designed to train corporate AI models by recording worker keystrokes and screen activity, after employees raised privacy concerns and complained about severe battery life drain.
  • Recent Achievements

    • One Year In
      Primer1st earned a badge
      One Year In
    • Experienced
      JayZJay went up a rank
      Experienced
    • Reacting Well
      Sir_Timbit earned a badge
      Reacting Well
    • Week One Done
      rubentuben8 earned a badge
      Week One Done
    • Week One Done
      ARaclen earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      512
    2. 2
      PsYcHoKiLLa
      229
    3. 3
      Edouard
      134
    4. 4
      ATLien_0
      87
    5. 5
      Steven P.
      80
  • Tell a friend

    Love Neowin? Tell a friend!