CppCon 2018: Nicolai Josuttis “The Nightmare of Initialization in C++”
CppCon0 HN recommenders · 2019–2021
79K views · talk · dated · Uploaded 2018-10-27
Nicolai Josuttis's CppCon 2018 talk walks through the many forms of initialization in C++, including uniform initialization, and how their rules and effects differ. He argues the situation is confusing enough that nobody can say what to teach beginners.
Used mostly as a citation of C++'s historical baggage and complexity when HN criticizes or jokes about the language.
49:55How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
Видео с мероприятий {speach!
1:12:27CppCon 2015: Andrei Alexandrescu “std::allocator...”
CppCon
51:18Lexical Scanning in Go - Rob Pike
GoogleFOSSSydney
46:09Why Isn't Functional Programming the Norm? – Richard Feldman
Metosin
1:03:29Maybe Not - Rich Hickey
ClojureTV
7:48Conway's Game Of Life in APL
Dyalog
1:12:56Lecture 1A | MIT 6.001 Structure and Interpretation, 1986
MIT OpenCourseWare
1:42:09Crockford on JavaScript - Volume 1: The Early Years
YUI Library
6 comments from Hacker News
C++ initialization is such a convoluted mess that CppCon was able to have an entire hour dedicated to "The Nightmare of Initialization in C++". [VIDEO] C++ has a rigorous standard. There is no rule that wasn't added for a reason. Nor are there lines of code with which you can specify which rule it must follow. The path to hell is paved with good intentions. Just because each step is logical and defensible doesn't mean the end result isn't fire and brimstone. I believe that good things are more than the sum of their parts. You often hear this with respect to creative works like movies or games. I think it also applies to source code, language design, and much more. The flipside is that bad things are less than the sum of their parts. I've shipped games that fall into this category. C++ initialization has a LOT of parts. And I would strongly argue the end result is less than the sum of those parts.
C++ has more historical baggage than any other mainstream language. Consider something as simple as initialization: [VIDEO]
I think this depends to some extent on the type of job you're going for, which might seem trite but a graphics role is going to be different from a systems programming role. I've been writing Java for a long time and tired after a while of the JVM "getting in the way", and the lack of bare-metal acceleration available. Eventually designing and working on zero-GC systems led me to wonder why we didn't just write it in a compile-to-native language in the first place. I skipped both C and C++ and started hacking on x86 and amd64 assembly. It turned out that approaching C after that was fairly straightforward, with the dark corners of the standard libraries forming the still fairly gentle but steepest parts of the learning curve. I've been writing a toy project in it for a while and it's been a lot of fun. Implementing what I understsand to be Modern C's Best Practices have left me with something fairly usable :-O I've also looked at what you'll probably hear called Modern C++, but IMO it's and order of magnitude harder to get started on. I was watching Nicolai Josuttis' "The Nightmare Of Initialization in C++" the other day[1], which chimes with the first chapters of Scott Meyer's "Effective Modern C++". What a mess (C++ initialisation, not the book)! Java's potentially a better bet in the wider market as the number of job listings could be higher, but others may disagree. That said, Java is now a vast ecosystem and you'll need to learn at least one of its various build tools. I
Agreed. Just gonna drop this here: Nicolai Josuttis “The Nightmare of Initialization in C++” [0] [0] [VIDEO]
Several CPPCON talks in recent years have reinforced that for me as well. [VIDEO] , for example. Edit: I originally linked to the wrong video ( [LINK] ), which was a different talk by the same person.
What a tour de force! Thanks for the link. It beats my previous favorite C++ presentation: "CppCon 2018: Nicolai Josuttis “The Nightmare of Initialization in C++” [VIDEO] Next Halloween I will dress up as std::variant