• 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

    • I haven't paid for windows since windows 8. So I guess I would be happy to pay for a new version if it meant seeing fewer adverts (none) or product pushes. But that applies to _any_ service or OS.
    • Save 35% on Sony's SS-CS5M2 3-way high-res bookshelf speakers by Taras Buria Sony is currently offering a big discount on its SS-CS5M2 bookshelf speaker, saving you 35% on a set of high-quality audio equipment. The SS-CS5M2 is a passive 3-way bookshelf speaker with a 5.12-inch woofer, a 25 mm soft-dome tweeter, and a 19 mm super tweeter. This design allows different drivers to handle different parts of the sound spectrum for a clearer, more detailed audio when watching movies or listening to music. The compact cabinet size allows you to place these speakers on shelves, desks, or stands, making them a practical choice for apartments, bedrooms, and small living rooms. Despite its compact size, the SS-CS5M2 delivers up to 100 W of power. Note that since the speakers are passive, you will need an amplifier to drive them. However, if you do, you can use them for high-resolution music, thanks to a claimed frequency response of 53 Hz - 50 kHz. It is able to extend so far high in the spectrum as a result of those super tweeters. While they will work with most amplifiers and AV receivers, Sony says this pair is a perfect match for its AV receivers, such as STRDH190, 590, 790, or 1000. Sony CS Bookshelf Speakers SS-CS5M2 3-Way 3-Driver Hi-res - $178 | 36% off on Amazon US This Amazon deal is US-specific and not available in other regions unless specified. This is a first-party seller link (at the time of article publishing); ensure that you also purchase from a first-party seller link only. If you don't like it or want to look at more options, check out the previous deals that we have covered, OR you can also visit Amazon US deals page. Get Prime (SNAP), Prime Video, Audible Plus or Kindle / Music Unlimited. Free for 30 days. As an Amazon Associate, we earn from qualifying purchases.
    • So they somehow expect Apple to easily make it so that if I install say DeepSeek that DS can then handle all the tasks that Siri would be doing while integrated in the OS? That sounds like just rediculous.
    • For ray-tracing, the Radeon RX 9070 XT is better than the GeForce RTX 5070, but worse than the GeForce RTX 5070 Ti The Radeon RX 9070 XT is similar to the GeForce RTX 5070 Ti in rasterization Both AMD and NVIDIA have had serious issues with drivers in the past, so I can't say that one is better or worse than the other. Yes. AMD has better support Linux than does NVIDIA. Use Display Driver Uninstaller (DDU) to uninstall NVIDIA's drivers before installing AMD's drivers. That's up to you. Supplies of memory is unpredictable because AI using up a lot of memory. As a result, there is a lot of volatility in video card prices.
  • Recent Achievements

    • One Month Later
      pinnclepd earned a badge
      One Month Later
    • First Post
      X-No-file earned a badge
      First Post
    • One Month Later
      johnjacobb40 earned a badge
      One Month Later
    • One Year In
      Primer1st earned a badge
      One Year In
    • Experienced
      JayZJay went up a rank
      Experienced
  • Popular Contributors

    1. 1
      +primortal
      510
    2. 2
      PsYcHoKiLLa
      215
    3. 3
      +Edouard
      145
    4. 4
      Steven P.
      88
    5. 5
      ATLien_0
      83
  • Tell a friend

    Love Neowin? Tell a friend!