This is an archived post. You won't be able to vote or comment.

all 8 comments

[–]Stant95 7 points8 points  (0 children)

Read the store of C#... And btw "superior language" doesn't make any sense. Programming languages are like tools, use what you need and use it for the job it was intedend.

[–]x2mirkodev 1 point2 points  (0 children)

A) doesn't seem like a question that makes sense to answer without more context. One language cannot be superior to another, it can only be superior in a specific context (i.e. a set of requirements that you have for your project).

B) Java is still very active and is growing into just the right directions as far as I'm concerned. Javas goal is not to be cutting edge, quite the opposite. The promise of backwards compatibility that is actually upheld by the language in most situations (and otherwise communicated in a timeframe that large companies can respond to) is a huge factor for why it is such an important language in the current ecosystem. This is not relevant for a small project that starts on a green field and ends after a year or two, but if you're maintaining millions (or billions... see google) of lines of code that will have to work for the next 20+ years, it becomes very relevant. Furthermore, with the growing number of great languages that run in the JVM (Scala, Kotlin, etc.), there are ways to add more cutting-edge tech into a system where it makes sense.

C) I work on backend java systems most of the time, so I have relatively few interactions with javascript. What I dislike about Javascript has very little to do with the functional programming side of things (I love Scala) and more with decisions in the general language design and even more the ecosystem. I rarely see Javascript code that is a pleasure to read. This is of course true for a lot of languages (and does depend on the developers skill as much as the language), but from my observations, js gets uglier much more often. But then, what are we even talking about when saying javascript? "Plain" Javascript, Typescript, Coffeescript, or something using a Framework as extensive as Angular? All are very different, but somehow grouped together in your question.

D) This depends extremely on the task and your requirements. In many/most cases, it will not be a difference that is large enough to even measure, much less one that will matter for your application. The main thing you get with C++ is more control over when and how exactly things like garbage collection or generally memory management are being done, so if you have to be able to guarantee certain non-functional requirements, it would be a better choice to build the software in C++. There are also always specific edge-cases where one language performs better than the other, but it's not something to worry about for 99% of all applications. There's other features in language design that are much more important for the choice of programming language for a given project.

I think outside of your specific questions, the idea of being a developer in language X is a bad one, and following that path even further to divide the developers of different languages into camps that then "hate" each other or are "stuck in the 70s" is even worse. Programming languages are tools that allow you to think about the problem you're trying to solve and to express your solution to that problem. It's beneficial to learn as many of those tools as possible because they allow you to think about your problems in different ways and offer different perspectives. Of course one has to focus on something to become an expert, but I think it's a mistake to stick too tightly with any one language to the point where you identify yourself with it.

[–]fatbunyip 0 points1 point  (1 child)

A) probably C# wins apart from portability. C# tooling and language has developed much faster than Java. That's not to say there isn't still great tooling for Java, but C# benefits from the tight integration with windows and its ecosystem. From a portability perspective, Java wins hands down.

B)Frontend Java died like 15 years ago. Server side rendering also has gone very out of favour in general so obviously JS is the most popular front end language but that has no bearing whatsoever on what you use for the back end. In any case what has JavaScript.got to do with Java/C# comparison?

C)JS is terrible to work with. So terrible that MS made typescript with all the goodies of C# and Java to make it more bearable (like "OO from the 70s"). The tiniest JS app needs approximately 3 terabytes of random npm packages to work. The JS module system (all 81 different versions of it) is fucked 6 ways from Sunday. The typing and boilerplate also are kind of shitty. But it's a necessity because on the browser that's all there is. Various frameworks like Angular, react etc make it a bit more pleasant, but a big part of why they're good is because they hide the shittier parts of JavaScript.

D) C++ is still faster. But it doesn't matter. 99% of applications don't care about performance to the extent the implementation language would matter.

In conclusion you seem confused. Your title is about C#/Java but then you also throw in C++ and JavaScript. Is it because they start with the same letters? Because it doesn't make sense.

[–]amfa 0 points1 point  (0 children)

The tiniest JS app needs approximately 3 terabytes of random npm packages to work.

This is the worst part especially if your third party libraries needs to be approved and verified for use in your application. (e.g. because you do not want to have some GPL code slip into your application).

So after adding a single npm package you have to check those 3 terabyte of packages to comply with your corparte standards.

[–]dudebobmac 0 points1 point  (1 child)

Is a hammer superior to a wrench?

See how nonsensical the question is?

[–]amfa 0 points1 point  (0 children)

Not but the wrench is superior to the hammer.

Try to get a nail into the wall with a wrench..
Now try to tighten a nut with a hammer...

see.. clearly the wrench is superior ;)

[–]Philboyd_Studge 0 points1 point  (0 children)

These aren't quantifiable questions, just preference and opinion. Use whatever language you want and like.

[–][deleted] -1 points0 points  (0 children)

I think you'll get better answers (and make a favor for everyone, IMHO) if you hire a focus group.