Files
Lee Hanken 087f80c44d Update metadata and transcripts through end of July 2026
Refreshed episodes/hosts/comments/series from hpr.sql, and added
official HPR transcripts for the 180 episodes aired since the last
sync (hpr4516-hpr4695).
2026-07-31 16:18:57 +01:00

109 lines
9.1 KiB
Plaintext

Episode: 4691
Title: Viva la Coda
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4691/hpr4691.mp3
Transcribed: 2026-07-31 16:16:52 (official HPR transcript)
---
This is Hacker Public Radio Episode 4691, for 2026-07-27
Today's show is entitled, "Viva la Coda"
The host is Lee and the duration is 00:08:51
The flag is Clean, and the license is CC-BY-SA
The summary is "or C++ and all its friends"
Hi, I'm Lee. I started attacking C in my early teens, especially encouraged by seeing
C programming jobs advertised on either C-facts or what Oracle would have salaries over
50K per annum. C-facts in Oracle were static pages transmitted as terrestrial TV signals
in the UK which displayed on the rotation. When I went for my first programming job and
was asked if I knew of Oracle that was my response. They told me Oracle was also the
name of an enterprise relational database management system. I didn't know what
SQL was though because my parted copy of visual basic included references to that.
That was rather convoluted by the driver layer used to interface between Microsoft's programming
language and the actual database. By new it could do cool things like data binding between
say a tabular control and rows of data in a Microsoft access database.
As I was getting into C, I found a book in the local library by Kerningham and Richie all
about this language. The first thing I learned was to include the standard IO header file
in every program, then to start with a function called Main and output things to the screen
with functions called either printf, puts or put char. Then I started trying to input text
into a variable with a function called scanf but this was hit and miss because you had
to remember to give a pointer to a variable to this function rather than the variable itself.
I didn't grasp why at the time but the reason was that C functions cannot directly modify
the parameters and give it but if the parameter points to a place in memory then it can
overwrite what was stored in there. Unlike a language like basic, we get an exception or
error when you make a misstep. C is unforgiving. C programs are not interpreted one line
at a time. Instead, they compiled down into the very DNA of computers known as machine code.
When it is cutable machine code goes wrong, it can either crash the program or even crash
the entire operating system requiring you to restart the whole computer. This was especially
true of non-multi-tasking OS as like DOS. I did a lot of my C hacking in ballancy plus plus,
which came on 7 floppy disks I bought rather than pirated and could go far beyond simple input
text output text programs. If you use correctly, you could produce fully fledged windows programs.
What is C plus plus in my ask? Well, the name is kind of a plan words. In the C language,
if you post fix a variable with two plus signs, it increments the variables value by one.
So if it was 41 before, it would now be 42. So in effect, we're saying this language is what
C would be after drinking a double express so. But what is C plus plus? The answer is
deceptively simple. It is C with classes. Classes help you structure code better. We've seen
everything structure as functions. That's pretty useful, but not always intuitive when
trying to describe real world things that have both state and operations that modify that state.
With classes you can create objects that are composed of both functions and data.
With objects being what you call a concrete instance of a class. Your class might be hacker,
your object based on that class might be lead. When I was at university, they're not necessarily
during the lectures. I came across other languages that syntactically were very close to C or C plus plus.
These were Java and later Java script, and these are still around today.
In today's day and age, not so many people program in C and C plus plus directly,
unless you're creating embedded systems or high performance systems libraries,
we need to be close to the metal, as they say. C plus plus, at least as it was all those years ago,
as I said, is incredibly unforgiving and as the extreme levels of crash ability.
Modern C plus plus is somewhat a different kettle of fish because of both language extensions
and standard class libraries that allow an efficient idea to program more safely and reliably.
No one, if they can help it, really uses what we now call raw pointers anymore.
Smart pointers are various kinds. His operation is itself written in whatever ecosystem of C plus plus
you're using, a pretty much necessary to ensure developer sanity. I learnt this when I started
hacking around with an independent project I came across on YouTube called SerenteOS.
Watching Andreas Kling, building his own new tire operating system, akin to windows of the
90s but with a Unix twist, one line of code at a time was completely hypnotic and absorbing.
It's not an exaggeration to say this is something that rekindled my raw enthusiasm for
Serious coding and help me towards becoming a fully fledged professional in this field,
once again. Although admittedly, little of my paid work deals directly with low level
languages like C plus plus. I'm not afraid to go there if the job demands it. Most recently we've
giving device native functionality to the mainly high level more forgiving web stacks on mobile devices.
I've tried contributing a little to SerenteOS. I've been working for some time on an
orgio editor basically a very cut-down version of Audacity for this OS. In order to get this done,
I did end up contributing some tests and a minor bug fix to the orgio format processing library.
But so far my orgio editor has been understandably too big appeal to swallow to get code review
and be merged after all everyone on the project is a volunteer and I can't expect my
particularly interest necessarily align to other peoples. At the time of recording this project
remains an unmerge poor request, now closed due to inactivity. Interestingly, a lot of the
Linux kernel, the engine which drives GNU Linux distributions, is codenously or sees low level
companion assembly language. Times they are changing though because there is a new kid on the
block called Rust. Rust is a low level systems language, a lot like C or C plus plus. It has a
radical view on making every aspect of what we loosely term memory management completely explicit.
At all times it's completely defined what bit of code is responsible for what variable
or bit of memory for how long who else can access it and most importantly when and by whom
it is freed up and destroyed when everyone is done with it. This prevents a very high proportion
of crashes memory leaks and in particular makes programs a lot more resilient against low level
security exploits where a malicious process or bit of code stills and modifies what's in memory.
I have to admit I may get some of these concepts now, but to me this is difficult stuff.
I prefer to rely on languages that have some form of garbage collection. That is where the
system makes intelligent guesses about what gets tidied up and when. And yes this introduces overhead
and is less efficient at least for the OS. It is a difference between elsp of telling me to
prepare food in a way that produces no crumbs versus me doing things in my own sloppy way
but then cleaning up afterwards. That's fine if I actually do follow through with cleaning up afterwards.
Thankfully I guess generative AI systems probably are able to understand the
proper use of memory strict languages like rust so would be of help if I wanted to improve my
repertoire in that direction. My interest in operating systems and low level coding has led me
down some interesting paths. During the New Year's Eve show 2025 I learned that some copies of
the original Unix source code were now available and get up. I found the source for Unix system
five revision four one of the more populated connections of Unix. Being fascinated to understand
what it was doing I started making detailed notes a divided by various LLM programs.
What I thought was going to be an afternoon's idle investigation turned into a month long
study absorbing much of my spare time and what had started as a handful of notes was now an
entire book along with illustrations code snippets and cartoons and printed copies six of my book
shelf and I presented to talk about it at our camp 2026. My biological father-in-law even asked for
a copy since he collects any such thing offered by anyone in his near or distant family and I was told
he may even have read some of it. Anyway this has been a rambal through some of my experiences with
C++ and what it means to me. All that's left for me to do is issue the statement return semi-colon.
You have been listening to the Hacker Public Radio podcast, at hackerpublicradio.org.
Today's show was contributed by a HPR listener like yourself.
If you ever thought of recording a podcast, then visit the HPR site to find out how easy it really is.
Hosting for HPR has been kindly provided by anhonesthost.com, the Internet Archive, rsync.net, and the HPR Community Content Delivery Network.
Unless otherwise stated, today's show is released under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.