#include <delusion>error: expected primary-expression before '=' token 1 | #define GIRLFRIEND = NULL | ^
As a c++ professor, I would never lie to my students like this.
C++ lets you assign variables with <%%> in case your parents were killed by an equals sign.

TIL about
bat! Looks awesome!Look into batman too. Its like bat but for man pages
Finally, someone gets it
I have the perfect module to use this once. Most people will see it and will figure out that it is doing what it should, but no one can change it because the file will be LFS locked like 99% of the time.
What is happening there?
Is it about templates? I can’t find any reference for that syntax.
I mixed digraphs and initilization together.
Oh, I didn’t know about digraphs at all. C++ is a really big language.
And wow, that’s a well hidden footgun.
Feels like this thing should require an extra flag in case of
gccin this day and age, or a separate compile-time defined variable, specifically for cases where you don’t want to require the flag.To be fair, the biggest footguns are the trigraphs, and now that I tested those do require a flag in gcc.
The digraphs are just hard to search, never used operator symbols.
Whew! Thankfully I’m a gay JavaScript user
everybody on the internet is a javascript user! do you even develop, bro?
I guess I pretend to with limp wrists.
Is that why people keep calling each other gay online?
deleted by creator
Let’s not go referring to vibe coders as developers, now.
MatLab user
I like how it doesn’t say “coder” because everyone knows MatLab isn’t a real programming language
It’s realer than vibe coding.
Tru dat
A unicorn written in thunkable is realer than vibe coding
Then what’s Java?
Shadow that is cast by the sins of men
A hive of villiany and boilerplate
A language for describing frameworks.
Allegedly, some people use it for implementations too, but I don’t know if it’s really suited for that.
Coffee? Idk I’m not a coder, I just know MatLab lol
Exorcist
Gnu octave on the other hand…
deleted by creator
Am a trans Rust developer. Can confirm.
I’m old and remember when all the trans women were Haskellers. now they’ve all moved to Rust and here I am, still toiling away with my monads and combinators, a lonely spinster. 😔
Do I get points for being an F# nerd?
you get so many points you’ll want a computation expression and some custom infix operators to handle all of them!
What
The word for R Studio fan is “scientist”
Scientists too busy writing grant proposals to realise that the developers of RStudio have made Positron, which is VS Code based and generally better
SQL enjoyer?
Every time I use it I feels like I’m going back to the 90s. No variables, no functions; Oh but you can do a CTE or subquery…👍
UNION ALL, UNION ALL, UNION ALL… “There’s got to be a better way, surely…”
looks up better way
“Oh, what the fuck?!.. Nope, this will just be quicker…” UNION ALL, UNION ALL, UNION ALL…
Join in a table sharing column names… Everything breaks. You gotta put the new prefixes in front of all the headers you called in now. In every select, in every where, etc… Which is weird because that kinda works like a variable and it’s fine…
“When you see this little piece of text, it means all this, got it?”
“Okay. Yep. Easy.”
“So why can’t you do that with expressions?”
SQL SCREAMS MANICALLY
“Okay, okay, okay!.. Jesus…”
And then you try put a MAX in a where and it won’t let you because you gotta pull all the maxes out in their own query, make a table, join them in, and use them like a filter…
I hate it. It has speed, when you can finally run the script, but everything up to that is so…ugh.
Personally I feel like SQL syntax is upside down, and things are used before they are defined.
SELECT a.id -- what the fuck is a? , a.name , b.city -- and b?? from users a -- oh join city b on a.id = b.user_id -- oh here's bI’d expect it to instead be like
From users a join city b on a.id = b.user_id SELECT a.id, a.name, b.cityWell, in this case
aandbare only aliases of table names, and it is assumed that tables were already “defined”, i.e. they already exist. And aliases in my opinion are meant to shorten long table names, or give a name that will be more appropriate in the context of the query, considering more than tables names can be aliased, at least that’s how I’m using them. But they still have to be descriptive enough so it’s clear what kind of data we are working with without the need to look for what they are actually aliasing in advance. In your example if the table was namedusers_who_won_the_company_lottery(intentionally bad name) then aliasing it asusersor even aswinnerswill be nice, even necessary, and you do not have to ask "What the fuck iswinners?For me, although I have seen a lot of people do this in SQL in real scenarios, using
aandbin SQL is not a bad practice, it’s a terrible practice. Feels like using them in function declarations in other programming languages, like doing a function declaration in C, at the top of the file like that:int some_func(char a, bool b, char *c);And letting whoever has to read the code after you go look at the definition and figure out by themselves what any of that is supposed to mean.
Or naming your variables
a,b,c, etc.Aliases are meant to improve readability imo, not worsen it.
While I agree that “SQL Enjoyer” seems like a weird category, I personally love SQL. I’ve been using it professionally for over 20 years, and I’ve yet to encounter a more elegant, efficient, and practical language for handling data in a relational database. Every attempt I’ve seen to replace it with something simpler has fallen far short.
Which database systems were you dealing with, that didn’t allow variables? My personal favorite is PostgreSQL, which does allow them on scripting languages, such as PLPGSQL.
See, I don’t have to worry about such details. I work in corporate software dev, which means that everything is an MSSQL database where most of the tables contain only an ID of a table-specific format and a JSON blob. Why use an ORM when you can badly reimplement NoSQL in a relational database instead?
Yep.
PostgreSQL is where its at, everybody else just hasn’t figured that out yet.
It seems that you need to get better. There are plenty of valid complaints against SQL, but your problems seem to be all due to lack of familiarity.
No variables, no functions; Oh but you can do a CTE
Yeah, CTEs are more expressive than variables. And as somebody pointed, every database out there supports functions, you may want to look how they work.
UNION ALL, UNION ALL, UNION ALL… “There’s got to be a better way, surely…”
What do you mean by a “better way”? Union all is a perfectly valid operation.
And then you try put a MAX in a where and it won’t let you because you gotta pull all the maxes out in their own query, make a table, join them in, and use them like a filter…
Window functions exist.
No variables, no functions
Every major SQL implementation includes both of those things. Of course, it’s rarely needed or desirable if you know how to properly write SQL.
“So why can’t you do that with expressions?”
You can alias expressions.
And then you try put a MAX in a where and it won’t let you because you gotta pull all the maxes out in their own query, make a table, join them in, and use them like a filter…
Wtf are you talking about? For one, filtering by the output of an aggregate is what the
HAVINGclause is for. But even if that didn’t exist, you could just use a subquery instead. You don’t need to make table…Tbh it just sounds like you don’t know SQL very well. Which is fine, but doesn’t make for a very compelling criticism. SQL does have warts (even though it’s great overall), but none of what you described are real problems.
LEFT JOIN
Includes empty entries, doubles others.
…
It sure is long due for an overhaul.
That’s the whole point of a left join? Anything else wouldn’t be a left join anymore.
Well I didn’t expect doubles. I’m sure not an expert.
It doesn’t arbitrarily double rows or something. For each row in the relation on the left of the join, it will produce 1 or more rows depending on how many rows in the relation on the right of the join match the join condition. The output relation of the join may have duplicate rows depending on the contents of each joined relation as well as what columns you are projecting from each.
If you want to remove duplicates, that’s what
DISTINCTis for.Thanks, I will kot forget that the next time I have to do SQL!
Still wild there are no simpler language that have grown in popilarity for databases though.
To be honest, it’s remarkably simple for what it’s doing. There’s a ton of details that are abstracted away. Databases are massively complex things, yet we can write simple queries to interact with them, with semantics that are well-understood and documented. I think, like anything else, it requires a bit of effort to learn (not a lot, though). Once you do, it’s pretty easy to use. I’ve seen many non-technical people learn enough to write one-off queries for their own purposes, which I think is a testament to its simplicity.
Java !

Me, looking between a picture of Bjarne Stroustrup and OP: … are you sure about that?
Who’s that?
C++, ew, no thanks, also where is C??
You can’t spell “INCEL” without “C”
😭😭😭😭
Never c++
Programming in C++ is downright horrifying to me after trying other languages. The way it does generics is fucked up on so many levels…
Feels a bit like being told to do brain surgery and getting handed a hatchet, especially in the modern era.
Like, its a great learning language precisely because it does force you to think about what’s actually under the hood of your objects and attributes. You actually have to learn what a pointer is. You actually have to think about memory usage and system states. Its like Bio 1 when they have you dissect a rat.
But without a ton of library support, you’re doing so much heavy lifting. And with a bunch of library support… why not just use C#?
…do you mean C++ or just C? Cause, sure, you can poke around with pointers and references in C++ but it can also be used just like any other OOP language, whereas in C it’s absolutely necessary since it’s not an OOP language.
Cause, sure, you can poke around with pointers and references in C++ but it can also be used just like any other OOP language
Fair. It is harder to break things in C++ than C. Although I’ve definitely created a few memory leaks.
I’ll admit I haven’t actively fucked with C++ in over a decade, but in my experience you’re not going to find the kind of native integration with - say - Azure or SQL that’s baked into more modern languages. You can work around this with libraries. But eventually you’re just emulating a higher level language.
C++ is a great language it you refrain from using 70% of its features.












