The Software Imprinting Dilemma

Ubuntu, wow unusual/cool name and not Microsoft. I guess that’s enough for some people.

I imprinted on Forth, vi, C, and UNIX. So much so that it took ten years to figure out how to do object oriented work. Now I’m imprinted on C# ASP.NET, trying to learn Windows Forms for the first time. The imprinting process definitely happened for me.

Ubuntu- its a Xhosa/Zulu word, used a lot in South Africa by people of many backgrounds. the ‘ntu’ bit refers to people. the ‘ubu’ bit refers to abstract qualities. So ubuntu means something like humanity, humaneness, right behaviour for human beings, compassion for others, sharing, communal cooperation- its a VERY African word in other words, and one we could benefit from. I just wonder how the programmers in question came up with the name?

I think it goes a little deeper. I started back in the 70’s on a PET 2001. I was on CBM machines until the late 80’s.

I used Windows for quite a while, but it always felt wrong. It just did not work in a natural, intuitive way.

Looking for a web server, I found Free BSD. It was OK, but I noticed that there was a lot more software available for this Linux thing. I tried it, and it worked. I kept dual boot for a while, but eventually, just switched.

Linux is still more comfortable for me than Solaris or BSD.

Strangely enough, Linus Torvalds also started on CBM machines. Somehow even though it is a completely different system, something core is still the same. Somehow, it still has some of that feel, some of that comfort of where it all started.

Usually whatever the client or company is using it what is used, so I learn what I need to learn based on that need.

Some things I just stay away from because I just don’t want to make the mental and time investment.

Does that make me a bad person or programmer? Maybe I am close minded about certain things, but I am usually open to listening to try new things if it is useful.

Certainly at this point I am not willing to learn something new for the sake of learning something new. I’ve already taken quite a few spins on the new technology/tool ride.

Additionally, I like to point out that I can’t spend time on trying new things. I have deadlines to make, bugs to fix, etc. I can’t tell my boss, “well those bugs didn’t get fixed because I spent last week learning a new editor so it slowed me down a bit.” That wouldn’t go down very nicely.

Also, I leave work at work. I usually don’t even turn on a computer while I am at home, except maybe for game playing once in a while. I spend my offtime with my family, so my ability to try new things is limited. But that’s just my perspective.

I find that if the tool is adequate to the task, there’s little incentive to take on the learning curve of a new tool on the off-chance that it might be marginally better.

Also, my employer can sometimes make it difficult to introduce new tools when he knows that your productivity will likely be at a reduced level for a time while you get up to speed with the new application.

Imprinting is very real in the software space. At my office, they use UltraEdit (which is actually very cool). I got hired as an avid Dreamweaver user. They didn’t provide any license for me to use DW; so I put a trial copy in a Virtual PC and kept restoring every so often so I could keep DW around (it’s really all about the syntax highlighting and code completion - better than any other IDE I’ve used).

Anyway, they wore me down and I’ve been using UltraEdit for about 9 months. I’ve even starting using it at home.

Surprisingly enough, I’m still on the lookout for a ‘better’ editor for one simple problem. Embedded PHP in a javascript string or HTML attribute doesn’t get properly code highlighted in just about any IDE I’ve used:
html_tag attribute="?= php value ?" will usually quote the whole string the same color rather than color the PHP differently.

If you’re handwriting code, which is what many programmers do, the editor has to become an extension of our brain-to-keyboard-to-code mode of operation. Learning a new IDE can break that “bond” (at least temporarily) and slow that process down.

Imprinting? maybe.
Practical? more likely