Wednesday, July 10, 2024

Choice and Depth

In college, I was quite the tinkerer and hacker of computer systems and computer software.  It was late 90s, and though we had a local area network, we did not have internet access.  We didn't even an internet email address.

Operating systems were installed from floppies, some newer systems had CD drives.  PC magazines used to come with free software CDs and those CDs contained not just games and Windows shareware, but also free software such as the Slackware Linux distribution, or Cygwin (GNU tools for Windows).

Since we did not have internet access, we pried open, figuratively speaking, each software that we could get our hands on and explored every nook and cranny of it.  We explored all the settings, the various flags, limits, "GNU extensions", and we tried to compile it on unsupported operating systems.

I remember being introduced to perl and zsh, at that time still new things.  Perl was authored by Larry Wall, and zsh was written by Paul Falstad, a student at Georgia Tech university.  I read almost their entire man pages, and came to understand the philosophy and the interesting features in them.  I was intimately familiar with their capabilities, the differences they had with other languages and shells, and what differences existed in one version vs the previous one.

Linux was still new, and most free software with source code supported many Unix-like operating systems.  In our institute, we had access to HP-UX, SunOS 5, Solaris, IRIX, and SVR4.2, among others.  It was a lot of fun trying to make the GNU toolchain and compilers and libraries work on these varied Unix systems.

I remember that even in a limited operating system as MSDOS, we looked at almost all the system utilities and what they did and why and how.

Similarly, because the computers were much less powerful than those of today, it was both necessary and enjoyable to exploit whatever hardware capabilities were there.  With only 4MB of RAM, and 64MB hard disk, one had to be very efficient at storage and memory allocation.

That period set the tone for my professional career, as I, after a brief stint as a software engineer, veered back into system administration and network engineering.

...

When I look at the capabilities of computers and networks today, I find that there is nothing I cannot do or find anywhere in the world, but my curiosity in what I have already on my system is thereby much reduced.

The systems and software that I have on my personal computer are absolutely remarkable, and I sometimes mourn my disinclination to explore them more.

It is also true that systems have gotten more complex.  Tinkering with a simple engine is perhaps far more enjoyable than owning a complex piece of machinery which is more capable but less accepting of amateur exploration.

As an analogy for this situation, consider a man who lives in a village all his life.  He probably knows all the little ponds, the birds and their mating calls, he can identify cattle and horses, and he experiences life, dare I say, with more depth.  Each experience is deeper because of the familiarity one has with the context and the contents of that experience.

On the other hand, a man who has been given a boon to be teleported anywhere in the world will probably not find it easy to give deep attention to any one place, to any one thing, or to any one person.  He will always be going here and there, and it will be impossible for him to call any place home.  The attraction of novelty will not allow him to be bored, and boredom is, I think, essential to experiencing anything in depth.

The real learning starts when the novelty has worn off.  But if another novelty then takes its place, then the learning will remain facile.

The absence of boredom, and commitment, that an unlimited choice bestows on oneself is therefore a boon as well a curse.  It is the boon of freedom, and the curse of never delving into anything deeply.