Readability in Programming Languages

Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

Readability in Programming Languages

  • Comments 37

I saw a side by side comparison of a bunch of scripting languages online recently. Scripting Languages: PHP, Perl, Python, Ruby My first, and second reaction was yuck! Now I have my biases – biases which may  not be shared by others of course. But I like readable code and for me anytime I see a special character (anything not an alphanumeric) it slows me down. This got me thinking about where we are going in design of programming languages? Are we moving forward (what ever that means) or backwards or just sideways?

Back when I started programming close to 40 years ago the big three programming languages were FORTRAN and COBOL with an up an coming language called BASIC. FORTRAN (short for FORmula TRANSlation) was used by mathematicians (my math major brother had to learn it) and scientists. COBOL (the B stands for Business) was used for business applications. BASIC was a teaching/Learning language that was spreading into business. COBOL was both loved and hated by different people for its wordiness. But it was at least understandable. Take the loop below:

PERFORM VARYING WS-BOTTLE-NUM FROM 98 BY -1
               UNTIL WS-BOTTLE-NUM < 2
END-PERFORM

Pretty close to an English sentence. Compare that to this sample for a C-style language (C#)

for (WSBOTTLENUM = 98; WSBOTTLENUM >= 2; WSBOTTLENUM--)
{
}

Which one is more obvious? Pretend you are not an experienced programmer.

BASIC (Visual Basic in this case) is somewhere in the middle.

For WSBOTTLENUM = 98 To 1 Step -1
 
Next

The step – the counting down – is more easily understandable for me at least. Now let’s take a look at something very simple. k = i / 10;

This drives beginners crazy. What’s going on here? Sure we programmers know but a lot of beginners struggle with which direction the operation is going. Compare that to the same code in COBOL

divide i by 10 giving k

Wordy? Sure, but at least even a beginner can read it. Now I am not arguing that we should all go back to COBOL though honestly with modern IDEs and features like Intellisence it would be a lot easier than it was back when I was typing out punch cards. Rather I am suggesting that beginner languages can and probably should be more wordy rather than more obscure – that English is easier to pick up than “what does # in this programming language mean?”

Just for fun, if you want to see what different programming languages really look like visit the 99 Bottles of Beer site.

This Website holds a collection of the Song 99 Bottles of Beer programmed in different programming languages. Actually the song is represented in 1434 different programming languages and variations.

Somewhat related posts:


  • One point totally missed here, is that languages that read easily, are debugged and supported more easily.

    Having the 'privilege' of maintaining old code, the number of logic errors is very high in 'new' code, and the cost of detecting them (the huge technological debt of many organisations) is gut wrenching.

    Just look at the errors in this article for a minor bit of code !!!

    If you can have a non expert read what is supposed to be going on in code, they can pick up logic, but more importantly, BUSINESS errors, cheaper.

    COBOL was intended for Accountants and Auditors - not Management, to reviews the logic - because Programmers often don't understand the business logic - that's why you have other professionals to design the software.

    You DO have all your software designed, don't you ????? Hmmm ?

  • Did anyone, other than me, catch that?

  • Your are right sir. cobol seems more readable. but for experienced programmers c style makes reading more faster.

  • There was another great languge: PL/I. It was not verbose, but clear, much in a way C is now.

    And only a programmer who never wrote in COBOL would miss "divide i by 10...." statement

  • My previous post had to do with a "newbie" learning a programming language for the first time. Now for those who enjoy writing Javascript, JAVA, and other "C"-like languages might want to try APL. In APL, you could write a one-line program that would, literally, take a few hundred lines of C code. It would also give you a chance to brush up on your Greek - becasue it woukld probably be "Greek" to some of you!

  • The issue has to do with verbosity and mastery.  COBOL and BASIC programs are verbose, long, and do less per line than a C or Python program - in the end, its quite inefficient.  Good for instruction, perhaps, but inefficient.

    I was always under the impression that languages were on a curve.  I learned BASIC, then moved to C and its ilk, and now I'm learning a bit more about functional programming and Haskell.  In the end, moving from English-esque to character-esque.

  • @KWKonrad: I noticed that after posting as well. Mea culpa.

Page 3 of 3 (37 items) 123