Thanks to Derek Keats, it has emerged that the South African Department of Basic Education has selected Microsoft Office as the exclusive teaching environment for the high school computing course, and Delphi as the programming language for the programming subject.

There’s so much obviously wrong with this decision that it feels degrading to even participate in the debate. Honestly after reading Circular S9/2013 I physically pinched myself to check whether I was dreaming. Unfortunately I was not.

Effectively, schools using OpenOffice, LibreOffice and older versions of Microsoft Office will have to upgrade to Office 2010 or 2013. Schools currently teaching Java will have to switch to Delphi from next year so that the 2016 Matrics can write the NSC exams. Both of those software packages carry proprietary, closed-source licenses.

This while the SA Government continues to boast about its Free and Open Source (FOSS) Policy. Actions speak louder than words, folks.

This “Delphi” thing

Embarcadero Delphi is a Windows (only) application that compiles programmes written in the Object Pascal language. Depending on your age, you may have been taught Turbo Pascal at school in the 1970’s and 1980’s. Pascal itself is a descendant of a language called ALGOL 60, developed around 1960 for mainframes.

The company that currently owns Delphi does not charge license fees to South African students. But this is hardly a guarentee in perpetuity, and Delphi has changed corporate ownership a few times in the past decade.

On the other hand, consider the free and open languages that are thriving in academic environments, scientific applications, mobile, web, enterprise and embedded:

  • Javascript: Free and built into every web browser.
  • Python: Free, Open Source. Massively popular across industry.
  • PHP: Free, Open Source. The language behind many websites (like those running Wordpress) and web applications.
  • Java: Free, Open Source. Android apps are written in a dialect of Java.
  • Objective-C: Free via the Mac App Store, builds on C/C++. iPhone, iPad and Mac apps are commonly written in Objective-C.
  • Ruby: Free, Open Source. Many websites and web applications use Ruby. The free and Open Source Ruby on Rails web framework is very popular.
  • C/C++: Free, Open Source implementations. Hugely powerful and widely used in Operating Systems, Games, Drivers and Server software.

Teaching programming

While I am suggesting that Delphi is a poor choice of language, its not because its old, unpopular, outdated or boring. Though, those reasons may be valid. My problem is that Delphi is a closed-source, commercial, proprietary software package that by definition of its business model, needs to keep people using Delphi and Delphi alone.

I taught IT to High School students for two years during my Computer Science degree. Our school happened to use Java… but I frequently exposed my class to other programming environments and languages. Because that’s how the world works. Humans communicate in a multitude of different dialects and languages.

Its astounding to me that, in 2013, a national department of education can reach the decision to mandate a single programming language. Across the world, education systems are embracing a “use any language” philosophy and instead focusing on assessing how students use that language to solve problems.

No professional developer today is spending all their time in one programing language. In fact, even a junior web developer would regularly find themselves programming in HTML, CSS, Javascript and PHP or Python simultaneously.

Where to from here?

It is clear to me that the IT subject is no longer a viable choice for children interested in computers and programming. In attempting to defend their position, the DBE admitted that:

“Only 0.9% of Grade 12 learners take IT and 9% of Grade 12 learners take CAT.”

As passionate members of the IT industry and concerned educators, we need to take matters into our own hands.

There’s a fledgling community of programming courses and workshops for children. Some of them are offered regularly, others are short courses. We need to create more of these, and attract children to try their hand at programming apps, websites and online services.