Presented by:


Stephen MacKenzie

from MLibs

I am a former 20 year member of the Microsoft Visual C++ Team. As a member of that team, I identified more with the C/C++ community that with the Microsoft Coporation. Now having been on my own for some years now, I am passionate about free software, hardware, firmware, and telecommunications infrastructure that respect citizens privacy and freedom.

I have developed MLibs, an open source (GPL2) suite of C and C++ Libraries and Tests that mirror standard C++ functionality for embedded and real-time environments.

My C/C++ Blog:

My linked profile:

Overview: C++ "gurus" are anathematizing Straight C Programming. With this as a backdrop, and as a former 20 year member of the Microsoft Visual C++ Team, I provide informed and reasoned arguments backed by data and real life industry anecdotal evidence on why C Programming is still a very compelling programming language.

Full slide deck and code in the works at

Page 1 Talk is NOT about C/C++ vs. Rust, Go, Python, Java, etc. It specifically refutes imperatives coming out of the C++ camp

Page 2: C++ Trying to Marginalize C++ like Andy Tannenbaum: Linux is Obsolete.

Page 3: C is NOT Obsolete; Keep Teaching C

Page 4: Its Propaganda, Dogma C++ Gurus are “preaching.”

Page 5: C Strengths C Respects You (The Spirit of C) -C Has a Small Feature Set C is a Great Language for Electrical Engineers -C Has a Stable ABI C++ breaks ABI by design every major release -C is the language of Unix-style Kernels (see man 2) -C Helps You Think Like a Computer - C++ paradigm: all about the code, real world modeling C paradigm: about the data

Page 6: C Strengths continued -Popular in the Microcontroller realm -Approved by Mission Critical Standards -Modern C++ is not allowed by MISRA etc. -IAR Embedded Workbench C++98/03 -C is able to implement C++ features Pimpl idiom (interfaces) Generics, polymorphism

Page 7: The Spirit of C (X3J11 C89 Commitee) -TRUST THE PROGRAMMER. -Don’t prevent the programmer from doing what needs to be done. -KEEP THE LANGUAGE SMALL AND SIMPLE Provide only one way to do an operation

Page 8: A Proposed Spirit of C++ -The programmer is NOT to be trusted -Don’t use pointers, use uniqueptr or sharedptr -Don’t’ use const char *, use strings -Don’t use stdio.h, use iostream -Make the language large and complex, constantly churning. -Library doubled in size 2008 TR1 -Suffers from terminal feature creep Ignore data, the code will simplify your problem. -The compiler will do it for you -Don’t try to help the compiler -Don’t engineer your own data structures and algorithms Use our library

Page 9: C Respects You; C++ Suspects You -C: Respects and empowers you. -C++: Suspects you.

Page 10: The Inconvenient Truth about Header Libraries Header based Libraries

Page 11: Serviceability -ATL Security Bug:

Page 12: Graphic of the ATL Bug Flowchart to determine vulnerability

Page 13: Well known critics of C++ -RMS -Mike Acton, Engine Lead, Insomnia Games @ 2014 CPPCON

Page 14: Linus on C++ Page 15: Linus on C++ continued

Page 16: Ken Thompson on C++ Page 17: Recap Recap:

2018 April 28 - 07:15
45 min
LinuxFest Northwest 2018

Happening at the same time:

  1. The Complete History of Linux (abridged)
  2. Start Time:
    2018 April 28 07:15


  3. Documentation is Teaching, and Teaching is Everything
  4. Start Time:
    2018 April 28 07:15

    CC-201 TUT1

  5. Building Your own Cloud on a Pi
  6. Start Time:
    2018 April 28 07:15

    CC-202 TUT2

  7. Proxmox Hypervisor - Open Source LXC and KVM management
  8. Start Time:
    2018 April 28 07:15


  9. Moving Forward with Firewalld
  10. Start Time:
    2018 April 28 07:15


  11. digiKam Ninja Tricks
  12. Start Time:
    2018 April 28 07:15


  13. Why C? Refuting C++ Pretentiousness
  14. Start Time:
    2018 April 28 07:15


  15. IndieWeb 101: owning your content and identity
  16. Start Time:
    2018 April 28 07:15


  17. Do Licenses Drive Communities or Do Communities Drive Licenses?
  18. Start Time:
    2018 April 28 07:15


  19. Linux Jargon
  20. Start Time:
    2018 April 28 07:15


  21. Make a date with Postgres
  22. Start Time:
    2018 April 28 07:15

    HC-103 Postgres

  23. Linux Professional Institute: LPIC-1 Cram Session
  24. Start Time:
    2018 April 28 07:30

    HC-112 LPI