IAN'S QUEST
BY IAN CHADWICK
Whew. Talk about opening up a can of worms! You know the old saw that "everything will be fine as long as you don't mention sex, religion or politics"? Well, include computer languages in that list too.
I've received letters and phone calls about the virtues of almost every computer language ever invented. People want to run me out of town, metaphorically at least, because I took a few light-hearted swings against their particular sacred cow. A comment I made about GFA BASIC was questioned by a reader and answered in the letters column—not by me, but by someone else in the magazine who wanted to run roughshod over my ideas. I didn't write that comment that went "What Ian really meant was..."
Heck, what I said was what I really meant. I don't need any translators. I am quite capable of planting my own foot in my mouth, thank you.
What's this all about? I expect the language police to come knocking at my door one night: "Open up! We know you're using BASIC in there. Come out, the house is surrounded!"
At least that's how it will be when some of these people get their way, judging by the tone of their comments.
Several people have a penchant for C that borders on obsession. C is currently the number one hit on the computer-language hit parade and may be on its way to becoming the first computer religion. The C crowd told me off in several letters and conversations, warning me to steer clear of their favorites. These guys were the worst, sort of language hit-men. I think it's because C is a rigid, structured, no-nonsense language. It broaches no bungling, half-hearted attempts to learn it, no lallygagging, dawdling, tinkering. C demands harsh discipline and dedicated effort to master it. Nietzsche would have loved C.
Me, I don't care much for C, partly because it generates frighteningly large computer books on how to use it. Any language that requires you to buy a 1,000-page tome from a third party as your reference guide (and not even a tutorial!) is suspect. Who's going to read all that? It has no plot, no dialogue, no pictures of dinosaurs in it.
C doesn't let me ramble. It's a force of linearity, absolute obedience, a Triumph of the Will diskwise. Besides, C users have no sense of humor. They discuss their language in reverential tones, brook no snide comments or witty asides. Me, I still have a "4th Love If Honk Then" sticker on my car. Not that I really like Forth all that much, but I love seeing the reactions it generates when people in the car behind me try to figure it out!
And maybe I'm a tad prejudiced because C lurks behind Unix, the most difficult, obstinate, obtuse, obscure operating system ever devised, and 15-plus years ago at that! I figure anything that closely tied into Unix can't be good. If, by some massive stroke of ill fortune, Unix comes to the Atari, I'll probably pack up my computers and take up full-time zymurgy instead.
I guess which language is best depends on 1) who you are and 2) what you want to do with the language.
I like BASIC because I can write doodle-bug code. What's wrong with that? I tinker a lot with it, horse around. It suits me; it's like the way I cook, by guess and by golly. If you came over to my house, you'd understand. I have a work room cluttered with books, software, computers, rats, guitars—and I bounce around inside it from one thing to another. My mind wanders, so I like a language that reflects that. Of course, I can't think of any single major application ever written in BASIC, but that's fine by me.
Nowadays, however, BASICs are getting away from the dab-and-dollop approach by mutating into structured BASICs. Nothing very new, really; I had S-BASIC on my old Kaypro 4. They're sort of like C hiding in BASIC clothing. GFA BASIC is like that, and that's the one thing that I don't like about the program. It's like the authors are trying to gently lead us over to C. Not me; I'll go back to that old fossil, ST-BASIC, before I give up my GOTOs and GOSUBs.
HiSoft BASIC is a bit more flexible. It allows you to roam all over the place as you write, but it jumps back to C's embrace when it comes to handling GEM, BIOS and the other important calls. It disappointed me because I wanted a smoother transition from Microsoft QuickBASIC on the PC, but I wanted the power and chrome of GFA. Maybe one day they'll get married and give birth to SoftGFA or something like that.
What do you want to do with a language, anyway? It's not as if programming is exciting. Excitement is being a fighter pilot, fireman, policeman or mud wrestler. Programmers are generally a dull lot who only talk about computers, can't spell properly and write opaque manuals for their products that no one else understands [I resent that!—Ed.], even when they can untangle the bad grammar. When you're a programmer, you don't get together over a brew with the boys to watch the Big Game and brag about "generating one mean subroutine" during the week. It just isn't a back-slapping, shoulder-punching lifestyle.
Erroll, a friend, just bought an ST and came to ask me what language he should learn to program. I asked him "Why bother?" Of course, no one accepts that answer, and he waited for my (yawn) usual routine:
If you really want to tear into the machine and get control right down to the individual bits, then assembly language is the tool to choose. Only problem is, it takes 10,000 lines of code to do anything even vaguely important in AL. The serious AL programmers I've known are troglodytes anyway, people with bizarre eating habits (pizza and Coke at 7 a.m.) and worse social habits, mostly caused by their insistence in leading nocturnal lives. [Sheesh! Ian, if you thought you got a lot of mail before...—Ed.]
AL is relatively easy to learn and write, given that each line is really only one single command, and there aren't that many commands. But it's nearly impossible to decode it later without copious comments. It's also difficult to debug, because some of the simple commands are downright arcane. Besides, if you can't do hexadecimal math in your head, then you'll fail as an AL programmer.
Pascal and its somewhat richer cousin, Modula 2, are "sorta" languages. They're sorta like structured BASIC, sorta like C, sorta a bit of this, that and the other thing. I always disliked Pascal because I figured it was invented by a bunch of guys sitting in a hot tub somewhere in California. Nowadays, I'm better informed and know it was created by some guy in Switzerland. Probably in a hot tub.
To my delight, I discovered Alice, a rare Pascal interpreter, which gives the language a much-needed shot in the arm in my eyes. Sadly, it lacks its own compiler. However, if you're teaching Pascal or want to experiment with it, then this is the version to play with. A nice implementation too. Very classy act.
Still, I can't get away from the deep-seated fear that Pascal programmers all drive BMWs, say "smashing" a lot and wear tennis whites to putter around the house. Probably drink gin and t's too.
Anyway, I still think that GFA BASIC may be the best language around for anyone who isn't willing to stay up nights to program in AL, isn't up to the drill-sergeant correctness of C, or isn't one of the upwardly mobile Pascal hot-tub crowd. Look: BASIC is easy, fun and rewarding. Most people can't say that about much else in their lives.
Thoroughly discouraged, Erroll decided he ought to learn to use the applications first, before dipping into the murky swamp of programming on his own.
I shouldn't knock hot tubs, though. I spent the whole last week of April assembling one in my backyard, as well as helping building the deck around it. Lots of hammering, sawing, tapping tender digits with 20 oz. framing hammers. One day, when I finally get it working and the power upgraded, I'll probably enjoy it. Right now, my hydro service is so overloaded that when I turn on my computer, the street lights dim. So the tub is sitting there, full of pure Canadian ice water. Nice Maybe I should drop a few trout fingerlings into it.
Did you know that a 600-gallon tub weighs 6,000 pounds? So what, you ask? Well, I know a lot about hot tubs now, not to mention decks. During the week, I made about 800 trips to the lumber and hardware stores, trying to get enough wood, screws, nails, blades—whatever. I always bought one too few of everything, it seemed. I had the deck all planned out and printed, but I really needed a good estimating package, one that I could use to tally up everything, make one trip, and be done with it. I also needed to figure costs in advance to know for how much to sink into debt.
Sure, this could easily be done on a spreadsheet, but I want something more than just a one-shot deal (I may go into the deck-building business). A general-purpose template would basically require writing an entire hardware store and lumber yard inventory into rows and columns. Rather large, cumbersome and inelegant.
I need a better solution, something that prints out an estimate, not just rows and columns. A multi-window spreadsheet with cut and paste would work, but would still be clumsy.
What I need is a super-smart CAD program that can do the estimates based on the drawing. I'd be able to select an area and define it as 2x6 pressure-treated, 3/16-inch spacing and the program would figure out the area, then how much lumber it translates into, along with approximate number of nails (by the pound). Somewhere, maybe in another window, it would keep track of all the running totals: joists, trim, lattice, that sort of thing. Then all I'd have to do is throw in a few prices for the wood and a guess at the number of hours it would take, and voila!, an estimate.
That's a ways off, maybe not before Halley's comet comes around again. Maybe. In the meantime, I'm looking for something functional in a single application, something to write up shopping lists, figure costs and mark-ups and prepare estimates. I'm doing other renovations this year and need to do this often. Anyone have any suggestions? I haven't seen anything like it yet.
More importantly, such a program would be a godsend for the laptop ST (if, and when, it arrives). I know several contractors who want desperately to be able to do on-the-site estimates. This combination could push them into Atari's hands, saleswise.
While you're at it, I need something else too: an animal maintenance program. That's right, I want to track the daily food intake of my menagerie. I have two dogs, six cats and 13 rats (Natasha had babies). I also need to record weights, height, length, vet visits, illness, pedigrees, etc. Really. Everything, both the general stuff and the daily. Maybe graphs too; you know, weight changes, size, health quotas.
I know, I know. Why don't I just write these applications myself? Well, I would, if I had the time. And I may have to anyway. But I thought I'd ask first.
Last column, I mentioned a new game: Tetris, from Spectrum Holobyte. Since the game is slated for a full scale review, I won't go into the details here. But to make a long, long story short, it's great. One of the most addictive games I've ever played. Very hot stuff. Simple but demanding. And best of all, absolutely non-violent. Maybe the Russians will become the master programmers of the non-violent game. Wouldn't that roast a few socks in the White House? Never mind, just go buy one and see what I mean. I've reached level eight, with a score around 8,400, so far. A real tough haul to get further. That's all for now. Keep the letters coming, but please, no more bombs.
Ian Chadwick is a Toronto-based freelance writer with massive blisters and sore muscles from a recent encounter with construction. He lives beyond his means in a small house with his wife, Susan, and too many animals and spends his time trying to keep the neighbors' kids out of his yard.