I am at my wit’s end. I have spent the last week fighting JavaScript, trying to get it to perform the most basic functions. An earlier complaint had elicited some kindly advice from a reader, but I was unable to get that working. I came up with a workaround that stinks to high heaven, but it works. But now I am stuck trying to read simple radio button inputs. Nothing works as advertised. The submit button triggers without being clicked upon, and it is impossible to figure out which radio button has been selected. I have gone through four—FOUR—different web pages explaining how to do it; I have implemented every one of the approaches described in those web pages; NOTHING works.
The problem is not JavaScript’s fault; it is my own. I am a dinosaur, completely out of place in the modern world of programming. The whole style and philosophy is utterly alien to me. There’s no single language; in order to get the software running, I must master four different expression systems: HTML, JavaScript, JSON, and DOM. They are all interwoven in the most intricate manner. If you understand how all these systems fit together, you can do marvelous things. But if you want to do simple, pedestrian things, there’s no simple, pedestrian way to do it. It’s like having to learn how to fly a Boeing 747 in order to take the garbage out.
I’m sure that, if you’re a professional programmer who does this stuff everyday, this is great stuff, powerful and infinitely flexible. But for me, a designer who programs on the side, it’s simply out of my league.
Here’s another way of describing the problem: back in the Jurassic era of programming, I had to program in 6502 machine language. I had to memorize about 150 different machine codes. A5 meant 'load the accumulator with the value in the page zero address specified in the following byte'. A9 meant ‘load the accumulator with the value following this opcode’. AD meant ‘load the accumulator with the byte in the address specified in the following two bytes’.
Between HTML, JSON, JavaScript, and DOM, there are literally THOUSANDS of different commands. I do not exaggerate. Here’s a list of HTML tags. Many of these tags have additional attributes you need to know about. JavaScript is just as bad; here’s a list of JavaScript reserved words. Again, each of these reserved words has lots of extra parameters that must or can be tacked on. The Document Object Model (DOM) also has piles and piles of special words, and again, each word has its own special pack of additional parameters you can tack onto it.
The experienced programmer will of course say that, once you get used to it, it’s not that hard to use. I could say the same thing about cutting down big trees with a chain saw, taking off the slash, cutting the log into firewood, and burning the slash pile without setting fire to the forest. I do this stuff all the time; just today I burnt a slash pile. But it took a LOT of time to learn how to do all this stuff. Do YOU know how to get a slash pile burning in freezing weather? Do YOU know how to sharpen the chain on a chain saw?
So yes, if I want to learn a mountain of stuff to do this one last project, then I can learn it all. But I don’t want to devote the rest of my life to learning the latest technology; I want to design wonderful things with computers, not wrestle with super-high-powered programming languages that can do far, far more than I would ever want to do.
I think I’m going to have to recruit somebody to help me.
POSTSCRIPT, December 7th
Emails poured in with solutions to my problems; within 12 hours, the problem was fixed. Thanks to all for responding so quickly. The programming requirements of Le Morte D’Arthur are quite simple; I expect that I’ll have few problems, but if I do run into an issue, I’ll be sure to bleat again!