Ask computer programmers what their most-used programming language is and you will end up hearing C++, over and over again. The venerable language makes up the backbone of many applications, websites, and programs the world uses today. It’s also a programming language that props up bank infrastructure on a global basis—and, luckily enough for the industry, its creator is one of its own. In a manner of speaking.
The man responsible for C++ is Bjarne Stroustrup, currently a managing director for at Morgan Stanley’s technology division. Though he is best known for his creation—he frequently travels the world to talk about coding and is still active in the C++ standardization committee—his work at the bank is equally as important.
But, if you ask him what interested him about working for Morgan Stanley, he’ll say it’s not because of any interest in money or banking. Rather, it was the opportunity work closely with other talented people.
At Morgan Stanley, Stroustrup oversees the data transfer operations of the bank—what he calls the bits and bytes—rather than the securities the bank deals with. He jokes that he’s the only managing director at the firm who does not manage a staff, but he does work closely with colleagues.
He deals with how the firm is able to move data from one point to another in a fast, efficient, and secure way. Part of that mission entails finding improvements within Morgan Stanley’s whole technology infrastructure, but it is also his responsibility to figure out the infrastructure needs of each group within the bank and determine the best way to get better performance, reliability and security.
“The financial industry has different constraints from many other industries. If I was doing a video game, so what if I miss a frame? You can’t even see that one frame is missing. But if I miss one transaction, it would be really bad,” he says. “For example, what if that transaction was money being deposited into your account? You have to do it right every time and that puts serious and interesting constraints on how we do things. In the video game industry, I would also work with transferring data but the constraints of speed and reliability would not be the same.”
He adds he’s not the guy to go to if there are emergencies around the coding of the bank—rather, if there is an emergency and something has gone wrong, then he’s done his job wrong.
Stroustrup, as one of the leaders within the technology division, is also frequently brought into conversations around new technologies that Morgan Stanley might be interested in working with; though he points out it’s often just to see how the current stack can work with it rather than give his opinions on the technology itself.
Engineer at Heart
Despite not having an innate interest in the money side of banking, Stroustrup says being curious about many things has been a boon to his career. As a young man, he wanted to study engineering but ended up dealing more with mathematics and computers.
“I wanted to go to an engineering school but it was in Copenhagen and it was too expensive to live there—in Denmark education is free so that wasn’t a problem—so I went to my local university and instead of becoming officially an engineer I became a computer scientist and a mathematician,” he says. “I wanted to build things and do useful things. Of course, in high school I had no clue what that meant. One thing education brings you is the breadth of knowledge; you never know what you learned can be useful. ”
Stroustrup began his education in his home town of Aarhus in Denmark. He studied at Aarhus University’s department of computer science where he graduated in 1975 with a cand.scient, the Danish equivalent of a Master of Science, in mathematics and computer science. He then took up his PhD at the University of Cambridge Computing Laboratory.
Once he received his PhD in 1979, Stroustrup and his family moved to New Jersey to work at the Computer Science Research Center of Bell Telephone Laboratories, more popularly known as Bell Labs, in New York. Stroustrup has very fond memories of Bell Labs, calling it one of the best places for practical research into computing at the time. The collaborative small group development setup appealed to him, though he notes the needs of companies were less complicated then compared to today.
It was in Bell Labs that Stroustrup developed C++ in 1979, and more on that, later. But after AT&T bought Bell and then split it into different firms, Stroustrup decided to leave the firm to join the world of academia. He had been with Bell, and its later iteration AT&T Labs-Research, for 23 years until he moved to Texas A&M University in 2002. Even then, his association with the firm continued—despite leaving, he remained an AT&T fellow until 2012.
Academia was where Stroustrup felt he could teach the next generation of engineers and coders. While a distinguished professor of computer science at Texas A&M, he wrote several text books outlining how to teach coding. These days, Stroustrup holds an honorary academic position at Columbia University.
But academia is, by all accounts, a field that not everyone is suited to, particularly inventors and creators. He quickly found that he was always “itching” to be out in the trenches, he says, working on solutions for problems that had tangible results. His passion was in the practice, rather than just the theory.
“In academia, you take a concrete problem, abstract some general topic from it, and then you write a paper about that. I had trouble with the idea that the paper was the ultimate result,” he says. “I like to build things and to see the things I’ve built actually being used; that’s hard to do in academia. I had tried all the things you should do as an academic, and it was getting a bit old.”
Enter Morgan Stanley. Stroustrup, who freely describes himself as not exactly being a “natural academic,” would go out every year and talk to people in various industries about their problems, and how they solved them. When he visited Morgan Stanley, the bank immediately suggested that he should come and work for them. He said no at first.
However, the bank had impressed him, both in terms of the quality of its answers to his questions and the caliber of its people. But it wasn’t just that which ultimately convinced him to sign on.
“One thing that impressed me was that with Hurricane Sandy, Morgan Stanley never stopped trading, which means they have impressive infrastructure and impressive engineers because coping with a major hurricane is seriously difficult,” he says.
After that, it was more or less a done deal. He left his academic job in Texas for his role with the bank in 2014, in New York, where he has remained ever since. Yet, in many ways, his career still centers on that period in 1979, when he changed programming—and computer science, more broadly—forever.
The Famous Code
In 1979, he realized that C—a programming language developed by his colleagues at Bell Labs—while revolutionary in its own right, wasn’t quite up to scratch for the tasks he had in mind.
His interest in languages, at this point, wasn’t exactly new, but his specific focus on C came about because he saw a need for a system that used hardware well, yet added complexity like a distributed system. According to Stroustrup, distributed systems are inherently complicated because they run from one system to another, necessitating a communications infrastructure to ensure performance and reliability.
What he built instead was C++.
“I never got to build that system because my friends and colleagues at Bell Labs and other places found C++ useful. So I got diverted into working with languages and fundamental software libraries; I’ve been doing that on and off ever since,” he says.
Stroustrup says he made C++ as a superset of C, to expand on the language’s ability by providing the same flexibility but including higher-level program organization within classes in the code.
The language optimizes hardware power to allow for scaling, both to add more hardware to the system to accommodate new users, and to ensure better performance for those users. It is mostly deployed in video games, data transfer, and operating systems. It is one of the world’s most pervasive languages, with millions of C++ developers around the globe, and counting.
Stroustrup approached the language’s development as methodically as possible. He looked to other programming languages for some clarity in how he could build his own. As he said subsequently in several lectures, he took ideas on general abstraction that classified objects from other languages and combined them with concepts that hewed closer to the processor instructions. He wanted to make sure that the language he was building was something people could understand clearly but would not cause a fatal crash of the whole system. He also wanted to make sure the language would actually make life easier for those running systems, so he knew he had to get it right.
Due to its ability to scale for user numbers and data volumes, it took off like a rocket. Now, C++ can be found in the back-ends of many popular websites like Google, Facebook, Twitter, and YouTube. Even Bloomberg runs on C++.
Stroustrup is still very much involved in the continuing development of C++. The language was standardized by the International Organization of Standardization (ISO) in 1998. Stroustrup notes updates to C++ used to come infrequently, but with the fast-changing nature of hardware and software, the gap between updates is narrowing.
“C++ is changing so we get a new standard every three years now, instead of every 10, which was standard in the previous millennium. We have to meet these new challenges. Hardware is getting stranger and stranger every year because they just can’t get simple computers to run faster, and the architecture is more complicated,” he says.
The next standard is expected to come in 2020 with C++20. This will establish new features while still supporting code written in the older version of the language.
He adds programming languages need to keep getting better to keep up with the increasing demand on computers, either through speed or resiliency. If the hardware is getting faster, the programs running on it must become faster too.
This applies more than anything else to his day job at Morgan Stanley. Banks have needed to seek hardware improvements as the volume of data processed by the computers has greatly increased just in the past decade. Moving data from point to point becomes an issue of speed and reliability.
Hardware is not the only thing changing. New languages are being created to meet the complicated needs of many industries. Stroustrup notes many of these new languages are interesting, though perhaps tied mainly to certain types of tasks like calculations rather than moving large amounts of data efficiently.
People say C++, like many older languages, may need replacing, but Stroustrup says no other programming language has so far been written that can take its place. He remains a fierce advocate and defender of the language he created.
“A general purpose programming language, such as C++, tends to be less elegant than a specialized language for any particular thing. If you only have to do, say, dense linear algebra then you can write a perfect language for that. But you can’t write a language that is perfect for everything and for everybody,” he says. “You can have a language that is good enough for a huge range of work—a general-purpose language—but you know it isn’t perfect. Some people have trouble with that notion; they think everything can be perfect for them. It can, but only if they never do anything except what they do now and if they don’t have to interact with other people. If you want to work with a lot of people and in a lot of different application domains, you have to accept some compromises.”
He adds he still likes building things with an engineering mindset and is glad that the engineering world has also embraced C++. The Institute of Engineering and Technology even awarded him with the distinguished Faraday Medal for the creation of C++ in 2017 and he received the Charles Stark Draper Award from the US National Academy of Engineers in 2018.
Shepherding the programming language he created to the future understandably takes up much of Stroustrup’s time. He remains committed to working at Morgan Stanley and continues to be interested in the many challenges the finance world throws at him.
While it was mainly the chance to work out how to solve real-life infrastructure issues that brought him to Morgan Stanley, what truly attracted Stroustrup to go back to working was the bank’s super-secret weapon: His children and grandchildren live nearby.
In between managing the data flow and transfer at Morgan Stanley and his frequent lectures abroad, Stroustrup tries to find time to pick up his grandchildren and spend time with his family. Family has always been important to him and he frequently brought his children to his many speaking engagements in different countries when they were younger.
He also manages to indulge in some hobbies, like photography. One of the things he tries to take time for is reading—from mysteries to histories, he says his different interests are an extension of his continuing education. These activities have allowed him a different perspective and opened him up to work in industries he didn’t think he would ever work in.
Stroustrup is a busy man but he says he’ll always be on the search to solve real-world problems because to him, the simple ones have been solved; it’s the complicated ones that need tackling.
Correction (11/30): This story has been updated to clarify that C++ is a superset of C, not a subset.
Wei-Shen Wong joins the podcast to discuss all things Asia: cloud, crypto, blockchain, AI, India-SGX and more.Subscribe to Weekly Wrap emails