Tomorrow, we in the US celebrate Thanksgiving. So today seemed like a good time for me to recognize the people and technologies in the software development world that I’m most thankful for.
I’m thankful for Alan Turing and computer programming
I don’t think many folks realize the impact that Alan Turing had on the world. He conceived of a general-purpose computer—a machine that could do any kind of calculation based on varying algorithms and inputs. He dreamed up computer programming. That the world treated him so badly after he helped win World War II by cracking the Nazi code is to our eternal shame. Thank you, Dr. Turing.
I’m thankful for Anders Hejlsberg and Turbo Pascal, Delphi, C#, and TypeScript
Though I cut my teeth on BASIC, it was Turbo Pascal 5.5 that led me to a career as a software developer. Anders Hejlsberg built Turbo Pascal himself, blazing a trail in software development tools when he joined forces with Phillipe Kahn to sell a product (a Pascal compiler and IDE) that anyone could use and afford. Hjelsberg went on to create Delphi, C#, and TypeScript. Not a bad résumé. Thank you, Anders.
I’m thankful for Bill Gates, Steve Jobs, and Steve Wozniak and the personal computer
It’s hard to say who was most responsible for ushering in the personal computer age, but Bill Gates, Steve Jobs, and Steve Wozniak all played a major role. All three created products and companies that spawned countless businesses and products that dominate our world today. While I am not a big fan of Jobs, I have to admit that he led not one but two revolutions—the personal computer and the smartphone. Thank you, gentlemen.
I’m thankful for Tim Berners-Lee and HTTP/S
I don’t think many people realize how profoundly simple the World Wide Web is. One computer says “Hey, I have a text request” and another computer responds “Okay, here’s some text back.” Sure, that is an oversimplification, but not by much. HTTP is the foundation of 95% of what happens on the internet, and I’m grateful for everything that it has enabled from its humble beginnings. Thank you, Professor Berners-Lee.
I’m thankful for object-oriented programming
I’ll never forget the moment when things clicked in my brain and I finally understood the concept of object-oriented programming (OOP). It was fantastic. OOP has come under fire a bit in recent years, but it is the foundation for pretty much everything we do in code these days. It’s a beautiful model for thinking about and designing software. Thank you, Ole-Johan Dahl, Kristen Nygaard, Alan Kay, and many others.
I’m thankful for Visual Studio Code
An IDE that everyone uses for pretty much all languages and development? Freely available and actively updated? Thousands of cool extensions? Cross-platform? What’s not to like about Visual Studio Code? An added bonus—it is written in my favorite language, Typescript. Thank you, Microsoft.
I’m thankful for GPS
It is hard for kids these days to conceive of having to call and get directions before heading out to some previously unknown destination. Does anyone else remember pulling over at a “filling station” to ask for directions? The Global Positioning System (GPS) enables all kinds of mapping and navigation applications (delivery, ride sharing, etc.) we never would have conceived without it. Thank you, American taxpayers.
I’m thankful for dependency injection
If I could go back 25 years and take with me only one development principle to tell developers about, it would be dependency injection. What a magnificent, beautiful thing it is. I loved it so much, I wrote a whole book on it. If you aren’t using dependency injection to decouple your code, you need to start today. Thank you, Martin Fowler and Uncle Bob Martin.
I’m thankful for REST
Getting one computer to do work for another computer was long the Holy Grail of programmers. We’ve tried all kinds of technologies — gRPC, CORBA, DCOM. It took a special kind of genius to notice that the four basic HTTP actions corresponded to a database’s CRUD (create, read, update, delete) system. Brilliant. Thank you, Roy Fielding.
I’m thankful for my Dad and his IBM 5100
Finally, on a highly personal note… My dad was a cardiologist and a very early member of the International Society for Computerized Electrocardiology. His hospital had one of the first “portable computers,” an IBM 5100. (“Luggable” would be a better way to describe it.) He brought it home on the weekends for me to use. I saved up and bought my very own data storage tape, and converted a very early video game — a text-based version of Star Trek — to run on it. Getting the game working on that little screen was one of the thrills of my life. Modding it to get the photon torpedoes to move across the screen was a milestone moment and set me on my way. Thank you, Dad.