I applied for a job online the other day, the job asked for python experience. When I opened the two practical questions up (write a program type questions), I saw that it would be madness to do them in python, so I hooked up a couple of bash scripts and some perl one liner goodness and ripped through them.

The moral is 'right tool for the job'.

Recently I've expanded my language horizons quite a lot, in fact there are only 6 languages I wouldn't tick on the box up there now as knowing well. In addition to that I've been learning haskell, because I'm a language junkie and I love it. Scheme is still the best though.

I've also been learning smalltalk, that really tips your views on what object oriented programming should be

The only language that I know pretty well is Java since that's the language that was used in the Computer Science 1 & 2 classes that I took. I've learned bits and pieces of like a kajillion other languages, but my attention span is too short and I jump into learning a new language before I even finish learning the first one.

The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones

09 F9 11 02
9D 74 E3 5B
D8 41 56 C5
63 56 88 C0
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. -- Jamie ZawinskiDetavil - the devil is in the detail, allegedly, and I use the term advisedly, allegedly ... oh, no, wait I did ...BIT COINS ANYONE

The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones

09 F9 11 02
9D 74 E3 5B
D8 41 56 C5
63 56 88 C0
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. -- Jamie ZawinskiDetavil - the devil is in the detail, allegedly, and I use the term advisedly, allegedly ... oh, no, wait I did ...BIT COINS ANYONE

Learning Prolog was one of the most interesting experience I've had with a language. It's amazingly different. You almost have to learn to program all over again, but once you understand Horn Clauses, Unification, Recursion and Meta-programming (ala Univ) it is extremely powerful, and practical!

If you're not doing knowledge representation or AI you probably wont like Prolog, but it's well worth learning.

I was inspired to design the Hula programming language partially because of a flexible object-system I wrote in Prolog. All in all I think learning Prolog was well worth it .

--

As for a first language I'd recommend Smalltalk, followed by Objective-C and C. This should give the student a detailed understanding of real object-oriented programming, and experience with higher-level, and lower-level languages.

I'd recommend the student learn Lisp at some point for a number of reasons, but experience with CLOS and the MOP will increase to the students understanding of object-oriented programming dramatically. Knowledge of at least one classless object-oriented language (probably Javascript or Io) would also be invaluable.

I'd recommend against Java or C# as a first language because they give a warped impression of object-orientated programming; hindering good practices and encouraging a procedural way of working... not that there's anything wrong with that .

I have a little bit knowledge in Visual Basic and I like this because I can make and run a program in simple codes only in a simple interface of course. I want to expand my knowledge here and become a future programmer in the near future.