LongCut logo

C++ Is An Absolute Blast

By The PrimeTime

Summary

Topics Covered

  • Choose to Enjoy the Work You Do
  • C++ Quietly Reinvented Itself Since 2011
  • Unfashionable Languages Are Creative Sanctuaries
  • The Ugly Middle Demands Creative Freedom
  • More Than One Way to Build Anything

Full Transcript

I want to thank you from the bottom of my heart okay collections 283 for submitting such a great looking article right here C++ is an absolute blast okay

look at this guy look at that deep V that's like the deepest V A V can get I want you to ask yourself an honest question when was the last time you actually had fun in programming uh just

this last week uh looking back I don't think I've actually had fun in programming for close to 10 years that's actually a really sad statement I actually want to see this type one in the chat if you have not had fun in like

a while okay there are some ones there are some ones I want to ask a follow-up question why are you not having fun doing grunt work code burnout yeah yeah yeah even when I hate it I'm still

having fun bloated code bases everywhere not fun yeah boring [ __ ] programming at work all the time yeah it's it's all about business and not interesting problems yeah that's fair forc to use a

micro python as of as the final product okay yeah that could be pretty pretty painful I still remember it was not too long ago I was I really am not a fan of UI work I've never loved building uis

I've just never been that person okay I I've just never wanted to be that person uh even when I was hired as a senior UI engineer at Netflix I really didn't do

UI I came from a job in which I I did all like the say the touch motions and everything for a device I I I kind of did like different things yeah it's like UI related but it's more on the library

side and I quickly got pulled out of my first UI job and I remember really disliking my first UI job and then I did i' worked on a library for quite some time and I ended up leaving Netflix but then getting brought back in to come

back to Netflix and when I came back I worked on the UI again and I still remember sitting in my or setting into my heart at some point that I'm going to enjoy what I'm working on despite it

being the UI and I actually uh I actually found a lot of joy in in setting myself up to just say I'm going to enjoy the thing I'm doing I'm going to find the best way to do it and I'm going to do it the best I can possibly

do it there's this kind of this idea that if you if you say that oh I really hate doing this thing that thing will feel really it just feels more painful like the more you focus on the thing that you dislike the more you're going

to feel it being negative but you can always find like Joy or good things and stuff and so I kind of realized that I just started going okay I'm going to find something that I really like and I'm going to do that thing that I really

like about it and then even though I'm doing a task I don't like I'm going to try to like find the the motivation like the good parts of it as opposed to getting burnt out I love the pro I love process automation give me a task that

needs to be codified and uh I'm one happy nerd yeah I I'm I'm a big fan of of any I'm a big fan of automation type stuff or I'm a tools guy I've always been a tools guy I'm going to continue to write tools I realize that I don't

write enough tools for my for my stream and that's kind of like a big change I'll be making okay sorry huge detour there I don't have fun with JavaScript python Ruby C nothing when I say fun I mean you genuinely excited to work on

your project and the whole time you work on it you're thinking damn this is a blast I can't believe that wild idea I had actually worked yeah that I mean that that I can't believe it actually work thing gets smaller and smaller

that's true uh for example I working on a little rogue like game and I had the idea I bet I could use this Dy algorithm to connect rooms during map Generation by inverting the map and then running it

I'd probably make really cool carved out tunnels between rooms I then had the greatest time figuring out how to pull it off and I didn't feel like C++ got in my way I managed to pull it off and

learned a lot from the process then I had the idea I wonder if I can still make my FTX UI user interface and just render it directly into the sfml renderer window sure enough I could

totally do that too and Not only was it not that difficult but I learned a lot about C++ does Unicode or how C++ does Unicode apparently I still can't read

we're trying here folks none of this was easy it was just all possible and I can't think of too many ways C++ would stop me from doing what I want that's fun yeah I think I you know I I totally

do get this the drive to do something that's difficult is very appealing this is a very appealing thing and I don't think it really matters about the language as much as it matters about the

difficulty of the problem I want to make something I don't know if I can actually do it and then going from the from the path of not being able to think or thinking that you can't do something

into realizing you can do something there's just something about that that is just so rewarding that is the reason reason why I have unwavering confidence

that I can start any project unwavering confidence any project at all I can just I can just start it I can start it I can try it the it's the feeling of power and possibilities absolutely now will I finish the project maybe not but I can

definitely finish the problem big difference noers yeah I think programmers have lost the story of why they get into programming in the first place I know I didn't learn to code just so I can make a bunch of billionaires

more billions yep facts of facts upon facts I started coding because I wanted to be able to make levels in a game that was like a Zelda likee game called Grail or grow I'm not really sure how to say it I didn't get into programming so that

I can fight an immutable rendering engine into finally showing a cornflower blue button The Impossible I definitely didn't get into programming just to make a few authoritarians at the top of a

random open source project happy absolutely I mean to be fair I I think it's a bit disrespectful to call uh I mean it maybe it is maybe it's not but it's it's a little silly to call it authoritarians uh or to insult people

who run projects like you got to remember that if you run an open source project you have to run it in only one possible way which is like an authoritarian like there's no other way to write and really authoritarian is

probably not the right term because you're not really dictating someone else's public life you're only dictating their life within the bounds of your project I'm not really sure what the proper word is but either way you get what I'm saying how else would you ever

run a project you can't you just can't uh I got this let's see I got into programming because it was fun I remember staying up late until 4:00 a.m.

desperately trying to get my shitty GW basic code to render a character to an MS DOS console and I remember working on weird gue ideas and network servers for weeks and just let's see on end just

because I had an idea I remember fighting one bug for a month only to find out it was a stupid spelling mistake I remember that all of this even the frustrations was a hell lot of fun

easily more entertaining than anything else I've learned the joys of learning I think what this really says is that some people enjoy learning I enjoy learning I've always enjoyed learning I think it

makes I think it makes for the most fun I just do one thing I definitely remember was that C++ was a lot of fun even back in the day when it was overhyped in honestly a terrible language it was fun because I could

probably make almost anything with C++ see no waiting around for someone blessed by the python Illuminati to create the terrible rapper around C++ projects code I wonder so okay so there's two things I'm kind of taking

from this paragraph which is he's saying he's remembering back in the day that C++ was fun one big danger is using your memory of a past time for why it was a

good time and then trying to take the past memory of something and map it onto your current state like I look back on so many past things and I have this

weird oh I mean we all have it Nostalgia right we're all nostalgic we all look at things and they slowly get golden and good over time if you really try hard you can actually remember the things that sucked about what you were doing

like I still look look back on worka as being such a great job in their are so many great things but then if I really sit down and think about it I worked like 60 to 70 hours a week and it was

really really hard and yeah it taught me how to be the coder that I am today but at the same time it also was just really really hard because it was 60 to 70 hours of somebody else's work it wasn't just me getting hyped up about my own

project but it was me forced to work on a team with a lot of people trying to move as fast as possible like that's a very different experience and so I I look back on it fondly despite the fact

that it might not be that fond it's just that my head does this thing right and second I think there's another thing that's kind of being tossed in here that's that is unrelated in some sense

which is that this whole like blessed python Illuminati uh I think our world has become significantly more complicated than it was 15 years ago 10 years ago building something now you

don't just build it like the expectation when I was younger for programming was that you build the thing right I mean how many people were alive and around building code like 15 years ago 20 years

ago like you just build stuff there was no just vibrant open source Community that's going to hand you everything that you need you weren't at the whims SL like you like when I thought about I got

to build you know I got to build an image Carousel which I did I didn't think okay I need to go try to find a library to do it I thought okay I have to build the image Carousel like that's

it I'm going to go build it now which is a very different kind of I I'd say mindset I would guarantee you that the average person when they think I'm gonna go build it now they think I'm going to

go on to Google and search for image Carousel I'm going to go on and search for thing right they don't actually build the thing they look for a library that does the thing Ken wheeler mentioned Ken wheeler mentioned yeah and

so it's like a very different mentality and I think that also just makes programming in some sense it's just a different experience and I think there's that there's definitely a struggle between these Generations between my generation I assume this guy from my

generation or potentially probably a little bit older than me he sounds like he's about 45 is what my guess is 45 to 50 he's like a decade older than me and uh my guess is that he just has the

exact same experience but even more which is that he just today's world you're kind of you just feel like oh I have to use all these things and then when you start using all these different libraries you just you you find a

problem with it and then you have to wait for someone else to fix the problem because it's very very hard to try to get those problems pushed through it's also called romanticizing yes we already addressed that there's a

lot of romanticizing is going on here but somewhere along the way C++ became unfun and I think the trend continued with every language to this day the story of C++ is is a possible warning to other languages and a story of great

comeback from the dead that nobody realized happened the C++ template meta ocalypse in the late '90s and early 2000s I was actively using both C++ and Java until I

mostly quit using C++ about the same time C++ community did this I do meta programming that's how I felt anyways just a bunch of idiots finding a new

angle bracketed shaped template metaprogramming hammer and bashing every everything nail-shaped within 100 met I remember insane discussions with people who thought adding two numbers with a

template was faster than adding two numbers directly even though the Assembly Language output was exactly the same that can't be real dude leave templates alone templ hey templates are

great we could all agree that meta programming is a good thing but it's not a good everything that's crazy if you wanted to add two languages together and

you thought using templates was the way you do adding two things together like I don't even know where do you even come up with these ideas where do you how do you even come to the conclusion that

this is a real thing this obsession with using template metaprogramming for everything combined with what I recall as a weird arrogance in C++ standard committee to refuse to make things nice

for programmers is what tainted C++ for me and many people it became the language for architecture astronom who cared more about the pimple pattern and metaprogramming than actually making

nice language to use dude so much so much impulse imple was my life imple was my life imple was my love

um but so to be fair though this was this this was 2001 to 2010 2015 2001 to 2015

2020 I don't know when it ended but it definitely started in the early 2000s maybe even in the late '90s and so it's kind of it's a bit

unfair to think that C++ was the only one this was like a whole zeist of programming like this is the clean code unintentional effect on the programming

world is that everything needs to become architecture like everything needs to be become design patterns and abstracted for the sake of making sure that it can always be used in every single possible

position ever possible and that your project May grow you may actually have this list of three different outcomes and maybe that three different outcomes accidentally becomes Infinity so you better be ready you better have your

strategy pattern on top of your factories you better be able to produce out everything oh man you better have your builders for your factory so that way you can produce the proper output for the strategy to be able to be called right it's like at some point something

happened in programming where it's like it went from solving the problem to Sol the problem of solving your problem and I don't know when this happened but it's all about early 2000s abstract factory

factory dude goes hard it goes hard hexagonal distribut distributed microservices microservices are great when you have a build a bajillion

users it becomes less great the less users you have let's see I can imagine what J blow thinks about this yeah that's why I loved Java Sun microsystem totally cared

about what about programmers and what they needed Java had a garbage collector Java totally would never end up doing the exact same thing no not at all Java programmers would never become obsessed with insane boilerplate abstract factory

factory visitor patterns and caring about uh caring more about standards than usability no never imagine using Java seeing what's happened to C++ and thinking I have a

language that's even easier to do what they're doing in C+ Plus in it will never happen here I mean Java Java has always been boilerplate

Java is a programming is is boiler plate disguised as a programming language uh I think this is probably about the same time that many people my

age quit using C++ and most of you probably remember an overly wordy complex language with a bunch of syntax but not a lot to gain uh for all the angle brackets but C++ kept evolving and

the standard committee seemed to realize that if they don't do something they'll they'll become an obscure language only used by single 10 trillion dollar industry how

pathetic I don't I honestly don't even get the uh insult here they did the work improved the language dramatically and actually made it fun again without losing their original goals sadly nobody

knows about this huge revolution in C++ and I'm going to update your perception of the language are is this going to just be smart po pointers is that what we're about to get hit with yo dog you

can now manage memory easier smart pointers uh I want you to go ahead and look at what was added in C++ uh added to C++ and C++ 11 which part C++ 11 part

one or electric Baloo which one go ahead click that link and look at the list of Insane improvements let's highlight a few massive One auto yes C++ actually added an auto automatic type inference

word I was shocked as you because I remember C++ being obnoxious jerk that made type the same damn word over and over again for no reason null pointer what yes they fixed the [ __ ] see

thing of this weirdly defined null that's a zero but not a zero because some jackass on the C standard committee still writes the code for pdp1 that has

13.5 bit words and no zero address I mean to be fair again you got you just got to remember that C++ has a lot more Legacy

right I actually don't hold anything against Legacy cuz leg I mean it's just like you can't blame it for existing in the time it was and you can't just say oh we're

going to forget the people that have to maintain something else because we just don't care about I'm like that's that's just what it is right uh Range four are you still reading this yes yes it did have the but you still have to go like

const Auto ref X dude it's so stupid it does not look like this by the way a four a for Loop in C++ 11 does not in

fact look like that okay don't even don't even get bamboozled by this okay that python has best of all it works with auto yes const Auto ref right

so you can Loop over list and not care about getting the typew right JavaScript still can't figure out what a for Loop is but C++ has one Lambda Expressions

what yes okay no don't even try to call don't even try to do that okay we all know you got hit him with the capture group wait hold on you got to hit him with the capture group you got to stuff

and then you got to go in here and do this okay don't even don't even try that's barely a Lambda okay yo F C++ C++

lambdas yo F him okay F that no no hit him with that yeah [ __ ] yeah no

no include functional dude Dan is so pumped up right now he can't even wait yeah get up yeah yeah time that man

out okay I get that you guys all love it I don't I don't I don't love it I do not care that is a valid Lambda though it is a valid Lambda i' I've written a few lambdas in my life chono do you

understand what just happened in 2011 C++ had a better Default Time Library than almost every language I've ever used it's so good you can actually write 100 milliseconds to create a 100 millisecond time Point yes and that is

valid syntax and is type safe okay Rex what yes C++ uh has built in Rex now and they're pretty damn good too they they do have one flaw that it's

not actually exactly like JavaScript in the ecmascript mode but it works really well okay unique pointer yep there we go these are the big ones these are the big these are the big daddies yes these Implement various

kinds of reference counting and enforc memory ownership once these were added people largely stopped doing loads of Heap allocation and instead now op in for more on the stack and only these

pointers uh were needed is that true with a unique pointer can you you can just loaded on the stack that's that's the thing about C++ I didn't I didn't really I didn't I didn't know to that

level I just knew unique pointers uh did that I fearful con concurrency yeah it's definitely fearful concurrency for sure I didn't realize with unique pointers or shared pointers you can just have them only allocated on the stack I don't know

how that would work with shared pointers that can't be real on shared pointers right maybe maybe it is maybe I'm just stupid yes multi-threading is baked Into The Language by default what is this

language the C++ I remember said you want threads write it yourself dip [ __ ] new C++ is saying yeah threads are really nice here you go I mean I think this is good for any language any language that really takes deeply the

standard I think is a good thing I think that's why go is so popular as it is go oh hey go you want to know if something is a valid email address go has it right you want to be able to have string some

sort of nice string inter turning templating that also has HTTP built in like oh go has that you want any of these things yeah go has that go has a pretty nice starting point and I think

any language that really takes seriously at standard does a great job it's actually one of the reasons why I get really hot and bothered by rust is any rust project requires you to download like 150 dependencies to be able to have

like you have to build hey build your own standard hey you go build your own standard get out of here go build the standard oh you want Json go get Json go get sday and sday Json oh you want multi-threading go get Tokyo go get

Tokyo or Cross Beam or whatever you want go go you go do that we don't want to do that it's not it's not for us and I I just don't really like that love it I don't know if I like that no

deps no crybabies only men that's right Dan you tell them Tokyo and sday are good though they are good I'm not by the way I'm not dunking on the goodness of Tokyo or sday I think Tokyo satday and

clap I think clap is one of the greatest libraries ever written in in my whole life I think clap makes the greatest use of procedural macros of pretty much

anything in the universe right it's so good uh see I honestly don't know what happened or why C++ was such a massive Improvement to the language but it reminds me a lot of es6 in JavaScript world just a complete overhaul of the

language philosophy and style without alienating the previous way of doing things javascript's history is a much more complicated history I think JavaScript always wanted to be this way it's just that it got stuck a little bit

on ES4 right am I correct on that one it was ES4 that kind of ruined everything oh it's it's Microsoft and ES4 for those that don't know Microsoft played a whole

role in slowing down JavaScript and ES4 ES4 was like typed typed JavaScript and those two things combined just largely

exploded so you had Microsoft and you had ES4 and in fact Microsoft was such a bad actor in JavaScript in my Computing

ethics class in 2010 I learned about how Microsoft sty a lot of JavaScript as like a learning experience that was like

part of my college coursing was to teach me that Microsoft bad Microsoft evil yep C++ got that sort of more importantly though C++ is now more

modern language with quite a lot of things that you find in other languages here's a list of common things you may uh you may need need a diverse a file system check out file system file system is actually really nice it's a great

it's great file systems perfect they caught up to just a nice modern file system need package management check out Conan messen WP still I think this is one of the disasters of C++ is that you don't have your own yet right need a

matrix Library check out enan uh tensorflow is written in C++ FYI Graphics I mean do I need to mention that tons of games are yeah I assume I assume Graphics is covered pretty well I

know RBS probably I assume rayb C so probably works right away and C++ uh gu uh yeah you have QT and WX widgets I guess but there's also I'm gu but uh my

favorite is aille yes now I believe that FTX UI is the best designed GUI library in any language it's that good but only for terminal

uis I've never used that huh okay okay deal do you mean uh when they tried to steal Java they tried to do everything

wrong Microsoft is just a Microsoft is a company in which has been a barnacle on developers and they've continued to be a barnacle on Developers and it's like happening all over again in our in real

time in front of our face I'm not going to get into it okay I always ruffle all the feathers and then everyone gets allet I don't need to have yet another talk about how Microsoft has GitHub VSS

code and co-pilot attempting to make people not even own Hardware anymore trying to push everything to the cloud trying to own every part of development and trying to be able to take somewhere between $10 to $100 a month from every

single developer likely charging more and their whole goal is actually just to get you completely stuck into an into their environment into their wall garden and making you effectively feel helpless such that you'll always have to suck

from the teed of Microsoft I'm not going to mention it I'm not going to get all hot and bothered by about it I'm just gonna say that I don't think they're great for for

developers yeah yeah yeah but you said fun I can hear you now oh yeah well rust is really good uh web servers and the data structures and uh the standard

Library rust is just as fun as C++ yeah my point is not all of these new things are what makes C++ fun the point is so far is this if you believe that C++ is old and sty with tons of angle brackets

pointers and this [ __ ] you are wrong I'm finding that C++ is probably going to be the most capable language in existence right now by a vast margin really I mean how many Constructors are

we up to what's what because the rule the rule of five is no longer it anymore now it's like the rule of seven or the rule of nine what is it now

does anybody know the rule of seven now yeah yeah yeah like how how many do we actually need we have literally all the constructors the rule of three to the rule of five Dan

you're not even up to date Dan oh damn Dan Dan doesn't even know Dan new C++ adds two more Dan did you not even know

Dan Dan Dan damn Dan you don't even know game program I'm in shambles you should be Mr C++ game developer guy oh I develop games and

C++ don't even don't even know I still thought it was the rule of the oh you're way off is there any limit no I think it's going to keep on going as time goes to Infinity the rule of three will become the rule of infinity man I'm such

a fraud you are you're a fraud all right I don't think I've ran into anything I can't do and not only that but there's multiple options for almost anything I want to do you've also just describ

JavaScript excluding very few problems you've effectively just just described Javas JavaScript and that's the reason why we have that one meme the t uh the T Kettle

JavaScript uh meme right let's see if I could yeah there you go I mean this is this is why this exists is for this exact same reason it's right there this

is the problem this my friends is the problem of Life tweeted I this is this is an old one imagine doing ra tracing in JS you don't have to imagine people

already do it there's no imagination here my friend my friend not a single imagination is needed let's see if I want to make a desktop app I can hand code it myself using something like

fener or using something like sfml or use qt or directly uh coded old school style see fencer for a good guide on doing that if I want to play sounds there's tons of options from open source

to paid to any kind of Do-it yourself I made a ala driver once 20 milliseconds at a time baby turns out I was really bad at making it 20 milliseconds at a time actually had to get a real audio engineer to come help me make it work

turns out I'm a turns out I'm the turns out I'm stupid uh I can go grab sfml for something quick and dirty or even pay for wys to get the best in the industry if I want to do 3D Graphics I can use

openg Vulcan direct 3D to this day I still remember in 2008 I actually had wrist pain from how much

Capital has has direct has direct Xchange uh do you still have to capitalize everything uh direct X 12 API is

everything still just completely capitalized or have we finally got a gotten rid of that uh here uh open uh

let's just go open AI can you show me a quick example of using direct

X12 back in the day direct X12 why why do you got to be like that just let me see direct X12 just let me see it all

right let's see a nice example include Windows H whirl D3 D12 DX gi1 fix standard except Vector IO stream let's

go let's there dude it's already happening it's already happening look at all the capital letters look at all those look at those instances oh my gosh the W API it's happening

class no dude way too much my gosh look at all those capital letters It's like two decades later and here we

are here we are still just look look at who who does that who does this

[Laughter] oh my gosh you should see Vulcan what is this why do you got why why why do you have so much capital

letters what do you need it for what is this it's like you you guys it's it's like DirectX 12 saw Sequel and decided that

squeal they could do better and they just made everything capitalized The Lies We Tell ourselves dude I'm done with that I'm done with that crap get the hell out of

here caps lock for is cruise control it is uh let's see if I need a math uh if I need math there's everything from blast to igen to game specific libraries like GMT I wrote my own uh querian once that

was a lot of fun my own querian and matric I was able to actually do full like rotational kind of viewing this was back in the day before everyone's like oh Oiler angles right okay I I never read about Oiler angles okay I was in a

graphics class and no one ever talked about them we had to handw write querian I had to do all querian math by hand now can I do it no do you need uh to do AI do let's see did you know tensor flow is

actually written in C++ there's not a library for it if there's not a library for it it's not too difficult directly hook into almost any OS API en roll your

own enrolling my own uh gear is fun it is Bros correct rolling your own gear is fun uh that's only a few examples but the most important thing to understand

is C++ doesn't really get in your way since you have direct access to almost every library with C or C++ ABI and also direct access to every OS you're pretty

much able to make anything you need yourself C++ does give a [ __ ] or don't I can't tell because usually it's I

don't but maybe C++ does maybe C++ is hey maybe C++ feels things okay and and maybe it's a sensitive guy you

know all right so you can do anything you want with C++ and the C++ standards committee has corrupted or corrected course to focus on developer productivity since 2011 how exactly is

that fun Mr Zed a sha C++ is in the this weird creative sweet spot where the language and the ecosystem are extremely high quality but the language isn't popular enough to attract the weirdos who ruin

languages that's pretty great you know who I'm talking about goodness gracious remember how I said that I left C++ because of a bunch of weirdos went insane with design patterns and template metaprogramming

then I joked that this exact same thing happened to Java with design patterns and insane XML files then it happened with Ruby when Ruby on Rails became popular then it happened with python and JavaScript and rust and pretty much

every see every time a language gets popular there's those insufferable idiots who ruin languages you see C++ is unfashionable now so the morons who don't care about it let's see so those

morons don't care about it C++ is unfashionable even the White House hates it so all those authoritarian douchebags who run around smashing you over the head with standards documents have fled

to languages where they can pedal their [ __ ] influence or Garbage yes yes oh I just got raided oh I just got

raided hey I hope you enjoyed that raid I hope you enjoyed that raid like what a time to come straight in uh he's talking about you by the way yeah right yeah

right bro I can't even read let alone have a standards document what are you talking about um this is this is fantastic these uh those idiots are in

your mentions yelling at people why don't you use rust they're the ones who shame you with why don't you use react they're the ones screaming why are you let's see why are you using so much

unsafe in your rust code they're the ones who scream seriously a for Loop and Ruby code ah amatear uh thankfully C++ is not popular enough for those grifter

to profit so they mostly ignore it didn't I just see something like this I'm going to go to Dax I like Dax so sorry Dax I'm not trying to dunk on you

Dax but this is it uh Dax I swear I just saw it did I not the worst take about the web is that you should not use JS react Etc because HTML alone is good

enough this is austerity mind virus of the N of 1995 this is the official use C++ or use react you don't use it you're actually

hating it you're actually hating your own life uh well I think this actually is spawned off I actually think that this tweet is actually spawned from HTM

x.org because HTM x.org said oh yeah did this one right you should not use reactjs Etc because htl alone is good enough by the

way that's so good this is so good it's so good that those two things are existing at the exact same timeline well actually uh the rust weirdos will bother you but they're usually too busy

making the borrow Checker happy to actually get anything done so you can ignore them I mean to be completely fair when you get good enough with rust the borrow Checker is not even a thing you kind of adopt a certain mentality when

programming with rust and then it kind of goes away and then you do something with async and you hate your life and then you have to go read stuff about pin and you still don't quite understand pin and why is there Phantom data we don't know uh this means that C++ the language

and C++ the community simply does not give a [ __ ] what do you do do do you want to write a matrix Library go for it you want to make a GU Library go for it you want to write a game sit on your couch in the dark and go for it how

about weird game that watches you code and makes fun of you seriously nobody cares and most people think it's hilarious or fun uh the the dgaff is essentially for creativity Bud Zed we

don't need a great glorious leader to tell us how best to behave won't C++ lack the authoritarian benevolent dictator for Life leave you without Direction you won't you make dare I say

mistakes how can you possibly survive without a bdfl grifter shaming you into working for them for free I mean I think you're probably not saying this exactly but you're definitely saying it Tang uh

tangentially this mentality is one of the biggest reasons why other languages are not fun other languages are strictly controlled by organizations that actively [ __ ] on you if you try to make

something cool okay what is this link I got to look at this oh yeah I remember this I remember when Shepherd Shepherd's

Oasis made something super cool and then got taken off the speaker list I remember this dude this guy is like so smart and makes such cool stuff and was

talking about comp time for rust and it gets removed man what a cool guy too like out of all people to kick off you actually kick off a pretty cool dude like that's

just ridiculous absolutely ridiculous uh I firmly believe that for creativity to Blossom you need to be able to get your idea without fear of criticism or sh let see end shame you have to be able to express yourself and only after you've

pulled your idea out of your body Kicking and Screaming you can step back and look at it critically however once you get your idea out there you better be ready uh to critique it before someone else does it's this change in

modes from creative freedom from criticism to highly focused on quality that makes for great creative work I think uh HDMX again I think HDMX does the best thing I don't know if you know this but there's this there's this kind

of exercise he's a professor by the way the htx guy uh he does this exercise where there's this series of papers that were written they were actually written by one person um and it's actually two

sides to arguments going back and forth and it's a series of papers and he makes his students read these two papers and they decide who they agree with more and then why the other person is wrong and then the big reveal at the end is it's

actually the same person who wrote both sides of these papers and it's because you should be able to critically think about your own stuff and you should be able to argue why something is good or bad I think

this is actually a really good mental ality to have you make what you make and then you got to be able to actually work through and fight yourself on why it's good right it's a cool exercise it's a really good exercise just to actually

write why it's like so bad just argue with the rubber duck yeah the best explanation of this Concepts comes from a painting teacher I used to have actually this was a uh this was every painting teacher I've ever had they would walk over to a student's

unfinished work and try to correct it they'd annoyingly stand in the wrong place usually uh their five foot tall eyes versus my six two tall eyes and say my drawing is wrong even though their

perspective is totally different from mine or they'd comment on some aspect of the in progress work that was difficult to judge because it wasn't let's see it wasn't shown in the context of the full

painting okay so I will say this then this guy does sound like he has a bit of a problem taking some feedback you know you should always just take feedback from people who are much better than than you and try to understand what

they're saying because perhaps what you understand versus what they understand are completely different yeah these painting teachers they keep telling me that I'm doing something wrong and I'm just like dog you're 5 foot tall I'm 6'2

okay I'm towering over you you just don't understand did he fail at Art School nothing but bad stuff coming in I know that's that's kind of a wild take by the

way my mom was a really great painter and then she went to class to go do paintings and she learned a bunch of stuff from going to these paintings and she would just listen to them despite

often being better than the painting teacher teacher themselves she was like how do I get better right she was really really good she still probably is she just hasn't painted in 15 years uh the mistake these teachers made was that

they let's see assumed a mistake earlier couldn't be corrected as you go and would say a mistake in the final let's see let's see and would say and would stay a mistake in the final work it's

entirely possible that what the student finally creates ends up working just fine when it's finished but in the middle of the process nothing looks right so trying to correct it is pointless

I mean I don't know where this is going but isn't that like the whole point of of realizing something is wrong is that you try to correct

it this this part doesn't this part doesn't make a lot of sense it's like Angry Bob Ross that doesn't make a lot of sense Bob Ross when something goes wrong

it's like let's take the wrong and try to make it right this one is saying don't ever call out the wrong which is different like I I I much more prefer the Bob Ross type of things

you just build what you got to build and when you realize something's wrong you try to internalize it and come up with a reason to make it or try to make it into something good right uh this is an important thing about creativity these teachers didn't

realize everything looks and feels like crap in the ugly middle stage in the beginning things will seem great but as you work everything gets messy because you're reshaping and moving everything around to reach your final Vision it's

more like walking a tight RPP than driving a car where you're balancing on a thin line trying to reach the other side and the only way you learn to walk a typ rope is to fall over and over

until you get your balance right I know this whole painting side of things I I I'm not I'm not too sure how I feel about it it just feels like a pretty kind of odd critique because the the the one problem that I have with this

critique is that the person who is doing the person who is creating it has ultimately the best understanding for what makes something good or bad and that everybody else can't understand

what is good or bad this assumes that someone that any experience other than the person writing it is not good enough I think that people even if they're not even involved

can actually have really good insights into things despite the fact that they may not know anything about it right sometimes I listen to you guys while I'm programming and you guys say things and I know you guys don't know what you're talking about but now and then when you

say something it kind of like ticks something in my head and go oh okay I can see how these things work yeah yeah that's oh shoot I'm here you can't get rid of me I'm not trying to get rid of

you be thank you for the 67 months yeah a better analogy might be not to optimize early yeah yeah yeah yeah yeah I talked to a plumber about my programming problems and he helps a lot

hey plumber I got some questions let's see uh let's see a lot of other languages feel like people constantly trying to put push you off the tight RPP Midway just so they can

sell you a car instead um I think I mean to to be fair what I think a lot of people are trying to do like even the guo Tweet uh whatever I think this tweet right here I honestly I

genuinely believe that this actually comes from a good place that these are two perspectives of the same problem and these both come from a place where they feel like they've

gotten it more right and so it's like I actually don't look at these as someone trying to push me into something but someone's saying hey this is how i' like I've been burned this is the better way to approach things C++ is nearly

unlimited space to create combined with relative lack of Shame grifters makes an incredibly creative experience if I had an idea I'm only limited by my skills not by the limitations of the language

or some C++ blo heart influencer declaring me unqualified to teach because I don't like his benevolent dictator for life okay which one is this one let's see I think I should petition the moderators of Learn Python to remove

Z's book from Wiki oh this is Zed right here this is Zed getting owned right here oh yeah Zed Shaw might just be the most stubborn person ever to write a line of code and there's a lot of competition there edit to address some

various comments down thread I've been considering this for a while I'm advocating for teaching 3x to new beginners but uh the bit where he AB abused a nonsense argument about touring completeness like that was really the

last draw okay so looks like Zed's not liked on the internet I could I could understand probably some of the arguments against it he seems like a pretty tense

guy coders again dude Co coders cannot get along it is just a fact of life I don't know what it is I don't know what this is C++ nearly unlimited space to create combined with the relative lack

of sham grifters makes an incredibly creative space Oh I already read all this uh C++ reference.com is amazing I think C++ reference.com is the best programming language documentation I've ever used it has nearly every single

thing I believe languages need except for one let's see need except for one every single keyword in library is fully documented with reference material every one of these had an extensive working

examples yeah that's nice okay these are all just stuff I don't really care about C++ reference.com but fantastic the only thing missing from C++ reference.com is documentation is how to install various compilers on different platforms I'm

kind of mixed on whether they should do this or not for other languages this kind of documentation is very important but for C++ I think they most likely would get push back from various members cough cough Microsoft and probably can't

however get them get Microsoft and the given that there's only a few C++ compilers and a few platforms it's entirely possible they could add a series of

getting started guides it's not all puppies and butterflies while I'm having an absolute blast coding C++ I want to understand that I do not uh in no way think the language is without flaws not

even close my thinking is C++ is now about as good as any other language out there and that no language is perfect you'll have annoying things to deal with in C++ just as you have in any other

language it's just C++ annoying things are different I think how honestly I I'm just going to throw this out here I think I'm reading this

as this guy was a part of say Python and he's kind of been burned by python by people getting upset at him and now he's just like really upset

about all these things and he's just looking for a language that doesn't have that but whenever you do anything in public it does not matter what it is you do

anything in public you will get push backs someone else will tell you why you're wrong people will always push against you and I guarantee you in C+ blood it's it's not not only is it not going to be any different I think there

are more people in C++ that act like that I cannot tell you the amount of bike shedding I've seen at least in my personal C++ experience people really be like oh well you should have used this

version instead of this ver you know like I don't see how this this does not exist if you want to be in the public eye you should just understand that no

matter what you say or what you do will be pushed back against every single time right I hear PHP devs are very welcoming as far as I can tell PHP is the nicest

Community there is out there uh potentially or o camel o camel or PHP seems like the ni the nicest two communities as far as I can tell for example in C++ it's a real pain in the

ass to get a non Microsoft installer working on Windows no Ms ys2 does not work msys S2 is hot garbage so shut up I had to create a whole set of Powershell scripts just to make installing

compilers and Dev tools easier just don't work on Windows and if you think that's terrible then why are you using python if you try to install any python on Windows you have to deal with the installers not adding python to the path

unless it's a blessed installer from Microsoft or active State then the installers are allowed to add python to the path on Windows I know I don't know I I haven't

I haven't dealt with Windows development in so long I can't remember any of these problems I just remember having a lot of problems that's it you see C++ wins uh here because I don't have to deal with

some arbitrary back room dealing that gave Microsoft an active State a free pass to violate the apparent law that no python installer shall use the path that alone is a massive win for me it's not

fun to have to argue with idiots who think the situation is normal in Python if you think your language is superior give me about 1 hour and I'll find enough irritating [ __ ] to make your language look uh like a pathetic

usability nightmare they all suck it's just c++'s Su suckage doesn't seem to ruin its

fun I don't know I don't know if that's true I mean I would say any long lived C++ project is hot garbage and is not

fun okay you know how many times I've spent so much time trying to figure out the differences between these like defined macros and templates yeah it's

pretty elitist I I would say that they they all suck and this dude come on come on come on come on honestly if you're GNA make this argument I'm gonna say something that's

real controversial if you're going to make this argument honestly javascript's probably the most fun you don't have to think about anything you don't have to worry about anything and you just go on and build

whatever you want to build and you debug your way out of it right you're not held down by anything right I just hey just to be completely real you're you're literally

held by nothing and you can build anything you want now is it a great language does it scale well do you have a lot of problems later on sure but there's nothing about inherently about the language it's really just your

design ability that's all it is Go's also fun you just you just you just build and you run and it's great ape not think ape do yeah just saying I'm just saying if

you're going to if you're going to pick a language that is just really easy just to run with I mean that's a language you can just kind of do whatever you think you should do and it just kind of works for a long time you can like you can

build like 10,000 lines of JavaScript and it it just kind of works it it starts to fall apart and it starts to get really annoying but it's just still also kind of works you know

uh just a few pain points I have with C++ currently are 95% of compiler errors are the worst in the entire industry yes well there's also uh there's also Linker errors which are

just Insanity uh I'm not even being hyperbolic here C++ error messages are just the worst I think if the standards committee wants to make a biggest impact it create a standard for error messages because the current state of error

messages is almost malicious it is build tools are so bad I have no idea why C++ build tools are just nightmares to use but the people who make them are let's see uh oh my goodness but the people who

make them just make the dumbest decisions I don't know if they're making the dumbest decisions because I don't know how many different legacies and things they have to deal with I think that's one of the problems

that I don't that it's really hard to see here is that all modern things are built with just with no Legacy ever right Zig makes a great tool zigg makes

a great tool it's true uh the best one I found so far is Meson uh Mason uh and it's full of idiotic decisions like ignoring installed packages directives to use broken system libraries without telling you I've literally ran into this

the day I wrote this essay and I was uh and it was infuriated there's no incentive for compiler manufacturers to follow the standard I've mentioned that clay as a bug in standard Source location and it's great example of the

kinds of crap you run into sometimes I really think the standard committee needs to start listing compilers uh that leave bugs like this unfixed just a simple page that lists compilers and how compliant they are with special call

outs for compilers that have obvious bugs would do a lot the language is insanely complex because of its history yes yes yes see see plus plus that does

have a ton of Legacy stuff that you have to Wade through to find the Nuggets my understanding is that this U it's let's see is it's kind of like C++ is three or more languages similar to JavaScript you

have the old style where almost everything is Heap allocated in raw pointers for let's see are everything then you have template meta me meta ocalypse style then you have post 2011 style where everything is on the stack

and very few pointers I'm seeing a newer style where everyone just uses struct instead of class and doesn't use a lot of inheritance navigating all these eras of C++ can be daunting and there there's

more than a few code review YouTubers who seem to be stuck in one era or another oh I'm sure there is even if you use uh Chad jippy Chad jipp will still give me old style node stuff like have you ever tried that have you ever played

with Chad chippity and asked it to give you like a quick piece of node code and it produces that like that old one where it like calls you tills to do inheritance through via like protot uh

prototypal Behavior like it's really strange you're like what what what am I even what am I even looking at and it's because it's like welcome to

JavaScript where every five years there's a whole new style this next statement is going to be really bizarre I hope that you guys are ready for this next statement by the way thank you everybody for all the subs so

far really appreciate that let let me finish this up French monkey and then we'll get I'll get to the thank yous uh I really hate raid that's a statement that feels kind of crazy I'm finding that there's tons of situations where

Ray gets in the way of the real world configuration situations to the point that this one feature of C++ uh seems more like a glitch than actually useful things in my opinion given how uh so

many other languages don't have this at all and are just fine C++ could do well to devise a middle ground between the current array and the initialization Constructors other languages have dude

just one more Constructor bro bro just one more Constructor just just one more Constructor and it's going to be perfect that's all we need rule of seven no rule

of eight we need one more just one more should have left that last one out yeah for the most part Ray is very very useful you should just be able to identify or you should just you want uh

you want you want to be able to grab something and initialize it at the same time like I don't see any other way to go about stuff anyways but that's for another essay for now I just wanted to express

how much fun I'm uh I'm having doing dumb stuff in C++ and hopefully educate people that C++ isn't the language you think it is if you ever see a course that tries to shame C++ with the billion angle brackets just know that the author

of that course is a clueless [ __ ] who has no idea what they're talking about I mean check out this gu layer code from F fxi hey capture all the things I actually honestly don't know

what this means it looks like it looks like a closure but it doesn't have the little it doesn't have the it doesn't have it doesn't have this thing so I I don't the the parentheses so I don't really know

what this means to me me this looks like a capture group a capture group into what what the hell is this thing it's a Lambda that captures anything it needs by reference yes but where's the where's the parenthesis I thought lambdas had

parentheses oh parentheses are optional wow I did not know that okay jeez jeez okay so I I knew that part I

already knew this thing uh hbox H flow so is this another oh is this a list is this supposed to be a

list is that a list it's an array it's a Constructor list yeah I thought it was a Constructor list right no it's a layout mechanism on Terminal yeah

okay awesome text for form at this border I assume this is just these are just numbers these are just bits coming in right text status well actually I don't know how these are coming in I don't

know how this is just a bit I mean this looks like bitwise stuff I don't really know what that means there must be special there must be a special operator that does this right here for

them okay fantastic separator hbox okay this pretty cool I'm fine with this I I will say to say that this is the pipe operator yeah it's just a pipe operator you know my head it's like ah bits but

then I'm like ah this can't be bits because it's even saying the format of text so obviously it can't be bits it I mean it is bits technically in the end but you know what I mean um so I'm not I'm not going to lie to

you when you say like look at how easy this is this doesn't necessarily feel easy but it does look pretty in some weird kind of way it's not bad yeah it's

not bad I'm not saying it's bad it just looks it looks it just it looks funny to the untrained eye because I think to the untrained person there's a lot of implicit knowledge going on here like I

knew that this was some sort of capture I knew this was like capture everything by reference but I didn't understand like oh okay you can you know I didn't even know that parentheses are optional uh I knew this was some sort of list

type thing apparently it's some initial list lizer blah blah blah blah nonetheless you know I think sometimes it's could be a lot for someone to digest for the first time anyways be honest if you don't know if you didn't

know this was C++ you could have let's see could you guess what language it was I rest my case yes I could have I believe this was C++ the moment I saw this also trailing underscores crazy

naming convention crazy naming convention trailing underscores can someone explain the rationale behind trailing underscores yes one does not need this

except for in C++ yeah I thought this was to avoid this explain more how how does that avoid this what does that thing do everything that's inside the Lambda gets captured by reference space

out the uh dot notation I do trailing underscores it is something I like uh something like two playay or something I've never seen that before stares at this username what is

it uh can somebody this member versus member member member virals so it's me it's member variables okay so this is I thought okay so this is again one of

those things I hate okay it's another way of doing that okay yes okay so I I this is one of those things I I just tend to hate which is you you encode semantic meaning into your variables

honestly to me this is what died with an LSP you shouldn't have to do that you should just be able to go like K and it will tell you something about it you can jump to

definitions and then go oh okay it's like that right like I I don't really understand yeah member variables are like this yes exactly so for me I don't I don't really like seeing that stuff it's to avoid name collision with

parameters well no no no because people use M underscore this and all that and what I I don't believe that I don't believe that I just do not believe in it

I'm just not going to believe it it's cursed like Hungarian notation yeah it's it's it's from a bygone era right that's not enforced of course it's not it's of course it's not enforced it's not enforced I don't think trailing are that

common though yeah well trailing or M mcore or sore like to me these are just signs of like we already have tools now that kind of fixes this entire thing and so it's like you don't need those

anymore they're they're they're non-existent I can see a reason at least for this one being more true because it's like this is available for a lot of stuff so not to actually have any sort of name Collision we're going to put s

in front of it just because it makes it easier to not have any name Collision so I could see that uh they've already mentioned this but it's Google style and very much used in chromium for example yeah yeah I I believe this as somebody

who worked with somebody who worked on the Google on V8 uh I had a lot we had a lot of talks about why my why my variable naming wasn't up to standards

standards being M under score and sore we had a lot we had a we had a lot of talks about that I know all about that bad boy okay well anyways fantastic

great article um I think this is kind of a common thing that I I would really like stopping in our industry which is that everybody else is wrong but I am

right the thing is is that we all think that to be completely Fair we all think that I'm going to I'm going to side with this guy over this guy the thing is is

that I do fully believe that there's stuff I don't understand and maybe someone else's perspective can change the way I program because obviously at one point I thought using Vim was for old stupid men who didn't know what they

were doing like I honestly thought that that there were just a bunch of neck beards complaining about life and so I realized that you know I contain a lot of wrong

opinions still is well I'm now an old man with a neck beard and so I try not to go full I try not to go like

full attack against people in every last thing that they think because I think that there is a lot of value in seeing problems from different angles now I personally am just not a fan of react I'm just not going to be a fan of react

when you say Hey you have to build something with a UI Library I'm going to choose spelt or solid over react I'm just not going to use react I don't like react I think it's clunky and I think

it's that's just me personally I just don't like it yeah boo react I know it's industry standard yeah like I hate that phrase right it's industry standard because you because people get wrapped up in these things and I think building

with react is stupid I think it's a bad plan from the beginning but I've seen a lot of great things built with react while react pays the bills I like it exactly and so I'm going to try not to

be like too dunky on things though I still going to say I hate it but nonetheless this this comes from the opinion that this is the one right way I don't know somehow people dude somehow

someone built a roller coaster in Excel perhaps there's more more than one way to skin this program anyways love it like it appreciate it I don't care uh I don't know if this I don't know if this

Zed fella is doing himself any solids by being too wrapped up in this stuff but he is right she shepher Oasis did get kicked out of the rust stuff because he had great ideas and they hated it right

I think that this this was probably the most tragic thing this is probably the most tragic decision of all time made by anything ever the name is the primagen

Loading...

Loading video analysis...