• 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

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.

  • 0

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.

Most of those so called "features" are actually used to a very great extent. Just because Java doesn't have them doesn't mean they aren't used within the industry.

We use both here and C# is the better language, has better features. One of the biggest pain points we have is versioning with Java. We still have some systems running off Java 1.5.2 which is full of security holes and bugs which we can't update to the latest release because the vendors don't support them.

Don't have that problem with .Net.

Visual Studio is currently the best IDE available (and yes I use Eclipse).

Java has better cross platform support but you really have to write to the lowest common demoninator for it to work properly. Java UIs on the whole look fairly terrible because of this.

Since Sun took over Java, Java IMO has went downhill.

At the end of the day what most people are saying is basically true, learn one and it's fairly easy to switch to the other.

  • 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.

Or you can just use an industry wide standard called SQL. Yes I'm aware SQL is domain specific, but really, I don't think LINQ is going to be a deciding factor for choosing a language.

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.

That made me chuckle.

  • 0

Or you can just use an industry wide standard called SQL. Yes I'm aware SQL is domain specific, but really, I don't think LINQ is going to be a deciding factor for choosing a language.

Not sure how you would go about using 'SQL' to extract a sub grouping of fields based on some arbitrary criteria from an in-memory collection of objects into a strongly typed resultant object...

Me, I'll use LINQ.

  • 0

Or you can just use an industry wide standard called SQL. Yes I'm aware SQL is domain specific, but really, I don't think LINQ is going to be a deciding factor for choosing a language.

Hah, that is so funny. Why are you assuming that I'm using LINQ to query a database? LINQ can query any object. It is intensely useful. You have misunderstood the gap betrween Java and C# if you think LINQ is only for databases.

  • 0

Or you can just use an industry wide standard called SQL. Yes I'm aware SQL is domain specific, but really, I don't think LINQ is going to be a deciding factor for choosing a language.

SQL only works on databases. LINQ can be used on any object in code.

Good job for missing the point.

  • 0

Hah, that is so funny. Why are you assuming that I'm using LINQ to query SQL? LINQ can query any object. It is intensely useful. You have misunderstood the gap betrween Java and C# if you think LINQ is only for databases.

Even though I favour Java, I'd marry LINQ if I could.

Something like

select Drink from  TheBar where Drink.Color = Blue

vs

for(each drink in thebar) {
if(drink is blue) {
 addToMyList()
}
}

and that was just a VERY simple example of how much easier LINQ is than traditional code.

  • 0

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 ;)

XNA is a brilliant framework for indie game projects. It also uses C#. OpenGL and DirectX are using C++ (yes there are wrappers and stuff, but the don't do justice to them), so that's kind of out of the topic. ;)

  • 0

Not sure how you would go about using 'SQL' to extract a sub grouping of fields based on some arbitrary criteria from an in-memory collection of objects into a strongly typed resultant object...

Me, I'll use LINQ.

You can use an ORM system (Object-relational mapping). That's all LINQ is after all. There are many out there.

  • 0

XNA is a brilliant framework for indie game projects. It also uses C#. OpenGL and DirectX are using C++ (yes there are wrappers and stuff, but the don't do justice to them), so that's kind of out of the topic. ;)

The DirectX interface is written in Microsoft's COM, which is platform specific and written in C++ (horrible to use from C). OpenGL implementations are usually written in C. There are of course bindings for OpenGL in virtually every language. In truth, I don't really know much about XNA, but if it uses DirectX, then it will share the same problem - COM, and platform lock-in.

  • 0

Well, C# is by definition Java done right :p

By your definition perhaps. Others would disagree.

But like someone else said: C# for Windows, Java for multi-platform apps.

If you don't wish to program on anything but Windows, sure, but if you ever want to escape that platform at some point in the future, then Java is a much better choice. Java means flexibility, C# means locked down to Windows.

  • 0

If you don't wish to program on anything but Windows, sure, but if you ever want to escape that platform at some point in the future, then Java is a much better choice. Java means flexibility, C# means locked down to Windows.

Except that there's mono which works on Linux, Mac, and Windows.

Troll harder.

  • 0

Performance wise, java has always seemed sluggish. C# has more possibilities, but of course for your standard app this isn't that relevant.

I think it's a misconception that Java is sluggish, kind of like "oh it used to be slow and probably still is". The fact is in most cases it is just as good speed wise as other languages.

As for the development of Java itself, it has been slow but JDK 7 is at developer preview stage and I believe expected to be released at some point this year.

  • 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.
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.
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

(Portuguese proverb: blacksmith's house, wooden skewer)

! And anonymous functions / lambdas / functional programming have a good use... in purely functional languages, with no side-effects. As for the rest of your listing, I mostly follow you.

If he's doing consumer applications, there is no need to go with unsafe code.
Doing unsafe/stupid code is doing it wrong. Java has some pretty stupid **** by default, like IntegerCache.
  • 0

Except that there's mono which works on Linux, Mac, and Windows.

Troll harder.

And what GUI toolkit are you going to use? Are you going to have to learn multiple API's? Windows Forms, GTK, and Cocoa, each with equality peculiar bindings? No thanks. I'll just use Java's built in Swing toolkit and no additional dependencies.

  • 0
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 ;)

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.

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

    • No registered users viewing this page.
  • Posts

    • They keep your data encrypted too. Including the calendar.
    • Microsoft makes billions redirecting people to use Bing in Microsoft Edge and selling OneDrive space. All thanks to Windows.
    • Teams is cancer, ebola and aids combined.
    • Claude on Windows is eating up massive amounts of RAM, with no way to stop it by Usama Jawad Anthropic has been in the headlines a lot lately, primarily due to its latest revenue and valuation figures, along with its release of its state-of-the-art (SOTA) Fable model. While its flagship product, Claude, may be very popular among millions of users, a lot of them are now reporting memory issues when using the tool. Over on Claude Code's GitHub repository, an issue raised in February has been gaining traction once again. Basically, Claude Desktop on Windows spins up a 1.8GB Hyper-V virtual machine if you use Claude Cowork or agent mode even once. This happens on each launch of Claude Code even if you plan to use the tool in chat mode only. Several users have upvoted this bug and stated that it's happening on their machine as well. However, it seemingly affects only Claude desktop users on Windows, not customers of the CLI or any other platform. Once the bug is triggered, it also shows a Vmmem process in Task Manager, indicating CPU usage of 0% and RAM utilization of a whopping ~1.8GB. Claude users complain that this process should only spin up when you explicitly launch agent mode or Cowork in Claude, with session files efficiently cleaned up after use. Additionally, they are calling for Claude to gracefully handle the absence of virtual machine-based infrastructure, without compromising on chat performance. It's unclear when this issue originated or what the root cause behind it is, but people are once again actively engaging in the GitHub thread as well as Hacker News. You can also find other technical details and log events over on GitHub. It's unclear if Anthropic will look into this issue, especially since it's already been reported for a few months. However, the bug is also causing major annoyance for users, with many claiming that it has led them to uninstall Claude Code on desktop, as a concrete workaround is not yet known.
    • "The US innovates, China replicates, Europe regulates" -- let's see who makes the cut
  • Recent Achievements

    • One Month Later
      Sopa flores earned a badge
      One Month Later
    • First Post
      StaticMatrix earned a badge
      First Post
    • Week One Done
      StaticMatrix earned a badge
      Week One Done
    • Rookie
      lamborghiniv10 went up a rank
      Rookie
    • One Month Later
      pinnclepd earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      534
    2. 2
      PsYcHoKiLLa
      209
    3. 3
      +Edouard
      154
    4. 4
      Steven P.
      100
    5. 5
      ATLien_0
      84
  • Tell a friend

    Love Neowin? Tell a friend!