Advocacy
2007-06-22
The other day I went to a meet of my local Linux User Group. They've been meeting monthly since the beginning of the year, but this was the first time I'd been able to make it. Within an hour, I was labelled a 'Python Zealot'. Jokingly, but he's got a point.
I'm not a Linux zealot. In some situations there's a decent case for using it, in others there isn't. I'll advocate it, certainly, but only when I think it's right, and that's certainly not all the time.
Choice of operating system is quite a personal thing, but ultimately it's ruled by questions of compatibility. Will it work on my hardware? Will it run the programs I need, and open the documents I need? The question of whether I can administrate it is also a major concern, and ultimately whether or not I want to comes quite a way down the list.
On the other hand, I'd argue that the choice of programming/scripting language (and I'm going to use 'programming' exclusively from here on; you can take it to mean either/both) is much more personal. Although there are many differences in implementations and a few unusual exceptions, programming languages in general are logical systems that are fundamentally equivalent.
Like choosing an OS, professionally there's often little choice, since the programmer typically needs to use the same language as the existing code and the rest of the team. When these conditions aren't relevant programmers are spoilt for choice.
I'm a particularly useless zealot, because if I try something and it does the job well, I'll use it and not worry about the alternatives. I suspect a lot of people are like that: they're using it because it's all they know, and they recommend it because it worked for them. A lot of those people, of course, haven't noticed this, and are determined to tell you that what they're using is best, when in fact they have no idea what else there is.
The irony is, while Python is my favourite scripting language, I don't really consider it a particularly useful skill, commercially. Sure, I've knocked together a few useful scripts at the office for things that I couldn't be bothered to write into the billing system, but I'm carefully avoiding thinking of it as a tool for writing large applications. Which is a huge shame, because it's a lovely language...
(I'm keeping an eye on IronPython, a Python->.NET CIL compiler. Python syntax with the .NET runtime libraries (and hence trivially easy extensions in C# or VB.NET, as well as a host of others) and running on the .NET CLR (and hence Mono on Linux, with any luck) would be excellent.)
And in any case, it's not for everyone. Python is quick to pick up and easy to return to because it more or less forces you to write clear code. I'm sure you could write clear code in Perl, and there are many who aren't going to write bad code but would still like the freedom to do so.
I was discussing languages for some time on Monday, with a hobbyist Mac scripter and a long-time many-language Windows/Linux developer. The former was turned off Python because it has no case statement (which was a concern for me, initially, but big strings of else-if are really quite similar) and the latter winced when I pointed out that it defines code blocks by indentation (having whitespace mean something is very much a Marmite issue. I happen to really like it).
Although I can take or leave Marmite. I wouldn't leave Bovril.
I'm not a Linux zealot. In some situations there's a decent case for using it, in others there isn't. I'll advocate it, certainly, but only when I think it's right, and that's certainly not all the time.
Choice of operating system is quite a personal thing, but ultimately it's ruled by questions of compatibility. Will it work on my hardware? Will it run the programs I need, and open the documents I need? The question of whether I can administrate it is also a major concern, and ultimately whether or not I want to comes quite a way down the list.
On the other hand, I'd argue that the choice of programming/scripting language (and I'm going to use 'programming' exclusively from here on; you can take it to mean either/both) is much more personal. Although there are many differences in implementations and a few unusual exceptions, programming languages in general are logical systems that are fundamentally equivalent.
Like choosing an OS, professionally there's often little choice, since the programmer typically needs to use the same language as the existing code and the rest of the team. When these conditions aren't relevant programmers are spoilt for choice.
I'm a particularly useless zealot, because if I try something and it does the job well, I'll use it and not worry about the alternatives. I suspect a lot of people are like that: they're using it because it's all they know, and they recommend it because it worked for them. A lot of those people, of course, haven't noticed this, and are determined to tell you that what they're using is best, when in fact they have no idea what else there is.
The irony is, while Python is my favourite scripting language, I don't really consider it a particularly useful skill, commercially. Sure, I've knocked together a few useful scripts at the office for things that I couldn't be bothered to write into the billing system, but I'm carefully avoiding thinking of it as a tool for writing large applications. Which is a huge shame, because it's a lovely language...
(I'm keeping an eye on IronPython, a Python->.NET CIL compiler. Python syntax with the .NET runtime libraries (and hence trivially easy extensions in C# or VB.NET, as well as a host of others) and running on the .NET CLR (and hence Mono on Linux, with any luck) would be excellent.)
And in any case, it's not for everyone. Python is quick to pick up and easy to return to because it more or less forces you to write clear code. I'm sure you could write clear code in Perl, and there are many who aren't going to write bad code but would still like the freedom to do so.
I was discussing languages for some time on Monday, with a hobbyist Mac scripter and a long-time many-language Windows/Linux developer. The former was turned off Python because it has no case statement (which was a concern for me, initially, but big strings of else-if are really quite similar) and the latter winced when I pointed out that it defines code blocks by indentation (having whitespace mean something is very much a Marmite issue. I happen to really like it).
Although I can take or leave Marmite. I wouldn't leave Bovril.
Comments