this post was submitted on 27 Jul 2023
421 points (95.9% liked)

Programmer Humor

32483 readers
166 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
top 43 comments
sorted by: hot top controversial new old
[–] Dirk@lemmy.ml 74 points 1 year ago (1 children)

Finding my own old projects: "What the hell did this guy do and why does it work?"

[–] nicman24@kbin.social 40 points 1 year ago (4 children)

that is me with regex that I wrote from scratch like 5 mins ago

[–] Dirk@lemmy.ml 21 points 1 year ago (1 children)

“Finally! It works! I’ll never touch it again! I’ll just move it in a variable and–… WHYYYY???!?!11!”

[–] fmstrat@lemmy.nowsci.com 2 points 1 year ago

Its always the backslash before the forward slash. Every. Time.

[–] d_k_bo@feddit.de 12 points 1 year ago (1 children)

That's why I like to include a comment with a link to an example on regex101.com.

[–] fmstrat@lemmy.nowsci.com 3 points 1 year ago

This is so smart. I'm stealing this.

[–] tool@lemmy.world 1 points 1 year ago

Every regex that I write ends up looking like line noise or the holy tome to summon Chtulu.

[–] nicman24@kbin.social 41 points 1 year ago (2 children)

bash is veeery old and it implements all of posix.

[–] Noodlez@programming.dev 22 points 1 year ago (2 children)

Bash's posix mode still has a lot of bashisms. The only way to test true posix compliance is to test with other shells like dash and ash. I have found this is the case a lot of time. People will say it's POSIX compliant shell, but it'll obviously only be tested in bash Like at that point just make it a bash script, since pretty much every system under the sun has it.

[–] nicman24@kbin.social 6 points 1 year ago

there is always shellcheck it points them out to you

[–] narshee@iusearchlinux.fyi 4 points 1 year ago (1 children)

I was thinking about bash scripts that use bash specific builtins. Some of those require >= x version.

[–] nicman24@kbin.social 6 points 1 year ago (1 children)

even <<< is like 10 years old

[–] narshee@iusearchlinux.fyi 6 points 1 year ago

Yeah. The only language I didn't have the right version for in the past was python. I just wanted to make a joke about standards vs implementations.

[–] d_k_bo@feddit.de 35 points 1 year ago (2 children)

Rust has pretty strong stability guarantees. Backwards incompatible changes are only made using "editions" where every compiler version supports all previous editions and editions are fully interoperable.

https://doc.rust-lang.org/stable/edition-guide/editions/index.html#what-are-editions

[–] PeterPoopshit@sh.itjust.works 8 points 1 year ago* (last edited 1 year ago) (3 children)

The versions still make me reluctant to try rust. I'm sure it's reliable in theory but I'm always getting cockblocked when someone's python project doesn't work because of dependencies and different versions. I once remade a python 3d object format converter in c++ because that was easier than a) fixing whatever dependency and runtime version shenanigans or b) using whatever bullshit ass Windows-only propriety software most people used to make that file conversion

[–] Rian@lemmy.sdf.org 12 points 1 year ago

I use both python and rust extensively and they are literally day and night when it comes to dependency issues. The only problems I've ever had with rust are when there is a non-rust dependency that's not cross platform (which would be a problem in c as well). The editions (which are different from versions) are nothing to be afraid of either, iirc a rust 2021 project can depend on 2018 and 2015 libraries without issues.

[–] vox@sopuli.xyz 1 points 1 year ago* (last edited 1 year ago)

rust doesn't install dependencies globally, and packages or versions can't be deleted from crates.io (they are instead yanked which prevents them from being used in new projects, while throwing a warning in existing ones)
rust editions are fully compatible with each other so you can use 2015 crate in a 2021 project and vise versa.
rust also allows having multiple versions of dependencies at the same time.
if crate A depends on B 0.1 and crate C depends on B 0.2, rust will download and use both versions of B.
you can run into issues if:

  • ...you're using c dependencies
  • ...you have incompatible crate versions; cargo treats different versions as completely separate crates (please note that this is not a big issue, this shouldn't scare you off; for example if there's a crate A that depends on crate B 0.1 and provides fn A::dostuff(B::TypeFromB) and you have A and B 0.2 specified as dependencies, you won't be able to use your B::TypeFromB as an argument in A::dostuff(...), and you'll have to downgrade your version of B to 0.1 or ask the crate developer to update their library)
  • ...you have a multi-crate cargo workspace or monorepo and forgot to specify resolver="2" (it uses resolver="1" by default for compatability, which is incompatible with a lot of crates)
[–] darcy@sh.itjust.works 1 points 1 year ago

@Rian is correct. the only dependency problems ive had are relating c libraries

[–] Gecko@lemmy.world 3 points 1 year ago

Also, you can just download an older version of the toolchain and use that to compile the project. If the project is properly setup it'll tell you the toolchain version it used. If not you can probably guess by the time of the last commit ^^

[–] csolisr@communities.azkware.net 32 points 1 year ago (1 children)

And don't even get me started with C# and Node.js projects, chances are you will need to reimplement the entire application just to get the project out of vulnerable library versions.

[–] doppelgangmember@lemmy.world 12 points 1 year ago (1 children)

Ehem.. I think you mean job security.

[–] pulsereaction@lemmygrad.ml 4 points 1 year ago

Precisely, it's a feature, not a bug

[–] TheCee@programming.dev 20 points 1 year ago* (last edited 1 year ago)

install minor cc update

compiler exploits undefined behavior as it always was technically allowed to

Checkmate, Cniles!

[–] Black616Angel@feddit.de 16 points 1 year ago (1 children)

Better not pay in cash, if you're so afraid of change, I mean.

[–] optissima@lemmy.ml 5 points 1 year ago (3 children)

Why would someone who is afraid of change pay cash? Wouldn't they be given change?

[–] Black616Angel@feddit.de 3 points 1 year ago

Yes. That is the joke.

[–] Klame@lemmy.ml 1 points 1 year ago

Yep two other comments imply the change is moving toward paying with cash, with it is the opposite we are doing now?

[–] fmstrat@lemmy.nowsci.com -1 points 1 year ago

/c/whooosh anyone?

[–] psudojo@lemmy.world 11 points 1 year ago

So true man

[–] marcos@lemmy.world 8 points 1 year ago

It doesn't matter what version of your dependencies you use if your code is always broken.

(But anyway, C developers tend to avoid the older standards...)

[–] Kolanaki@yiffit.net 7 points 1 year ago

Ew, used languages? Yuck! Gimme a brand, spanking new language, hot off the factory floor.

[–] SubArcticTundra@lemmy.ml 6 points 1 year ago

Nothing like good old C with Classes

[–] nomadjoanne@lemmy.world 4 points 1 year ago (1 children)

Call me antiquated, but I still don't love Rust for these reasons. I don't dislike it, and I recognize it solves some very real problems around memory management. Whether I like it or not it is probably the future... But Cargo is incredibly opinionated, essentially obligatory, the compiler is huge...

It's not something you could bootstrap on a glorified microcontroller running MINIX or something. I'll just say that. And that's something I really really love about C.

[–] vox@sopuli.xyz 1 points 1 year ago* (last edited 1 year ago)

compiler is based on llvm and is relatively lightweight (llvm is the "huge" part which to be fair is also used in clang)

[–] JoYo@lemmy.ml 3 points 1 year ago

these are the same picture.

[–] HStone32@lemmy.world 2 points 1 year ago

Everything I'll ever make will be done in C. Try and stop me.

[–] Anticorp@lemmy.ml 1 points 1 year ago

You can add PHP to the left picture. It doesn't even require compile or special deployment pipelines.

[–] SmoothSurfer@lemm.ee 1 points 1 year ago (1 children)

I am sick of these meme. Of course we know c is better than python on many aspects but python is also. Lets say you are building... I an continuing, I hope you are capable of continuing it by yourself. Everyone knows which is better for their particular needs, so just let these memes go. We can be more creative with memes

[–] miname@feddit.de 11 points 1 year ago