Apr 24 2007

Languages – a Rant

It came up today in conversation at work (I guess that is what its called), the differences between languages and which ones should be taught to students. Being that I have learned a good deal of the languages that are popular by todays standards I felt good about voicing my opinions to my co-workers.

At the University level at least at my school C is the initial language taught. It is seen as a necessary building block to learn other languages including Java and C++. While I can not deny that it is a necessary language, I do not agree that you have to understand this language to understand the others. C being a functional language (lacking object-oriented properties) is a tedious language to master, and many students in my opinion get lost in the syntax rather than the concepts of programming, or of good programming practices. Looking for mismatched braces and missing semi-colons can be a nightmare, not to mention trying to explain pointers to a student who has no idea about much of the programming world except the 1-2 months of Introduction to C Programming. I’m not saying that Java and C are any better but we are teaching students to be great coders but not necessarily great thinkers.

I had a GREAT professor for CS3 who really harped on the algorithms and not so much the code behind it, he left the code to us to figure out. I learned a lot that way, but I have to admit that most of my knowledge is stemmed from about 3 years of programming when I was in Middle School. I learned a language called Scheme which I guess from all of my education is a derivative of LISP. A functional interpretted language. I had one very nice point to it though. There was hardly any syntax to learn. If you could visualize the function in a black-box type manner you could code it in Scheme. To this day a lof of the fundamental points of programming I learned from that language.

Most of the modern languages are very similar. If you can code in C or Java, you can code in C++, C#, J#, php, ruby, perl etc. I told one of my co-workers that I highly encourged them to take a course in Object Oriented languages, and rather than learn the language focus on the concepts and learn the UML that you are taught. Once you know the concepts then you can apply it to a language, not visa-versa.

I guess that is all of my rant for the night. I might regret this in the morning.

if($time_of_day == "night_time")
    echo "Good Night All";
    echo "Good Morning!";