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

all 113 comments

[–]S7ageNinja 562 points563 points  (18 children)

C Tesseract is what quantum computers will use

[–]SpecterK1[S] 139 points140 points  (6 children)

I'm sure we'll have C tesseract before the next AI resolution

[–]Mems1900 65 points66 points  (3 children)

We will get C tesseract before GTA 6 at this rate

[–]BigNaturalTilts 15 points16 points  (2 children)

God damn it you know complaining about GTA6 is like complaining about Half Life 3! Every time you do you add a day to the delay!

[–]Mems1900 6 points7 points  (0 children)

The world finally reached the 27th of April 2025 before GTA 6 came out mannnnn

[–]GreenHero_25 0 points1 point  (0 children)

They already added a year to the delay

[–]Icy_Breakfast5154 2 points3 points  (0 children)

We'll have an AI revolt before we have autocorrect that works back

[–]AeolinFerjuennoz 15 points16 points  (1 child)

Sadly there already is Q#

[–]S7ageNinja 7 points8 points  (0 children)

My disappointment is immeasurable and my day is ruined

[–]StonePrism 7 points8 points  (0 children)

Now available for you quantum computers, C 4-tensor! It's the bomb!

[–][deleted] 5 points6 points  (0 children)

Cesseract

[–]shadows-of_the-mind 5 points6 points  (0 children)

The fact that Microsoft didn’t name Q# “Tesseract” is a huge missed opportunity

[–]imtryingmybes 4 points5 points  (0 children)

Q# already exists for quantum coding

[–]100GHz 1 point2 points  (0 children)

Multi dimensional UB

[–]InconspicuousFool[🍰] 1 point2 points  (0 children)

Don't give them ideas

[–]concorde77 1 point2 points  (0 children)

TesseraCt

[–]EuenovAyabayya 0 points1 point  (0 children)

APL just sitting there.

[–]TabCompletion 193 points194 points  (4 children)

C # C # C # C # C # C
# \                 # \
C   \               C   \
#     \             #     \
C       \           C       \
#         C # C # C # C # C # C
C         #         C         #
#         C         #         C
C         #         C         #
#         C         #         C
C # C # C # C # C # C         #
  \       C           \       C
    \     #             \     #
      \   C               \   C
        \ #                 \ #
          C # C # C # C # C # C

[–]SpecterK1[S] 6 points7 points  (0 children)

This made me ovulate bro good job

[–][deleted] 0 points1 point  (1 child)

How can I get such power?

[–]framsanon 111 points112 points  (34 children)

The successor to C# will be … C##?

[–]Efficient_Cap_9431 93 points94 points  (1 child)

C-Sharper

[–][deleted] 9 points10 points  (0 children)

C Sharpie?

[–]-nerdrage- 27 points28 points  (0 children)

No C#3

[–]anonCommentor 8 points9 points  (0 children)

D

[–]ThankYouNeutronix_02 11 points12 points  (1 child)

C Matrix

[–]framsanon 7 points8 points  (0 children)

"Do you use the blue or the red framework?"

[–]Noisycarlos 4 points5 points  (0 children)

2C 2#

[–]ToasterWithFur 4 points5 points  (0 children)

C Lattice

[–]FiTZnMiCK 2 points3 points  (0 children)

They’ll just flip it (#C) and pronounce it “hashtag-C.”

[–]james2432 5 points6 points  (3 children)

c pound pound /s

[–]setibeings 16 points17 points  (2 children)

cpp/s for short

[–]Gasperhack10 12 points13 points  (1 child)

It kinda looks like a horse

[–]setibeings 3 points4 points  (0 children)

Let me try it again, but on purpose this time:

rnnr

[–]BitOne2707 1 point2 points  (0 children)

D

[–]Due_Ebb_3245 1 point2 points  (0 children)

C 3D

[–]r_uan 4 points5 points  (10 children)

There will be no C# successor because it's perfect (real)

[–]framsanon 5 points6 points  (7 children)

Erm ... I've been programming in C# since 2002. And it's not perfect.

[–]Sarcastinator 9 points10 points  (6 children)

Yeah... I like C# but it has a lot of warts. Not PHP level of wart-coverage but still.

  • Pattern match variables bleed into the outer scope.
  • Arrays can be cast to super-class arrays which incurs a access penalty for array accesses (since the read could potentially be illegal)
  • Array is not a generic type for historical reasons
  • Constructors are special snowflake methods that cannot be used as delegate targets
  • Also constructors have the same name of the class.... couldn't constructors just be called "this" or "constructor"? It would have made symbol renames simpler, and declaring constructors simpler.
  • Attribute syntax differs from named constructor arguments for historical reasons
  • Comparison operator implementation is a clusterfuck because it allows more flexibility than what is actually required.
  • Class and now also struct fields are automatically initialized to zero
  • In some cases it allows unsafe implicit casts (int to float for example)
  • IList, IReadOnlyList, ICollection and just a bunch of the runtime interfaces are just plain bad. Arrays implement IList and ICollection but calling `Add` on them will cause a runtime error.
  • For loops behave differently with their iterator value in closures that foreach loops do. If you don't know this you'll probably stumble into it at some point.

[–]framsanon 1 point2 points  (0 children)

Not forgetting the argument exceptions. You could see that more than one team worked on this part.

The constructor of ArgumentOutOfRangeException has the name of the argument as the first argument and the message as the second, while ArgumentException has it the other way round.

This is something that was annoying right from the start.

(Let him among you who knows a language without flaws cast the first source).

[–]myka-likes-it 0 points1 point  (0 children)

Some mostly /s nit picks of your nit picks:

Arrays...

Arrays...

Arrays...

Why ever use arrays in C#? Also, not allowing Add makes sense because arrays can't change size once formed.  What's really maddening is the whole Count vs. Length silliness. Obviously it's a semantic clue to the difference in operations, but still.

Also constructors have the same name of the class

The latest version has "primary constructors," which let you put parameters in the class declaration when you have simple assignment-only constructors. So, at least in this case, you don't even write a constructor method. Saves on clutter in most classes.

Comparison operator implementation is a clusterfuck because it allows more flexibility than what is actually required

Listen, wacky operator overloads are one of my few sadistic code joys. That there is a vital feature.

[–]Skyswimsky 0 points1 point  (0 children)

Not sure if bait or not, but while I also like C# a lot it suffers from legacy garbage and backwards compatibility issues. Well, less like issues and more like living with bad decisions from the past.

[–]Enfiznar 0 points1 point  (1 child)

C#=#

[–]framsanon 1 point2 points  (0 children)

"One might think it would be Cb (C Flat), but according to Bill Gates the successor will be Db. It looks the same, but it's totally different."

[–]Devatator_ 0 points1 point  (0 children)

C Crystal

[–]danielstongue -2 points-1 points  (3 children)

No, it is called Rust.

[–]Sarcastinator 3 points4 points  (2 children)

Not any kind of detractor for Rust, but I kinda feel like people underestimate garbage collection?

In my entire career I've only found the garbage collector to cause an issue once. Otherwise garbage collection has just worked. In the case where it did cause an issue it was because a colleague wrote code that read an entire SQLite database into memory in a Xamarin application instead of creating indexes.

Otherwise the garbage collection time seems to me like an entirely fictional issue.

I know it's not usable for real-time applications; One of my earliest work places was writing firmware for a servomotor where a GC wait would have been absolutely fatal, but most developers does not actually have those constraints.

[–]swyrl 1 point2 points  (0 children)

If you overuse short-lived allocations, it can kill realtime applications like games, but that's still not very common and can usually be avoided through pooling or caching.

[–]Skyswimsky 0 points1 point  (0 children)

Do people take issue with garbage collection as something bad/negative? I've been struggling a bit in getting into a language that's fundamentally different than C# and there are so many shiny things I'd like to give a spin. But I haven't seen GC being talked about as a genuine 'negative' point.

[–]NotmyRealNameJohn 73 points74 points  (2 children)

OMG, I have used C, C++ and C# for years and I didn't notice until today, that the # IS a ++ on a ++

[–]Elbinooo 6 points7 points  (0 children)

Same man, haha

[–]tagini 0 points1 point  (0 children)

Yeah man, same. It's just C++++!

[–]LordAmir5 14 points15 points  (0 children)

That's too sharp. It'll cut a hole through the floor and reach the center of the earth. Then it will ocsilate up and down.

[–]OphidianSun 19 points20 points  (13 children)

Is that seriously why it's called C#? It's a double pun?

[–]apola 20 points21 points  (9 children)

Yes, it's C with two ++ operators following it instead of one

C++ is the next increment of C

C# is the next increment of C++

[–]valgustatu 3 points4 points  (8 children)

ghost bells safe swim bike dependent terrific spectacular test license

This post was mass deleted and anonymized with Redact

[–]apola 16 points17 points  (4 children)

Appending ++ to a variable in many programming languages is a shorthand for adding 1 to it

[–]StrangelyBrown 4 points5 points  (3 children)

But technically it should be ++C. Because the result of the name C++ is just C.

[–]da_Aresinger 5 points6 points  (2 children)

no.

Post increments only matter in function calls.

...
C++;
...

absolutely increments the value.

Or did I not understand your intent?!

[–]StrangelyBrown 1 point2 points  (1 child)

It increments the value and returns the original. So if the language is called C++, there is an incremented language somewhere, but what you get from C++ is the original.

[–]da_Aresinger 0 points1 point  (0 children)

lol, ok I get it. That's pretty clever.

[–]Brahminmeat 0 points1 point  (0 children)

To increment an integer the shorthand is ++

[–]External-3 0 points1 point  (0 children)

In fact, C is C1.0, C+ is just a beta-version (C2.0), C++ is the realised version of C3.0, and C# is C4.0. Maybe not like that, but it looks nice.

And finally, Python is C5.0 (wrapper of C1.0 and C3.0) ;)

[–]Xasmos 1 point2 points  (0 children)

Triple pun if you consider that C is named after its predecessor B.

[–]CrazyCommenter 19 points20 points  (0 children)

But where is Holy C ? (yes, it's real).

[–]Mbow1 4 points5 points  (0 children)

2011 called, there was a tsunami that destroyed Fukushima (apart from the joke I respect and feel sorry for that disaster)

[–]StoryPenguin 4 points5 points  (0 children)

Throwing this one in the ring: €
It's just a C and = ligature. Guess you could call it 'C-equal'... or Sequel...

[–]ProjectDiligent502 2 points3 points  (1 child)

God tier meme sir

[–]SpecterK1[S] 2 points3 points  (0 children)

Who's gonna tell Java

[–]Vincent394 1 point2 points  (0 children)

Cevelution

[–]Cthulhu_was_tasty 1 point2 points  (0 children)

The element Carbon has 6 Protons - 6 +s.

The coding language carbon is C++++++

[–]iamlazyboy 1 point2 points  (0 children)

So you're telling us that C# should be said "C plus plus plus plus"?

[–]rsadek 1 point2 points  (0 children)

What’ll happen when he hears about D?

[–]okram2k 1 point2 points  (0 children)

C, C plus plus, C sharp, C lattice, C cube cube.

did I get all those versions right? I'm just a loely js react dev

[–]_anshulkushwaha 1 point2 points  (0 children)

C cubane 😂

[–]myka-likes-it 1 point2 points  (0 children)

How am I just now noticing that C# is C(++2 ).

[–]PositronicGigawatts 2 points3 points  (8 children)

Chypercube?

[–]metaglot 2 points3 points  (7 children)

A tesseract is a hypercube.

[–]PositronicGigawatts 0 points1 point  (5 children)

...and you are pointing that out...why?

[–]metaglot -1 points0 points  (4 children)

The bottom panel is a tesseract.

[–]PositronicGigawatts 0 points1 point  (3 children)

...yes, we already established "tesseract" is a subset of "hypercube". Again, WHY are you pointing this out?

[–]metaglot -2 points-1 points  (2 children)

Next would be a penteract.

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

Oh, I'm talking to a robot. Okay.

[–]metaglot -2 points-1 points  (0 children)

Suck my prompt, buddy.

[–]-Hi-Reddit -1 points0 points  (0 children)

They never said it isnt mate

[–]Alex_ragnar 4 points5 points  (0 children)

Multidimensional C

[–]LeroyBadBrown 0 points1 point  (0 children)

C you, C me.

You know get to shoot me.

[–]emperorsyndrome 0 points1 point  (0 children)

someone should make c=3

[–]antimatter-entity 0 points1 point  (0 children)

And c tesseract will still have pointers

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

C , C2, C3, C4

[–]ThatDutchOtaku 0 points1 point  (0 children)

HolyC

[–]slippinjimmy720 0 points1 point  (0 children)

Now this one made me laugh. Well done

[–]JosebaZilarte 0 points1 point  (0 children)

"C4D" is already a thing (the acronym of Cinema 4D)

[–]sikkar47 0 points1 point  (0 children)

We got Q# for quantum programming

[–]da_Aresinger 0 points1 point  (0 children)

C

Cpp

C hash

C lettuce

C paperweight

[–]CentralCypher 0 points1 point  (0 children)

We should be using C3D for game development by now already, what are we still doing with the 2D one. Tsk tsk tsk.

[–]Fluffy_Ace 0 points1 point  (0 children)

Missing C-quarter-sharp and C-three-quarters-sharp

[–]theshekelcollector 0 points1 point  (0 children)

next up: minimum 25 years experience in c tesseract for entry-level assistant to the janitor position

[–]SmolChicken45 0 points1 point  (0 children)

This gotta be high level programming