this post was submitted on 20 Apr 2025
154 points (95.3% liked)

Programmer Humor

22746 readers
600 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 

cross-posted from: https://lemmy.ca/post/42598837

top 17 comments
sorted by: hot top controversial new old
[–] smeg@feddit.uk 26 points 4 days ago (1 children)

Do all three of them still treat tabs and spaces as functionally different? If so then they're all in the bottom category.

[–] takeda@lemm.ee 7 points 4 days ago (2 children)

Today's programmers...

Back in the day people knew how to configure their code editors.

[–] smeg@feddit.uk 11 points 4 days ago (1 children)

Are you arguing that it's good design to have invisible characters behave differently or am I missing your point?

[–] takeda@lemm.ee 6 points 4 days ago (2 children)
[–] smeg@feddit.uk 7 points 3 days ago

A workaround doesn't excuse terrible design!

[–] ulterno@programming.dev -1 points 3 days ago


Yes!


Yes!

There's a reason that stuff exists.

So that when someone used to tabs, does something in a spacebar-project, they can see that they will need a clang-format.
Oh you use an indentation sensitive language? Err... my condolences.

[–] Quetzalcutlass@lemmy.world 4 points 4 days ago* (last edited 4 days ago)

They might be working on an old codebase with maintainers who yell at you if you try to standardize formatting because "whitespace changes pollute diffs" (smh, programmers who don't know how to configure their diff tools).

I really like Ruby’s rake. It’s an actually sane language and quick to learn. No idiosyncratic shell scripts cobbled together. The makefile is written in plain Ruby. That also makes it super powerful to adapt to your needs. Nor parsing XML. Just load your rake file into your interactive Ruby shell (I’m partial to pry), try things, test it. Our time for debugging build errors dropped to a fraction.

I have used it build C++, Objective-C, and Java projects for a medium sized company. Before that we used ant with XML build files from hell.

[–] onlinepersona@programming.dev 8 points 4 days ago (3 children)
[–] takeda@lemm.ee 33 points 4 days ago* (last edited 4 days ago) (1 children)

Make was created for building code, but many people are also using it as a command runner.

Just addresses that use case, but it's not a replacement for either of those makes.

[–] barsoap@lemm.ee 2 points 3 days ago

If you want a really advanced build system there's shake, which can deal with things like building things that generates dependency information for things that build things. In a nutshell: It's strictly more powerful than make because (a single invocation of) make operates on a fixed dependency graph while shake can discover dependencies as it goes.

Mostly though you should use whatever comes with the language you're using, and if you're doing something simple use make. That includes "link a multi-language project where the components are generated by language-specific systems". It notably doesn't include multi-stage compiler builds. GHC switched from recursive make, which is a bad idea, to non-recursive make, which was... arcane, but at least you didn't have to make clean to get a correct build, to shake. Here's the build system it's a whole project to itself.

[–] 0x0@lemmy.dbzer0.com 7 points 4 days ago (2 children)

You can't do incremental builds with just. I don't see how it's a replacement?

[–] renzev@lemmy.world 3 points 4 days ago (1 children)

So it's like make but without incremental builds? Then how is it functionally different from a folder with a bunch of shell scripts in it?

[–] 0x0@lemmy.dbzer0.com 1 points 4 days ago (1 children)

Yeah, exactly. I don't get it.

[–] renzev@lemmy.world 2 points 3 days ago

At first I thought that it was a for-fun pet project, which is fair enough, but it has a dedicated website and a discord server... HUH???

[–] onlinepersona@programming.dev 1 points 3 days ago

Everything has it's uses. make is maybe good at incremental builds but is (an)used as a task runner which requires the use of "PHONY" in many places, it has about 6 different ways to declare and use variables all with different gotchas, generally has a convoluted syntax, it doesn't support different interpreters per task, and lacks a bunch more features. Just explore the feature list and examples that just has.

It's simply outdated and mostly lives by the power of defaults and graybeards insisting on its use. Therecs no surprise that things like cmake, nmake, and other tools sprung up to replace it.

Anti Commercial-AI license