The Software Imprinting Dilemma

D. Markle: thank you for the boost, at least I admit I need help.

What freaks me out (and you have solved this by outlining the precise steps I must take) it all the different stuff I have to do and load with some of these packages. I tend to go with as few “moving parts” as I can in order to give my brain relief and my life simpler.

I will do as you say!

Jeff: Thanks for letting this blog be a “rehab center” for those addicted to VSS!

Yes, but how can you know that without switching, at least for a little while?

All you ever do on this blog is express your thoughts by writing English. It might be that you’re really best able to express yourself by writing in Japanese, or maybe Swedish or even Polish. How can you just continue to write in English, without switching to Japanese or Polish, at least for a little while?

It’s a tradeoff between effort exerted and information gained. A lot of times, it is perfectly rational to choose not to exert the effort.

I think imprinting is not permanent, or I’d still be pining for the Commodore PET.

I actually spent a whole summer programming PETs, but after a two-year hiatus, my next exposure to microcomputers was a 512K Macintosh, and I managed to imprint all over again.

It’s not imprinting; it’s simply laziness. We get comfortable with something and don’t want to spend effort to switch. Trust me, I know about this personally!

When writing apps in .NET i can’t use anything other then VS2005. I tried few months ago to setup a PC with only free software (or at least cheaper alternatives to MS products). I almost succeeded but i couldn’t replace VS. Whatever i tried it was like writing with my left hand: i could do it but it’s clumsy and slow.
On the other hand, i’m perfectly happy with notepad when writing html, javascript or python code. Every feature some editor have, like syntax highlight or autocomplete, is big added bonus for those languages, while in .NET i just can’t (or won’t) compromise: i must have it all.

In my career, I have had to work on diverse systems, and it seemed like every time I learned an editor, I had to go work in an environment where my favorite editor was not available. I went through emacs (with a profile so customized that I never learned emacs), Edit on the Apple II, MPW, CodeWarrior, Brief, vi, Visual Studio, XEmacs, Project Builder, Xcode and Eclipse. I have learned never bother to learn command keys, shortcuts, macros, or anything else that I am likely to need to relearn. If I have to do something hard, I use the editor I have and write tcl code to do the hard stuff. Keeps me sane.

Yesterday I listened to an episode of In Business (program on BBC Radio 4) consisting of an interview with Tim Smit. At his company (which runs the Eden Project in Cornwall, UK), every year his staff have to read two books see one film and see one play which other people would say is not in their sphere of interest. The idea is to try new things, get new perspectives, avoid being stuck in ruts.

Picasso said: “I am always doing that which I cannot do, in order that I may learn how to do it.”

Then again, I suspect some programmer also said: “I like eating, I like my kids to eat, and I like to avoid having my house repossessed.” Learning new things is great, but it generally doesn’t make money in the short term.

Oberon, Forth, and friends, they all expand the mind and remind break out of any mental ghetto.

Even Pascal is good as a /temp expirence . . .

Be 'agile and mobile in thought, and try make sure your own brain is not a stubborn limitation.

By the way “stubborn” is just a complex spelling of stupid.

I have to agree with Matthew Cuba. Imprinting solidly onto a single way of working is one thing, but at some point you’ll have to be able to do something productive. I could spend all day trying new languages/IDEs/etc that somebody’s been evangelising to me, but what about just settling on something for a while and just be productive?

I’m not saying a developer can stay stuck in the stone age forever; you have to advance with your time. But to a certain degree.

Moreover, most of the time I’ve tried some new stuff I ended up not liking it very much or finding the advantages did not outweigh the disadvantages. Given that experience I won’t be hard pressed to ‘try something new’ unless I find the ‘old’ to be broken or if I see some new technology significantly improves over what I’m using.

Our IT department imprinted on Microsoft Bob.

Interesting notion about imprinting.

I’d say personally that it isn’t laziness or stubborn resistance to change but rather an inclination to return to the tools that have served me well - until they don’t.

For instance, I used vi for several years and it was fine as an editor. Then I moved to nedit and that was powerful too, but in a different way. I tried SlickEdit for a week at the encouragement of a coworker and found it to be better (though I have to admit that the muscle memory editing command of vi would surface periodically - that was interesting) than the other two. I was a bit of a SlickEdit evangelist after that.

When I started doing windows development, it took me a few weeks to become comfortable with Visual Studio, and now that I’ve been using it for a good while now, I’m very happy with it. I haven’t sought out another editor lately (though notepad is quick and dirty and gets some attention during the day) mainly because VS has served me well.

C# is the same way. I wrote in C++ for about a decade. A little perl here and there and sometimes an application or some scripts in something else, but C++ and perl provided solutions to the problems I needed to solve. Now that I’ve been writing almost exclusively in C# for a bit, I tend to look for solutions in C#, since it is convenient and the syntax is fresh in my mind.

I like the idea of trying new languages, etc. and have been branching out a little on my own at home by running parallels on my mac and trying out other OS’s and learning a little Applescript (verbose stuff) and XCode. Not sure I’ll every write anything professionally in those, but it allows me to see how things are outside my own ‘happy place coding environment’ where I know the editor and the OS and language. It is probably good for the brain too - at least I hope it is.

points to this guy who clearly imprinted on C-based languages, and laughs: http://blog.muntedharalhakim.net/archive/2007/07/03/Ruby-on-rails-has-derailed.aspx

Heh, we went from complaining about an extra feature on Google that was only useful to advanced users who learn how to use it to a post about needing to try new and different things, even operating systems…just because they might have extra features that take effort to learn.

David – good notes about VSS (if a bit heated… you’re passionate!).

Steve – a really good primer on source control can be found from Erik Sink here – a href="http://www.ericsink.com/scm/source_control.html"http://www.ericsink.com/scm/source_control.html/a
Have a read, folks in the biz know who Eric is and his opinion is generally well respected. His day job is writing a source control package, so he’s biased, but he puts that up front and compares packages like VSS, Subversion, CVS, and Vault (his company’s package). It is a great tutorial on the hows and whys of source control.

Jeff - good article. I think we all try to get beyond our own bias to see the Dark Side once in a while and maybe wonder if they have better stuff. I think sometimes the Mac folks wonder if you have too much of a Microsoft imprint going on and view the Mac through that lens too much, without realizing that you do so.

g

I came from University with a background in Unix and with a love for Emacs. If you couldn’t do a thing in less than 3 keystrokes, it wasn’t worth doing and who needed a mouse?!

Since 1995, I’ve invested enormous effort in “patching” Visual Studio to make it more Emacs-like, until VS2005, where some things are just plain impossible. Ah well, time to learn new tricks (Ctrl+S is save, you say … right) :slight_smile:

As for VSS vs any-other-SCC; I used to hate VSS from the first moment I used it, figuring this must be some sick joke from M$ … until Perforce entered my life and sweet angels sang my joy from the rooftops (or someting).

How do I know I wouldn’t be happier living in Brazil if I’ve never tried it?

I’m sure Brazil is a fabulous place. I’m sure I’d love it… if I knew the language, if I could get a good job, if any of my friends or family lived there…

It’s an exaggeration, to be sure, but switching – even experimenting – carries a lot of cost. And there are so many other things in the world to learn than computer languages, editors, and operating systems.

Like the Samba!

My take on this is a little different, but I’m surprised I haven’t read it in the comments yet… I see users tending to be imprinted on the software/systems they are using now especially when discussing providing changes to these same software/systems. For example, at my job we have a convoluted system that relies WAY too much on Excel workbooks.

The person in that dept who manages use of it COMPLETELY only knows how to think about any changes to that system in the terms of how that system is built (why don’t we just add another Excel workbook? NO!!!).

Interestingly enough, the person in my dept (IT) who developed it COMPLETELY only knows how to think of any software in terms of Excel workbooks (once again NO!!!).

My boss, myself and a few others were hired later to make sure that some one-minded takes on technology NEVER happen again :slight_smile:

Needless to say, I completely agree with the commenters that have used various programming languages/IDEs/OSs/fill-in-the-blank. It really gives you some fresh perspective. I had a job (and still do the work on-the-side as contracting) doing Java development, but by and far all my work has involved ASP (years ago), ASP.NET, SQL Server and some other stuff.

I also agree with the commenter that said that when you switch back and forth between various things, it is hard to get fluent in one of them. For awhile, I was doing VB.NET at work, C# for a night-time contract, and Java for another night-time contract. Took a little bit every time to remember the shortcuts for debugging, compiling, etc. :slight_smile:

Last thing - don’t we all remember the “Everyone’s Technology is Best” from February? It seems relevant to this. Here was my response to it back then:
a href="http://conservativgeek.wordpress.com/2007/02/22/everyones-technology-is-the-best/"http://conservativgeek.wordpress.com/2007/02/22/everyones-technology-is-the-best//a

Is it imprinting or is it just being practical. Text editors, development environments, operating systems. There of course is the comfort of the familiar, but there’s also the pressures of being productive which stand in the way of “fiddling with the new x”. I’m very productive in Microsoft’s tools writing C and assembly language. Put me in a Linux environment writing Perl, Java or any other unfamiliar language and how many weeks (months) will it take to be productive again? Projects need to be finished, bills need to be paid. Only the young people without the pressures of making a buck have the freedom to climb the steep learning curve over and over.

As far as web development goes, I’ve tried about 5 different editors to include Dreamweaver, GoLive, Arachnophilia, even the little code editor in CuteFTP. Dreamweaver is still my favorite, but this isn’t necessarily because it’s better, as a matter of fact I used GoLive a while back to do some things to pages that Dreamweaver didn’t do half as easily. I got suckered in by the FTP feature(I never use the WYSIWYG anyway) and after a while that just become my DE of choice. I think the biggest thing keeping me from using other editors is that I would have to get used to a new code-coloring key, and that would be downright painful for me.

I just hate OS’s that doesn’t work with HJKL keys, don’t save with :w and do nothing when pressing Esc… am I imprinted? I don’t think so, because everything else sucks… yeah! you heard me! Linux/SunOS/Windows/Max are just Frontends for Vim :wink: