In my 40+ year career in software/firmware engineering, only 3 of the computers I've used have had what I considered superior development environments. This type of environment makes it easy to be more productive.
The first was the Sun 3/80 Workstation i used at work in 1990 while writing software for packet switching communications equipment. It had a Motorola 68030 CPU which is still my favorite assembly language and offered good performance. The Sun offered my first extended exposure to Unix and it was love at first sight. Unix was mature by that time and the development tools were top notch. The only possible drawback was it only had a monochrome display albeit a high resolution one. I enjoyed the way it allowed me to define a default window layout so I could have 4 terminal windows in standard locations each time I logged on.
The second machine I thought offered a great development experience was the Apple PowerMac G4 I bought for home use in 2002. It was purchased to replace a PC because I had grown tired of Windows XP plus I had picked up an iPod 10 GB music player which integrated much better with Mac machines than it did with Windows. The PowerMac G4 ran OS X, a Unix like OS derived from NeXT's NeXTSTEP. It had a PowerPC G4 CPU which was my first exposure to the RISC architecture. OS X came with the X11 (aka X Windows) window manager which was also used on the Sun workstation. X11 enabled me to run many of the same tools I had grown used to using on the Sun. At the time I was working for an optical networking startup. Some of the boards in our networking equipment used PowerPC G3 and G4 CPUs so it was handy having one at home to experiment with. The Mac also gave me an environment which was very close the the Sun I had started using 12 years earlier with the added benefit of supporting a color display. I've come to love color syntax highlighting of source files. I eventually made the switch to Intel Macs and then Apple's own CPUs. Sadly, they also seem to be making Mac OS look more like the iOS used on their mobile devices at the cost of making it less useful as a development machine.
The third (and my current favorite) development environment I've considered exceptional is a Raspberry Pi 5 which runs a multicore 64-bit ARM CPU. It still amazes me that I could built a reasonable development machine (8 GB memory, 500 GB SSD storage) for less than $200. Since it runs Linux with X11, I'm once again able to run the same tools (or their successors) on this machine. It integrates better with the small embedded ARM machines I write firmware for than does my work laptop running Windows 10 or my Mac Mini which runs the latest iteration of MacOS. Sadly X11 is no longer easy to get running on the Mac. I know some will think I need to migrate to Wayland but I rarely feel the need to use tools which aren't fully mature yet.
All of these machines have run Unix or Unix-derived OSes which has been my strong preference for 35 years now. This allows me to edit source files using vi (now vim) which had a steep learning curve but rewards the initial effort by being fast and quite powerful. Having ctags allows me to quickly jump from a reference in a source file to where the function or variable is defined. I've used it for so long that it has become second nature to me. I'm happy to be able to search my source code efficiently again using grep. And I love being able to use a shell with a proper scripting language (currently bash but I've used sh, csh, and ksh in the past). Best of all, I've still got good support for the C programming language which I view as a portable assembly language and which has been my favorite since I first learned it in 1985.
These aren't the only environments which can improve productivity. I've worked with a few engineers who swear by Visual Studio or Eclipse and I've seen how both can help speed up common tasks. However both have a sufficiently steep learning curve for me to ignore them. I feel the same way about Emacs when friends point out its advantages over vim. At this stage in my career, I'm not willing to make radical changes to a workflow I've been comfortable with for a long time at the cost of weeks to months of feeling less productive.
No comments:
Post a Comment