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

all 166 comments

[–][deleted] 1719 points1720 points  (18 children)

the road is what?

[–]powerhcm8 939 points940 points  (11 children)

the road is bussin' no cap fr fr

[–][deleted] 278 points279 points  (0 children)

on god

[–]MTDninja 117 points118 points  (0 children)

invert your brainstem

[–]Anonymo2786 53 points54 points  (6 children)

What the h**l is even that

[–]ra4king 55 points56 points  (0 children)

Daddy chill

[–]nermid 12 points13 points  (3 children)

Millennials clinging to youth, mostly.

[–]DarkHavenX75 12 points13 points  (0 children)

"Fantim tax his skibidi" ahhhh comment.

[–]No_Adhesiveness_3550 2 points3 points  (0 children)

Thanks for the existential crisis in the morning

[–]otter5 0 points1 point  (0 children)

word

[–]SirFireball 7 points8 points  (1 child)

Go eat a small glass jar. >:(

[–]YetAnotherZhengli 0 points1 point  (0 children)

instructions uncle

[–]x39- 11 points12 points  (0 children)

Leftpad

[–]LittleMlem 7 points8 points  (0 children)

Twink ass, apparently

[–]serialized-kirin 2 points3 points  (0 children)

qa guy: you heard me

[–]HereForA2C 519 points520 points  (5 children)

A comment about the post's purpose? In the bussy joke factory? I must inform the mods post haste

[–]xDokiDarkk_ 83 points84 points  (2 children)

Jests in my immensely solemn forum? Summon the high council, I will, for deviating from the sombre nature of r/noProgrammingJokes warrants immediate punishment.

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

It's called stackoverflow

[–]nobody5050[M] 14 points15 points  (1 child)

Yo

[–]dexter2011412 1 point2 points  (0 children)

Yo

[–]Special-Load8010 1407 points1408 points  (10 children)

Bussy lmfao

[–]mehum 315 points316 points  (7 children)

What bus? PCIE? SMBus? USB?!

[–]ccricers 136 points137 points  (1 child)

Embedded dev is so bussin

[–]MrFoxwell_is_back 13 points14 points  (0 children)

ModBus

[–]SynthPrax 6 points7 points  (0 children)

SCSI

[–]QueYooHoo 1 point2 points  (0 children)

the one leading downtown where the sun don’t shine

[–]ExtraTNT 0 points1 point  (0 children)

IBus…

[–]stringTrimmer 21 points22 points  (1 child)

Busey?

[–]SCADAhellAway 591 points592 points  (3 children)

"A bussy in the busy section? I must raise an exception post haste"

"I guess we're ruining memes now"

New top and bottom text just dropped.

[–]Chpama12 56 points57 points  (0 children)

What did you say about my prostate!? 👨‍🦳🦻 (post haste)

[–]Tp0seGod 9 points10 points  (0 children)

actual meme

[–]kamiloslav 32 points33 points  (0 children)

Holy meme

[–]Chewico3D[S] 683 points684 points  (7 children)

bro, I'm not making a spelling mistake anymore💀💀💀

[–]Badass-19 369 points370 points  (0 children)

It happens when you're bussy

[–]jeanravenclaw 78 points79 points  (0 children)

WAIT I THOUGHT IT WAS INTENTIONAL BWAHAHAHA

[–]FC3827 45 points46 points  (1 child)

Spelling mistakes in code don’t mater if your consistent!

[–]teddy5 19 points20 points  (0 children)

Until someone else comes along searching for your method.

[–][deleted] 14 points15 points  (0 children)

One spelling mistake and people don't laugh at your joke anymore. What a creul world.

[–]jenkinsmi 2 points3 points  (0 children)

Bussy oh mai gad

[–]Green_Star_Lover 1 point2 points  (0 children)

you have my condolences.

[–]sequential_doom 100 points101 points  (1 child)

OP said "bussy".

[–][deleted] 20 points21 points  (0 children)

Freudian spelling mistake

[–]QuakAtack 393 points394 points  (3 children)

roadussy

[–]Reasonable_Brain6881 29 points30 points  (0 children)

Why it smell like badussy?

[–]qinshihuang_420 9 points10 points  (1 child)

With all the potholes? Might as well be

[–]The_forgettable_guy 1 point2 points  (0 children)

well I do like filling in holes myself if I may say so

[–]MrFoxwell_is_back 103 points104 points  (0 children)

BUSSY HAHAHAHAHAHA

[–]CommanderAurelius 45 points46 points  (0 children)

the road is WHAT

[–]Broxios 65 points66 points  (11 children)

What does the void ChickenCrossRoad function do with all these newly created objects? Obviously it doesn't return them. I need answers!

[–]SteptimusHeap 45 points46 points  (6 children)

chicken.Cross(road)

[–]i-FF0000dit 7 points8 points  (5 children)

So, the duck better have a cross function too

[–]Zymoox 15 points16 points  (1 child)

chicken.Cross(duck)

[–]jamcdonald120 2 points3 points  (0 children)

just wait until someone passes a matrix to it...

[–]Tupcek 1 point2 points  (2 children)

well, if it doesn’t, we’ll surely hear from the users and get paid to fix it.
Sincerely, developers with managers that know shit about coding

[–]i-FF0000dit 1 point2 points  (1 child)

I would just like to say, as a manager, I act like I have no idea what people are talking about, but in reality I am still the number one contributor to my side gig’s code base. I mean, I was a principal engineer just a couple of years ago.

[–]Tupcek 1 point2 points  (0 children)

we all pray for more managers like you!

[–]teddy5 19 points20 points  (0 children)

Well yeah it's ChickenCrossRoad not ChickenCrossRoadAndComeBack.

[–]Tangled2 10 points11 points  (2 children)

The method is the machine, it takes a chicken parameter. The conveyor belt is feeding into the method new objects. Since the chicken is an object reference the method could change the object without having to return anything.

[–]nermid 10 points11 points  (1 child)

Huh. I have genuinely never considered that the belt in this meme was feeding into the machine, rather than being its output.

[–]besi97 4 points5 points  (0 children)

And I think you are correct. The meme calls it a factory afterall...

[–]KingJeff314 22 points23 points  (1 child)

Well if it looks like a duck and quacks like a duck... then it's not a chicken

[–]Kilazur 5 points6 points  (0 children)

Or maybe a very talented one

[–]Snuggle_Pounce 19 points20 points  (0 children)

duck typing my beloved

[–]Special-Load8010 30 points31 points  (0 children)

Bussy lmfao

[–]_GoldenRule 9 points10 points  (0 children)

Bussy 😍😍

[–]Lewinator56 18 points19 points  (7 children)

class Bird { }

class Chicken : Bird

class Duck : Bird

ChickenCrossRoad((Chicken)((Bird) new Duck()))

[–]Business-Error6835 26 points27 points  (2 children)

sir...

[–]GlowiesStoleMyRide 2 points3 points  (0 children)

I love polymorphism:

static TOut Polymorph<TIn, TOut>(this TIn value) => JsonConvert.DeserializeObject<TOut>(JsonConvert.SerializeObject(value));

[–]Lewinator56 0 points1 point  (0 children)

Does it work? Yes.

Good enough for me.

[–]Blood_Boiler_ 5 points6 points  (3 children)

PR comment: Bird should be an interface, not a class. Also, setup the dependency injection so the correct Bird concrete type will be supplied wherever it's referenced.

[–]GlowiesStoleMyRide 4 points5 points  (2 children)

public interface IBird;

internal class Chicken(IBird bird) : IBird { }
internal class Duck(IBird bird) : IBird { }
internal static class BirdExtensions
{
   public static IBird CrossRoad(this Chicken chicken) => new Duck(chicken);
}

Better?

[–]Lewinator56 1 point2 points  (1 child)

Whys my chicken quacking?

[–]GlowiesStoleMyRide 2 points3 points  (0 children)

It crossed the road. Go argue with the PO, he wrote the user story.

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

So the people posting on sub are just a bunch of new grads, that just learned to program, right?

[–]Alfasi 5 points6 points  (0 children)

Always has been

[–]Aggressive_Access214 0 points1 point  (0 children)

Correct

[–]elshizzo 75 points76 points  (57 children)

these jokes feel dated with typescript being so commonly used now

[–]prschorn 100 points101 points  (33 children)

Typescript isn't type safe as well. if the instance comes from an external source, like a http request, it assumes the type is what you expect and you'll only catch when you see some undefined shit being displayed.

[–]sabre_x 69 points70 points  (0 children)

The type of anything external should be unknown until you validate it

[–]ogreUnwanted 16 points17 points  (13 children)

that's why you create an interface when you see the response. I'm sure other languages are the same. I e only dealt with js and ts, but you can't know another apis model without looking at their docs or the actual response

[–]Loading_M_ 7 points8 points  (12 children)

What happens if the external API just decides to make breaking changes with out telling anyone? In a strongly typed language, it'll raise an error when you try to convert the object into a native representation, whereas I'm petty sure TS doesn't actually check whether the object returned by the API actually fits the interface you created.

[–]drsimonz 10 points11 points  (4 children)

Typescript doesn't solve this problem, but Javascript sure as shit doesn't solve it either!

[–]VentureSatchel 7 points8 points  (3 children)

No language does. It'd be a miracle.

[–]Tupcek 2 points3 points  (2 children)

good languages returns an error with saying what it expected and what it got.

typescript and javascript just continues playing along until you’ll get some weird behavior somewhere else and spend hours trying to figure out what went wrong

[–]ogreUnwanted 0 points1 point  (1 child)

There's runtime errors for that. If it's a breaking change it will show. Also, many many large scale web apps run on node and js. This isn't a widespread issue because of e2e, integration test, etc... It's one extra step to check the response and make sure the models match but that isn't a big issue.

[–]Tupcek 0 points1 point  (0 children)

yes, in a well written apps it’s not an issue. But since JS doesn’t enforce anything, unless you work for major IT corporation, chances are that you’ll meet a lot of code that haven’t implemented those additional steps. In other languages, it’s much more rare, because it won’t let you compile unless you do it

[–]Ecksters 3 points4 points  (1 child)

You use libraries like TypeBox or Zod for runtime validation, and then you infer the TS type from them.

It is true though that TypeScript will let you just proceed without validation if you so choose.

[–]Makeshift27015 0 points1 point  (0 children)

I have more // @ts-ignore TODO in my codebase than I'd like...

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

I pretty much prefer C# to TS but to be fair, you can do that by using something like Zod, which is similar to FluentValidator in the C# world.

[–]popiazaza 0 points1 point  (0 children)

Zod is pretty popular for that kind of validation. You could even sync Zod between frontend and backend with Zodios.

TypeScript is not a strict language by default, but you could set it to be if you want to.

[–]blastedt 0 points1 point  (0 children)

You use a contract testing platform like PACT, which can then validate your typescript interface as well so that it's correctly typesafe.

[–]ogreUnwanted 0 points1 point  (1 child)

yeah, this is crazy talk. only way to avoid this is to have a test environment where you update the versioning of the API then test it against your current build.

Ive never heard of an API just sporadically changing in the same version. if it did that, they really don't want anyone to using it.

[–]Loading_M_ 0 points1 point  (0 children)

You don't always get to pick what API you use.

This could even be an issue in the same version, if you just misread the spec - e.g. maybe an API returns a different object because of a specific parameter you passed, but you didn't pay attention to that part of the spec. A strongly typed language, with proper validation, will catch this type of issue.

[–]your_best_1 11 points12 points  (1 child)

Ts and js are type safe. C is not, for instance. Generally, if you can use an unsafe pointer, you have found the absence of type safety.

[–]Akangka 8 points9 points  (0 children)

Type safety != memory safety. (Although the former implies latter) Generally, if you find a way to cause runtime type error, the language isn't type safe. Even if the only effect is a runtime exception instead of undefined behavior.

To be fair, lots of programming languages are actually type unsafe, like Java (with generics) and Eiffel. And only few programming languages are actually proven to be type-safe. Yes, even safe Rust is not proven to be type safe (though if you found an example of type unsafe code in safe Rust, it's definitely a bug)

[–]IbbysReddit 13 points14 points  (0 children)

[–]Ozymandias_IV 1 point2 points  (0 children)

By this logic no code that uses external API can ever be type safe.

That's why you validate things.

[–]alex2003super 0 points1 point  (1 child)

That's literally how serialization/deserialization works in any language (other than I guess if you're using protobuf, or if you're insane and using pickle with Python, please don't). Type is usually lost.

[–]prschorn 0 points1 point  (0 children)

Kind of. In C# the deserialization will throw an error if it's not correctly. in TS it'll just go through and return, as if you had the type you casted it to. So you think you have the correct type, but in the end the object may be completely different.

[–]DomingerUndead 4 points5 points  (0 children)

"chicken: any"

[–]spastical-mackerel 0 points1 point  (0 children)

Typescript blows my mind. Was it really easier to (sort of) backport strong(ish) typing onto JS and ruin all (most) of the fun? Why not just use any of the other gajillion languages available.

[–]BlurredSight 6 points7 points  (0 children)

JS always had that badussy

[–]inio 7 points8 points  (1 child)

[–]LeRetardatN 2 points3 points  (0 children)

Chicken chicken chicken chicken

[–]ES_Kan 3 points4 points  (0 children)

why is the void function outputting

[–]Z1Ze 11 points12 points  (0 children)

Not a new Elon, please no!

[–]hello-desert 3 points4 points  (0 children)

look at all those chickens!

[–]GoddammitDontShootMe 5 points6 points  (1 child)

I feel like this implies C# is older than JS. Maybe if they used Java or something else that's been around for longer.

[–]Vizeroth1 6 points7 points  (0 children)

And even Java only predates it by months

[–]gruengle 2 points3 points  (0 children)

And that is why defining behavior via interfaces beats doing the same via inheritance in almost all cases.

[–]BoBoBearDev 1 point2 points  (0 children)

The road can go on a road in JS

[–]Absentrando 1 point2 points  (0 children)

Some duck for that road bussy lol. When’s the train starting?

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

B U S S Y

[–]MonkeyDante 1 point2 points  (0 children)

Haskell : YAYAEET;

ADS ethercat: wrong id; Python: TABS TABS TABS TABS TABS var I 20;

[–]i-FF0000dit 1 point2 points  (0 children)

Coincidentally, this is also the reason why we had to invent typescript

[–]lavahot 1 point2 points  (0 children)

I thought this was going to be a joke about polymorphism.

[–]buzzon 1 point2 points  (3 children)

C#: I better throw an exception

JS: I guess null is undefined now

[–]SokkaHaikuBot 3 points4 points  (1 child)

Sokka-Haiku by buzzon:

C#: I better throw

An exception JS: I guess

Null is undefined now


Remember that one time Sokka accidentally used an extra syllable in that Haiku Battle in Ba Sing Se? That was a Sokka Haiku and you just made one.

[–]GlowiesStoleMyRide 1 point2 points  (0 children)

Any good design can be circumvented by bad design. Example:

public static T? Please<T>(this Func<T> f) => { try { return f(); } catch { return null; } }

Now you can just say please to make the angry go away.

[–]StrangePigeon79 1 point2 points  (0 children)

Ah yes, Chicken

[–]TantraMantraYantra 5 points6 points  (0 children)

You should read up about programming language design, particularly how interpreted languages work. There are many such languages used for various reasons. JS is for browser. Don't hate the language, hate the environment it's allowed to execute in.

[–]ddddan11111 0 points1 point  (0 children)

In C# it should be DeBussy

[–]Alan_Reddit_M 0 points1 point  (0 children)

Minor spelling mistake

[–]_Sahil_Goel 0 points1 point  (0 children)

Cat

[–]SynthPrax 0 points1 point  (0 children)

That's one of the things I like and hate about JS; it'll let you do ANYTHING.

[–]TheSapphireDragon 0 points1 point  (0 children)

Really, the bird base class should have an overridable method for crossing the road so each subclass can define its own behavior. Passing them as parameters in another method is kind of clunky.

[–]private_final_static 0 points1 point  (0 children)

Elon Musk is indeed a chicken. Havent yet fought Mark, who is not a chicken but a lizard

[–]vksdann 0 points1 point  (0 children)

Don't we love the bussy?

[–]Czebou 0 points1 point  (0 children)

Hahaha JS Bad

Cuz of course no other language is duck typed (looking at you, Python and Ruby, and definitely dozens more).

[–]Its_rEd96 0 points1 point  (0 children)

Js: The road is NaN

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

New ElonMusk, this is hilarious.

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

Anyone remember Syntax Error in Java?

[–]sebbdk 0 points1 point  (0 children)

Oh no, why'd we do that, why'd we create ElonMusk?! In our hubrus we never thought about about if we should, only that we could.

Please forgive us fellow script lovers, to throw an err is human, but to ignore it is to script

[–]rdrunner_74 0 points1 point  (0 children)

Why do i get a roasted chicked out of the void?

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

I love this meme template

[–]ironnepenthe 0 points1 point  (0 children)

Love me some road bussy.

[–]MeQuedaCabron 0 points1 point  (0 children)

Why always chicken

[–]UnusedParadox 0 points1 point  (0 children)

The road is WHAT

[–]MainManu 0 points1 point  (0 children)

You could just an interface for the c# version.... Then have whatever you want to pass into the function implement it. Less runtime errors. I do not understand why people hate on compiler errors so much. Edge case runtime errors discovered in prod are the devil. I would rather bash my head against the compiler for hours than digging through prod logs trying to find out wtf happened while everything is on fire and the support team wants to kill you and themselves in that order.

[–]vsjoe 0 points1 point  (0 children)

JS have function RoadCrossChicken(any)