This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Parallels
Feed Title: Travis Griggs - Blog
Feed URL: http://www.cincomsmalltalk.com/rssBlog/travis-rss.xml
Feed Description: This TAG Line is Extra
I was so intrigued by this dumping desktop Linux post the other day. I've been noodling about it ever since. That and the Log Flog posts massively overran my blogging time budget kept me from responding right away.
Shortly after I started working at Key, I began working with one of those people. Those people that you're just really grateful to have worked with. Ken Treis was a college kid who was nuts about Linux. If I was the Smalltalk evangelist, he was the Linux evangelist. At the time, our main product was NT4, and I hated it. I'd worked with Unix workstations before, and I missed them. And such it would stay for a while. But some niche products we got a chance to use Linux on. And I found that after 5 years of *nix absence, it felt really good to be back. The interesting thing about Ken and my relationship was the symbiosis that took place. I taught/mentored him with Smalltalk and this OO stuff. He reciprocated with Linux/OS stuff. I think part of the reason, it worked so well, was we each had something to give the other. IOW, I got excited about Linux because he was willing to get excited about Smalltalk, and vice versa.
I've noticed some parallels between Linux and Smalltalk over these years. The first was the "holy uptime." As a fledgling Linux sysadmin, I was prone to throw a reboot at any problem to try and fix it. This was anathema to Ken. Uptime was something to be proud of and maintained. That you could fix your system live and get it back on its feet, was a good thing (tm). The thing is, I was the same way with a Smalltalk image. Where Ken's first instinct might be to "rebuild" the image when something wasn't quite right, it was not mine. The paramount demonstration of Smalltalks greatness was that through clever use of tools, I could get his image diagnosed and stabilized, without restarting it.
Another thing that resonated with me, was this "everything's a file" policy. That everything was a file meant you could do interesting concoctions with all of the little tools like sed and grep and cut and tr and so on. This was so much like the Smalltalk mindset where everything is an object, and stuff gets done solely by messages in between them.
Scripts. That's what glue a Linux system together. It may be a statically compiled kernel, but it's all woven together with dynamic atyped scripts. Spend any time with a debian postinst script, or an rc run level script, or a cron file. Highly imperative. And fungible. You can have scripts that modify other scripts, or check to see if they're there, or what they do. This too was so like the way a Smalltalk gets stuff done. This also meant that the system was very open. I could use a simple tool to attempt to decipher what the system was doing. Put echo statements in. So much like using the Smalltalk browser to learn how part of the system worked, instead of a manual from a shelf.
When Gilad Bracha gave his "no more versions" talk at the Dynamic Language Symposium, one of the audience asked if a live Debian system wasn't something like he was proposing. Gilad didn't think so, but I was in the back of the room thinking "yeah, yeah, he's talking about Debian and beyond." When I rebooted my machine the other day, it had an uptime of 178 days and had gone through quite the evolution of what it actually was. A Smalltalk image is the same way.
I also found that I configured my Linux environment different than Ken did. We shared lots of things, exchanged ideas and setups, but each took his system along different paths. How like a fellow programmers Smalltalk environment where they use a different L&F, load different tools, and even hack the core to customize the environment to their own suiting.
The point of noting any of this is not to point fingers at Cees for giving up on Desktop Linux. I appreciate Linux, even as a desktop, but I'm quite happy with my OS X system too. I know many Smalltalkers who love the environment, but wish they didn't have to think about OS's; an OS should just work and not bother them. It's more of a note to the Smalltalk crowd. That same frustration and foreignness one finds in trying to get a Linux desktop environment tuned just to their liking, it's probably similar to what many"traditional" programmers feel when they try to work with a Smalltalk development environment. And leaves them scratching their head just the same: "What is it that makes these Linux nuts like their systems so much?"