If you are a programmer, you might remember writing your first Hello World program. It's a program that does nothing more than display a message on the screen that says "Hello World".
Where did it come from?
This is a well-established programming tradition. A Hello World program is simple. It illustrates some basic concepts. It's a useful way to check that the process of coding works:
Step 1: Save your source code. Check.
Step 2: Compile your code. Check.
Step 3: Execute your code. Check.
Or just 2 steps, in the case of an interpreted language like Python.
I've occasionally wondered how the Hello World tradition started. Today I googled it. To be honest, it's not very interesting. It seems to have been started by Brian Kernighan at Bell Labs in 1972. At the time, he used it in an introduction to the B programming language. And then he used it in his documentation of the C programming language.
In case you were wondering, B was the precursor to C. C is the foundation of C++. And yes, there is a D language, although it's far down the list of popular languages according to the Tiobe index.
The challenge of learning to program
Our focus has always been on training experienced developers. But years ago, at the request of a client, we created an Introduction to Programming course.
There are many challenges with teaching people to program, particularly adults. Nobody wants to learn to walk: we want to run immediately. And preferably jump hurdles as well. Unfortunately, life and learning and programming don't work that way.
That's one reason we now have 3 variations of the course: Introduction to Python, Introduction to Java and Introduction to JavaScript. In the past week, I've been revising the manual for the Introduction to Java Programming course. Personally, I don't like Java as a first programming language. There's an awful lot of overhead just to print out "Hello World".
Time to simplify Java
Like all languages, Java has evolved - particularly in size. From 212 classes in 1996 to over 4,000 in 2015, and still growing. You don't need to know what a class is to get the idea.
So I was surprised when Lewis told me about a new enhancement proposal for Java. He wrote about it in this week's Java tip. (If you're a Java programmer, you can subscribe to his Java tips on the website).
The goal of the proposal is so that “students can write their first programs without needing to understand language features designed for large programs”. After all these years, some one wants to make it easier to learn Java! I think it's a great idea. I just wonder why it took so long.
It's only a proposal. So if you want to learn to program using Java, you're not going to benefit from it yet.
Many people try and give up when learning to program is not as easy or quick as promised. I'd love to hear your experiences of learning to program, both good and bad.