CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++”
CppCon2 HN recommenders · recommended in 3 months, 2017–2025
talk · intermediate · evergreen · 2017–2025 on HN
Dan Saks's CppCon 2016 talk on why C programmers resist C++ and how to talk to them about it. He argues that persuasion rarely works by arguing and examines the culture gap between the two communities.
Recommended in C versus C++ and embedded threads as the expert view on adoption and persuasion.
Up next
6 mo on HNCppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”
CppCon
5 HN recommender · 2017–2025
2 mo on HNCppCon 2014: Herb Sutter "Back to the Basics! Essentials of Modern C++ Style"
CppCon
2 HN recommender · 2014–2021
7 mo on HNCppCon 2015: Kate Gregory “Stop Teaching C"
CppCon
7 HN recommender · 2016–2025
4 mo on HNEdwin Brady - Idris 2 - Type-driven Development of Idris
Curry On!
4 HN recommender · 2019–2023
5 mo on HNEric Bier Demonstrates Cedar
Computer History Museum
3 HN recommender · 2020–2025
4 mo on HNCppCon 2016: Herb Sutter “Leak-Freedom in C++... By Default.”
CppCon
2 HN recommender · 2016–2025
4 mo on HN"A Political History of X" - Keith Packard (LCA 2020)
linux.conf.au
4 HN recommender · 2020–2025
6 mo on HNRailsConf 09: Robert Martin, "What Killed Smalltalk Could K
O'Reilly
5 HN recommender · 2012–2026
11 mo on HNCppCon 2015: Andrei Alexandrescu “std::allocator...”
CppCon
7 HN recommender · 2017–2025
12 mo on HNLexical Scanning in Go - Rob Pike
GoogleFOSSSydney
13 HN recommender · 2012–2025
10 mo on HNCppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”
CppCon
9 HN recommender · 2018–2026
9 mo on HNRustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Rust Programming Language
9 HN recommender · 2018–2023
11 comments from Hacker News
The mentioned cppcon presentation by Dan Saks is awesome. Highly recommend watching even if you are not interested in C or C++ : ▶ this video
So, I will let one of the renowned experts speak instead. CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++” ▶ this video Embedded Development with Dan Saks link Regarding Java vs C++, yes the enterprise world has adopted Java, however as someone doing consulting across Java, .NET and C++, I am really seeing it coming back since ANSI C++ has picked up steam again. I see it in projects related to IoT, AI, VR, big data,.... They are all polyglot projects with C++ plus something else, not C plus something else.
I mean the embedded systems where Assembly and C89 still rule, and there is very hard to change, because the problem of adopting anything else is cultural. Basically, while there are projects being done in C++, and many companies are finally migrating from C to C++, the large majority is sticking with C. If you prefer to listen to someone actually relevant in the C++ embedded community, here is what Dan Saks has to say about it. ▶ this video link
> But C++ still can't be used in many places that C is Unless we are speaking about PICs or similar old school 8 and 16 bit CPUs, with compilers like those from MIKROE, there is hardly a platform left were the vendor compiler isn't C and C++ (even if it doesn't go beyond C++11). And if it must be deployed as freestanding, there are still enough improvements to take advantage of. In the end it boils down to human factor in most cases, however as Dan Saks puts "If you're arguing, you're losing.", taken from CppCon 2016: “extern c: Talking to C Programmers about C++” ▶ this video
I wonder if the reason for there being no C language conference is: It's generally accepted that C is "dead" or should become dead. In fact at C++ conferences you will see many anti-C talks: * link And also talks promoting proselytizing to C programmers and bringing them to C++: * ▶ this video And of course, now, Rust is supposed to supplant C.
It is a culture problem, something that only will change with mentality reboot. "CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++”" ▶ this video "Writing better embedded Software - Dan Saks - Keynote Meeting Embedded 2018" link "Embedded & C++ - Meeting 2017 Keynote" link In a way, the same kind of subculture in C++ that jumps in cries of horror if you happen to use std::vector/array/string with bounds checking enabled.
Because it is a culture pretty much anti-C++, to the point that it is a common theme in C++ conferences how to succeed selling C++ to those communities, for example, "CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++” ▶ this video
Sure it is for political reasons when even C99 is seen as too modern, and many are unwilling to let go of C89 and Assembly even if the OEM toolchain supports modern C. And for another point of view of someone more relevant than my insignificant self, CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++” ▶ this video "Embedded Development with Dan Saks" link Thankfully there are industry certification standards like AUTOSAR, which now require C++, so those devs can choose to keep grasping to C and switch industry or learn more modern languages.
You can ask Dan Saks about it. CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++” ▶ this video Embedded Development with Dan Saks link When I started coding in C++ (Turbo C++), 640 KB were just fine, I could even make use of a full TUI framework (Turbo Vision). Hence my point of view about PIC class processors with single digit KB, being eventually the only target not possible to use with C++, unless one wants to suffer a bit with linker scripts.
C is king because the industry is currently dominated by people who have been doing this since before C++ was a thing. Additionally, most of these people are primarily electrical engineers, and don't have as strong of a background in computer science. They've been using C for decades and it does everything they want, why would they take the time to learn the boundless complexity introduced by a language that offers them (what they perceive to be) very little? Talking to long-time C programmers about C++ is actually surprisingly difficult: ▶ this video
according to dan saks, who apparently to some people is famous c++ is faster than c (well in the test setup he describes below) link Language Design Implementation Relative Performance either any inline 1 (fastest) C++ polystate non-inline 1.56 x fastest C++ bundled non-inline 1.65 x fastest C polystate non-inline 1.70 x fastest C bundled non-inline 1.79 x fastest C++ unbundled non-inline 1.82 x fastest C unbundled non-inline 1.95 x fastest He furthermore argued that the biggest mistakes C++ developers did to kill the adoption of C++ for C programmers was to diverge from the previous line of "C++ is a better C" to "if you're using C++ as a better C you're doing it wrong" ▶ this video (I have no skin in the game, I was just curious to see if it's worth looking at rust for embedded when I came across that talk)