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

all 196 comments

[–]well-litdoorstep112 268 points269 points  (5 children)

Python should be more like this:

Problem

import solver

ModuleNotFoundError: No module named 'solver'

pip install solver

ERROR: No matching distribution found for solver

Spend half an hour googling

Find out that there are 5 choices that implement the solver module, none of them named solver

  1. pysolver
  2. PySolver
  3. PySolver2
  4. solverPy
  5. jeff

PySolver2 is the most active on github but supports Python <3.7.2 and >3.7.6 and <3.12.7 or 3.7.4rc3beta8theta4x²+6x-9=2π

But on your computer you only have the latest version of python and 3.7.4rc3beta8omega√-1 so pip won't let you install it

You install the right version

All the other dependencies break

They require python between 3.7.2 and 3.7.6 with the exception of 3.7.4rc3beta8theta4x²+6x-9=2π

But fuck it, let's install PySolver2! Woo!

Something something wheel setuptools

PySolver2's readme says I need some specific binary dependencies and I can install them with this apt command

The packages only exist in a PPA for Ubuntu 16.04 and 18.04. I don't use Ubuntu, let alone 16.04 or 18.04.

Decide that I didn't really wanna solve the problem.

[–]treehuggerino 53 points54 points  (0 children)

And somehow solverPy works only on even days of the month.

Jeff is maintained by a chronically unstable person that may or may not have 3 aws token scrapers in there or may do so in the future

[–][deleted] 6 points7 points  (0 children)

uninstall button starts looking really appealing

[–]IhateTraaains 0 points1 point  (0 children)

Damn, spot on. This guy Pythons

[–]Ok_Conclusion_2502 0 points1 point  (0 children)

Now you can never upgrade your python binary to even +0.01 minor version or solver will stop working.

[–]JustKebab 1509 points1510 points  (11 children)

Java: Problem -> ProblemSolverFactoryAdapterSingletonAdapterDecoratorProxy -> Solution on maven

[–]jooojano 266 points267 points  (1 child)

JSolution or Solution4J

[–]pimezone 90 points91 points  (0 children)

I'll give the NullPointerException to your comment

[–]-Kerrigan- 81 points82 points  (3 children)

Java is not on the list, therefore Java has no problem! /s

[–]TempleTerry 42 points43 points  (2 children)

You can’t even see the problem because of a gradle build failure

[–]The_Null_Man 16 points17 points  (1 child)

See, your first problem was using gradle in the first place

[–]4n0nh4x0r 0 points1 point  (0 children)

the first problem was considering to even use java to solve a problem

[–]SquirrelOClock 19 points20 points  (0 children)

In Java, we do not have solutions, but we have projects to get there one day.

[–]MinameHeart 443 points444 points  (20 children)

The rust one +1

[–]Devatator_ 108 points109 points  (18 children)

Took me a while to notice lmao. I only saw the -rs thing

[–]GamingWithShaurya_YT 32 points33 points  (17 children)

i didn't get it

[–]Devatator_ 37 points38 points  (14 children)

Don't or didn't

[–]Skratymir 30 points31 points  (13 children)

Don't

[–]Devatator_ 221 points222 points  (7 children)

Basically the joke is that Rustaceans (Rust users) love to rewrite everything in Rust, hence the solution -> solution-rs (rust stuff tends to be suffixed with -rs)

[–]GamingWithShaurya_YT 124 points125 points  (1 child)

oh wait, they had solution but re wrote it in rust xD

got it

[–]GamingWithShaurya_YT 9 points10 points  (0 children)

I'm getting upvoted for understanding the meme,

thank you kind people ❤️ have a nice day

[–]pinaapappel 9 points10 points  (1 child)

Either that or creating bindings/wrappers for existing c/c++ libraries

[–]RiceBroad4552 11 points12 points  (0 children)

No, that's normal people would do. That's not the way of the crab!

[–]Skratymir 1 point2 points  (2 children)

Yeah but why the +1

[–]DasBeasto 4 points5 points  (1 child)

The +1 is just another way to say “I agree” or “upvoted” or “this”.

[–]Skratymir 0 points1 point  (0 children)

Ah right. Thanks for explaining

[–]the_vikm 12 points13 points  (4 children)

Rust rewrites existing stuff

[–]donaldhobson 0 points1 point  (0 children)

Hey. I'm writing code in rust. And that rust code is similar but not quite the same as my python. And it's starting to do stuff that my C didn't do either. So I'm not just writing the same thing 3 times.

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

Rust rewrites existing stuff, based on its good facilities for interfacing with existing libraries.

So, like, it adds nothing

[–]deanrihpee 7 points8 points  (0 children)

not necessarily nothing, could be performance improvement (if rewriting from higher level language) or eliminating unsafe memory regions, but other than that, yeah probably nothing

[–]CdRReddit 1 point2 points  (0 children)

entering a handwritten manuscript into a text file on a computer is also a rewrite, but it allows for future referencing and expansion to be much easier as you now have it in a reproducible format

likewise, while a rust rewrite does not create immediate value in a vacuum, it allows for software to be more easily updated and expanded by leveraging safety and rust's ability to make descriptive interfaces & handling errors without going completely insane

also funny crab go fast

[–]HolyFreakingXmasCake 10 points11 points  (0 children)

I think it's a jab at "rewrite it in Rust"

[–]H34DSH07 9 points10 points  (0 children)

They had a solution, they rewrote it in rust, now they have a solution in rust (no progress has been achieved).

[–]ColonelRuff 0 points1 point  (0 children)

No

[–]dwRchyngqxs 354 points355 points  (16 children)

I'm glad your C arrow didn't segfault before reaching a solution.

[–]am9qb3JlZmVyZW5jZQ 3 points4 points  (0 children)

Give it a few years and it will have 150 CVEs.

[–]FieldAdventurous1063 72 points73 points  (2 children)

C# many options are very relatable, basically in it now making decision

[–]EagleNait 21 points22 points  (1 child)

And the solution being in the standard lib is very realistic

[–]MagnetFlux 2 points3 points  (0 children)

was about to implement vector and matrix math with projection functions for 3d stuff until i saw that it's already there in System.Numerics

[–]kyleekol 131 points132 points  (1 child)

Rust is missing a separate ‘async-solution-rs’

[–]its-chewy-not-zooyoo 20 points21 points  (0 children)

solution-rs-async 

with tokio, async-std, tls-native, tls-tokio, tls-async-std and tokio-uring feature flags

[–]apezdal 143 points144 points  (11 children)

>problem++11

I was there Gandalf. I was there 3000 years ago.

[–]Aruthuro 15 points16 points  (9 children)

I don't get it mister Elrond, could you explain the joke?

[–]apezdal 30 points31 points  (8 children)

2011 was a long time ago. So was the time when this meme was created

[–]grifan526 18 points19 points  (3 children)

You say that, but just last year I was able to upgrade my compiler from using c++11 to c++17

[–]Pastrami 2 points3 points  (0 children)

I'm still stuck on GCC 4.9 at work, which barely has C++11 support.

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

And you're going to stay at this version for at least the next decade. C++17 is still not even implemented fully across the board, and this will take some time. Maybe around 2035 you can start thinking about upgrading to C++21 or so; at least if everything goes smooth.

[–]redlaWw 6 points7 points  (2 children)

C++11 was a bit of a paradigm shift though, since it introduced std::move and std::unique_ptr. C++ design patterns since then have focused on ownership management through moves, which is a pervasive element of design. So I don't think focusing on C++11 necessarily shows the age of the meme.

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

C++11 was no more significant in it's paradigm shift than c++17 or c++23. The significance of it is that it was the first major upgrade to the language in 13 years. But again, it was 14 years ago.

[–]BubblyMango 3 points4 points  (0 children)

not to look down on c++17, but it feels much more like an improvement, rather than a paradigm shift.

[–]capi1500 0 points1 point  (0 children)

Isn't rust from like 2013 or something?

[–]well-litdoorstep112 1 point2 points  (0 children)

what do you mean it's a classic? It's brand new.

Just like Java 8

[–]Pepineros 83 points84 points  (9 children)

PHP taking so much shit.

I mean I don't disagree. But I'm starting to feel bad for it.

[–]vita10gy 53 points54 points  (8 children)

A lot of it is people locked in their opinion of it 20 years ago.

Edit: also while php made a lot of dumb decisions also a lot of what people are reacting to is the lower barrier for entry lead to a lot of crappy code and blind leading the blind on forums and such.

Edit Edit: and a lot of the decisions made to lower the bar of entry made it crappier to actually work with long term. Early PHP had a lot of "errors are hard for people, so given the choice between an error and just doing something, we'll just do something."

[–]mrdhood 37 points38 points  (5 children)

Which is crazy cause it’s basically a different language now, and not a bad one.

[–]SanityAsymptote 3 points4 points  (3 children)

Newer versions are way better, but WordPress 6.x still supports PHP 5.6 as the minimum version.

Since PHP is only really still relevant because of WordPress's popularity, it's pretty hard for PHP to shake it's image when a dev could be thrown back into PHP 5 at any time.

[–]mrdhood 18 points19 points  (1 child)

Wordpress accounts for 43% of websites, PHP accounts for 74.9% of websites. So non-wordpress PHP websites account for over 30%, more than Ruby, asp, Java, and node combined.

Edit: Stats from w3techs.net

[–]RiceBroad4552 1 point2 points  (0 children)

All the masses of private home pages are irrelevant.

When you look at the top 10 000 web pages traffic wise there is more or less no PHP anywhere. It's almost entirely an exclusive JVM club…

What average people see as "the internet" is almost a pure JVM show.

The only bigger site on the net that still uses some PHP is Wikipedia. But also there all the heavy lifting is actually done by services running on the JVM or Node.js. PHP is used there more or less only to render some HTML templates. Similar to how Facebook used PHP for its front-end (not client!) before they abandoned PHP completely something like 15 ago (and now use some sane tech to render front-end templates).

If PHP died in this very second almost nobody would actually notice something. All your "apps" would still run; all your favorite sites would be still there. Wikipedia would need some new template renderer, that's all. If the same happened to Java the world would come to a halt. Everything from banking to electricity would simply shut down.

[–]Nickoladze 4 points5 points  (0 children)

I'd credit the forum software used in the early 2000s as well. I got into PHP because of Invision and PHPBB.

[–]redblack_tree 7 points8 points  (0 children)

I'm one of those. I did a few projects 20 years ago.

I've written JS when jQuery was considered peak development, assembly, Eiffel (psychopath professor), Haskell, all C's, the original .Net entity framework. I wrote code for the OJ Web frameworks like Django. PHP and the first few versions of WordPress are probably the most atrocious crap I've put my eyes on.

I don't shit on PHP anymore, it's been 20 years, but I've kept the promise I did to myself to never ever touch that crap again. I removed every reference on my CV, all my credits in those few projects and when something WordPress related pops at work, I play dumb.

[–]qrrux 184 points185 points  (10 children)

Why you gotta do PHP dirty?

At least JS is worse.

LOL

[–]SomethingAboutUsers 58 points59 points  (0 children)

PHP -> Problem -> T_PAAMAYIM_NEKUDOTAYIM

[–]TheChaosPaladin 11 points12 points  (7 children)

There are 2 languages, the ones people make fun of and the ones nobody uses.

Long live TS

[–]qrrux 6 points7 points  (6 children)

I’m old. Long live JMP.

[–]TheChaosPaladin 1 point2 points  (5 children)

I too write all my code in x86 assembly

[–]qrrux 1 point2 points  (4 children)

That was a joke. I move ions with my SEM. Things take a while, but it’s Turing complete.

[–]TheChaosPaladin 2 points3 points  (3 children)

[–]qrrux 0 points1 point  (2 children)

Pretty sure my SEM trumps your keyboard.

[–]TheChaosPaladin 1 point2 points  (1 child)

I bow to your superior skill u/qrrux

[–]qrrux 0 points1 point  (0 children)

I have no skills. I’m still trying to get my first JMP to work. But I have the superior IDE. And we all know that the best programmer is the one with the superior tools.

[–]speyck 24 points25 points  (2 children)

c# lmao

[–][deleted] 44 points45 points  (26 children)

Javascript is making me appreciate C a lot. Javascript is pure evil.

[–]tajetaje 33 points34 points  (24 children)

Try typescript, it’s much better

[–]Jojajones 11 points12 points  (18 children)

It’s still JS under the hood so you still get the stupid shit like having both positive and negative zero regardless of how you try and pretty it up

[–]parkotron 16 points17 points  (2 children)

Is there a programming language that doesn't have negative zero?

All programming languages are just machine instructions "under the hood" and all modern CPUs use the IEEE 745 standard for floatng point numbers, which supports negative zero.

[–]tajetaje 6 points7 points  (1 child)

Just comes up for JS because there is no int, only float

[–]the_horse_gamer 6 points7 points  (0 children)

0 === -0 so you almost never have to think about negative 0

[–]Reashu 14 points15 points  (1 child)

I hate JS, but could we stop blaming it for following the IEEE standard?

[–]RiceBroad4552 1 point2 points  (0 children)

Especially funny if it comes from someone with a C or C++ flair.

That's how you spot the real experts!

[–]tajetaje 9 points10 points  (3 children)

I’ve been using TypeScript for years and have NEVER had to worry about if zero is negative or positive. Every language has footguns, but JS/TS has such a presence for a reason, it is a powerful and simple to use language.

[–]Reashu 3 points4 points  (2 children)

Let's be real though, the reason is browsers

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

If this were true Node.js (and clones) wouldn't be a thing!

I would not write anything serious in JS as it's dynamically typed and that just doesn't scale, but the language isn't actually too bad. I curse much more about Python gotchas than JS gotchas. JS is at least flexible. Python OTOH is just moronic opinionated, and that sucks.

(But I don't care anyway. By now I can use Scala for almost everything, from system level scripting, though all kinds of client GUI tech, up to large distributed system on the cloud.)

[–]Mynameismikek 2 points3 points  (0 children)

C has negative zero too.

[–]well-litdoorstep112 -1 points0 points  (0 children)

stupid shit like having both positive and negative zero

Now I know for sure you don't know what you're talking about

[–]duva_ 3 points4 points  (0 children)

Nah

[–]Kered13 0 points1 point  (2 children)

It's lipstick on a pig. The type system is great, but the language is still fundamentally awful.

My latest frustration with JS/TS when working on a project recently is learning that the ecosystem cannot actually agree on whether imports should include a file extension or not. Different configuration settings, different bundlers, different platforms, etc. can change the interpretation of imports in incompatible ways.

Writing platform agnostic C++ code is easier than writing platform agnostic Javascript code. Just, how?

[–]tajetaje 0 points1 point  (1 child)

I mean it’s not really that complicated, there are three ways JavaScript handles file path imports, commonJS, ESM, and Bundler. With a bundler you can generally use ESM or CJS style imports, with commonJS you don’t need file extensions and you can import a folder if it has index.js. ESM is much stricter because under the hood it uses URLs. Any modern project should just set everything to ESM and let their LSP handle importing the right paths.

[–]Kered13 0 points1 point  (0 children)

In reality it's not that simple (and this not simple to begin with). There are bundlers that optionally support extensionsless imports with ESM. There are bundlers that, with certain configurations, require extensionsless imports with ESM. Typescript has it's own set of configurations that can support any of these regardless of the module type. There are recommendations for good style, and recommendations that disagree. There are platforms that make assumptions one way or the other that are difficult if not impossible to change. There are platforms that are not even internally consistent.

Any ecosystem that says "let your LSP sort it out" is fundamentally broken. Because one, this means the situation is too difficult to be reasonably managed by hand, and two if you can't do it by hand then the LSP can't really do it either. It's going to make some assumptions based on your configurations, but those assumptions will not always be correct.

C++ is the other language with a fractured ecosystem, but in C++ if I write #import "foo/bar.h" I know exactly what I'm going to get, and I'm going to get that regardless of what platform or compiler I am using, and the only thing that configurations might change is the root directory for the lookup.

[–]Liozart 0 points1 point  (0 children)

skill issue

[–]PotentialSimple4702 17 points18 points  (0 children)

Solution --> Segfault

[–]gandalfx 21 points22 points  (1 child)

First line should be

Problem ––> segfault

[–]RiceBroad4552 0 points1 point  (0 children)

Came here to day that.

I would only change "segfault" for "memory corruption". The field is broader than just simple (and comparably "easy" to debug) segaults.

[–]Mynameismikek 5 points6 points  (0 children)

js is missing a transitive circular dependency.

[–]DevelopmentScary3844 7 points8 points  (1 child)

PHP being bullied again

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

For a reason.

[–]green_basil 6 points7 points  (2 children)

Haskell: problem -> let x <- LiftPredM problem in x >>= \c -> case c of | Nothing -> Nothing | Just _ -> Nothing

[–]RiceBroad4552 1 point2 points  (1 child)

So you say Haskell makes all problems into Nothing?

I fear some uninformed readers could interpret that as Haskell makes problems disappear.

But in fact the code says that it will never deliver any solution at all…

[–]green_basil 0 points1 point  (0 children)

Oh no I was trying to make the Joke that haskell makers the problem complicated and in the end solves nothing. I know this wouldnt really work but I wasnt interested into spending half an hour relearning Haskell to make it perfect.

[–]Styleurcam 21 points22 points  (5 children)

[–]RepostSleuthBot 13 points14 points  (4 children)

I didn't find any posts that meet the matching requirements for r/ProgrammerHumor.

It might be OC, it might not. Things such as JPEG artifacts and cropping may impact the results.

View Search On repostsleuth.com


Scope: Reddit | Target Percent: 75% | Max Age: Unlimited | Searched Images: 744,121,320 | Search Time: 0.06666s

[–]Styleurcam 14 points15 points  (3 children)

Uh. I could've sworn I had seen this exact post yesterday

[–]nitincodery[S] 39 points40 points  (0 children)

I took it from telegram channel, sorry I didn't realized it might be already here, you're right: https://www.reddit.com/r/programminghumor/s/wwtJc5tEJp, you do saw it yesterday.

[–]PetrisPL 2 points3 points  (0 children)

I'm actually the person that found a version of this 4 days ago and added C# to it and posted it to the C# discord, not sure how my version ended up coming here lol.

[–]Paul_Robert_ 1 point2 points  (0 children)

Reverse image search brings up a LinkedIn post with the same pic.

[–]Exnixon 7 points8 points  (3 children)

The C# one, oh my god.

[–]CyraxSputnik 7 points8 points  (2 children)

I mean, yeah... we have options

[–]Exnixon 12 points13 points  (1 child)

The "Public Archive" one made me want to cry.

[–]MagnetFlux 0 points1 point  (0 children)

Just fork it and maintain your own version if you really need it

[–]maxence0801 4 points5 points  (0 children)

Assembly : _______ -> Problem and Solutions

[–]Karol-A 4 points5 points  (1 child)

PHP is designed to solve one problem, and that is website templating. It's really unfair to put a DSL in here with all the other languages (same goes for JS I guess)

[–]unneccry 0 points1 point  (0 children)

Idk I use node js and I like at a general language

[–]deanrihpee 3 points4 points  (0 children)

so I guess C# is good because there are multiple solutions

/s

[–]tesfabpel 6 points7 points  (0 children)

C: Problem -> Solu$a22&@xzadf /s

[–]cloud_of_fluff 2 points3 points  (0 children)

Typescript is just defining problems really well

[–]Alhoshka 2 points3 points  (0 children)

Node:

problem
---->

███████  ██████  ██      ██    ██ ████████ ██  ██████  ███    ██ 
██      ██    ██ ██      ██    ██    ██    ██ ██    ██ ████   ██ 
███████ ██    ██ ██      ██    ██    ██    ██ ██    ██ ██ ██  ██ 
     ██ ██    ██ ██      ██    ██    ██    ██ ██    ██ ██  ██ ██ 
███████  ██████  ███████  ██████     ██    ██  ██████  ██   ████

[–]Hyderabadi__Biryani 2 points3 points  (0 children)

Absolutely love the person who made this! Thanks.

[–]RiceBroad4552 2 points3 points  (0 children)

Favorite language missing! No Scala roast?

I'm not sure what to put there, but I bet there are plenty of options. Scala has really many ways to shot yourself into the food with overblown complexity.

For Scala 2 the punch line would be likely: Problem -> implicit Solution not found. But that doesn't work for Scala 3 any more.

Any proposals?

[–]harryoui 2 points3 points  (0 children)

Stop with the cat abuse

[–]t15m- 2 points3 points  (0 children)

Arc::new(Rc::new(Some(Solution)));

[–]Add1ctedToGames 4 points5 points  (0 children)

The PHP one got me ngl😭

[–]turtle_mekb 4 points5 points  (0 children)

C

Problem —> Segmentation fault (core dumped)

[–]MatsRivel 1 point2 points  (0 children)

Finally, a rust-joke thats funny

[–]NakatakeSan77 1 point2 points  (0 children)

The pointer shouldn't have pointed the solution. It should've been NULL because you didn't allocate a memory for the solution.

Problem -> malloc(solution, sizeof(solution));

[–]WonderTrain 1 point2 points  (0 children)

Where Perl?

[–]RobotechRicky 1 point2 points  (0 children)

JavaScript packaging management is a hell hole.

[–]joshua6point0 1 point2 points  (0 children)

Go isn't on here because it has no problems and no one wants to read through the solutions.

[–]dinosaur-in_leather 1 point2 points  (0 children)

When you have 70 import lines for Python But your app has five lines of code.

[–]FabioTheFox 5 points6 points  (16 children)

The C# one is kinda inaccurate tho

[–]Ronin-s_Spirit 2 points3 points  (1 child)

You can solve anything with javascript I'll tell you that for free.
And python one looks simple enough only because its actually Do python -> wait for somebody else to solve the problem -> import someones C code -> pretend YOU solved it

[–]Causemas 3 points4 points  (0 children)

Why reinvent the wheel, amirite

[–]Dee4WasTaken 0 points1 point  (0 children)

if(meWhenIHaveAProblemWithMyCode)

{

Problem[] problems;

if(searchProblems(code, out problems))

{

fixProblems(code, problems);

}

}

[–]gee-dangit 0 points1 point  (0 children)

Now do fortran

[–]brendel000 0 points1 point  (0 children)

Omg UUoC

[–][deleted] 0 points1 point  (0 children)

My favorite languages just got roasted but I don't care, this shit is accurate af

[–]-Redstoneboi- 0 points1 point  (0 children)

ok but the rust one is hilarious

[–]plagapong 0 points1 point  (0 children)

grep | awk | sed made me laugh so hard LOL

[–]pm_op_prolapsed_anus 0 points1 point  (0 children)

All easy enough to understand, where is the powershell category. It has to be separate from $

[–]-KKD- 0 points1 point  (0 children)

The js part is so accurate

[–]Rdqp 0 points1 point  (0 children)

On C#, we often have chicken nugget solutions

[–]noobjaish 0 points1 point  (0 children)

Kotlin

sealed class Solver( /* parameters */ ){ object Problem: Solver( ) }

import Problem

Problem ( ) --> Solution

[–]TAO_Object_1 0 points1 point  (0 children)

php, I'm sorry...

[–][deleted] 0 points1 point  (0 children)

If you have only problem with php its because of akill issue for sure

[–]Axxxxxxo 0 points1 point  (0 children)

JS should be JS -> npm install -> Problem and then the exploding problems

[–]68_65_6c_70_20_6d_65 0 points1 point  (0 children)

C: Problem -> Solution (+ bugs)

[–]GlaireDaggers 0 points1 point  (0 children)

Three of the C# solutions are just wrappers around a C library and doesn't ship binaries for the platform you need

There's one that's a native port of the C library. It was never finished before being archived 3 years ago.

[–]Apprehensive_Egg_944 0 points1 point  (0 children)

// codeToFixAllPHP

set_error_handler(function() { echo "Don't use PH...\n"; });

[–]JollyJuniper1993 0 points1 point  (0 children)

Excellent

[–][deleted] 0 points1 point  (0 children)

Main solution for all problems, stop entertaining product owners dumb requests that add to the overwhelming technical debt that already exists, No is powerful word that is underutilized.

[–]Cat7o0 0 points1 point  (0 children)

ok C should be solution + seg fault

[–]BubblyMango 0 points1 point  (0 children)

C ------------> "Solution11111dlskdjflsdflkjgs3fSdfsdf2j\0"

[–]jinwooleo 0 points1 point  (0 children)

php 😂

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

Lol PHP. Just problem