Evolution of C

JPDev@programming.dev to Programmer Humor@programming.dev – 937 points –
91

I've been a professional programmer for nearly a decade and I just realized that C# is C++++ with the pluses stacked

I know right‽ feels like when I learnt about the FedEx arrow for the first time

What FedEx arrow?

between E and x

Holy shit that's crazy

There's a lot of logos with hidden stuff like that.

Amazon's logo has an arrow going from A to Z, implying they sell everything "from A to Z"

The Tostitos logo has two people holding chips (the Ts) and a bowl of salsa (the dot on the I):

Toyota's logo has every letter of the company name in it:

The LG logo has the letters L and G in it:

I hate it so much, but the Baskin Robbins BR has the number 31 in it

What does it mean? I would guess count of assorted flavours, but I am no expert in numerology

ARCHETYPE NAME:
The Misunderstood Genius
The digits in the number 31 have the digit sum 4 which resonates with the planet Uranus. 31 is often written as 31/4 where the digit sum is placed after the slash. To understand 31 more in depth we recommend you also read more about the digit sum 4 here.

Yeah they have 31 flavors or something like that

It's interesting to me that they used the English alphabet for the Toyota symbol instead of Japanese. Or is that symbol localised?

The US is probably a much bigger market. I imagine it's the same reason LG is English alphabet and not Hangul. Same with Kia, Hyundai, Samsung, etc.

But this is mere speculation. I could be 100% wrong, happens daily!

Now if only LG could make a microwave where the LED display didn’t go out after a year.

I got mine 13 months ago, still going strong. I can check how much time is left on my phone anyway.

I guess that will be a useful feature when the built in display goes out.

It always pissed me off that they use this as an example of white space use. No one sees it.

Logo designers do.

Because a prof showed them on the first class. But in any case, if logo designers are the only ones to notice, the logo fails its purpose.

Thats exactly what I wanted someone to do - post a picture because I was too lazy to google it myself! Thank you :)

1 more...
1 more...

Yes, and that is on purpose! It was always meant to be a joke on C++ :)

Me too - maybe because I was distracted by the irony that C# devs are typically the opposite of sharp... Or because it's MicroShit and I didn't give a flippin fuck ;)

1 more...

Change is hard.

Issue is, Rust is not a drop-in replacement for C. The memory safety features are just one part, and since Rust is also a "weakly" functional language, thus its prefered to write such code with it.

Anything that is drop-in replacement for C (or C++ for that matter) is going to be awful because of the same compatibility burden, imo

D is a mostly drop-in replacement (type renaming and such needed though), and it doesn't have that issue. D even has a mode called BetterC, where the D standard library and the garbage collector is left out.

What about Zig?

Oh boy, Zig is just uglier C++ with memory safety, and it still has those awful header files...

IIRC it's garbage collected, so really it's just a version of Java.

It does not use a GC

Apparently, I do not RC. I might have been thinking of Nim. A quick search indicates it's not memory-safe, though. It has a few helpful features to keep errors under control, but that's it.

I was planning to check it out, but don't have any experience yet. I thought it is more of a replacement than drop-in replacement, I may have been wrong

Yeah, it's not a small change. If there was a simpler way to make C memory-safe, it would have been done decades ago. It's just a different language too, which is fair given how much younger it is.

D kind of did that (C pointers are still an option, alongside with the preferred dynamic arrays, which has the memory safety features), and once I've seen a C compiler fork that retroactively added D-style memory safety features, although they also very much insisted on the "const by default" mantra.

I think this is one of those things where there's no "kind of". Pointers were added for a reason, you're probably not going to implement a database very well without them. If you use them, at some scale you're inevitably going to have memory bugs. Technically, if you were to only use hardcoded printfs, C is memory safe too.

If there was a simpler way to make C memory-safe, it would have been done decades ago.

We've had compile time sanitizers (-fsanitize=blah in gcc/clang) and runtime sanitizers (valgrind) for ages. I don't know how they stack up against rust's compile time sanitizers, but it's something.

About how an Excel spreadsheet with no formulas stacks up against a corporate accounting suite. Valgrind is how you find the bleeding once you inevitably introduce a memory bug. I don't understand all the fsanitize options, but I'm guessing they aren't a blanket solution, exactly because memory bugs have still been inevitable.

This thread is making me wonder how many people actually understand what Rust does. It rigorously prevents any form of memory error at all in normal code, and unsafe blocks, where needed, tend to be tiny. It makes C segmentation faults look just as goofy as JavaScript type errors.

Skeleton on bank with caption "waiting for hello world to compile 0x0a (cargo needs 69420 dependencies which need to be compiled on the fly, because fuck you, that's why"

It's not that bad, besides who cares with machines being as fast as they are nowadays?

I care, when I need to compile a lot of stuff multiple times on not-as-fast machines. I'll create a private repo powered by my workstation just for this. For C stuff I don't need to, because I can just use my workstations power via distcc.

I once saw an issue someone made for some database and said that they were learning Rust and if the database was rewritten in Rust then they could help contribute!

TessaraCt

C Tesseract has this interstellar vibe and brings quotes like the following, but with a totally different meaning:

  • "Years of [compilation error] messages"
  • "People disn't build this Tesseract"; "Not yet... But one day. Not you and me but people, people who've evolved beyond the four dimensions we know"
  • "You've got to leave something behind"

I'm waiting for the marvel cinematic universe movie about filling out TPS reports and preparing for Y2k... it's guaranteed to do better than Black Adam.

Wasn't that the Loki show, where all of time is run by a boring dystopian corporate bureaucracy?

Now that I think of it, I guess you're right, that show probably did do better than Black Adam.

  • C
  • C plus plus
  • C plus plus plus plus
  • C plus plus plus plus plus plus plus plus
  • C plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus

C₊𝅄⨧⁺ᐩ is used for building firmware for hyperdimensional singularity processors.

How did you insert those unicodes????

H̢̱̀e͖ͧ͘r͈̔́e̖̅̀ͅ ḩ͒͏̩̲ẹ̽ͯ̀ c̔͑͠҉̬o̢̢̠̜̓̚m̷̻̳ͧͪ͘ę̢̥̋̀s̢͈̲ͧ̀͜ͅ,̧̔͞ͅ f͖͗̿̕͝ȅ̴̶̩̂͟a̸̡̯͈̼͋͡s̗̋̀̀̀̀͟t̒̾͏̯ y̸̛̟̽̇o̢̟̜͂͆ͯ͘͜u̧̧̜͔͇ͭͫ́̚͞r̀̃͑̓͒͏̮ e̍̒̇ͯ҉̴̲̭y̷̰̖ͨ̑͜e̓ͭͭ͂̕҉̸̛̦̱̤̫͢s̡̛̫͋̕ o̢͉̘͚̤̅ͫͤ̓ͭ̕͡n͊͘҉̲̟̖͔͝͞ t̷̟͊̽h̨̦͎̅̄ͪ́̚͘͠i̶̢̛̬̞̦͊̅̏̀́s̶̸̢̹̹͕̩̜̣̎ͫͤ͐̈̀.̛̰̼̗̺̼͗ͣ̏́̚͟͠.̵̪ͥ̈̚̚͞ͅ.̷̶͎̞̳̘̈͋ͬ̈͂͒͠ z̸̛̫̓͜͟͡ḁ̧ͨ͊͗ͫͫ̅́͢͠͠l̵̴͒͏͚̥̻g̩͎̲̼̠̿̅ͩ͌̇͟o̢̝͍͔͍̼̼ͤͦ̎́͘͝ i̷ͧ̅̂͟͡͠͞҉̸̙̱͍͈̝̠̺̀ͅs̗̮͇̪̯̋͋́̕ t̵̶̛̰̘̰̫̬͖̜͗̒͗̉̿͌̀̀͢ẖ̴̴̡̭̪̉̌̈́͗͘e̵ͬ̃ͬ͌͆̍͏̧̡̧̦̘͇͕͙̳̹͜ ạ̳̺͎̤̺̖̠̔̈ͮ̉̌̓̀́͟͢͞͞n̊͏̰̖̘̖̭̰̖̕͢ş̴̽͘҉̮̞̼̱w̨̢̠̻͐̐͑̊͢͞e̢̡̛͖̙̟̣͋͆͘̕ͅŗ̧̯ͪ͘͘͜͡.̭̘͇͓̹̻̖̖͉͊ͪ́

On PC, you can hold Alt and press a number combination, like 1 or 257, to get an ASCII smiley. Not Unicode, but hey, it's something

This isn't the evolution of C at all. It's all just one language and you're simply stuck in a lower dimension with a dimensionally compatible cross-section.

C(ubed) logo from meme

::: spoiler Nix Nix snowflake logo :::

I'm starting to have my suspicions

I'm not ready for 4D, just let me try out C Lattice on a few smaller projects first.

"works on my machine."

"Just a heads up that we'll be shipping your machine to the client, since it's the only machine on Earth known to support the software. You're getting the spare machine out of the basement. Super fast Cyrix processor. Looks like it boots to Windows 11 release 3, but they've written it 3.11 for some reason."

C

C plus

C plus plus

C sharp

C sharp sharp

C through time and space

Edit: formatting

Fun fact, C didn't have a lot of things like Classes and was often distributed or stored alongside various libraries so it was C Plus (as in addition to) Libraries before it was C++, and somebody decided the next iteration was C with 4 pluses, which forms a #

Source: Bjarne Stroustrup, I forget which edition of his C++ book.

CnD where n represents any dimension.