Statistics Saturday: The Most Insignificant Programming Languages

  1. Pig BASIC
  2. Visual Logo
  3. S’more
  4. ++C
  5. Fivetran 77
  6. Hypocard
  7. Pilot
  8. pfKey 128
  9. Slot Car Construction Kit
  10. RedC
  11. VRML
  12. Eddie Haskell
  13. Sea Leopard
  14. Hupmobile
  15. Zestar
  16. Language Sixteen
  17. Subscript
  18. Turbo TeX
  19. HORSE
  20. Retweet To Enter And Win
  21. geoForth
  22. Ultrafont+
  23. Ironic Pascal
  24. Object Oriented Ubbi Dubbi
  25. QuickClam 2.8

Reference: Whatever Happened to Pudding Pops?: The Lost Toys, Tastes, and Trends of the 70s and 80s, Gael Fashingbauer Cooper, Brian Bellmont.

Everything There Is To Say About Programming A Computer In The 80s

The earliest personal computers begged you to program them. Or they would, except the earliest personal computers weren’t sophisticated enough to do that. They’d print out a line like ‘OK’ and hope you picked up the hint. It wasn’t much to go on. It was like the computer wanted to say “WhatEVER”, except the computers didn’t have enough memory to be snide. Please remember back then it was spiffy that the computer had sixteen colors, three of which were grey. Anyway there was fun with programming.

You could write your own programs. These programs would print out the word ‘POOP’ and then repeat forever, filling the whole screen. This took under a second and then continued until you got bored. If you became a more advanced programmer, you’d add spaces to the end of ‘POOP’. This way as the screen scrolled you saw lines fluttering around instead of a long, static, column. This was less boring. Some of us got the chance to be forced to use Logo in school. This was a graphics programming language that let you draw a square. If you were an advanced Logo programmer, you could draw a square and then another square at an angle. Sometimes computer magazines would run an article about the language PILOT, which was a hoax.

If you didn’t want to write your own language there were magazines with programs you could type in. I mean computer magazines. Well, maybe there were computer programs you could type in from, like, Tiger Beat or Family Knitting ’83. I never checked. Maybe I am prejudging the situation. Anyone with specific information otherwise I ask to write in to Mister Food care of your local TV station.

But the type-in programs were great. You could flip open the magazine, set it in front of your computer, and then have the magazine close right back up again. Oh, there’s an ad on the back cover for some game that’s like Wheel of Fortune except all the contestants are aliens. I’m sure the graphics looked as great as the advertisement’s airbrushed art, only with more grey. Well, you flip open the magazine again, weight the edges down with some other magazines, and get to typing! It would be hundreds, maybe thousands, of lines, but that’s all right. If you typed anything wrong it would only make the entire thing not work at all.

Some of the magazines tried to help you out. They came up with these automatic proofreader programs. This make a little checksum appear each time you enter a line. The magazine listed what the right checksums were. So when they didn’t match you could complain the automatic proofreader was broken. I know what you’re thinking: since you had to type in the automatic proofreader how did you know you got that right? We didn’t. We had to hope. In hindsight we probably should have spent more of the decade crying.

You didn’t have to type programs in. You could load them in from a storage medium. Trouble is the storage medium we had was cassette tapes. For short programs it was faster to type them in again. For long programs it was faster to hold your computer up to the night sky and let cosmic rays randomly trip memory cells into the right patterns.

The typing could get to be fun. In like 1987 I typed in SpeedScript 3.2. It was a word processor that included advanced features. If you ended a paragraph by hitting shift-return, it put in a return, a blank line, and a tab to get the next paragraph off to a rousing start. I’ve spent the last 32 years looking for another word processor that would do this for me. It had other features, I assume.

A couple months later I found the magazine with SpeedScript 1.0, a worse version. And spent an afternoon typing that in because, hey, what else am I going to do? Not crush my median nerve against the carpal tunnel? But it was all worth it: after typing in SpeedScript 1.0 I could see for myself that it was kind of like SpeedScript 3.2, but not as good. I think it still had the shift-return thing, though. And I know what you’re all wondering: Wait, where was SpeedScript 2.0? I’ve spent 32 years fuming about that.

But don’t think all this typing didn’t have lasting effects, even if I haven’t yet completely destroyed my wrists. To this day, when I open a program and then close it right away I think about if this were 1988. I’d have had to spend like eighty minutes typing in that program and I just threw it away, only the modern version of it was good at its job except for the shift-return thing. Then I feel guilty.

So to summarize, I understand why everybody treated me like that in middle school.

How To Program (Computers)

The only hard part of programming computers is you’re expected to make a computer program. And even that wouldn’t be so bad except for the expectation the program will work. There’s where programming falls down. Economists say this is from purely rational market motivations, because economists think it’s very important things result from purely rational market motivations and they’d feel awful if they ever found something that didn’t. In just the past month economists have identified purely rational market considerations behind how buses never run from anywhere anyone is to anywhere anyone wants to go, potato chips which resemble celebrities, the way that nobody has correctly identified sarcasm since 1986, the Balmer spectrum of Hafnium, and certain highly educated pebbles.

In this case, the economists have a point, and don’t think they aren’t all smug about it. Imagine you were a computer program that worked. You’d be put to work, likely at impossible times such as 5:15 am, instead of doing what you’d like. What you’d like would be trying to remember old cartoons you’re pretty sure you didn’t make up. To get to do what you want instead, you have to do the stuff you’re expected to do wrong.

And so programs have bugs. For example a program to alphabetize the boroughs of New York City lists “Queens” and then drives the computer off a cliff, causing a steam locomotive in 1908 to explode. This gives the program hours to establish that yes, Gary Coleman was an angel this one cartoon, and is he dead or was that somebody else? It also gives physicists something to argue over, and helps historians. These days the Haymarket Square Riot is understood to have been triggered by beta-testing of Microsoft Access 2016, with the real tragedy being that the upgrades could have been handled in a Service Pack. Also all the death.

Now to practical examples. Begin with a good software development environment. There are none. But there are neat packages which turn words different colors and send code flying all over tab stops. This is soothing to the eye. These development environments adapt their color schemes to the seasons. They’ll show more words in red and green around Christmas, purple and green around Easter, green and green around June, and so on. This way you can easily tell what time of year it is. It is too late in the year.

Let us use as demonstration the famous “Hello world” program, because that never demonstrates anything useful. This can be as simple as a line to the effect of:

System.out.writeln("Hello world");

As your development environment puts “System” in blinking blue and white, celebrating Greece’s Independence Day, you can compile and try running it. If it were to run, the program would justly fear being put to work by economists, therefore, we get a series of errors like:

  • Package ‘System’ cannot be found.
  • Thingy ‘out’ does not exist.
  • File cannot be found.
  • Function ‘writeln’ not defined in this context.
  • ‘System’ is a little fishy too.
  • We changed that ‘l’ to a lowercase ‘one’ to look better.
  • File cannot be written.
  • Not in that context either.
  • File cannot be read.
  • We’re none too sure about this ‘world’ thing either.
  • We’re pretty sure it’s nowhere near Greece’s Independence Day.
  • File cannot be.
  • Don’t think of bringing up that context either, that’s right out.
  • We want to punch an economist.
  • Does Greece even celebrate an Independence Day?
  • “Being” is an Aristotelean property inappropriate to the complex post-Alfred-Korzybski world.
  • “Hello” still feels slangy.
  • Put that context down, you’re getting fingerprints on it.
  • Development environment wants a hug.
  • Not from you.

More advanced environments may also be a little snarky about the alleged grammar of “Hello world”. Just try diagramming that sentence, see where you get. Turn off the prescriptivist settings, which could be found under Edit/Tools/Preferences/Checking/Grammar/Advanced, if you were using a different version of the environment from what you are, and from what every person offering advice on has.

Your environment might list what lines raise the objections. If you’ve programmed well enough, these numbers will have nothing to do with where the problems actually are, or with the number system. Go to any line you like, for example number square-root-of-seventy-A, which is blank. Comment out all the blank lines, then the non-blank lines, and soon you will trigger Wat Tyler’s Rebellion. Now step away and sulk until the office closes and that’s your work accomplished. And if you look in your hand you’ll see your card is the six of clubs. Am I not correct?

Another Blog, Meanwhile Index

Investor confidence was badly shaken by a 6:30 am work e-mail reporting that the water was perfectly safe to drink, bringing up previously unsuspected fears of the safety of the water and its drinkability, which is what they get for not leaving the e-mail until the middle of the day or something.


Once Again InfoWorld Leaves The Real Story Untold

I am on a daily mailing list of information-technology-related news references for a good reason which I do not know. I don’t know when I signed up for it or why. But it’s interesting just often enough I don’t feel like unsubscribing. For example, here’s something from yesterday’s mailing. It’s a real page-turner of an article about plans for more frequent but smaller updates to the official Javascript standards. That’s the computer language that makes it possible for every web page to take forever to load, and then stuff grows and shrinks when you’re just trying to read a freaking paragraph already. Also it lets people argue whether Javascript is properly speaking a language right before you stop talking to them forever. I was just amazed to learn there were standards for Javascript. I had never suspected it followed any rules. But according to the end of Paul Krill’s article:

Sometimes, a feature can get a thumbs-up for inclusion and then be cast aside. This happened with object.observe, for observation of changes to objects. It had been planned for inclusion this year but was withdrawn due to a change in the technical circumstances around it.

(I should explain for non-programmers what they mean by objects here. They mean “objects” in the computer sense. It’s not anything like a real-world object, such as the “buttery cream spread” that fast food places give you to smear on a potato or a biscuit. A computer programming “object” is an imaginary thingy that programs can make do stuff or have properties. Whereas “buttery cream spread” is just a promise that this is a thing with mass and color and a kind-of-definite shape, which you can place into your mouth and consume if you think that’s going to make you any happier. To computer programmers this would be an “interface”, which is a kind of object that is even more imaginary.)

And Krill just leaves that point there, as if it were enough. What change in “technical circumstances” could have removed the need for an object-change-observation feature? For that matter, what’s a “technical circumstance”? More to the point, what isn’t a “technical circumstance”? I suppose it wouldn’t be a “technical circumstance” if they were all set for the object-change-observation procedure announcement and then they couldn’t get on stage because an offended cow blocked the hallway. That would be more of a “natural correction”, of the problem that they couldn’t just go down the hallway? No, not if the cow was offended enough to chase after them. But I bet the cow would be offended about how the feature was supposed to be implemented, so there we go right back to a “technical circumstance”.

I bet the “technical circumstances” excuse was a cover. And that it all goes back to announcing the feature. I figure it was like when you decide you’re going to give your book report presentation by bringing in a cute puppet and having it describe the book from the perspective of a cow that witnessed most of the story. And then you run into the “technical problem” that the day of the presentation you get Doing Something Novel Stage Fright. That’s like normal stage fright, plus you’re scared everyone will laugh at you forever. And even though everybody would love you for doing the only non-boring presentation ever you chicken out.

So you abandon the puppet at the last minute. And forget that you wrote your script in character. So you have to stagger on reading it with one or two lines done in kind of a funny-ish voice when you kind of remember the gimmick. So you just feel terrible all through it and for weeks after, and everybody else is bored except when they’re confused. I bet this is what happened to the object.observe Javascript feature change proposal. They were all set to add this thing that I guess would have helped somebody with their objects that need observation and they got scared. “Technical circumstances” indeed.

But what puppet would they have planned to read about a Javascript object method feature change? My guess: the Folkmanis hand ostrich. He’s totally got the right body type for it, what with having a great beak that flaps around well and having wings you can slip a hand into for that Muppet-scratching-the-chin thoughtful effect. It would’ve been great if they hadn’t got scared.

I hope this answers all questions you had about why there isn’t a standardized method for the observation of changes in Javascript objects. You’re welcome.

When The Car Wash Changed Management

I was passing one of those self-service car wash stations and noticed its sign proclaimed it was “BACK UNDER OLD MANAGEMENT”. Possibly it declared the back-ness to be proud. That’s the normal emotional tone to put on that sort of declaration. But I was busy with driving and all that, and then wondering: those things have management? It’s a self-service car wash, just a concrete overhang and a bunch of coin-operated hoses of varied content. Having management at all seems to risk over-administrating it, even if all you do is stop in once a month to confirm the place isn’t currently on fire in important ways.

But there must be management at all, if nothing else to make sure that once every two months the sign proclaiming this to be a self-service car wash is turned off for four hours, thereby establishing that the sign isn’t some public feature just there to light the way but rather a private service that can be turned off at will or when the bulb burns out. So I guess that’s where management comes in at all, and can get changed, and go on to mess things up so badly that the old management coming back is worth crowing about. Still I’m imagining how the new management’s failure unfolded.

Surely new management began optimistically, with a sign proclaiming “NOW UNDER NEW MANAGEMENT”, though probably not saying who the new management was, since that would add an embarrassing personal touch to the place’s existence. New Management probably declared optimism and good cheer and maybe even an amnesty for people who abandon one-quarter-filled McCafe cups on top of the vacuum cleaners. That showed how poorly New Management understood the community, that they would interpret as slight littering their clientele’s ongoing public art project about consumerism and Shamrock Shakes. The customers wrote hurtful things about New Management in the local art journals, not ignoring the irony that since they had no idea who New Management was, they might be sharing a line at McDonald’s behind someone who’s somehow making buying a small coffee a difficult transaction, all jollily sharing one of those inexplicable confusing things about life.

Perhaps then New Management tried to make amends, rotating the concrete planters so as to show a slightly less moldy side to the street without actually putting any plants out to die in them. And the clients responded with tentative friendliness, especially when a rumor went around that the machines were now taking Canadian coins. Due to a programming defect that manifested itself with a new firmware update, because surely we’re in an age where self-service car wash change boxes need firmware updates, the machines were indeed taking Canadian and all other kinds of coins, sneaking into the patrons’ backseats and sometimes sending out remote units from the vacuum cleaners — those flimsy plastic heads detach for good, alarming reasons — to take any suspicious coin or coin-like items that the patron might have any dealings with. That would get sorted out in a weekly bug fix, but not before the community had lost literally several wheatpennies and a token for a Dance Dance Revolution game from a family fun center just outside Saginaw, Michigan.

Sure, a mis-step, but really the blame falls on whoever missed an obvious car-wash-automated-kleptomania bug in the firmware code update. Nobody knows who the programmers were or why they missed it. They might have been distracted by the weirdly slow line at McDonald’s. New Management tried restoring peace by setting the machine that dispenses greasy thin cloth towels for “drying” the car on free for a couple of weeks, then stopped. New Management tried drawing people back to the place by adding the scent of that thing they use to make medicines taste like cherry into the water. This would finally give patrons with sore throats a socially acceptable context to lick their side mirrors, as they’d be fresh-washed, but the plan goes wrong when new cars are attacked by swarms of coughing bees. At this point Old Management came back around, sighed, and offered to swap the self-service car wash place for something more New Management’s speed, like a disconnected telephone booth.

New Management agreed, and went to get a small McCafe coffee to feel better.

A Heavenly Autocomplete

In my normal job I do computer programming stuff, so I spend a lot of time annoyed with computer programming stuff. Here’s a secret about being a professional computer programmer, though: when stuff doesn’t work you can type it into a search engine. And search engine autocompletes are great because they so often guess what you wanted to know before you even finish the question, adding that little touch of existential despair to looking up where it is that great music sting from the old CBS Special Presentation teaser came from, because now you know you’re not even in the first 25,000 people to wonder about that today.

Anyway, for the computer programming stuff, I’ve been busy since Wednesday trying to find a sufficiently large cudgel to bash in Visual Studio 2013, which is a program that lets you make other programs as long as you can make it behave. Since it’s not behaving, I went to DuckDuckGo because yeah, I’m that guy, and tried to get a hint about the trouble’s source.

My text: 'visual studio 2013 error list not showing other'; autocomplete: 'others god's love'
By the way, I still haven’t got my problem fixed.

I admit, somehow, I had failed to consider that the problem might be that Visual Studio 2013 didn’t feel the touch of God’s love. And now I have to wonder if my problems getting the hang of Objective C have been theological in origin.

Why Programmers Sometimes Punch Computers

So. The project would be really great if it were to make use of the slick, speedy capabilities of GeoPackage. GeoPackage 1 is beautifully documented, with slick interactive demonstrations of every nook and cranny of the system. It depends on OtherPack version 3, produced by a different programming group. OtherPack version 3 is no longer distributed because OtherPack 4 is so very much better. GeoPackage 1 can’t work with OtherPack 4, but, GeoPackage 2, which is lurching towards alpha release, does. GeoPackage 2 doesn’t have any documentation but there are many points it has in common with GeoPackage 1 and it even has a dozen demonstration pages showing how neat it’ll be if it ever finishes working. Oh, but, GeoPackage 2 actually only works with OtherPack 4.0 and 4.1. The OtherPack group just got OtherPack 4.2 released and GeoPackage is sadly incompatible with the new release, although this isn’t worth mentioning anywhere except on a desperate-plea-for-help web site where the original question is accused of being “terribly vague”.

See previous comments about the need to roar indistinctly at the computer.