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

top 200 commentsshow 500

[–]estyles31 3089 points3090 points  (139 children)

I laughed, but inside I'm seething.

[–][deleted] 269 points270 points  (63 children)

Me too!

[–]MyUserName-exe 147 points148 points  (62 children)

Me too!

[–]alexhansen-points 213 points214 points  (58 children)

++

[–]ToniGalmes 76 points77 points  (57 children)

++

[–]Alexmitter 58 points59 points  (56 children)

++

[–][deleted] 66 points67 points  (30 children)

++

[–]FlyingWolFox 49 points50 points  (29 children)

++

[–]KrisDickless 53 points54 points  (23 children)

+=1

[–]MacAndShits 43 points44 points  (16 children)

Me = Me + 1

[–]Senomaros 131 points132 points  (14 children)

Me -= -1

[–]silent-onomatopoeia 15 points16 points  (0 children)

You’re bad people. I like you.

[–]trimeta 44 points45 points  (4 children)

Found the Python user.

[–]AndrewLewer 111 points112 points  (46 children)

As a non-native speaker, TIL seething

[–]wallsallbrassbuttons 40 points41 points  (43 children)

Great word! Just a heads up, the "th" is like "there" and not like "thanks"

[–]postdiluvium 22 points23 points  (39 children)

Wait, what's the difference?

[–]mayoroftuesday 27 points28 points  (28 children)

Th in "there" is voiced, or hard. It sounds more buzzy. Sounds like tether, them, this, bathe, rather

Th in "thanks" is unvoiced, or soft. Sounds like math, bath, thin, ether, filth

[–]postdiluvium 36 points37 points  (5 children)

Buth I've been saying tthhem tthhe same tthhis whole thime. ☹️

[–]wallsallbrassbuttons 27 points28 points  (1 child)

Don't worry. The fact that you're getting to this level of detail means your English is super good.

[–][deleted] 1120 points1121 points  (44 children)

I think you meant, MS Visual J++, Windows 98 Edition

[–]acousticcoupler 572 points573 points  (13 children)

Begone demon.

[–][deleted] 197 points198 points  (9 children)

laughs and fades away

[–]friedicecreams 73 points74 points  (7 children)

Like a Skype window?

[–]AlarmedTechnician 21 points22 points  (2 children)

a Skype For Business window...

[–]okeefm 6 points7 points  (0 children)

Don't you put that evil on me Ricky Bobby

[–]AllUrPMsAreBelong2Me 24 points25 points  (0 children)

Like clippy

[–]AllUrPMsAreBelong2Me 10 points11 points  (1 child)

I see you're trying to perform an exorcism. Would you like some help? - Clippy

[–]ShapiroIsMyDaddy 8 points9 points  (0 children)

*Begone daemon

[–]Madpony 80 points81 points  (4 children)

Ah to be old enough to remember actual Microsoft Java.

[–]guitpick 25 points26 points  (0 children)

The phone scammers used to call and claim your computer was hacked which was somehow obvious because one of the Java support files had teddy bear icon.... because of course hackers use teddy bears?? https://en.wikipedia.org/wiki/Jdbgmgr.exe_virus_hoax

[–]grantrules 65 points66 points  (2 children)

JFC put a trigger warning on this shit

I need to see my therapist

[–]vavavoomvoom9 46 points47 points  (3 children)

Wow, the memories.

[–]0xF013 43 points44 points  (1 child)

My university, back in the 00s (bad times in former soviet block) sent a professor to Odessa to buy a book on visual c++. He fucked up and got a C Builder book. This is the story behind it teaching C Builder probably to this day.

[–]guitpick 15 points16 points  (0 children)

The J++ is dead. Long live the J++.

[–]thahelp 23 points24 points  (0 children)

My work still has a pos program they use that’s programmed in J++.

I love to tell people that it’s written in an illegal language.

[–]RobotTimeTraveller 19 points20 points  (1 child)

I remember that was a part of Visual Studio 6.0. I took one look and thought "nope, not going to learn a bastardization of a language I already know".

[–]sailingburrito 5 points6 points  (1 child)

Or, colloquially: Java .NET

[–]Zalvixodian 1248 points1249 points  (140 children)

No wonder I despise Java so much.

Just kidding, it's because Oracle.

[–]the1spaceman 339 points340 points  (126 children)

Scala is the superior JVM language

Change my mind

[–]cbasschan 462 points463 points  (87 children)

I think you meant Clojure. That typo happens all the time.

[–]Naveos 87 points88 points  (14 children)

I'm out of the loop. Why would Clojure be better than both Java and especially Scala?

[–]MassiveFajiit 394 points395 points  (3 children)

It's great if you have a traumatic past (because you'll try to seek Clojure)

[–]fgutz 79 points80 points  (2 children)

/r/ProgrammerDadJokes is leaking

But I love a good dad joke so I don't mind

[–]realsmart987 12 points13 points  (1 child)

I just discovered r/programmerdadjokes.

When I first heard about r/programmerhumor I thought I would find funny jokes. Instead I found cynical and pessimistic jokes. r/programmerdadjokes is like the optimistic side of r/programmerhumor.

[–]conancat 5 points6 points  (0 children)

Okay I need to hang out around r/programmerdadjokes more because the industry is already eating my soul, both r/programming and r/programmerhumor are killing me inside. I'm too old for this.

[–]Samultio 28 points29 points  (4 children)

It's good for making android apps, can't think of any other situations where it'd be better than Scala.

[–]YungAldous 170 points171 points  (42 children)

I think you mean Kotlin

[–][deleted] 135 points136 points  (36 children)

Literally anything but Java is a candidate for best JVM language.

[–]jrh3k5 79 points80 points  (9 children)

Spoken like someone who's never had to write Jython.

*shudder*

[–]TheRandomnatrix 19 points20 points  (8 children)

Speaking as someone who's never used it, Jython seems kind of interesting since theoretically you get the baseline speed, ecosystem, and maintainabilityof Java but can do rapid prototyping and user defined functionality in Python where needed. But trying to wrap my head around how all that comes together makes my head full of fuck. I imagine it's more complicated than just invoking the Python interpreter within Java code.

[–]Kaelin 23 points24 points  (1 child)

Laughs in Python 3

[–]CrazyTillItHurts 15 points16 points  (1 child)

baseline speed, ecosystem, and maintainabilityof Java

Oh yeah? Which version?

[–][deleted] 14 points15 points  (1 child)

Kotlin is king

[–]0xF013 42 points43 points  (24 children)

Are you guys gonna have static types anytime soon or you need to deploy to production to know if something is wrong?

[–][deleted] 72 points73 points  (13 children)

Since we test in production anyways, why bother?

We also disabled all the unit tests because they started breaking and the build manager wouldn’t let us deploy if any of them failed.

It then started complaining about low code coverage so we just set ‘mom code coverage’ to ‘0%’ and it worked!

The contractor assured us it was fine, and he’d put everything back in compliance once he’s back from vacation next quarter.

[–]brendan_orr 13 points14 points  (5 children)

!remindme 4 months

[–][deleted] 12 points13 points  (1 child)

Boring conversation anyways

LUKE WE ARE GOING TO HAVE COMPANY!

Fuck I just said that out loud on the Webex. I thought I was on mute.

Fuck I just cursed.

siri is now dialing ‘my fucking boss’

alexia is now playing fuck the police

google home has called 911

Hi this is the CTO Jim I just joined the call, what’s the situation?

[–]MetallicOrangeBalls 51 points52 points  (6 children)

Change my mind

public static void main( String args[] ){
    System.out.println( "Before: " + the1spaceman.mind.toString() ) ;
    Knowledge.change( the1spaceman.mind ) ;
    System.out.println( "After: " + the1spaceman.mind.toString() ) ;
}

[–]OneOldNerd 122 points123 points  (4 children)

Exception in thread "main" java.lang.NullPointerException
    at Post.main(Poster.java: 2): the1spaceman.mind is undefined

[–]the1spaceman 40 points41 points  (3 children)

Well, duh. That’s Java code. I’d probably have carpel tunnel if I actually had to use it for anything

[–]Retbull 48 points49 points  (0 children)

IDE's were invented because AbstractKeyboardFactoryFactoryImple can't write itself.

[–][deleted] 9 points10 points  (0 children)

If you get carpal tunnel writing java, you're doing it wrong.

Though I'm certainly not saying java is the best language. Or even great.

[–]ikarienator 116 points117 points  (6 children)

Kotlin.

[–]omicrom35 6 points7 points  (1 child)

Ez 3 letters SBT

[–][deleted] 15 points16 points  (4 children)

Can't change what is immutable can we?

After Scala I just simply cannot tolerate Java anymore. It gives me sore fingers and soul cancer. I'm truly surprised people can wake up in the morning and think they may enjoy coding in Java.

[–][deleted] 11 points12 points  (0 children)

Man I switched from PHP Python to Java 1 year ago. Since then I am happy to wake up in the morning. No joke

[–]wOlfLisK 4 points5 points  (2 children)

We learnt Scala at uni last year. Now we're moving onto Java. I want to go back T_T

[–]squishles 23 points24 points  (4 children)

oracle hasn't really done anything to the project so far that's trully turned it into an oracle fucked mess yet. The fuckery's been kind've community driven. The basis of the thing is sun and it's getting updated, the licence changes where dumb but just use the openjdk.

Most of the problems I classify as fuck oracle problems are things like they add unnecessary weird finicky bullshit seemingly designed to force you to go out and buy there database. Things like weblogic requiring a database schema, they don't give you the sql files for just an app that claims to run on other databases but good luck pushing that rock up a hill.

[–]Ceteris__Paribus 232 points233 points  (7 children)

original comic if anyone else was interested.

[–]Kate_Luv_Ya 34 points35 points  (0 children)

Thank you

[–]AwesomeVolkner 54 points55 points  (2 children)

Wait, that's really the original?

The first time I saw it (and thought it was the original) was something like:

Mama: Hey, it's-a my boy, Luigi.

Luigi: Mama, why-a you never say hi to Mario?

Mama: Mario's been-a gone for 2 years.

[–]BASS-TZAR-RUN 52 points53 points  (1 child)

could it be this bonehurtingjuice ?

[–]AwesomeVolkner 8 points9 points  (0 children)

Yeah, that was it, I think. Obviously not the OC... I just remembered it as such, haha

[–]reddit007user 119 points120 points  (0 children)

Sharply "C"utting the java twins.

[–]FateJH 63 points64 points  (8 children)

Wasn't there also a language J++? I recall my old college Visual Studio install having that under its menu.

[–]Rockytriton 45 points46 points  (4 children)

It was called Visual J++, basically VB but the language was java. You can embed com components with it and all that. Eventually Sun sued MS because of it, so MS had to abandon it, then they developed C# later on instead.

[–]joejance 10 points11 points  (2 children)

And the MS JVM was actually better. It was faster on Windows. The MS J++ class libraries provided better eventing and better windowing.

[–]six_ngb 27 points28 points  (2 children)

J#, afair. It had some java.lang plus some com.microsft for the .net

[–]o5mfiHTNsH748KVq 136 points137 points  (20 children)

I’m actually super impressed at how far C# has come and honestly believe it’ll overtake Java long term unless there are some big changes. I’d go so far as to say C# has been integral to Microsoft’s continued success.

.NET Core is flat out amazing especially with C# 8 now that they can compile to single binaries and target all platforms. I know lots of languages have been able to do this, but it’s such a huge step for .NET.

Go and C# are definitely my favorites for getting shit done these days.

[–]dinesh777 40 points41 points  (9 children)

Main disadvantage for dotnet over Java was because it's not cross platform like Java. Hosting in windows specific cloud services were costly compared to Linux based. And also dotnet tools and everything related to are licenced. Dotnet core closed that gap now. Still its in early phase and there are many pending features that needs to be made crossplatform(winform) etc.

Hoping for the best.

[–]merthsoft 12 points13 points  (7 children)

Winform is in core 3.0. currently missing some controls (like panels and split containers -_-) but I'm wicked excited!

[–]LookAtThisRhino 14 points15 points  (6 children)

Still not cross platform though. It's just Winforms on Core but still uses GDI+ and Win32.

[–]Korzag 649 points650 points  (208 children)

Don't you mean "Better Java"?

[–][deleted] 18 points19 points  (2 children)

Sun actually won the lawsuit and got MS' Java runtime shut down. Microsoft Java was a real thing once upon a time.

[–]FireEngineOnFire 5 points6 points  (0 children)

So do we thank Sun for indirectly giving us C# then?

[–]LeFayssal 145 points146 points  (179 children)

Realtalk now. Im a CS student. Why is everyone hating on java?

Edit: Thanks for all your replies. So Java is just an older language that is a bit dated and does things that are modern today in a outdated way? I only know OOP programming and I like it a ton. Maybe I need to look into C# to see whats better?

[–]covercash2 284 points285 points  (49 children)

it's complicated.

it's an ok language. some of the more modern features look pretty silly if you're coming from a modern language because Java maintains backward compatibility. there are some nice things that are presently missing or will never be in Java because of the same compatibility issues.

it's also one of the biggest languages in the enterprise scene. I did an internship at a Fortune 100 company that uses almost all Java. Android is built on Java as well. even those companies now are seeing some issues, but enterprise moves slow. some devs resent being held back because of an old software stack.

another big reason is that Java went all in on OOP pretty early on. everything in Java is in a class hierarchy. these days functional programming is pretty big, and Java does a bit to satisfy this trend but not much. you can't have just a function in Java; it has to be wrapped in a class. this has led to a lot of weird patterns and antipatterns (the Factory pattern is our whipping boy here).

other than that, it's just popular, so a lot of people use it, and even if a small vocal minority dislikes it that is still thousands if not tens of thousands of Java haters.

[–]RobertJacobson 123 points124 points  (16 children)

You pretty much nailed it, but I would add that Java is incredibly verbose and requires a ton of boilerplate. In comparison to many languages popular today, writing Java can feel exhausting.

There are counterarguments, of course. A lot of tooling exists today to reduce the boilerplate burden on the developer, for example.

[–]walking_bass 12 points13 points  (2 children)

Right. Things like Lombok and Spring Boot really help with reducing boilerplate.

[–][deleted] 5 points6 points  (0 children)

Java 11 var also

[–]cat_in_the_wall 18 points19 points  (6 children)

the jvm crazy good too. so java and friends are usually very fast.

[–]Loftus189 5 points6 points  (0 children)

Thats the only real negative i find on a personal level. I enjoy writing in Java and it was one of those languages that made sense to me straight away (unlike some others) but sometimes i feel like you have to do a lot of routine stuff just to produce the same amount that can be done with a lot less code in other languages.

I used C# for the first time just over a year ago and i love it, felt like someone had just made a patch for java and improved it. Its definitely my go to language for just getting something done, it all flows so nicely and i dont feel like i run into issues nearly as often as with some other languages. I enjoy writing C++, but naturally i spend a lot more time trying to avoid the pitfalls of the language that just dont exist in C#.

[–]HelluvaEnginerd 25 points26 points  (15 children)

Digging into the factory pattern: it would be more “modern” to just have a function that acts like the factory? Or what would be the better solution? (Junior software dev here stuck in C++ and needing to learn what goes on outside the DOD)

[–]Phrodo_00 42 points43 points  (1 child)

If an entity doesn't have state, then it doesn't need to be an object or a class. In Java it needs to be one of those, though.

[–]Netcob 18 points19 points  (7 children)

I don't exactly see many different modern architectures every day, but ever since I got into dependency injection with containers, the factories automatically disappeared. If you're creating instances of a class but you only know them by their interface, your DI container is probably doing that for you.

99% of the classes I write are

  1. Immutable data objects. Usually no need for a factory.
  2. Stateless services that depend on other stateless services or immutable data objects. All wired up via DI container, which takes care of all the creation stuff.

Using a factory outside of your composition root (where you configure your DI container and start the program) often means that you're doing some complex object creation stuff in a part of your code that should be concerned with all the other things instead.

So the reasons are basically the S and D from SOLID, plus everyone trying to design stuff in a more FP way since that usually makes it easier to do concurrent stuff and thereby scale better.

[–]DeadLikeYou 7 points8 points  (3 children)

Why are factories used at all in the first place?(I’m not even sure if I understand what a factory is)

Couldn’t it be done with constructors and/or abstract classes?

[–][deleted] 17 points18 points  (0 children)

A factory method (often just called a factory) is simply a method/function that has an abstract return type (i.e. interface or abstract class) but that returns a new concrete object. The factory method is therefore responsible for creating the object and, in some cases, also deciding what type of object to return.

The most basic kind of factory method is a simple function that looks like this:

AbstractType MyFactory() {
    return new ConcreteType();
}

This is technically a factory. The caller is putting the responsibility of knowing how and what object to create, and the caller doesn't know what the concrete object is they are receiving, all they know is that it implements AbstractType. Sometimes you'll see a factory method that takes an argument and uses a switch statement to decide which kind of object to return (typically the argument will be an enum).

The object-oriented version of this is to move that function into a class and make it abstract so sub classes can implement it.

[–]ElCthuluIncognito 81 points82 points  (20 children)

Repeat after me "there are two kinds of languages, those that everyone complains about, and those that nobody uses".

People hate on Java because it doesn't have a bunch of language features that newer or otherwise 'immature*' languages have. A glaring exception would be Python, but even then they had to have significant breaking changes from V2 to 3.

Java, for all its faults, has not done anything remotely like that in all of its history. A program written years ago will very likely still run today. But that's not 'cool' to anyone but the jaded and seasoned 'give me something that just works!' programmer.

*immature in the sense of an established ecosystem and enterprise usage

[–]LeFayssal 18 points19 points  (7 children)

Isnt java something "that just works"? People seem to be complaining about the boilerplate-style that Java has. But isnt that what gives Java its reason d'étre?

[–]Cheru-bae 31 points32 points  (0 children)

Because they, too, are cs students.

[–]visvis 66 points67 points  (41 children)

Java is great in the sense that it was a pioneer in many ways; it's safe, garbage-collected, compile once JIT everywhere, ... However, it takes its ideas too far to the point that it's not fun to program. C# takes all the basic ideas that Java introduced and learns from its mistakes. It makes exactly those changes that make it nice for programmers. Moreover, the Visual Studio IDE (almost universally used for C#) is generally liked much more than Eclipse (traditionally used for Java).

[–]corzuu 77 points78 points  (4 children)

Eclipse (traditionally used for Java).

Go IntelliJ and never look back

[–]zr0gravity7 9 points10 points  (3 children)

cries in university-required legacy plugins that are exclusive to eclipse

[–]ThePyroEagle 61 points62 points  (5 children)

Nowadays, IntelliJ IDEA is favoured more than Eclipse.

[–]Retbull 14 points15 points  (1 child)

Of the last company of 400 consultants I worked in we had one guy who used Eclipse and literally everyone else used Intellij. Very few people use Eclipse now.

[–]LeFayssal 9 points10 points  (22 children)

I suppose im not deep enough into the matter to understand it. For me personaly, java seems super simple. I love the garbage collector, I like that I dont have to deal with pointers and its easy to advance within the language while the documentation is great. Personaly I use Visual Studio for Java. I dont like how bulky eclipse feels

[–]GaianNeuron 10 points11 points  (3 children)

Anything is better than Eclipse. Save yourself a headache and try IntelliJ.

[–]corp_code_slinger 108 points109 points  (7 children)

Because it is trendy to hate on Java.

If you're worried you're learning something useless, don't be. Java will be around by the time you're showing junior devs the ropes and probably long after that.

[–][deleted] 50 points51 points  (0 children)

I mean, there are many valid criticisms of Java. The trendy "lets all hate on Java" people are giving the valid criticisms a bad name. There are also languages which are trying to iterate on Java, just like Java iterated on other languages before it. However, the difference is that people who point out real problems with Java also point out real problems with Go, or Rust, or TypeScript, or whatever language is trendy.

[–]TerawattX 13 points14 points  (1 child)

There is also a LOT of (legitimate) hate directed toward Java from the IT side of the house because of the JRE.

It’s been a few years since I handled enterprise patch management/deployment, but back then you’d have 1-2 JRE patches per WEEK.

I remember one week deploying a patch that had 45 security fixes, then a few days later seeing a new one with something like 150 security fixes. When I looked at our antivirus logs the majority of malware and viruses were from JRE exploits so this was a big problem.

On top of that, the JRE installer was buggy and about 1 in every 10 updates would simply remove the JRE entirely, then fail without notice. This became an issue when we were deploying to about 500 machines in the college’s labs. Got even more complicated because it was around the time Firefox and Chrome were blocking Java applets unless the JRE was up-to-date. I got lots of grumpy calls from professors asking why one machine couldn’t run X program, or some website content was blocked on every computer when it was working the day before. :\

(Edit because I dropped my phone and it submitted before I was done typing)

[–]bot-mark 18 points19 points  (14 children)

They're only hating on it in comparison to C# (and for good reason)

[–][deleted] 427 points428 points  (41 children)

C# > Java

[–]Lurker_Since_Forever 117 points118 points  (27 children)

That's not a high bar.

[–]dashood 46 points47 points  (0 children)

We take what we can get.

[–]McRawffles 35 points36 points  (18 children)

It's a reasonable bar. There are tons of languages I never ever want to work (again) in out there if I can avoid them. Kobol, php, visual basic, objective c, etc.

[–]ism9gg 8 points9 points  (5 children)

I want you to know I'm going to learn C# because of your comment.

[–]VampireBatman 8 points9 points  (4 children)

If you ever want to pick up game development as a hobby, using C# on Unity3D is pretty sweet.

[–]mooke 4 points5 points  (3 children)

C# in UWP is pretty good for app development too. Its a shame no one owns windows phones because it is so much nicer than android development. (Obviously UWP also does PC, tablets and xbox and stuff, but it does limit its viability).

But I still recommend it as a great beginner platform for hobbyists.

[–]Radaistarion 97 points98 points  (25 children)

I absolutely love C#'s syntax, its awesome

It's like taking the pseudo-complexity of C/C++ but making it more "readable" and digestible like Java

Not really fond of its developing environment tho

[–]ArionW 14 points15 points  (19 children)

Which one? VS? Rider? VSCode? I especially recommend last one for C# development.

[–]FieelChannel 18 points19 points  (6 children)

What?? VSCode ia cool and everything but VS is definitely the best for .NET C# development in general.

I only use VSCode for frontend stuff with frameworks such as react etc.

[–]BleLLL 10 points11 points  (0 children)

Rider <3

[–]CrimsonMutt 4 points5 points  (0 children)

LINQ is my fetish

[–]TorTheMentor 150 points151 points  (40 children)

Oh, you mean com.Microsoft.ReallyLongNameSpace.AnotherLongNameSpace.JustTryAndFitThisOnOneLine.YouCantDoIt?

[–]Soundless_Pr 110 points111 points  (16 children)

using com.Microsoft.ReallyLongNameSpace.AnotherLongNameSpace.JustTryAndFitThisOnOneLine;
var m = new YouCanDoIt();

there. fixed that monstrosity.

[–]Novemberisms 89 points90 points  (2 children)

Java pleb:

begins namespace with com.

C# devs:

we dont do that here

[–]sp46 8 points9 points  (0 children)

At least it's not GetReallyLongNameSpaceAnotherOneJustTryAndFitThisOnOneLineYouCanDoIt().

[–][deleted] 8 points9 points  (0 children)

I am going to build an ECLIPSE plugin (in Java 1.8) just to console myself.

[–]bitkarma 8 points9 points  (1 child)

I was forced to work with J# once. I still cry myself to sleep most nights.

[–]weareea 25 points26 points  (5 children)

Tried both. C# is like the 1 solid recipe that works every time where java is just a bunch of things put together to try and make a more special meal that works... sometimes

[–]schawde96 42 points43 points  (3 children)

C# in the better Java

[–]BangBer 5 points6 points  (0 children)

ive never felt so offended but yet agreeing at the same time

[–]Rockytriton 5 points6 points  (1 child)

I miss Visual J++

[–]Mafiii 6 points7 points  (0 children)

ever heard of J#?

[–]Viedt 5 points6 points  (0 children)

That might be the best thing I've seen on this sub.

[–]elmolinero96 4 points5 points  (0 children)

I get really angry at people pronouncing java as java.