I’ve had a real Rip Van Winkle experience as I’ve re-entered to world of programming. Outside of writing login scripts in the 2000’s I haven’t developed code in 30-years. If I remember correctly, before my hiatus, I was a pretty good programmer. However, technology waits for no man. For infrastructure-centric professionals, coding for the first time after 30-years reminds me of applying your knowledge of operating systems from 30-years ago today.
I’ll take the opportunity to think about the differences between my Tandy 1000 running MS/DOS 3.22 and Microsoft BASIC vs. my 2019 MacBook Pro running macOS X and Python 3.8. Here’s a comparison of specs.
Tandy 1000 SX
Processor – 80888 (x86 compatible)
– 8087 Match co-processor
– 4.77 Mhz (Megahertz not Gigahertz)
RAM – 640KB of RAM (upgraded for 384KB of RAM)
– Dual 5.25 Floopy Drives (360KB storage)
– PS/2 style keyboard and monitor
– Parallel port
– TRS/80 Joystick port
Video Card – Tandy Graphics 16-color Max Resolution 640 x 200 16-colors
Display – Monochrome CRT Monitor
Weight – 31Lbs
2019 16″ Macbook Pro
Processor – Intel Core i9
– 8-Cores running at 2.3 Ghz
RAM – 16GB RAM running at 2.6Ghz
– 1TB SSD
– 4 Thunderbolt ports
– Intel Wireless Network card
– 720P Facetime Camera
– AMD Radeon Pro 5500M 4GB of video memory
– Support dual 5K monitors
– LCD supporting 3072 by 1920 (2048 by 1280 scaled)
– Supports millions of colors
Weight – 4.3 Lbs
I’ve lived both worlds. As a middle school student in 1987, I couldn’t imagine the power of my Tandy 1000 when I received it as a gift from my dad. It was an upgrade from my TRS/80 Color Computer 2. Having regular access to Floppy Disks and a much more advanced operating system enabled me to create software only limited by my development skill.
Enter programming in 2020
I moved over to the infrastructure side, where I’ve walked this world from the 8088/8086 to Xeon processors with 52-cores. While amazed, I lived the evolution of hardware advancements. I’ve witnessed I/O getting better and better. I’ve seen operating systems become platforms. However, I remained frozen in time as an application developer. I had a rude awakening after submitting my first assignment for CSC 401 at DePaul. CSC 401 is a graduate-level introduction to programming course.
The assignment was relatively simple. The task was to teach iteration – the ability to leverage the logic of creating a loop to examine a set of data or logic repeatedly. The assignment was to check a list of names and see if the first letter was the same as the last letter in each word.
I solved the problem the same way I’d solve the problem 30-years ago in BASIC. I created a loop that first measured the length of each name, I then wrote a nested loop that parsed each string for the first and last letter. The program worked and took about 20-lines of code.
Modern PCs power modern program languages. For example, Python 3.8 has string indexes and matching built-in functions. The solution my professor demonstrated had 4-lines of code. My mind – blown!
So what does all this mean?
It means the technology has become more democratized than ever before. Not all of the students have a background in application development or technology. However, most of the students have been able to grasp the logic and command the language to write a program that answers a simple question.
It frankly scares me how much power lives on the desktop, let alone the public cloud with just a credit card swipe. Like me, old school IT leaders must respect some of our most potent users’ skills and give them advanced tools and data to answer the most challenging business questions.