There are many various languages about, and which one to use for a particular purpose is a decision in itself.
I’ve got many choices when it comes to putting something together for a particular purpose, for example, recently, I’ve been using bash to handle simple tasks.
PHP was my previous language of choice for anything, complex or simple – it’s a great scripting language of course, and more capable then a bash shell script. It’s mostly used as a web server scripting language, but that never stopped me making several monitoring scripts, and some asterisk AGI scripts using it. I’ve also used it for other purposes like any shell – working a list of 200 domain names at one point for a specific task – wasn’t worth writing a file.
Then there is Perl, another good language. I’ve dealt with it before, and could still create with it. I haven’t used it recently, because of a lack of purpose, I don’t have a need for it – but much of what I’ve done in PHP could be replicated in Perl, and likely better. I do have a perl based IRC trivia bot that is reasonably solid – I’ve hacked on some MySQL concepts to it as well.
I’ve also worked with Visual Basic and VBScript – Microsoft specific languages, incompatible with Linux without resorting to Wine is a serious negative – but on the other hand, it’s a very readable language.
We have .Net (the reinvention of visual basic, introduction of C#). I have no idea why anyone would desire .NET, it’s not cross platform, it’s another language to learn that could have an expiry date any day now (just look at the original Visual Basic.. ), and closed source. I’m certain people have developped some great applications with it – I’ve used it once, for a payments page, the IDE was nice, the code read well – but I’d have rathered PHP – which is cross platform and doesn’t seem to have a use-by date.
Then, I’ve now recently come across Python, and it’s a fantastic language, it’s cross platform. In just this week I’ve managed to make a simple application listen for UDP packets on broadcast, and send out libnotify alerts on my ubuntu machine. I use it so I don’t need to run netcat and monitor it there!
I’ve dipped into C/C++ before – it’s a far more proven language, being around for a much longer time and still in wide use (oh, and it’s cross platform). It’s not very readable, but I’ve heard around circles that if you can learn C / C++ you can learn Java. The structure of the code is very similar.
There are many different languages out there, from my view, I’d have thought you’d need to be multilingual.
I now ponder, for those who seek to start a true career in programming, what language do they master – why would they?
For me, I’ve got no problems picking up languages, but to master one is to commit to it for a longer term – and to me, Python is there, Perl is there, PHP is there, Bash will be there. .Net certainly will not be there – it’s too much of a risk.
With open source languages, and the fact they work cross platform (meaning I can load up PHP on a windows server, and a Linux server), there’s no reason to doubt the viability of the language.
There’s not many ways one can set about mastering any particular language however, most industries I can think of will be using a combination of many – and we can’t all master all those languages – only to have them replaced.