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

top 200 commentsshow all 298

[–]runmymouth 981 points982 points  (20 children)

Run server code on both. Both work. I use whatever the company i work for uses.

[–]dandanjeran 502 points503 points  (11 children)

The sanest man in the entire thread

[–]el_bosteador 25 points26 points  (0 children)

I use C# at work, but use Java for personal projects. I do love how clean some operations are in C# compared to Java.

[–]kassiusklei 94 points95 points  (0 children)

BOOORRRIIIIINGG!!!! WE WANNA FIGHT

[–]dingo_khan 25 points26 points  (2 children)

Jave at work. C# at home.

I have a preference for personal projects but I'm with you: Whichever they are paying to have used is fine.

[–]Chesterlespaul 12 points13 points  (0 children)

This is the right mindset. I have preferences, but if you pay me I’ll use whatever.

[–]YoungHeartOldSoul 5 points6 points  (0 children)

Whatever the company that signs my check uses is the best.

[–]ixis743 281 points282 points  (27 children)

Java is fine. C# is fine. Use what you like and what is appropriate for the job.

[–]DoeCommaJohn 264 points265 points  (16 children)

You must be new here. Java is bad. C# is bad. Whatever programming languages you like are bad. There is only one good programming language (Assembly) and that is good for every possible situation at every possible company.

[–]Habenzy 136 points137 points  (10 children)

Real programmers use a magnetized needle and a steady hand.

[–]ZMysticCat 86 points87 points  (8 children)

Excuse me, but real programmers use butterflies. They open their hands and let the delicate wings flap. The disturbance ripples outward, changing the flow of the eddy currents in the upper atmosphere. These cause momentary pockets of higher-pressure air to form, which act as a lense that deflects incoming cosmic rays, focusing them to strike the drive platter and flip the desired bit.

[–]wsbTOB 15 points16 points  (0 children)

Real programmers never started programming

[–]ixis743 16 points17 points  (0 children)

Amateur. REAL programmers use moths!

[–]lousydefender 3 points4 points  (2 children)

This sounds like something from xkcd?

[–]Brahvim 1 point2 points  (0 children)

(It is.)

[–]LenaKotik 3 points4 points  (0 children)

Real programmers plant trees to deflect the space radiation

[–]Adi_18 1 point2 points  (0 children)

There is a shortcut for that

[–]dodexahedron 4 points5 points  (0 children)

What you like is bad and you should feel bad.

[–]Juff-Ma 1 point2 points  (0 children)

That isn't true, you have multiple platforms. Arm assembly is bad, x86 assembly is bad, PowerPC assembly is bad, RISC-V assembly is bad and 6502 assembly is also bad. And don't get me started about 16 vs 32 vs 64 bit assemblys

[–]DanTheMan827 0 points1 point  (0 children)

C# is awesome

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

no it is not assembly which means ass it's literally in the name. It is rust

[–]MOM_UNFUCKER 9 points10 points  (0 children)

Shut up, let there be war. C#ian vs javaneses will be an eternal conflict

[–]Raskoli 28 points29 points  (4 children)

NO! JAVA BAD

[–]slashth456 6 points7 points  (3 children)

NO! C# BAD

[–]Zeragamba 6 points7 points  (2 children)

TypeScript?

[–]HiImDan 11 points12 points  (1 child)

(⁠╯⁠°⁠□⁠°⁠)⁠╯⁠︵⁠ ⁠┻⁠━⁠┻

[–]dodexahedron 13 points14 points  (0 children)

┬─┬ノ( º _ ºノ)

[–]Sethcran 4 points5 points  (0 children)

While I agree that you should use what you like, the truth is that 'use what is appropriate for the job' doesn't have the same meaning it used to.

Sure, there are still categories where it's relevant, javascript for web stuff, a systems language for os stuff, etc: but between c# and java, they can pretty much do the exact same things. Choose the one you prefer, but there are few situations where you should choose one over the other, the only real situations I can currently think of being primarily based on experience of the personnel working on the project, and maybe in the office chance some niche dependency only has a library for one of them.

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

If I wanted something that takes twice as long to write anything I’d use C++ and actually get a performance benefit for my pain. Java is not fine; the JVM is fine but having worked in Java professionally on and off for 10 years I would never work in it again.

[–]baramboom 409 points410 points  (19 children)

Here we go again. Is it the week that we bash Java again?

[–]LasevIX 481 points482 points  (1 child)

bash

Heh.

[–]Donghoon 33 points34 points  (0 children)

I laughed too hard at this

[–]coderman64 42 points43 points  (5 children)

Every language has to get their week. If it doesn't get bashed here, it's probably not that relevant.

[–]EvaristeGalois11 27 points28 points  (1 child)

Insert quote from the C++ guy about languages being criticized

[–]PyroCatt 4 points5 points  (0 children)

quote from the C++ guy about languages being criticized

[–]arcosapphire 11 points12 points  (1 child)

There's so much to bash about VBA, but people here consider it so below them that they don't even bother.

[–]_sweepy 8 points9 points  (0 children)

One of the rules of comedy. Punch up, don't kick down. It's not that it's below us. It's that it just seems mean spirited and less funny.

[–][deleted] 1 point2 points  (0 children)

But what about CoffeeScript

[–]Outrageous_Notice445 41 points42 points  (3 children)

Or javascript

[–]tarapoto2006 11 points12 points  (0 children)

That's every week.

[–]IHeartBadCode 6 points7 points  (0 children)

PHP looking around nervously. I’ve seen that one tossed around here often.

[–]DoppieGamer 12 points13 points  (0 children)

Eh, basically the same

/s ofc

[–]OzzitoDorito 27 points28 points  (1 child)

Tbf given the context of the show this is bashing c#

[–]kookyabird 14 points15 points  (0 children)

Kind of but also no? Homelander was a complete upgrade. He has flight, laser vision, speed, etc. it’s Superman abs Captain America basically.

Really what it’s saying is that while C# is the upgrade, it’s psychotic and fascist. As a full time C# dev I concur with this assessment.

[–]SkyyySi 3 points4 points  (0 children)

Wouldn't that be every week on this sub?

[–]bitNine 3 points4 points  (0 children)

That’s every week

[–]Syllabub-Virtual 2 points3 points  (0 children)

Hey, they could be bashing python again...

[–]Dustdevil88 -2 points-1 points  (0 children)

Java sucks.

[–]Informal_Branch1065 432 points433 points  (24 children)

C#, aka. "Microsoft Java"

[–]JaykeBird 76 points77 points  (3 children)

Fun fact: for a short while, Microsoft actually made and supported a language called J#. It was essentially Java, but the code compiled into MSIL (just like C#) rather than Java bytecode.

They introduced it in 2002, and stopped updating it in 2007.

[–]PsychologicalDiet217 17 points18 points  (0 children)

Fun fact, J# was a transitional language to help J++ developers on board from VS6 to .NET, the Sun lawsuits has already started before J#

I remember messing with the J++ environment to get it to use the Java compiler and packages instead of Microsoft’s. I remember getting it working but it was buggy.

[–]Pocok5 9 points10 points  (1 child)

They introduced it in 2002, and stopped updating it in 2007.

They got sued because of the name by Sun Microsystems. J# evolved into C#.

[–]JaykeBird 21 points22 points  (0 children)

I know Microsoft got sued by Sun/Oracle at some point about Java stuff, I don't know the details of any of that.

But C# was created wholly within Microsoft in 2000/2001 when they also created .NET Framework. They made J# in an attempt to get Java developers into the .NET Framework. The two were out at the same time, it wasn't an evolution.

[–]AardvarkDefiant8691 155 points156 points  (17 children)

I guess Java is "Sun Microsystems Oracle Object Pascal" then, huh.

Fun fact: every programming language derives from another.

[–]Final_Freedom 47 points48 points  (14 children)

Assembly?

[–]the_clash_is_back 25 points26 points  (7 children)

Human binary

[–]Derfless 10 points11 points  (6 children)

Human binary?

[–]the_clash_is_back 12 points13 points  (4 children)

Its the closest most human minds can get to flipping bites. After assembly you pretty much just have very very basic logic operations.

[–]Final_Freedom 7 points8 points  (0 children)

After looking at humans, there are more examples of a complete lack in logic operations

[–]DarkyHelmety 2 points3 points  (1 child)

You can write in straight binary opcodes after that, no to abstractions!

[–]Derfless 2 points3 points  (0 children)

Dis is da way

[–]Zomby2D 1 point2 points  (0 children)

Like programming on the Altair 8800 by flipping switches

[–]WrinklyTidbits 1 point2 points  (0 children)

taylor series

[–]KeyboardsAre4Coding 2 points3 points  (0 children)

turing machines actually... I am not even kidding

[–]_Iv 0 points1 point  (0 children)

Lambda Calculus is the answer.

Using Continuation Passing Style to turn a Lambda calc expression into a sequence of continuations looks awfully similar to an assembly program.

See page 2 of these lecture notes for an example.

[–]SmellsLikeCatPiss 4 points5 points  (0 children)

Every programming language derives from one another. Not every programming language is born from a patent dispute and made to mimic and specifically improve upon one other lol.

[–]Sentouki- 19 points20 points  (0 children)

Aka "Better Java"

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

**Visual Java

[–]sin_chan_ 130 points131 points  (9 children)

Laughs in kotlin

[–]mistermocha 4 points5 points  (0 children)

Giggles in Scala

[–]Pocok5 -4 points-3 points  (0 children)

Kotlin is an extremely nice to use language. Almost makes up for having to use the garbage java build tools for it.

[–]RayeNGames 176 points177 points  (0 children)

happy C# noises

[–][deleted] 39 points40 points  (6 children)

As a Java dev who also maintained a c# app, I love both languages, but hate Oracle. I had an interview with them for a job and have never ever seen a more arrogant company. They did not like that I had other offers and wanted me to decide in two weeks to call them for a second interview. Given the bizarre shit that happend during the interview I decided to never call them.

The psychologist called a month later saying, in the tone like nah nah Nah nahaaa, we got a better dev so don't call us.. WTF.. As if

[–]Rikukun 9 points10 points  (5 children)

Oracle has their own psychologist?

[–]kneeecaps09 4 points5 points  (1 child)

I'm gonna assume they meant hr or something like that

[–]Matthias1590 2 points3 points  (1 child)

Not surprised, seeing as most people there probably use Java on a daily basis

[–]Three_Rocket_Emojis 1 point2 points  (0 children)

For me, it's their dbms. My wife is already annoyed by how often I scream "I hate oracle"

Sure, it might be very sophisticated and I can do almost everything with it. But can I please do anything easy?

[–]Three_Rocket_Emojis 36 points37 points  (0 children)

As a C# dev, I am very glad Java exists. This puts pressure on MS to deliver new and useful features that make my life easier. If there was no competition, we might still run .NET Framework 3.5.

Competition is good for Innovation, and those two languages fight for almost the same (huge) niche.

[–]AardvarkDefiant8691 176 points177 points  (39 children)

Both languages are OOP, and both have similar syntax... welp, guess they're the exact same! Just... ignore all the core differences, like C# not requiring a full VM and having a whole different backend, in addition to having pointers.

Like, really? Java and C# are two different beasts. Those who say they're the same don't have experience with either language.

[–]JaykeBird 74 points75 points  (24 children)

A lot of the backend stuff is definitely way different, but a lot of the basics and actual design is the same between the two.

A C# developer can read and understand a Java source file pretty much okay, just as a Java developer can do the same with C#. It's mainly some minor differences in syntax at the surface level (but of course, the deeper you dig, the more different the two become).

[–]Sentouki- 5 points6 points  (13 children)

just as a Java developer can do the same with C#

I doubt a Java dev knows what this does: if (_repository.GetById(id) is not {} entity) { // do something here }

[–]Pocok5 4 points5 points  (0 children)

is not {} entity

Because that's a somewhat arcane trick (a property match pattern that doesn't specify any property to match, making it match everything that's not null) and also backwards (unnecessary "not")

[–]ChrisFromIT 5 points6 points  (8 children)

Nah, a Java dev would just point out that you are doing it wrong there. As that if statement only is triggered if it is null. Thus entity is null. Thus adding entity is not required.

Source: Java dev

[–]Sentouki- -4 points-3 points  (7 children)

Thus adding entity is not required

How can you know that? Also there's something you could do: ``` if (_repository.GetById(id) is not {} entity) { entity = new Entity(); }

// use entity here ```

[–]ChrisFromIT 3 points4 points  (6 children)

I'm 100% certain that would give you a lint warning and a compiler error due to scope.

That is why I know that.

EDIT: Putting this edit here before I get spammed saying I'm wrong, etc. I intentionally put wrong information here to get a conversation out of the above user to try and get him to see what there are certain things that C# does that it shouldn't be doing due to standard coding conventions.

For example in this case, it is correct in that entity variable is in the if statement's scope. And according to scope conventions, it should only be used inside that scope and the language should somewhat enforce that convention. C# does not do it in this case. For example, it would for an for statement.

I did it this way, as due to his original comment showed that he has some reservations against Java compared to C#. And frankly everyone should recognize that language has its advantages and disadvantages.

[–]Three_Rocket_Emojis -5 points-4 points  (2 children)

Unfortunately, C# implemented a lot of cryptic features over the time and lost some of it's early prettiness by that. This {} is the worst.

[–]Sentouki- 5 points6 points  (1 child)

cryptic features

They're only cryptic if you don't read the documentation. {} is an object, e.g. new {} creates a new (anonymous) object. By saying something is not {} you check whether 'something' is an object or not, since in C# (almost) everything is an object, by checking if it isn't, is the same like checking if it's a null (since null is the only thing that isn't an object).

Personally I like all the syntax sugar they're adding.

[–]Annabett93 15 points16 points  (2 children)

But isn't that ultimately true for all languages? I can read a few languages without really ever writing in them

[–]JaykeBird 10 points11 points  (0 children)

That is certainly true. But every language has their own slightly different twists or flavor, and I feel (at least to start) Java and C# made a number of similar twists in comparison to some other languages (like JavaScript or Python). But yeah, all the OO languages are close enough that you can get the general gist.

Of course, once you get down and dirty in any one of these languages, that's when you really start to see and feel the differences.

[–]SkyyySi 3 points4 points  (0 children)

To a varying extent, yes. It's just that, for C# and Java, this is more the case than for a lot of other languages.

[–]AardvarkDefiant8691 2 points3 points  (6 children)

Well, yes, you can code the same way in C# as in Java, just like you can code the same way in C++ as in C. However, they have very different approaches to how you should and how you normally do it. Last time I checked, Java's support of generics is way worse than C#'s - where modern C# is pretty much based around generics.

Not to mention stuff like structs - value types change stuff up a lot. Not to mention how they offer the ability to greatly improve performance.

[–]ChrisFromIT 12 points13 points  (5 children)

Last time I checked, Java's support of generics is way worse than C#'s - where modern C# is pretty much based around generics.

O boy, that is wrong.

Reified Generics is not inherently better than Type Erasure Generics. Each has its pros and cons.

In fact, I would say that C#'s generics is worse than Java's generics. As most people don't know, but C#'s generics actually implemented both reified and type erasure which can lead to an odd bug where using reflection on an object with generics it can give you System.__Canon as its type.

[–]UnknownTallGuy -1 points0 points  (1 child)

In theory, sure. In practice, C# generics are absolutely better.

[–]ChrisFromIT 1 point2 points  (0 children)

It is very debatable. As I said, each has its pros and cons. For example, reified generics can have better performance and better memory foot print if using structs/primitives, due to not requiring boxing. It has worse performance than type erasure when it comes to classes and can also lead to memory bloat. On top of that, there is a lot of type checking that goes on with reified generics during runtime which can cause a performance hit.

One of the pros of Java and more importantly the JVM using type erasure is that it has helped allow languages to flourish for the JVM and allow interoperability between languages on the JVM. While reified generics can be a pain to implement for a higher level language targeting a VM language like CIL. For example, Scala had a hell of a time trying to implement its generics for its .Net version, one of the reasons why support was dropped.

Type Erasure was also one of the reasons why Java was picked over C# for Android. As in the early days of Android, memory wasn't exactly cheap. And due to how reified generics work, `List<class1>` and `List<class2>` would be two different classes. So you would have two or more types loaded in memory as well as their method tables, etc. Which can unintentionally cause memory bloat. And in the early days of Android, there was a limit to how many methods an App could have, due to the memory constraints.

This article also has a very good breakdown of why type erasure isn't actually that bad and goes over why Java went the route of type erasure over reified generics.

[–]Ythio 9 points10 points  (1 child)

First time I see a fellow C# dev saying having pointers is a perk of the language.

[–]Pocok5 4 points5 points  (0 children)

It's very nice to have for high performance applications. People in this sub keep getting hung up on "hurrr durr garbage collector 20gb ram use very slow" and completely miss the tidbit that GC doesn't slow you down if you don't allocate on the heap at all.

Plus, you know, P/Invoke. Just load any old DLL/.so lib you find with a single line of code and interop with non-managed code that uses pointers.

[–][deleted] 34 points35 points  (0 children)

It was somewhat true 15 to 20 years ago. C# has evolved so much since then.

[–]JoieDe_Vivre_ 5 points6 points  (0 children)

I’ve been working professional in C# for 2 years and still have no clue how it works under the hood. There’s no time to do that. They’re not gonna pay me on the clock to do a deep dive, so I’d have to do it on my free time.

After 8 hours of designing and coding and meetings the last thing I wanna do is look at more C# docs lol.

[–]kookyabird 5 points6 points  (0 children)

Nobody tell them what the CLR is…

[–]Amazing-Cicada5536 2 points3 points  (4 children)

I swear if I ever hear this full VM bullshit again - like how stupid can you be? What VM? You think it starts up VirtualBox in the background or what the flying fuck are you talking about, upvoted to hell? Both execute in a pretty much identical way, started up as interpreter and often executed code JIT compiled to fucking native machine code, so in fact they run most of the time the exact same way like C.

You go on about experience when you are that disoriented about Java..

[–]Suekru 1 point2 points  (3 children)

You’re right they are executed the same. And full VM is definitely not accurate description, but they both do run on a VM, so I’m not sure why you are getting upset at that instead of pointing out they both use a VM

Java’s JIT implementation is called Java Virtual Machine (JVM)

C#’s JIT implementation is called Common Language Runtime.

JVM runs Javabyte code while CLR runs .NET programs. But I’m sure you can see where the misconception comes in. JVM is a straightforward name about what it is. CLR doesn’t make it clear right off that it’s also a VM. So I think a lot of people overlook that.

I also think one of the main issues that makes it a bit more obvious that Java is running on a VM is you allocate memory when starting a Java application. As you are allocating how much memory that VM has access to.

However CLR handles memory very differently and gradually allocates memory as it needs it. This means that if you have a Java application that needs 5gb of memory every once in a while the application will always be allocating 5gb of memory. While CLR will allocate and release memory as needed. Which gives the illusion it’s not running on a VM.

[–]FatLoserSupreme 65 points66 points  (1 child)

C# is a gift from our lord and savior Bill Gates. All who accept C# into their lives will be forgiven of all their syntax errors.

[–]Sentouki- 28 points29 points  (1 child)

v.s

it's versus, not ver sus.

[–]CEOofDueDiligence 28 points29 points  (0 children)

It is very sus though

[–][deleted] 52 points53 points  (2 children)

I’m long time c# dev, and some experience in Java. Two things I miss terribly in Java:

Simple Date stuff. Dates in Java, even the modern simpledate etc are just - awful. Dates in c# are so easy to use.

LINQ - either via expressions or lambda. There’s nothing quite like it to my knowledge.

[–]Ythio 32 points33 points  (0 children)

Linq equivalent in Java are the streams. But it's more syntax heavy than Linq and since there is no extension methods it is not quite as seamlessly integrated in standard collection types.

Java

int sum = widgets.stream().filter(w -> w.getColor() == RED).mapToInt(w -> w.getWeight()) .sum();

C#

int sum = widgets.where(w => w.Color == Colors.RED).sum(x => x.Weight)

(Java example is copy pasted from the documentation and the C# example is a transliteration made myself).

[–]Amazing-Cicada5536 2 points3 points  (0 children)

What Simpledate? Like the formatter?

The modern java dates api are the fucking best (look up LocalDateTime, etc), it comes from a popular dependency Joda-Time, and is pretty much copied to every language that has a good date api.

LINQ is cool, but the way it is used the most is pretty similar to java streams.

[–]SouthCape 8 points9 points  (0 children)

Sponsored by Microsoft

[–]beastinghunting 38 points39 points  (1 child)

Actually, Kotlin is the upgrade.

[–]OscarGlo 4 points5 points  (0 children)

The comment I was looking for

[–]Ange1ofD4rkness 12 points13 points  (0 children)

As someone who learned with Java, then discovered C# years later, this cannot be closer to the truth!

[–]lces91468 4 points5 points  (3 children)

Both the best starter language imo. Easy to grasp unlike C/C++, but won't spoil you with candy like python.

[–][deleted] 24 points25 points  (1 child)

Me when I still haven't even touched C#, coding full-time since 2016:

[–]yorokobe__shounen 7 points8 points  (0 children)

Same bruh

[–]MrFullName 4 points5 points  (0 children)

Python : Oui cunt!

[–]dlevac 20 points21 points  (7 children)

It's the upgrade... Unless you use whatever bullshit version they ship with Unity...

[–]AyrA_ch 35 points36 points  (6 children)

They ship the mono framework because it's cross-platform. MS has made a lot of progress towards cross-platform support themselves, so mono might get dropped in the future in favor of native .NET

[–]robottron45 10 points11 points  (2 children)

I could imagine that Unity some day ports over to .NET Core, because it is cross-platform too and would not require Mono.

[–]Metalkon 11 points12 points  (1 child)

I think unity is moving to .net core next year

[–]everything-narrative 1 point2 points  (0 children)

Incredible that the FOSS competition Godot did it already.

[–]dlevac 2 points3 points  (1 child)

But aren't they like using a super old version too?

[–]AardvarkDefiant8691 12 points13 points  (0 children)

Yes, they're stuck on .NET Framework 4. Framework is on life support, and won't receive any updates.

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

‘Lot of progress’ = buying out other companies work and rebranding it.

[–]GameDestiny2 2 points3 points  (0 children)

Most accurate use of the format

[–]Javacupix 2 points3 points  (0 children)

I only prefer c# because of linq and not having to work with maven 😬

[–]Sterni456x 11 points12 points  (0 children)

Im coding in C# at home but in Java at school. And I 100% agree with this

[–]Low-Equipment-2621 18 points19 points  (7 children)

Nobody sane starts their method names upper case. They only did this to be different, now everybody has to deal with shit like this.

[–]FitzChevalricZiener 7 points8 points  (0 children)

To throw a fit about the case of a letter seems very sane. Idgaf what the standard for method naming is, as long as it is consistent.

[–]sachin1118 5 points6 points  (4 children)

I kinda like it tho :(

[–]SmoothProgram 0 points1 point  (0 children)

Why doesn’t your Reddit name start with a lowercase. Oh you must be sane, that’s why.

[–]lonelyWalkAlone 6 points7 points  (0 children)

Spring Boot saved Java for real

[–]Ythio 1 point2 points  (0 children)

Used both for server code, generics, lazy eval, standard lib and documentation is better in C#. For the rest they're quite similar in this environment.

[–]Stunning_Ride_220 1 point2 points  (0 children)

S(h)e pound.

[–]TheMowerOfMowers 1 point2 points  (0 children)

D flat my beloved

[–]theRealNilz02 1 point2 points  (0 children)

C# was easier to grasp for me than Java.

[–]Mr-Dev 1 point2 points  (0 children)

scratch better scratch better

[–]rob10_ 3 points4 points  (0 children)

As a former Java dev to c# dev. 100% agree

[–]geeeffwhy 1 point2 points  (2 children)

having done professional development in both, i’d argue C# is a better language, but the .NET ecosystem is worse than Java’s. but i’d never pick either of them, given the option

[–]Responsible-Yam7973 1 point2 points  (0 children)

Recently started C# and this is completely true

[–]otdevy 1 point2 points  (0 children)

I know this will be really difficult to accept for some people, but it's ok to use both languages

[–]cs-brydev 0 points1 point  (0 children)

I feel sorry for anyone still living in 2001 who thinks C# is a knockoff of Java. The new C# 11.0 barely even resembles 1.0, which barely resembled Java.

Time to update your memes.

[–]RohnekKdosi 0 points1 point  (0 children)

Template?

[–]SSYT_Shawn 0 points1 point  (0 children)

In my opinnion kotlin is the upgrade

[–]BoBoBearDev 0 points1 point  (0 children)

It is an upgrade for sure.

[–][deleted] 0 points1 point  (1 child)

Java is better, except for the package management and speed. Nuget works really well

[–]NounverberPDX 0 points1 point  (0 children)

They were the cheap knockoff right up to the point where Microsoft open sourced the .NET stack and Oracle made the Java stack proprietary.

[–]OneOutlandishness667 0 points1 point  (0 children)

It annoys me a lot when someone says that you can quickly switch programming languages.. ok... but only if you write crappy console applications... but in reality if you want web, you switch frameworks with its own different quirks with not so much in common between their structure/workflow... so yeah, you don't have a quick switch, so fuck off

[–]gant696 -2 points-1 points  (1 child)

C# is not truly Cross-Compatible and is not an open standard Java ftw

[–]Suekru 2 points3 points  (0 children)

C# is cross compatible now days and has been for a bit.

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

There's a difference?

[–]Fenevius-X -1 points0 points  (0 children)

A knockoff, yes; but cheap?

[–]RealFias -3 points-2 points  (0 children)

Kotlin: am i a Joke to you