Delphi – The Programming Language of Education

I recently read an article on the popular technical news site, The Register. It stated that a UK exam board was withdrawing C, C# and PHP from its syllabus in favour of “approved languages” - Java, Pascal/Delphi, Python 2.6, Python 3.1, Visual Basic 6 and VB.Net 2008. In addition, teachers planning to use Java were warned that many universities were dropping it from their first year computer science courses in a move that echoed a similar shift in the United States.

Just by looking at the number comments on the post, you can see the ruckus that the article caused.

I read the article and some of the comments, and then I reposted the link to Twitter to share with some of my developer followers. I was offered mixed reactions to the news.

As many of you know, I am not a developer, so I am presenting this opinion piece to you as a completely objective bystander. So what did I hear?

Argument 1 - Teach relevant languages for today’s employment opportunities.

Is this a facepalm moment for UK education?Naturally, many developers bought up the issue of relevance to today’s opportunities for developers looking for employment after university. Comments like “Who uses Delphi?”, “Why are we not preparing students for real life?” and “Using Delphi would put me right off a programming job!” were common, not only in the responses I received, but also in the comments to the article. Furthermore, questions were raised about the choice to use VB but not C#. “If one .NET language is suitable for teaching then both should be” said one commenter. “VB is such a terrible choice that it would be right off my list. It's terrible for exception handling, object orientation and it's dead”, said another.

Of course there were always going to be objections to each developer’s language of choice, but I wondered if C# developers really were more highly sought after than VB or Delphi developers.

With this being a decision taken by a British education authority, I did a quick search on a UK nationwide job site for “developer” jobs. I got 2033 results. I narrowed it down to C developers. I hit 282 possible results. I then looked for VB developers. I found 220 possible options. Finally, I searched for jobs for Delphi developers. I got only 17 results back.

Does this mean that Delphi is no longer a sought after programming language for UK developers? Perhaps. Does it mean that the job market in the UK is satisfied in terms of its roles for Delphi developers? Maybe. Does it mean that Delphi is a bad choice for students to study if they want to progress with their career? Judging by the other side of the debate, I doubt it very much.

Argument 2 – Studying programming is about problem solving and solution implementation.A thumbs up for education officials?

“The danger of teaching what the industry demands is that what the industry uses changes so frequently.” This pretty much sums up the other school of thought. Moreover, computer programming is not just about learning a programming language, it’s about being able to look a problem and find a solution. Coding that solution is arguably the last part of the puzzle – that’s just putting the theory into practise. 

Although Delphi, unlike its predecessor Pascal, was not designed for teaching, it is still held to be a stable language that teaches problem solving as well as programming. As one commenter on the article says of Pascal, “it was very useful for learning algorithms and structured programming. I have used my Pascal knowledge to adapt to other languages like Java and C. I also used the knowledge that I learnt from algorithms in Pascal to other disciplines.” The poster also goes on to point out that Pascal instils “good programming habits”. Surely in an economic age where technology is almost the backbone of our day-to-day lives, we should be relying on employers to recruit programmers who have a solid foundation in programming, one that will offer them a strong set of transferrable skills that they can implement and apply to a problem. I’m not sure we necessarily need a group of developers proficient in languages that could soon be regarded as “outdated”.

What do you think?

Were the exam board making a positive move towards better foundations for our future developers, or do you think that they have set back the next wave of computer programmers?

Leave your comments below and let us know what you think of the Delphi Debate.

5 comment(s)
John Prideaux

I think that the amount of churn in the industry contributes to the disconnect between businesses and academia. Even if the languages are rather similar (as with C# and Java), the supporting libraries and surrounding ecosystem differ and there will be an adjustment period. When hiring someone long-term, the loss of a couple of weeks (or even months) as an employee becomes proficient in the new environment is not a big deal.

With people changing jobs every couple of years though (whether it's due to the need for the developer to face new challenges or due to per-project hiring by the business), that amount of reduced/lost productivity is hard on the bottom line.

Having said that, if universities insist on using languages that don't at least support the concepts that current business languages employ, they run the risk of eventually cutting themselves out of the business of producing developers as people realize that dropping 10s of thousands of dollars on a piece of paper that doesn't even get you a job is a bad idea.

This tension will probably remain as the balance sways back and forth between the two camps.

3 June, 2010
daniel weisel

"Although Delphi, unlike its predecessor Pascal, was not designed for teaching, it is still held to be a stable language that teaches problem solving as well as programming."

Maybe this is true for Delphi; but I don't understand this school of thought when it comes to explaining why a language like Python is in the same list as Delphi. These languages are very different; and I don't recommend at all learning Python for "problem solving" courses, since it is less strict than a classic OOP language. Python came along to solve problems that arose in OOP languages, so learning Python before mastering at least one OOP language wont be wise (IMO).

I don't think it's wise to learn so many programming languages in the first year or two; one is enough. If you start mixing in allot of languages, students will miss out the main reason for Computer Science - automating tasks, and solving problems.

Also, if problem solving is the main goal here, why is .NET in the list? I use .NET allot just because it solves allot of the problems for me in advance; so teaching a language like VB.NET (or even Java) will not help in teaching the students how to solve basic problems; they will always find some sort of class that solves it for them.

And why is VB there? What does that have to do with OOP?

3 June, 2010
Peter Thorpe

This is at A-Level which most take between the ages of 16 and 18 so I don't think specific languages are too important. Most will pick up a range of languages and never really stop learning anyway.

A better thing would be to show the students a couple of languages with very different ideas such as Python and Java. So they don't get locked into one way of thinking.

3 June, 2010
Brendon Muck [DevExpress MVP]

I think you hit the nail on the head with your second argument. I've always believed that you can be a great programmer without knowing a single programming language. The underlying requirements to any programming task revolve around identifying and solving problems, not choosing a particular language.

Learning a foreign language requires more than just memorizing a list of vocabulary words in much the same way that learning how to develop requires more than just learning syntax. I could memorize a Spanish dictionary*, but that doesn't mean I'd be able to construct a comprehensible sentence without a familiarity with declensions or conjugation.

The idea that universities should focus on a "popular" language is silly. And it's the reason that I had to waste a semester learning Cold Fusion. Rather than put a focus on the client-server relationship and web development at a high-level, we poured over tasks that were specific to Cold Fusion and lost sight of the greater picture.

* There's actually no way I'd be able to do this

4 June, 2010
Steve Sharkey

I started programming in assembler and basic, when I did my degree I studied COBOL, Fortran, C, Assembler and Pascal. I have to say that Fortran taught me what bad habbits I'd picked up using BASIC, Pascal was an excellent language for teaching structure and formatting - I found it hard to write messy unclear code in pascal, I found C to be almost as fine grained as assembler but often without the self control that assembler demanded (I prefered Assembler for this reason!). COBOL was a real useful language and very productive when developing in a clients frame work - definitely a cut and paste job for much of the code. I now use VB.NET but as others have said I have been incontact with people who had memorised the book of syntax (I use intellisense!) who can't problem solve for toffee...

I think a broad basis is very important and (genral - A level degrees and the like) education should NOT be too tied to the technology of the day - these are long term learnings not conversion to C# courses. To take a short term view of things and offer courses based around todays technology is to loose site of what education is about (IMHO)

7 June, 2010

Please login or register to post comments.