This post originated from an RSS feed registered with Python Buzz
by Jarno Virtanen.
Original Post: On the choice of programming languages
Feed Title: Python owns us
Feed URL: http://sedoparking.com/search/registrar.php?domain=®istrar=sedopark
Feed Description: A weblog about Python from the view point of Jarno Virtanen.
Reading the
comments to Philip
Greenspun's latest
"epiphany" reminds me of my own humble opinions on the subject
matter. Broad subject being here the question of how and why people
adopt programming languages and why certain languages prosper while
others don't.
My first humble opinion is that there are no easy answers. And since
no one really knows the answers, everyone is free to throw in ideas
whether or not they hold water, so to speak. Therefore you are, of
course, also free to discard the other opinions I might have, because
they are, too, hopelessly simplified.
So, my two real opinions of why the so-called technically inferior
languages, be it VBScript, PHP, Perl, Java or even Python, have been
popular, are these: most of us programmers aren't superheros; rather,
our foremost goals in working lives are simply just to not to get too
embarrassed, bothered or sacked. Second, most of us programmers don't
even have the competence to evaluate complicated technologies such as
programming languages and their environments as whole.
Side note: I am not sure about the technical inferiority either. I
haven't seen many even remotely sound comparisons of programming
languages regarding programmer productivity and such. And, be that as
it may, larger software projects consist of somewhat
language-independent phases therefore making the choice of the
language more irrelevant.
My first real point — that most of us are just basically trying
to cope in our jobs — is a crucial viewpoint in general user
interface design, or at least it should be. You see, the most
important user interface design criteria, according to some people, is
goal-orientation. User inteface is good when it makes it easy for the
user to accomplish his goal. In this context goals mean the
concrete goals of the user, like for example a goal to travel
to some (specific) place or say, get information on
butterflies. No one's goal is to point-and-click computer
applications; users want to accomplish something by using
computers. (OK, I digress a bit. Try to stay with me.)
Now, say you are designing a program that is used by workers in a call
center wherein the workers take calls from users and try to help
them. The user who you are designing the user inteface for is the
worker. You might be deluded to think that this the goal of this
hypothetical worker is to do his job efficiently and
accurately. Wrong. That's how the owners of the firm would like to
think, but that's not the truth. His goals is just to cope in
his work, that is, to not to get sacked, embarrassed or bothered too
much. His goal is not to earn money for the firm, be assured. And you
must design the interface to these goals or you are fooling yourself
and the firm that contracted you.
I think this mostly applies to programmers too. Most programmers are
not trying to do their job as efficiently and accurately as
possible. Just enough efficiently and accurately to not to get sacked,
too embarrassed or too bothered. The average programmer doesn't give a
shit if he is not using the most sophisticated programming language
out there (assuming he even had the choice) because his position as a
programmer does not depend on the choice of the programming
language. He just has to cope with the tools he is given. He is not
going to be fired because he didn't use Lisp in his project. (If he
had used Lisp, he might indeed have been sacked.)
Furthermore, the average programmer (such as myself) does not have the
competence to evaluate the complex and difficult issues regarding the
choice of a programming language. We might have strong opinions on
languages, but we don't have the necessary capability to study and
evaluate technologies. We might not
realize that we are not competent enough, but by the
miracles of hierarchy and authority someone will decide, and
he usually opts for the safer choice, which is, usually, one of the
more popular languages. I am not saying the criteria for the
choice is the popularity (which it might too be) but the defining
factors that make them popular in the first place. And more
importantly, the criterias themselves tend to be really simple, which
puts more weight to matters that are not relevant techically.