Regarding programmers, monkeys and probability

Today, 7 January, we celebrate International Programmers Day. According to some sources, at least – there is also a Programmer’s Day happening on the 256th day of the year, 12/13 September, depending on whether it is a leap year. In a way the 256th day option makes more sense, as 256 is 2 to the power 8, which is the number of distinct values that can be represented with an eight-bit byte – something sure to amuse the programmers among us.

What makes 7 January an amusing date for a day dedicated to programmers, is that this is also the day that the French mathematician Emile Borel (7 Jan 1871 – 3 Feb 1956) was born. Borel, a pioneer in the field of probability theory, is the man who proposed the famous thought experiment that if you allow a monkey to randomly hit a typewriter’s keys, it will, with absolute statistical certainty, eventually type every book in the French National Library (known as the ‘infinite monkey theorem’).

The infinite monkey theorem, as applied to programming. (© All Rights Reserved)
The infinite monkey theorem, as applied to programming. Considering the quizzical look on his face, I’d say he’s just created some low-level assembly code…
(© All Rights Reserved)

Applied to programmers, does this mean that, if we let a monkey loose on a computer keyboard it will, given enough time, eventually write the code for every operating system and every computer programme ever developed?

I guess so… Which would support the often held opinion that people in IT get paid way too much… 🙂

Just kidding – of course I have the utmost appreciation for the computer whizzes who keep all the systems around us going. And when you think about it, there is almost no aspect of our daily lives that does not, in some way or another, have an aspect of programming involved in it. We certainly live in an age where IT is super-pervasive, and as such it makes perfect sense dedicating a day (or two) to celebrating the contributions programmers make in our lives. Good on you, each and every one!

Celebrating International Shareware Day

Today is a day to celebrate thousands of computer programmers frantically coding away at their latest killer app, who end up essentially giving it away in the hope that someone will show enough appreciation to pay them for it – today, the second Saturday of December, is International Shareware Day.

Celebrating all the programmers coding away at the next useful app.(© All Rights Reserved)
Celebrating all the programmers coding away at the next useful app.
(© All Rights Reserved)

Unlike open source software, ‘shareware’ is a proprietary software model – the author retains ownership of the programme and the code, and often scaled down versions of commercial software applications are released as shareware. While you can use the software without paying, the idea is that if you find it useful, you should pay, or upgrade to the full, non-free version of the software. Some shareware are also only made available for a limited trial period, after which users are expected to pay to continue using it.

Another concept closely related to shareware is ‘freeware’, where the software is made available for free without an expectation of payment, except perhaps for donations to the author.

The first piece of software called ‘freeware’ was PC-Talk, a telecommunications programme created by Andrew Fleugelman in 1982, while the term ‘shareware’ was first used with the programme PC-Write (a word processing tool), released by Bob Wallace in early 1983. So in a way this year effectively represents the 30th anniversary of freeware/shareware.

Very few shareware and freeware downloads are ever paid for, meaning that the chances of sustaining yourself on shareware income remains fairly slim. This is sad, because this mode of software production has resulted in some wonderful software tools being made available to users around the globe – virus protection software, all kinds of computer utilities, and much more. Lack of financial returns also means that many shareware and freeware projects are abandoned, not updated or not supported.

International Shareware Day was created to remind shareware users about the value they have gained through their use of these programmes. And to perhaps inspire them, in the spirit of the upcoming festive season, to send off a few payments to the authors of their favourite shareware apps.

It may not happen, but it’s worth a try…

John Backus and the development of high-level computer programming languages

Today we’re celebrating the birthday of John Backus (3 Dec 1924 – 28 Oct 1988), American computer scientist and the leader of the team who invented the Fortran programming language (at the time called FORTRAN) while working at IBM in the mid 1950s.

Fortran was the first so-called ‘high-level computer language’, which means it was capable of converting standard mathematical formulas and English-based expressions into binary code used by computers. The language is particularly suited to scientific computing and numeric computation. Over the years, many improvements were made to the original Fortran language, with versions known by a sometimes strange series of numeric identifiers – FORTRAN, FORTRAN II, FORTRAN III, FORTRAN IV, FORTRAN 66, FORTRAN 77, Fortran 90, Fortran 2003 and Fortran 2008.

FORTRAN was the first widely used high-level computer language, providing an interface between equations and expressions understandable to humans,  and binary code used by computers.(© All Rights Reserved)
FORTRAN was the first widely used high-level computer language, providing an interface between equations and expressions understandable to humans, and binary code used by computers.
(© All Rights Reserved)

Despite being one of the oldest computer languages, it has been one of the most enduring, and after more than half a century it is still a preferred language for computationally intensive applications such as weather prediction, computational fluid dynamics and finite element analysis. One of the reasons for Fortran’s longevity is that some of the later Fortran compilers in particular are capable of generating very fast and efficient code, which can make a big difference when solving large, complex mathematical computations. It is still the primary language for used on many supercomputers, and many of the floating-point benchmarks to test the performance of new processors are still written in Fortran.

As a high-level language, Fortran has also provided an impetus for the development of numerous subsequent computer languages such as ALGOL, COBOL and BASIC.

The IEEE awarded John Backus the W.W. McDowell Award in 1967 for the development of FORTRAN. He also received the National Medal of Science in 1975 and the ACM Turing Award in 1977 for his contributions to the design of high-level computer programming systems.