Richard Hodges

Richard Hodges

Staff Engineer

Richard has been programming professionally on and off since 1986. In C++ since 1996.

He has used low and high level languages professionally, including assembler, c, c++ visual basic, javascript and python - with brief encounters with .net and java. But his favourite medium is c++.

After a lull in interest in c++ in the early part of the Millenium due to the rapid advancement of other languages, Richard was delighted to learn of the release of c++11 while working at Morgan Stanley in London. This renewed his interest and enthusiasm for the language, particularly after learning about the proposed c++ development roadmap presented by Herb Sutter. The fact that this was never fully embraced was a source of concern for him. His view is that this is a win for library maintainers, but a loss for the user community in general.

Since then, Richard has authored two large-scale commercial systems in c++14 (cryptographic information sharing) and c++17 (financial quoting/dealing and market data), enthusiastically embracing new features as they become available.

Over the years, Richard has worked in the fields of games, financial services, defence, security, payment systems, information management and cryptocurrency markets. On reflection his view is that the only one of these that serves Humanity in any way is games.

Richard enjoys mentoring when asked and appears semi-regularly to answer some of the stack overflow questions left by beginners, whose questions tend not to attract the interest of the Big Hitters.

When designing code for executables and libraries to be used in a production environment, Richard strongly favours the approaches of Separation of Concerns and Dependency Injection.

Richard is entirely self taught.

He first learned of the existence of machine code at age 11 while playing with his friends' Sinclair ZX81. This led to his first self-financed purchase of a Motorola 6809-based personal computer at the age of 13. His first assembler project was a device driver to connect a 1960s teletype printer to that machine in order to print out a Mother's Day message. Interestingly, the driver worked perfectly, but the printed message had a spelling mistake.

This led to a summer job writing TMS9995 assembler for a gambling machine company at the age of 16.

Richard is of the view that while education is helpful in covering off the basics of computer programming, the most important drivers for becoming good at it are a love of the craft, and mixing with people who are better than you.

He is grateful to have been privileged to work with and learn from some of the finest minds on this planet.

Q: Why work with the C++ Alliance?

Because I think we have the same interests and drivers. I used to humorously say that the World only needed two languages - c++ and javascript. But then I discovered Emscripten, so we don't really need javascript.

Q: How did you learn of the Organisation?

I used Boost.Beast in my last production system. A global mesh of market data distribution nodes that, for legacy reasons, had to communicate in HTTP and Websocket unsing JSON. My colleagues thought the obvious solution was Node.js. But I had seen that Boost 1.69 contained the Beast library and I was intrigued. During the development I contacted Vinnie on the cpplang slack channel to ask a few questions... Now I am a maintainer of Boost.Beast

Q: What in your view is the most important challenge facing the c++ community?

  1. The lack of a fully-featured, cross-platform, standardised Web client and server framework that integrates with coroutines (watch this space)
  2. The lack of a single, standardised, officially supported package dependency system for c++. In 2020, it should take no more than 10 seconds from sitting down at a terminal to having a fully platform-agnostic project compiling and printing its first "Hello, World!" using any toolchain you like.
  3. Because of 2, the horrific difficulties faced by enthusiastic new c++ programmers when they want to write their first 3D graphics masterpiece. I have seen with my own eyes as enthusiasm turns to disappointment, causing programmers to reach for other languages where support is better.

Q: What are your favourite things in C++ at the moment?

  1. Hunter for CMake - it almost completely solves the cross-platform development headaches mentioned above. Using this I can literally get a cross-platform project up and going in minutes, confident that all dependencies will be found and compiled with the same toolchain file that I am using to build my project. It's a masterpiece.
  2. The work by Lewis Baker on c++ coroutines. When this is finally released, the c++ language will be transformed for the better.
  3. The people who say, "yes we can" to the people who say, "no we shouldn't"

View Full Team...