• 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

I would suggest mastering both if you want to be marketable. I'm sure someone already said that but I know that at my University, we learned and used Java for 3 years of study - even wrote a Java OpenGL Quake3 .bsp level rendering engine using Jogl. We of course put to practical use C, C++, x86 ASM etc... but Java was the core. I took 1 semester of a C# seminar which I believe at the time was new for framework 1.1 :)

Once I got into the professional development field (again, retrained old COBOL hacker), C# and .NET/MSSQL were all over the place with the occasional sprinkling of Java opportunities.

  • 0

C# has LINQ.

Okay, debate over, nice talking to everyone. There is a lot more, but its not even worth getting into, when you have LINQ.

Yes, I am a Software Architect specializing in .NET but no I am not partial to a language. I am partial to productivity and code maintainability.

This. If you don't think LINQ is very special, you're wrong. Simple as that ;)

  • 0

If he's doing consumer applications, there is no need to go with unsafe code.

Unsafe? LOL. It's not going to blow up your CPU. Seriously, processes are isolated. The worst that can happen is the application crashes. The exact same thing that happens in C#, except that the dotnet framework pops up with a message box telling the customer something technical that he'll never understand. Yes I know you're talking about memory managed code, but the implication that C++/C is not appropriate for consumer code is ludicrous

  • 0
Your language awesomeness is quite messy and unsafe, by definition. The whole point of using a higher level of abstraction in languages like the ones being discussed is to avoid the whole low-level mess, like pointers !
It allows high-performance applications like Paint.Net to be written entirely in C#, instead of having to write the high-performance bits in C like you'd have to do in Java or Python. Pointers are only available in methods marked as unsafe and are not required for most applications: they're available where and when strictly necessary, nothing else.
And anonymous functions / lambdas / functional programming have a good use... in purely functional languages, with no side-effects.
In C# it allows you to write much more compact and legible code, which makes passing functions as parameters a more common pattern. This is also the case in Python, Ruby, and now C++, none of which require function purity.
  • 0

Unsafe? LOL. It's not going to blow up your CPU. Seriously, processes are isolated. The worst that can happen is the application crashes. The exact same thing that happens in C#, except that the dotnet framework pops up with a message box telling the customer something technical that he'll never understand. Yes I know you're talking about memory managed code, but the implication that C++/C is not appropriate for consumer code is ludicrous

I didn't say it is inappropriate, just, unneeded. If I'm doing some app for a restaurant, or a hotel, or some desktop app that doesn't do heavy things (Crysis-grade heavy things), there is really no need to mess with memory allocation and similar stuff.

  • 0

And ECMA/JavaScript... And I don't agree with that it is being done.

So you'd rather write:

var itemsIWant = new List<Item>();
foreach(var item in SourceOfItems) {
    if (item.SomeProperty < 1337) {
        itemsIWant.Add(item);
    }
}

than

var itemsIWant = SourceOfItems.Where(i => i.SomeProperty < 1337);

?? So what if the lambda doesn't have to be pure?

In C++ in particular I think this is huge. STL algorithms (in particular for_each) are underused because you have to write a freakin entire class (functor) every time: lambdas make them so much more practical.

  • 0

You mean Windows, Mac and Linux? Out of these 3 only one is a significant game platform and it supports DirectX/XNA. Xbox 360 supports XNA and its own SDK (the "XDK"), PS3 has its own SDK as well (its OpenGL implementation is laughable).

Besides, you have OpenGL bindings for C# just like for every other language that exists. So I don't see what you're trying to argue here: C# allows you to target what platform you want and with what API you most like, with well-supported, up-to-date implementations. The only thing Java has is JOGL and that hasn't had a new stable release since 2008. I don't see how the fact that XNA wraps a COM-based API is a problem. It totally wraps it, you don't deal with COM writing code with XNA, XNA deals with it for you.

Not just JOGL, don't forget LWJGL (Lightweight Java Gaming Library) and that has been updated as recently as a few weeks ago. It's what Minecraft uses (not a fantastic looking example of a use of it but still). I'm also certain there are other libraries out there as well.

Edit: Just wanted to say this conversation has been extremely interesting so far and it is good to hear both sides (even better if everyone can refrain from not calling each other a troll heh). I think both languages have both their advantages and disadvantages and it is always good to look at these.

  • 0

Not just JOGL, don't forget LWJGL (Lightweight Java Gaming Library) and that has been updated as recently as a few weeks ago. It's what Minecraft uses (not a fantastic looking example of a use of it but still).

LWJGL does look good, thanks for the notice.
I'm also certain there are other libraries out there as well.
And I'm certain there's nothing as nice as XNA. :laugh:
  • 0

I have a pretty crappy laptop, but am I able to play source engine games (although less than optimal fps), I tried playing minecraft on it. I got 2 fps max.

That has nothing to do with Java and probably not with LWJGL either. You're certainly on integrated graphics and chances are it's not even supported. The Source Engine was made to be highly scalable, not Minecraft. Even though it does apparently nothing remarquable graphically, it might still be doing too much for your gpu, because it was simply not designed to scale to such low-end hardware. Check out this, seems like lots of good advice to increase that game's performance on crappy laptops.

Java's performance is very, very good. Back on topic.

  • 0

Been a developer for around 10 years now and I think I have reached senior level. I am sure there are many developers here with more experience than I do.

Here is my 2c worth.

Get your programming fundamental and logic right. Choice of language you use is nothing more than syntex change.

  • 0

LWJGL does look good, thanks for the notice.

And I'm certain there's nothing as nice as XNA. :laugh:

I'm inclined to agree with you re: XNA... for a project I'm making a game engine and it was a decision between Java (and LWJGL) or C# and XNA. XNA looks just fantastic and infact I only chose Java because it would have been more challenging to use for this project (that and I have more experience with Java).

I have a pretty crappy laptop, but am I able to play source engine games (although less than optimal fps), I tried playing minecraft on it. I got 2 fps max.

Don't take my word for it, but I believe all the hard work in Minecraft is done by the CPU and not the GPU (for whatever reason) and that could be the reason for the low fps.

  • 0

Been a developer for around 10 years now and I think I have reached senior level. I am sure there are many developers here with more experience than I do.

Here is my 2c worth.

Get your programming fundamental and logic right. Choice of language you use is nothing more than syntex change.

I partially agree. I've been doing this since I was very young, and I'm a Software Architect now. i would say the best advice is be awesome, and know the core development concepts down hardcore. Get to the point that you can pick up a language quickly. Once I was extremely strong in OOP fundamentals, I was able to pick up any language very quickly. For example, I started writing Ruby scripts after like 30 minutes of reading documentation, when I needed to use it a couple of months ago. With that said, pick a language that you like the best and BE AWESOME AT IT. Understand the standard library that comes with the language inside and out. Learn all the cool tricks that make you a more experienced programmer, like how to think with performance in mind, or how to write very testable code.

I personally love .NET. C# just keeps getting better and better. We did a lot of Java in my CS classes too, and I am quite good with that as well. Learn everything, that's what I do. Lastly, take a job because it interests you, not because it pays well. If you love Java and are writing C#, at the end of a 50 hour week you're going to hate your job. I love C#, I work at a great company, and I love coming in to my job everyday.

  • 0

That has nothing to do with Java and probably not with LWJGL either. You're certainly on integrated graphics and chances are it's not even supported. The Source Engine was made to be highly scalable, not Minecraft. Even though it does apparently nothing remarquable graphically, it might still be doing too much for your gpu, because it was simply not designed to scale to such low-end hardware. Check out this, seems like lots of good advice to increase that game's performance on crappy laptops.

Java's performance is very, very good. Back on topic.

Even on my desktop Minecraft makes my GPU work much harder. The temps I get playing minecraft are higher than any other game. Java is just not a language for 3d graphics...

  • 0
I love C#, I work at a great company, and I love coming in to my job everyday.
That's nice. I hope I'll be able to say as much after I finish uni.
Even on my desktop Minecraft makes my GPU work much harder. The temps I get playing minecraft are higher than any other game. Java is just not a language for 3d graphics...
Well then it's sloppily coded. Shader code executes at the same speed regardless of what language you use to put it on the GPU, and Java is compiled to (eventually) highly optimized native code just like C++. You can't judge a language's speed by one app's performance. Crysis was written in C++...
  • 0

I just want to point out my personal experience:

I graduated as a computer engineer. First 2 years, it was all about assembly language projects, and C, then we moved to C++ for projects and then Java on the last year for networking and visual oriented projects.

I was already doing asp + sql server 2000 projects as a part time job while studying on my second year in uni, so I started with .net in commercial world on my last year, and it's been 8.5 years since then. Now I am a technical lead for a multinational company developing products.

I can tell you that if you're a senior .net developer, you'll earn a nice amount of money. But I'm sure that's also the same for java. The thing is, even if you choose the best language out there, everything depends on your capability and skills as a technical person.

Get the core concepts well, study the best practices, care about the things you develop. If you are good developer, you'll make lots of money anywhere. If you are not good enough at what you do, you'll be left behind wherever you go. It's not just development skills either. Soft skills start getting important after a certain point too.

Just to answer your question, I would recommend .Net over Java, not because of technical capability differences, but because from my own experience, the recruiters here in Australia are posting more positions for .Net than in Java (this is totally subjective opinion, it might be different who knows).

And yes I cannot imagine a life without Linq.

  • 0

I just want to point out my personal experience:

I graduated as a computer engineer. First 2 years, it was all about assembly language projects, and C, then we moved to C++ for projects and then Java on the last year for networking and visual oriented projects.

I was already doing asp + sql server 2000 projects as a part time job while studying on my second year in uni, so I started with .net in commercial world on my last year, and it's been 8.5 years since then. Now I am a technical lead for a multinational company developing products.

I can tell you that if you're a senior .net developer, you'll earn a nice amount of money. But I'm sure that's also the same for java. The thing is, even if you choose the best language out there, everything depends on you capability and skills as a technical person.

My personal experience was similar but a bit different, first and second year was mostly all C++ and third year was C and fourth year you could pick the language (as long as the professor was ok with it) and most people would usually go for C/C++ (I did)

When I was done school I moved to Ottawa to find a job here and I ended up working with Java (was pretty easy to pick up :/) doing webapps :x. I really wish the government wasn't pushing so hard to convert all their in-house applications to web apps, looking back I kinda wish I had found a job somewhere else

  • 0

Thanks for all the replies guys. It helped me out a lot. I am wondering if I do get certified in Java (only because I already started studying for the certification) how hard it would be to then get certified in C#? Are the languages similar? I started reading the basics of C# and so far it is very similar to Java.

  • 0

Thanks for all the replies guys. It helped me out a lot. I am wondering if I do get certified in Java (only because I already started studying for the certification) how hard it would be to then get certified in C#? Are the languages similar? I started reading the basics of C# and so far it is very similar to Java.

Whatever you choose, most likely you'll go all the way with that technology. Sadly, after a while it gets quite hard to follow everything at the same time to keep yourself up to date. Just to give you a basic example, although I am entirely focused on .Net, C# and SQL Server technologies, just in the last 2 years, I had to update myself to .Net 3.5/.Net 4/Silverlight 3 and Silverlight 4, RIA Services, SQL Server 2008, SQL Azure, Azure AppFabric etc etc.

So in the long run, just the language itself doesn't mean you'll have a safe career.

Also I am not entirely sure that you should be focusing on certifications this much. On network engineering and similar fields I think it means a lot but in the developer's area, it's not, especially not for Microsoft. Get them if you want to learn the language, not to get a job. I never got any certifications and it was never mentioned. I am currently the tech lead of a development team (I've been senior dev and team leader before in different companies). We have two main architects and they don't have any certifications (I don't know anyone else knowing so much about software compared to them). Our IT manager (very technical) has no certifications.

As I said, this is mainly the case for Microsoft technologies.

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!