Which programming language should be taught in South African high schools?

HideInLight

Expert Member
Joined
Oct 31, 2006
Messages
4,350
Struggling to find a job atm,
I would say I wish I did Java, C++ and C# only looks worth it after you've gotten that 3 years experience.
Java looks like the preferred language for getting into the job market.
 

HideInLight

Expert Member
Joined
Oct 31, 2006
Messages
4,350
There is already a problem if this is being viewed as some of job training. Someone who cannot transition to another language is ultimately doomed.

The problem is no one seems to want to provide the time for the transition.
 

Noah

Expert Member
Joined
Jan 21, 2008
Messages
1,539
Struggling to find a job atm,
I would say I wish I did Java, C++ and C# only looks worth it after you've gotten that 3 years experience.
Java looks like the preferred language for getting into the job market.

It's not hard to transfer knowledge from one language to another.
 

HideInLight

Expert Member
Joined
Oct 31, 2006
Messages
4,350
It's not hard to transfer knowledge from one language to another.

Try getting a job at a company when you don't have that other language on paper and no prior company work experience.
Btw what can I do to get Java on paper?

Unfortunately without a stable income it's hard to study further since you also need to take survival into account...
 

aleksandar

Expert Member
Joined
Jun 14, 2014
Messages
1,442
It is all about learning concepts and principles.
As starting point Python would be a good choice, decent support libraries, few decent dev envs (can be integrated with visual studio).
Then they could transition to c#, JAVA or even c++.

Not sure what is hot now but I believe even with python only you can find employment and be useful.

One of things that we forget is how proficient is teaching staff. Do they have decent c# or c++ resources?
You can learn to write @$@#$ code in any language.

Regarding Delphi, believe it or not it is still used, not big following like before but still there.
For this purpose I would skip it.
 

HideInLight

Expert Member
Joined
Oct 31, 2006
Messages
4,350
Pascal made me hate programming.
When I got to use Delphi for the first time, I just hated Pascal instead.

Having a GUI made the world of difference, where you could drag over a button, label and edit windows and actually make something happen.

Visual programming helps a lot more than just "hello world" in a dos window. Unfortunately I went the study at home approach, don't take great teachers for granted.

But java will allow you to make apps, play with webpages, something that's gonna be relevant for a long time to come. Things you can do on your own and with small teams.

All the bigger projects seem to be with C# and C++
 
Last edited:

Swa

Honorary Master
Joined
May 4, 2012
Messages
31,217
Nobody uses Delphi anymore, except in self defense. Most widely used languages are:

1. C
2. Java
3. PHP
4. JavaScript
5. C++
6. Python

SOURCE: http://langpop.com/

I personally love C/C++, but they're not easy to learn. PHP is an inconsistent mess and encourages bad coding practices. Java is widely used and easy to learn. Python is even easier. Both are free.

So teach Java and/or Python. IMHO Java is a "safer" bet because it has been widely used for a longer time and it appears to be much more widely used in SA.

/THREAD

EDIT: I sort of skipped JavaScript. Mainly because it's syntactically so dissimilar to everything else. At least if you know Java, C, C++, C# and even Python (the latter, to a lesser extent) will look somewhat familiar.
I hear you but Delphi is still used quite extensively with an extensive code base. It is a traditional teaching language and it's because of that legacy. I've seen quite a few apps written in Delphi. Only other languages I've seen are C/C++. Granted it may not be as popular as it was but I don't think it will ever disappear. Don't look just at the job market or what's used in your profession. In the larger programming community it is still a popular language. The only other languages as popular are C/C++. It's odd you don't rank them together.
 

noob_saibot

Well-Known Member
Joined
Feb 14, 2014
Messages
280
If the (genuine) goal is to produce better technical thinkers who can break down problems, draft up solutions and then apply some type of programming code to it, Python would be the number 1 choice. Why?

Simply because it translates the quickest from pseudo-code (compared to Java or C#).

Most of the arguments here are biased towards their industry-needs (lets not pretend that Java is what the varsity-factories push out for those mundane bank jobs & that C# is hiding behind that giant wall of not knowing what is underneath - Microsoft Windows).

I don't want to bash the value of Java or C#. Economically, they are both superior to Python/Ruby/Javascript, simply because of enterprise-support behind them (as well as Java making its way to Android).

The difference between opting for Python over something like Java is that Python can be taught to literally anyone (with enough technical acumen), quicker than dealing with the syntax nightmares that will creep up when trying to get simple "hello world" type applications out there in Java (without importing the 50 Java libraries needed to make it work without errors).

This is the reason why non-CS degree-majors in varsities overseas offer their students Python as the introductory language, because not everyone is going to be a software engineer (like most of the biased opinions here) and the technical applications of programming stretch much wider than coding apps/websites (lets not forget how big Python is in Data Science, server automation, cloud-services and even towards things like embedded programming - there is literally now Python support for micro-controllers).

This discussion is mostly a flame-war to me though. None of us will ever go far enough to stand in front of the Do(B??)E to say "there are better ways to teach programming, so can you please stop your shady deals with proprietary companies to use their programming language and embrace some form of an open-source ecosystem and support a language like Java or Python".

Let us also not forget another important point: If you are skilled enough to know Java/C#/X-valuable-language, why (or how long) would you stay to teach when you could be doing your mundane job of building secure bank forms for R500K per annum?

I'd favour this order: Python, Java, JavaScript, Ruby (anything that isn't locked-down and being paid-for through million-rand contracts would do as well).
 

MartinMorrison

Senior Member
Joined
Jul 27, 2005
Messages
813
This discussion is mostly a flame-war to me though. None of us will ever go far enough to stand in front of the Do(B??)E to say "there are better ways to teach programming, so can you please stop your shady deals with proprietary companies to use their programming language and embrace some form of an open-source ecosystem and support a language like Java or Python".

I have already, and will again in the future. In fact, I submitted a lengthly argument against Delphi to that effect which was taken up verbatim by KZN and WC to argue their case at a national level, together with Oracle. It's not impossible and there are people within the government that support this.
 

Solitude

Executive Member
Joined
Jul 23, 2008
Messages
7,312
I hear you but Delphi is still used quite extensively with an extensive code base. It is a traditional teaching language and it's because of that legacy. I've seen quite a few apps written in Delphi. Only other languages I've seen are C/C++. Granted it may not be as popular as it was but I don't think it will ever disappear. Don't look just at the job market or what's used in your profession. In the larger programming community it is still a popular language. The only other languages as popular are C/C++. It's odd you don't rank them together.

I'm sorry Swa, but we are developers. You clearly aren't because your posts are uninformed. I used to be a Delphi programmer many years ago. I then moved to C and then to C++ and then to C#. Us developers know that Delphi isn't popular. It's user base is declining year by year.

Here's a website that tracks programming language popularity:
http://blog.codeeval.com/codeevalblog/2015#.VWP9YUbiukw=

Here's another:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

In the larger programming community it is still a popular language. The only other languages as popular are C/C++. It's odd you don't rank them together.
It's odd that you do. We know that Delphi isn't popular and evidence supports us. You have seen some Delphi programs and think the larger programming community prefers Delphi. It just doesn't work that way. You can't say what developers prefer by basing it on a program or two that you saw. It's like if I go outside for the first time in years and I by chance see 3 red cars driving past and then think that the whole world must prefer red cars. And then go back inside and tell everyone on the internet that they are wrong, everyone obviously prefer red cars.

We are the developers. We follow trends, stay up to date and work hard to not only stay relevant but to know what's going on. You know nothing John Sn... Swa.
 

Hamster

Resident Rodent
Joined
Aug 22, 2006
Messages
42,928
Swa isn't a developer? Then WTF is he doing commenting advice on programming threads??!
 

semaphore

Honorary Master
Joined
Nov 13, 2007
Messages
15,205
I'm sorry Swa, but we are developers. You clearly aren't because your posts are uninformed. I used to be a Delphi programmer many years ago. I then moved to C and then to C++ and then to C#. Us developers know that Delphi isn't popular. It's user base is declining year by year.

Here's a website that tracks programming language popularity:
http://blog.codeeval.com/codeevalblog/2015#.VWP9YUbiukw=

Here's another:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html


It's odd that you do. We know that Delphi isn't popular and evidence supports us. You have seen some Delphi programs and think the larger programming community prefers Delphi. It just doesn't work that way. You can't say what developers prefer by basing it on a program or two that you saw. It's like if I go outside for the first time in years and I by chance see 3 red cars driving past and then think that the whole world must prefer red cars. And then go back inside and tell everyone on the internet that they are wrong, everyone obviously prefer red cars.

We are the developers. We follow trends, stay up to date and work hard to not only stay relevant but to know what's going on. You know nothing John Sn... Swa.

Wait for the... those stats mean nothing in the real world comment from him.
 

semaphore

Honorary Master
Joined
Nov 13, 2007
Messages
15,205
Most of the arguments here are biased towards their industry-needs (lets not pretend that Java is what the varsity-factories push out for those mundane bank jobs & that C# is hiding behind that giant wall of not knowing what is underneath - Microsoft Windows).

Spoken like someone who has never bothered to read documentation.

The difference between opting for Python over something like Java is that Python can be taught to literally anyone (with enough technical acumen), quicker than dealing with the syntax nightmares that will creep up when trying to get simple "hello world" type applications out there in Java (without importing the 50 Java libraries needed to make it work without errors).


Code:
using System;
 
internal static class HelloWorld
{
    private static void Main()
    {
        Console.WriteLine("Hello, world!");
    }
}

FYI All that is generated the only line you write is Console.WriteLine.

Code:
public class HelloWorld {
     public static void main(String[] args) {
          System.out.println("Hello, world!");
     }
}

Again a single line.


I'd favour this order: Python, Java, JavaScript, Ruby (anything that isn't locked-down and being paid-for through million-rand contracts would do as well).

Lol.
 

AthenianOwl

Executive Member
Joined
Feb 9, 2009
Messages
8,897
Imo, Ruby (Very Object-oriented) is one of the best high-level languages to start (High school) with when you start learning to code.

hello_world.cpp (C++)

Code:
[B]#include <iostream>

using namespace std;

int main()

{
     cout << "hello world" << endl;
     return 0;
}
[/B]

vs

hello_world.rb (Ruby)

Code:
puts "hello world"

It makes it much easier to transition to another Object-oriented language like C++/C#.
 

riverdusty

Senior Member
Joined
Jun 8, 2006
Messages
639
Imo, Ruby (Very Object-oriented) is one of the best high-level languages to start (High school) with when you start learning to code.

hello_world.cpp (C++)

Code:
[B]#include <iostream>

using namespace std;

int main()

{
     cout << "hello world" << endl;
     return 0;
}
[/B]

vs

hello_world.rb (Ruby)

Code:
puts "hello world"

It makes it much easier to transition to another Object-oriented language like C++/C#.

Smalltalk:

'Hello World' (ctrl+p/i)
 

riverdusty

Senior Member
Joined
Jun 8, 2006
Messages
639
Eric S. Raymond on Programming

1. Learn how to program.

This, of course, is the fundamental hacking skill. If you don't know any computer languages, I recommend starting with Python. It is cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it is not just a toy; it is very powerful and flexible and well suited for large projects. I have written a more detailed evaluation of Python. Good tutorials are available at the Python web site; there's an excellent third-party one at Computer Science Circles.

I used to recommend Java as a good language to learn early, but this critique has changed my mind (search for “The Pitfalls of Java as a First Programming Language” within it). A hacker cannot, as they devastatingly put it “approach problem-solving like a plumber in a hardware store”; you have to know what the components actually do. Now I think it is probably best to learn C and Lisp first, then Java.

There is perhaps a more general point here. If a language does too much for you, it may be simultaneously a good tool for production and a bad one for learning. It's not only languages that have this problem; web application frameworks like RubyOnRails, CakePHP, Django may make it too easy to reach a superficial sort of understanding that will leave you without resources when you have to tackle a hard problem, or even just debug the solution to an easy one.

If you get into serious programming, you will have to learn C, the core language of Unix. C++ is very closely related to C; if you know one, learning the other will not be difficult. Neither language is a good one to try learning as your first, however. And, actually, the more you can avoid programming in C the more productive you will be.

C is very efficient, and very sparing of your machine's resources. Unfortunately, C gets that efficiency by requiring you to do a lot of low-level management of resources (like memory) by hand. All that low-level code is complex and bug-prone, and will soak up huge amounts of your time on debugging. With today's machines as powerful as they are, this is usually a bad tradeoff — it's smarter to use a language that uses the machine's time less efficiently, but your time much more efficiently. Thus, Python.

Other languages of particular importance to hackers include Perl and LISP. Perl is worth learning for practical reasons; it's very widely used for active web pages and system administration, so that even if you never write Perl you should learn to read it. Many people use Perl in the way I suggest you should use Python, to avoid C programming on jobs that don't require C's machine efficiency. You will need to be able to understand their code.

LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. (You can get some beginning experience with LISP fairly easily by writing and modifying editing modes for the Emacs text editor, or Script-Fu plugins for the GIMP.)

It's best, actually, to learn all five of Python, C/C++, Java, Perl, and LISP. Besides being the most important hacking languages, they represent very different approaches to programming, and each will educate you in valuable ways.

But be aware that you won't reach the skill level of a hacker or even merely a programmer simply by accumulating languages — you need to learn how to think about programming problems in a general way, independent of any one language. To be a real hacker, you need to get to the point where you can learn a new language in days by relating what's in the manual to what you already know. This means you should learn several very different languages.

I can't give complete instructions on how to learn to program here — it's a complex skill. But I can tell you that books and courses won't do it — many, maybe most of the best hackers are self-taught. You can learn language features — bits of knowledge — from books, but the mind-set that makes that knowledge into living skill can be learned only by practice and apprenticeship. What will do it is (a) reading code and (b) writing code.

Peter Norvig, who is one of Google's top hackers and the co-author of the most widely used textbook on AI, has written an excellent essay called Teach Yourself Programming in Ten Years. His "recipe for programming success" is worth careful attention.

Learning to program is like learning to write good natural language. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... and repeat until your writing begins to develop the kind of strength and economy you see in your models.

I have had more to say about this learning process in How To Learn Hacking. It's a simple set of instructions, but not an easy one.

Finding good code to read used to be hard, because there were few large programs available in source for fledgeling hackers to read and tinker with. This has changed dramatically; open-source software, programming tools, and operating systems (all built by hackers) are now widely available. Which brings me neatly to our next topic...
 

Edwe

Expert Member
Joined
Nov 5, 2006
Messages
2,026
I hear you but Delphi is still used quite extensively with an extensive code base. It is a traditional teaching language and it's because of that legacy. I've seen quite a few apps written in Delphi. Only other languages I've seen are C/C++. Granted it may not be as popular as it was but I don't think it will ever disappear. Don't look just at the job market or what's used in your profession. In the larger programming community it is still a popular language. The only other languages as popular are C/C++. It's odd you don't rank them together.

Relative to what and according to whom? I have evidence which directly contradicts your claim: http://www.tiobe.com/index.php/content/paperinfo/tpci/Delphi_Object_Pascal.html

Popularity of Delphi is currently at an all-time low, and even at the peak of its popularity in 2004, Delphi accounted for less than 6% of new code, whereas Java currently accounts for nearly 17%.
 
Last edited:

Sonic2k

Executive Member
Joined
Feb 7, 2011
Messages
7,637
Delphi is just about teetering above its grave, waiting for its final push into the coffin. This is the honest truth.
In my experience:

C development (on terminals) 53%
Java (server side) 43%
The rest: all other various things like SQL DB stored procs, and other mundanes

C is the language, I became very good at, that enabled me to pick up C++, C#, Java, JavaScript, and even Python, very very quickly. Before all of this I did assembler.
 
Top