Live Q&A - The Quest for Simplicity
Henk Muller - XMOS - Watch Now - Duration: 20:24

Thanks for the kind words - glad it made you think. Discussions like this provide food for thought for me as well - both when creating the talk and in the discussions afterwards. I appreciate your and other people's feedback
@Max: The book "Hacker's delight" is a very interesting tipp regarding this topic - I had a brief look at it and ordered it right away. I just add it in the comment to make it easy accessible - Link to a wikipedia page: https://en.wikipedia.org/w/index.php?title=Hacker%27s_Delight&oldid=1063402410
It reminds me of code I found in the Linux Kernel - Another good inspirational source for efficient code ! Just the last couple days I needed a circular buffer and found interesting, efficient, code in the kernel sources: Here an example ...
/ Return space available, 0..size-1. We always leave one free char
as a completely full buffer has head == tail, which is the same as
empty. /
define CIRC_SPACE(head,tail,size) CIRC_CNT((tail),((head)+1),(size))
/ Return count up to the end of the buffer. Carefully avoid
accessing head and tail more than once, so they can change
underneath us without returning inconsistent results. /
define CIRC_CNT_TO_END(head,tail,size) \
({int end = (size) - (tail); \
int n = ((head) + end) & ((size)-1); \
n < end ? n : end;})
...
- Source: https://github.com/torvalds/linux/blob/master/include/linux/circ_buf.h
- Documentation: https://www.kernel.org/doc/html/latest/core-api/circular-buffers.html
Another interesting thing to look at is the Linux-Scheduler source ... since those lines are being executed a bit more often per second :-)
What's your view on the future of new programming languages like Rust, which have been designed with a focus on safety, in solving the issues you just pointed out in C and C++ in the embedded field? (In particular the lack of constraint in what you can do)
I think rust is a great development and looking actively into it. The big question is whether everybody else will think so too - the strength of C and C++ is the vast number of people who use it, not the "quality" of the language (I accept that this is a very wooly statement). If rust gets critical mass that would be seismic in a positive way.
Noobie Question: Does working with Ada bypass all the problems mentioned in the session?
Hah! That takes us back a while. It does resolve some of the problems, but ADA, if I remember correctly, has a rather baroque exception handling mechanism so that may add a large chunk to your memory footprint
Henk - your ideas about simplicity are a really important contribution to the embedded embedded community - they still keep me thinking days after the talk. Proper SW-Engineering is in everybody's focus and the various talks in this conference provide ample reasons. BUT, as you point out - those benefits are not for free (technically speaking)! Thanks for taking position and advocating this! And I really like the challenging stile - it creates a nice contrast to "that's just the way it proper SW-Engineering tells us things to do". Engineering is about finding the sweet spot of making the "right" compromises to meet the project target within the given constraints - sticking dogmatically to best practice might not always lead us to the best path. You are providing a further Thought-Tool to challenging those on the hunt for the appropriate technical solution! Really looking forward to more of your ideas! Thanks a lot! Andreas