?

Log in

No account? Create an account
Trevor Stone's Journal
Those who can, do. The rest hyperlink.
"There probably won't be any BASIC in the 21st Century" 
12th-Nov-2009 07:10 pm
dogcow moof!
More gems from 1986's Programmers At Work, this one from Butler Lampson:
That’s why I think the idea of computer literacy is such a rotten one. By computer literacy I mean learning to use the current generation of BASIC and word-processing programs. That has nothing to do with reality. It’s true that a lot of jobs now require BASIC programming, but the notion that BASIC is going to be fundamental to your ability to function in the information-processing society of the twenty-first century is complete balderdash. There probably won’t be any BASIC in the twenty-first century.

It's the 21st Century now, and the surviving BASIC dialect is Visual Basic, which is more different than mid-80s BASIC than it is alike. The heart of BASIC is to make it easy for people with a strong computer background to write programs. Depending on your perspective, this may be good or bad; BASIC and Visual Basic have been home to some truly groan-worthy code, but also let people accomplish many straightforward tasks more effectively. As the number of computer users has grown exponentially in the last few decades, the percentage of people who know a programming language has dropped significantly. In the 1970s, perhaps half of computer users in academic or research environments could write a program and most businesses that owned a computer had someone who could program it to some degree. Today, we've realized that programming well takes a style of thinking that doesn't come naturally to a lot of people in addition to an investment of time in understanding the ins and outs of specific systems. We've shown that it's more effective to have experts in programming learn new domains and write programs targeted to those than to have experts in domains learn how to program.

Lampson's bigger point is also insightful, but in a way it's wrong. It's true that the details of almost no program used widely in 1986 is relevant today[1]. The specific syntax of Microsoft BASIC, the keystroke shortcuts of WordPefect for DOS, and the location of hidden items in King's Quest are all irrelevant today. But folks like me who learned how to use computers before we learned how to drive have a cognitive model of computer interaction that's a lot more flexible and successful than folks in my parents' generation who get confused about the web and have no hope for social media. The medium is the message.

[1] Amusingly enough, this isn't as true for programmers. The C programming language, the vi and emacs text editors, and Unix-like operating systems have all evolved significantly in the last 25 years, but if you knew how to accomplish something back in the day, you can still do it now. Not to mention COBOL, the illness in the sleeper zombie army of legacy code.
Comments 
13th-Nov-2009 07:25 am (UTC)
COBOL has some often overlooked advantages, especially in large, transaction-oriented systems.

1. Not to relevant now, but was once: For every one good C programmer you can find, you can find 10 people who can write decent COBOL. That simplicity was one of the original objectives of the language, and it actually met it. Part of this is because the language is finite - there is no need to know about the umpteen gazillion classes in java.util which you need to know in order to get your program to run.

2. COBOL is fairly flat. No recursion, no pointers and it's really hard to unintentionally write obscure code.

3. Cobol is verbose. It encourages the use of descriptive variable names. Good COBOL programming practices would encourage (enforce) use of self-documenting variable names a long time before it was common practice in other languages.

4. COBOL executables are (relatively) small and fast. This is because the compiler generates inline code for most of those things you are calling other programs for in a Java environment, say.

5. COBOL behavior (at least the pre-OO versions) is well defined. C behavior is not. COBOL behavior is understandable by an average programmer. Java behavior may be well defined (I suspect there is debate on this, especially when you get into multiple active class loaders), but how many programmers really sift through the Java specification?

All that said, I never especially enjoyed writing COBOL. But I recognize that it had (and, in some instances, still has) a lot going for it.
14th-Nov-2009 05:53 pm (UTC)
All that said, I never especially enjoyed writing COBOL. But I recognize that it had (and, in some instances, still has) a lot going for it.

Clearly the language has advantages, since it had plenty of competition back in the day. Yet somehow it seems the entire programmer zeitgeist issues a shudder whenever COBOL is mentioned. Maybe the COBOL fans keep to themselves for fear of ridicule, but I've never heard anyone say "I love COBOL!" As the linked article concludes, COBOL: so vibrantly alive, yet … so very, very dead.

I suspect many industries have products that are widely used and universally reviled. Many of them might even be written in COBOL...
This page was loaded Apr 25th 2018, 1:20 am GMT.