Skip to content
0:00 / 0:00

#c++#c#embeddedsystems

CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++”

CppCon

189K subscribers • 101 videos on Hallway • Conference channel

YouTube
  • Recommended by 5 people: 2 on Hacker News, 2 in engineering communities and 1 curated list.
  • A classic. People kept recommending it from 2016 to 2020.
  • Presented by Dan Saks
  • Linked in the descriptioncppcon/cppcon2016
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

175K views10 years ago5 recommendations

Programming languagesTools and practiceCC++The tech industry

Dan Saks examines the cultural gap between C and C++ programmers and discusses how to effectively advocate for C++ in embedded systems.

CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/cppcon/cppcon2016 — Most of us have heard this story. We’ve even told it ourselves… C++ is nearly all of C, plus a whole lot more. Migrating code from C to C++ is pretty easy. Moreover, the migration itself can yield immediate benefits by exposing questionable type conversions that can be sources of latent bugs. After migration, the code performs as well in C++ as in the original C. And now that it’s C++, you have ready access to a wealth of advanced features you can (but don’t have to) use to implement enhancements. Who wouldn’t want that? Legions of C programmers, apparently. Despite the success of C++ in numerous application domains, C remains considerably more popular, especially in embedded, automotive, and aerospace applications. In many cases, projects resist C++ because their managers think the risks outweigh the benefits. In other cases, the resistance comes from programmers who persist in believing bad things about C++, even when those things aren’t true. What can the C++ community do to overcome this resistance? Drawing on lessons from cognitive science, linguistics and psychology, and (of course) computer science, this talk offers suggestions about how to make the case for C++ more persuasive to C programmers. — Dan Saks is the president of Saks & Associates, which offers training and consulting in C and C++ and their use in developing embedded systems. Dan used to write the “Programming Pointers” column for embedded.com online. He has also written columns for numerous print publications including The C/C++ Users Journal, The C++ Report, Software Development, and Embedded Systems Design. With Thomas Plum, he wrote C++ Programming Guidelines, which won a 1992 Computer Language Magazine Productivity Award. Dan has taught C and C++ to thousands of programmers around the world. He has presented at conferences such as Software Development, Embedded Systems, and C++ World. He has served on the advisory boards of the Embedded Systems and Software Development conferences. Dan served as secretary of the ANSI and ISO C++ Standards committees and as a member of the ANSI C Standards committee. More recently, he contributed to the CERT Secure C Coding Standard and the CERT Secure C++ Coding Standard. — Videos Filmed & Edited by Bash Films: BashFilms.com Work at Hudson River Trading (HRT): tinyurl.com/safxfctf

Why it's here

5 people recommend this

What people say. Recommended as an excellent talk on the cultural and technical barriers to C++ adoption among embedded C programmers.

Moments people linked to

u/tpushin r/C_Programming • Recommends

CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++”

u/svayam--bhagavanin r/embedded • Recommends

CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++”

drummeron Hacker News • Recommends

On “Modern C++ gamedev: thoughts and misconceptions”

The mentioned cppcon presentation by Dan Saks is awesome. Highly recommend watching even if you are not interested in C or C++ : link to this video

programming-talkscurated list on GitHubRecommends

Under “On the Industry/Community”

extern c: Talking to C Programmers about C++ 01:36:26 by **Dan Saks** (2016)

pjmlpon Hacker News • Recommends

On “C++ and the Culture of Complexity (2013)”

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. link to this video link

pjmlpon Hacker News • Recommends

On “Should you Rust in embedded yet?”

So, I will let one of the renowned experts speak instead. CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++” link to 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.

u/thefakeyodain r/embedded • Mentions

…ks at cppcon. He talks about how C++ present a number of advantages over C and sometimes outperforms C. He also presents a number of arguments about how C++ handles data and data types in general such that a lot of errors can be found at compile time instead of going through hours and hours of debugging. You can check out the talk using this link link to this video I am a fresh graduate and a budding embedded systems programmer. I have always programmed embedded systems using C in all my classes and my own projects so far. So I wanted to know from all the people actually working in the industry about their view on this topic and where does the industry stand. Does C++ actually provide advantages over…

u/TimMenschin r/typescript • Mentions

On “Is there a good reason NOT to use TypeScript on a huge project like Firefox browser?”

The "skill issue" accusation is projection. There's a great video that talks about the difficulty in convincing embedded developers to use C++ instead of C. There are a ton of great points in the video, and it's a fun watch, but the two most important takeaways are: 1. If you're arguing, you're losing. 2. C advocates have a completely different approach to development. To them, typing in the code is only a tiny fraction of the work, and the faster you can do it, the faster you can get to the "real" work of debugging the code. Both points are relevant here. If you're a strong enough developer that static types means that your code effectively Just Works once it compiles, then *of cour…

u/JesusWantsYouToKnowin r/typescript • Mentions

On “Is there a good reason NOT to use TypeScript on a huge project like Firefox browser?”

>There's a great video that talks about the difficulty in convincing embedded developers to use C++ instead of C. Truth. Every time I come across an embedded developer that is insistent that C++ is a worse language than C for embedded (and doesn't back it with a narrow range of specific cases where that is true like "my target is some esoteric unicorn part that is required for space hardening and the niche tool chain doesn't have any C++ support") I know they're too stubborn and stuck in their ways to try it / develop new skills.

rjzzleepon Hacker News • Mentions

On “Comparing C and C++ usage and performance with a real world project”

…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" link to 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)…

Inityxon Hacker News • Mentions

On “Should you Rust in embedded yet?”

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: link to this video

pjmlpon Hacker News • Mentions

On “What can C++ do for embedded systems developers? [video]”

You can ask Dan Saks about it. CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++” link to 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.

pjmlpon Hacker News • Mentions

On “Rust can be difficult to learn and frustrating, but it's also very exciting”

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++” link to 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.

pjmlpon Hacker News • Mentions

On “Improve type generic programming”

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++” link to this video

pjmlpon Hacker News • Mentions

On “Modern C and What We Can Learn from It [video]”

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++”" link to 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.

phendrenad2on Hacker News • Mentions

On “The Problem with C (2020)”

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++: * link to this video And of course, now, Rust is supposed to supplant C.