I got to thinking about the technologies that I shun. There are certain applications or environments that I won’t touch with a ten-foot computer-pole. They fall into two groups.

The first group is the released-before-it’s-ready category. These are technologies that, in an effort to generate hype (or “traction” as the sales weasels say), are born prematurely. Writer and software developer Joel Spolsky, over at the Joel On Software website calls this the Marimba Phenomenon:

The Marimba Phenomenon is what happens when you spend more on PR and marketing than on development. “Result: everybody checks out your code, and it’s not good yet. These people will be permanently convinced that your code is simple and inadequate, even if you improve it drastically later.”

(Go read Joel’s other stuff, too; it’s very good.)

While I am not personally acquainted with the particular Marimba package of which Joel speaks, I am have experience with other packages that have the same problem.

  1. Java
  2. Oh! how I wanted to love Java. The idea of bundling up a fully-functional program within the confines of <applet> tags to be shown in a browser window and deployed via http was just so cool. I played around with making dippy little applets not much more robust than the Hello, World! programming meta-example, and finally I was emboldened to try a “real” project at work. We had a customer that needed certain functionality, and a Java applet was a perfect match. The business requirements were minimal, so we proceeded with development.

    The applet itself was a glorified File/Open kind of dialog box, but, the files to be opened were based on a user’s selection criteria and available publications. This was to be implemented with four list boxes, a check box, a one-line text-edit field, four buttons, and accompanying description labels. In VB, this would have taken me less than ten minutes to draw, so I figured maybe a little longer in Java, what with learning curve and all.

    It took me ten fucking hours to get the fucking thing laid out properly.

    You see, in Java’s design of platform, display and browser independence, you can’t just draw GUI primitives directly on the canvas. You use a layout manager, and you specify a “gravity” and a “weight” for each primitive, and the layout manager determines exactly where to place things. In an egghead, Ph.D. kind of way, this is great: elegant, roubst, abstract. In the real world, I spent hours upon tedious hours getting the weights just right.

    Today there are tons of tools to help with the wretched GridBagLayout system, and today probably no Java programmer would use something so ancient, but, this project was in 1997, when Java was in its infancy, so there weren’t many tools.

    Sun, to their discredit, makes it extremely difficult to understand where Java is and is going, with their alphabet soup of begins-with-J acronyms: J2ME, J2EE, EJB, JSP. What do I do if I just want to write a program, Sun?

    I’ve never used Java since.

  3. Front Page
  4. Oh! how I dreamed of using a web-development application that would take my hand-crafted ASP, HTML and JavaScript code and butcher it into something completely different. And, if it could cause my web pages to stop working altogether, too, that would be an even bigger bonus.

    Oh, wait… it already does that.

    Like Java, my initial trial of Front Page was in the late ’90s, early in the product’s lifetime. Front Page has since evolved into something significantly better, but, I still don’t trust it. Notepad and vi have never given my code the meat-grinder treatment, so I’ll stick with them.

The second group is technology that is so annoying that the annoying part vastly outweighs the useful part.

  1. Real Player
  2. Also in the late ’90s, Real was the technology to have. Listening to NPR radio archives or internet-only “radio” stations via Real was the coolest thing for a computer geek like me. The auto-update feature was, at the time, novel, and I was assured of always being notified when there was a new player available. This got old, fast. First there was version x, then version x+1, then, at some point there was RealOne, and something called G3, and every time there was a new version, it seemed that my old streams would no longer work… “Update to the newest version” the unhelpful notification said. With each upgrade came a download-uninstall-reinstall cycle, and each time, Real added more shit: a blinking tray icon, Start menu icons, desktop icons, and that annoying Intel-Inside-esque startup ditty, and flashier GUI widgets, and… well, if you’ve used computers at all, you know the rest.

    Real’s codecs may be technologically impressive; I’ll never know, because I vowed never to use again.

  3. Perl
  4. Do you know what my biggest gripe with computer programming is? I don’t get to type enough dollar-signs. If only there were a language that required dollar-signs by the dozen, I’d be happy. And, if it also could consume the rest of the ASCII punction characters for other functionality, that would be great. And, if there weren’t enough punctionation characters to go around, if the language could require compound ASCII conglomerations, that would be better. And, if it had a three-character “spaceship” operator, I could just die.

    Ooo! And, if the language could require that I reverse my previous twenty years of BASIC experience by requiring the dollar-sign before the identifier name, that would be sweet.

    Enter Perl (and its bastard spawn PHP). This language takes a common BASIC command from this:

    print name$

    to this:

    print $name

    This is why so many web-sites are Perl-driven and not BASIC-driven… BASIC has its dollar-signs backwards. Duh.

    Yes, I know Perl is great for scads of things, but I just can’t get past the fucking dollar-signs. Of course, if I were to use arrays, I could use the at-signs instead of the dollar-signs.

So, that’s my list. Can other readers add to the technology we so rightfully shun?