-
Notifications
You must be signed in to change notification settings - Fork 44
Expand file tree
/
Copy pathrichard.html
More file actions
93 lines (70 loc) · 5.32 KB
/
richard.html
File metadata and controls
93 lines (70 loc) · 5.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
---
layout: alumni
nav-class: dark
member-name: Richard Hodges
id: richard
title: Richard Hodges | The C++ Alliance
position: Staff Engineer
email: [email protected]
stack-overflow: https://stackoverflow.com/users/2015579/richard-hodges
github: https://github.com/madmongo1
linkedin: https://www.linkedin.com/in/richard-hodges-198950138/
image: /images/people/richard.jpg
---
<p>Richard has been programming professionally on and off since 1986. In C++ since 1996.</p>
<p>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++.</p>
<p>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.</p>
<p>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. </p>
<p>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.</p>
<p>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. </p>
<p>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.</p>
<p>Richard is entirely self taught. </p>
<p>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.</p>
<p>This led to a summer job writing TMS9995 assembler for a gambling machine company at the age of 16.</p>
<p>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.</p>
<p>He is grateful to have been privileged to work with and learn from some of the finest minds on this planet.</p>
<p>Q: Why work with the C++ Alliance?</p>
<p>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.</p>
<p>Q: How did you learn of the Organisation?</p>
<p>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</p>
<p>Q: What in your view is the most important challenge facing the c++ community?</p>
<p><ol>
<li>The lack of a fully-featured, cross-platform, standardised Web client and server framework that integrates
with coroutines (watch this space)</li>
<li>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.</li>
<li>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.</li>
</ol></p>
<p>Q: What are your favourite things in C++ at the moment?</p>
<p><ol>
<li><a href="https://github.com/cpp-pm/hunter" target="_blank">Hunter for CMake</a> - 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.</li>
<li>The work by Lewis Baker on c++ coroutines. When this is finally released, the c++ language will be transformed
for the better.</li>
<li>The people who say, "yes we can" to the people who say, "no we shouldn't" </li>
</ol></p>