Re: CollabRx seeks brilliant engineers for an excellent e-science adventure
- From: Tim X <timx@xxxxxxxxxxxxxxx>
- Date: Sat, 05 Jul 2008 21:29:59 +1000
"Alex Mizrahi" <alex.mizrahi@xxxxxxxxx> writes:
The problem I have with these arguments is what seems to be a general
belief that lisp programmers are smarter/better.
that's what Jeff says -- his experience is that people who
know Lisp are more suitable for position he has.
Where is the evidence for this?
i'm afraid nothing but personal subjective experience.
note that nobody says all lispers are smart -- just
there is higher percent of smart people than, say, among
Java or PHP programmers.
That is the type of statement I am skeptical about. I know a lot of very smart
programmers that work in Java. I also know a lot of Java programmers I
don't think are very good - but I know a hell of a lot more java
programmers than I do lisp programmers. Most of the lisp programmers
that I actually know do seem pretty smart, but is that a function of the
type of programmer I associate with, a skewed representation, the
language, whishful thinking or some other aspect of my personality that
makes me perceive it that way or even something as simple as lisp being
a type of language that attracts a personality that meets my perceptions
of what is a good programmer?
I've seen no research that tries to determine this assumption
and I'm not even sure you could.
i remember research by Erann Gat, it not exactly shows
that lispers are smarter, but at least something..
There have certainly been some lisp programmers that do seem very good,
but I suspect they would have been good using any language.
this is exactly what Jeff wants -- people who will be good with any
language. how do you find such people? "we want programmers in
everything"?
I'm not arguing against Jeff's point and agree that you would likely
find more programmers that use lisp that are also able to adapt to other
languages and paradigms. My point is that I don't believe lisp is
necessarily the dependent variable in the equation. It may not be lisp
that made them so, merely that those who are of this type also
happen,more often than not, to also know lisp.
There are
also some programmers that appear to be very good who don't use lisp.
sure, but i bet almsot any really good programmer knows at least
one of advanced languages like Lisp, Haskell or ML. (Python in worst case).
i doubt you can find extremely smart programmer who was not curious
to learn anything but Java.
Actually, I know a lot of very good programmers who know next to nothing
of any of those languages, especially programmers who didn't learn their
skills in the US. For example, in Australia, lisp was not used much in
any of the Universities. You werer more likely to find Prolog than lisp
(including scheme). These days, your unlikely to find either and you
would be lucky to cover it in any more depth than one or two weeks in a
course on something like non-procedural languages.
I've known and worked with some really talented programmers who have
only known one style of language i.e. often C, C++ and Java and thats it.
My suspicion is that in reality, lisp programmers are no better than
good programmers in any language and the language is largely
irrelevant.
so you simply deny _obvious_ correlations i've mentioned?
I deny they are as obvious as you imply, I question they actually
represent a correlation based on knowing and programming in lisp. As you
pointed out, it is a subjective proposition without any empirical
evidence. to be "obvious" to everyone, we would all need the same
subjective experiences. My observations and experience make me question
whether lisp is actually the determining factor in what makes a good
programmer. As Jeff stated, his opinion may be biased because of his
associations with lisp. If he had been a C programmer, he may have
argued that it is only C programmers in his experience that are able to
adjust to the different paradigms.
My opinion may be biased by the fact I came to lisp quite late in my
career and had learnt many other languages and got to know many smart
programmers in all of those languages.
i suggest you reading this essay by Paul Graham, it's
about Python but not Lisp, by the way, maybe you'll
understand it better from second time:
http://paulgraham.com/pypar.html
Understand it better! Just because I don't necessarily agree doesn't
mean I don't understand it. Remember, its a subjective opinion on both
sides. Until someone is able to quantify things, its just theory and
while we can disagree on theory, neither can be said to be right or
wrong.
Note also that I'm not disagreeing with Jeff's opinion that he finds
programmers that know lisp suit the type of work he needs done and I
don't even disagree with the premise that you find a lot of lisp
programmers are good. What I am skeptical about is that it is
programming in lisp itself that makes you a good programmer or that you
couldn't find a simlar group of good programmers based around a
different language, particularly a 'fringe' language.
I have read a lot of PG's essays. Some I like, many I find quite
humorous and some points I totally disagree with. Again, his are just
more subjective opinions on lots of things. He isn't some great
programming god. In fact, I think he is a smart man who was in the right
place at the right time and probably had the right tool. I also suspect
he could have done as well with a different tool (despite his argument
that it was lisp that made it all possible - I think it was more likely
down to the timing, the team of people and some good old fashioned
luck. There have been far more instances of smart people using lisp that
have failed to be as successful and even a lot of even smarter people
using other tools who have completely failed. In fact, I think that
quite often really smart people fail because they are just too far in
front and peak too early).
The 'truth' of lisp making you a better programmer is more
likely something that has developed as a largely unconscious defence
against all the (largely misinformed) criticisms of the language.
you say it like we people at lisp community are devoted fanatics,
or something, and need to defend our cult language at all costs.
Well, you certainly seem to be getting awfully defensive about it! Why
the 'us and them' stance? I program in lisp, I participate in
discussions and yet your statement implies I'm not part of the
'we'. Your point about reading PGs essays and then maybe I will
"understand" gives the impression that any opinion that at all differs
from the known truth that lisp is the best thing since sliced bread
could only be due to ignorance and reminds me of christian missionaries
trying to save the ignorant savage. All I have to do is read the PG
bible and I will see the light! This smells awfuly close to religious
dogma to me.
I do think there are many in the lisp community who are frustrated by
the lack of lisp acceptance in the wider programming world and the
levelof FUD associated with the language and yes, I think there is a
small part of the lisp community that does give the impression of being
fanatics and will defend the language at all costs. However, I think you
get that in almost all language communities and I don't think it is the
whole community or even a large subset of the community. I also fully
understand the stance of some in that subset. I too get frustrated by
some of the opinions/responses I get when trying to explain som eof the
unique aspects of the language and the high level of misunderstanding I
see - som eof which often comes from people who in all other ways seem
to be smart and talented programmers.
As an example, I was totally blown away with lisp's error handling and
conditional restarts etc. This was exactly what I'd been looking for and
and close to what I always thought a language should be able to
do. However, I've been totally frustrated in my attempts to explain it
to colleagues - as soon as I mention lisp, their eyes glaze over and
they just stop listening.
My comment was never meant to imply fanaticism or anything
else. However, from a sociological and psychological perspective, I tend
to think it is not outside the bounds of possibility that members of the
lisp community may develop a belief they represent a group of
programmers that are on the whole better than the average as a
subconscious defence mechanism. This is similar to the research done in
the late 70s that compared opinions of well paid and poorly paid workers
in various fields. The research found that those working for less pay
more often than not played up the importance of the job they did
compared to those who were paid at a higher rate. The researchers
concluded that this was due to subconscious rationalisation that helped
to justify their lower pay. I can't cite the actual research - it was
some of the stuff I covered as part of my second career (programming is
my third 'career') and was nearly 30 years ago. My point is that it is
possible a similar process is taking place here. In order to rationalise
why we are continuing to use a language that is unpopular, has few job
vacancies and can actually work against you in some situations (some
employers see lisp programmers as uber geeks that will be difficult to
manage, will continually challenge their decisions and authority and are
likley to get bored with the job in 3 montsh - often they are correct!)
we rationalise our choice by convincing ourselves we continue to
do it because it is the worlds best language and will make us better
programmers.
i can't say for everyone, but i'm definitely not a fanatic;
besides Lisp i know something like a dozed other languages --
C++, Python, PHP, Java, etc -- and from time to time i have
to program in some of them. while i like Lisp more than
other languages, i know that it's not perfect, and can say
in which aspects other languages are better. (for me,
benefits outweight costs, that's why i like lisp more).
also, i've seen programming communities on other languages --
C++, PHP, Java, Delphi -- and i never seen people as smart and
friendly as in comp.lang.lisp. barely in other community
you'll see newbie question being answered by language
experts, with thorough explanations and examples. (often
you can see answers like "you read FAQ, bitch!"). barely
you can find people discussing such wide variety of topics,
in other groups you can find people shouting "offtopic!
go out of here, ***" (even if question was ontopic,
after closer examinations).
Personally, I've seen nothing better or worse in the lisp communities
than most other language communities. All of them seem pretty much the same to
me. Some of the more domain specific popular languages do appear to have
a higher number of participants that don't appear to have a good grasp
of basic concepts that are generally accepted as being almost general
knowledge in other groups - for example, I've seen some questions in PHP
groups and PL/SQL groups that make it obvious the poster does not have a
strong programming background and is not familiar with concepts such as
recursion, pass by value, pass by reference, closures etc. However, this
doesn't mean they are stupid, smart or even bad programmers - it just
means they have come from a different direction and probably have a lot
of learning in front of them.
another interesting detail is that i haven't seen
amount of introspection present in comp.lang.lisp in other
communities. you can find here weird topics of all sorts --
about social problems of lisp, about personality of lisp
programmers, about lisp programmers being special (smart etc),
and finally you came with deeply psychological idea that
under criticism lisp community have formed a defensive
delusion that lisp programmers are better.. i'm not sure
what is the reason for such introspection, maybe it's
also some defensive mechanism? well, i'm not crazy enough
to continue topic about meta-instrospection..
Well thats fine. I have to admit finding that paragraph a bit
confusing. You start by saying that you haven't seen the same level of
introspection in other groups as you find in c.l.l., but then you seem
to imply its odd that I raise such a thing (and in a thread that was
largely based on intraspection!)
I don't believe my post and observation was anything particularly
defensive and it certainly wasn't meant to make anyone feel anything
related to defensiveness or attack. I merely raised another possible
explination for why there is a perception that lisp programmers on
average are better or that lisp somehow creates/makes you a better
programmer. I was hoping, if nothing else, that maybe the points I
raised would make readers consider an alternative explination for the
perceived higher frequency of good programmers using lisp than other
languages - a perception which I have some reservationns about.
The
observation that there seems to be a higher proportion of 'good'
programmers using lisp
you contradict yourself -- you said that Lisp is not anyhow better
than _any_ other language above..
I don't believe I've contradicted myself at all. My point, right from
the start, was to quesiton the assumption the lisp makes you a better
programmer. I actually made no comment on the value of lisp as a
language and even explicitly stated that I like it as a language. My
only point was that I'm somewhat skeptical regarding whether lisp makes
you a better programmer to any greater extent than any other language
and whether in fact ther eis a higher proportion of good programmers
using lisp than there is for other languages.
is likely just due to the fact it isn't a popular
language and those who do decide to stick with it probably have a higher
interest in the art and therefore seem better.
yep, this is one of correlations, but don't you think that
choice of people who are 'good' programmers and have a higher interest
in the art is not entirely random? or they are just picking
any unpopluar language and form a community around it?
I don't think its random. However, as you put it 'choice of people who
are 'good' programmers' indicates they were good programmers prior to
using lisp. My question and skepticism surrounds the assumption that
using lisp will make you a better programmer more than using any other
language. I think it is the interest in programming that brings many
people to lisp and as a result of that interest, they tend to be better
programmers. Learning lisp is likely to improve their skills, but so
will learning prolog, C, Java, ruby , python, forth, assembler and even
basic. Over the yeras, I've learnt a lot of languages. some were easy,
some were hard, some were easy to learn and hard to master and some were
hard to learn and easy to master. I just feel it is the process and
experience which is a greater determinant of a good programmer than lisp
and that you will find many good programmers that have never learnt
lisp. In fact, I suspect that if you analysed users of 'fringe'
languages, those that don't have a large user base or a lot of publicity
etc, you will probably find a higher ratio of "good" programmers than
you would find in something like c.l.php or whatever popular language.
A genuine
interest or sometimes even passion for programming and its underlying
concepts will generally produce a better programmer than someone who
just does it as a 9-5 job - the language is largely irrelevant.
unless some unfortunate luck, genuine interest and passion will
drive programmer to a language which is better suited for his needs.
please don't tell us stories -- it would be very hard to satisfy
passion in programming in some dumb Visual Basic or PHP.
I still find statements like this difficult to accept. they have the
feel of arrogance. Different people like different things. If my passion
was to write some great web application and the only language I know is
PHP, why couldn't I satisfy my passion using that tool? Your statement
implies that anyone who doesn't adopt something like lisp to work in has
no passion and is not a real programmer. This is just rubbish. Its like
an artist saying that if you paint in acrylic rather than oil then your
not a real artist, but just some un-talented graphic design hack.
I do
find lisp makes it easier than many languages to 'experiment' and learn,
but its the interest in doing that which makes a better programmer.
yep, that's exactly what i was saying. i'll remind that Kenny
wrote an essay that Lisp makes you a better programmer, i've wrote
a reply that this factor should be less significant than
a statistical correlation between knowing Lisp and being smart.
either you have problems understanding large pieces of text,
or you're replying to a wrong message -- you should argue with
Kenny instead.
Well, actually I wasn't arguing against anyone. I was just proposing an
alternative perspective that didn't emphasise lisp as the cornerstone
for identifying good programmers and questioned the often cited 'truth'
in this group that learning lisp would make you a better programmer than
learning other languages. I actually believe learning lisp does teach
you a lot, but I also think you learn a lot from learning many languages
- particularly if they are a lot different to other languages you
already know.
I apologise if you got the impression I was attacking you personally. In
actual fact I agreed with most of what you stated originally and it was
some eof what you said that raised my ideas/thoughts that there is a
danger in over emphasising lisp as the causal link in becoming a good
programmer because you tended to emphasise the point that good
programmers are attracted to lisp. This got me thinking about the number
of good programmers I know who have never used lisp, haskel, et. al.
I believe lisp did help me to learn some concepts. However, I believe II like lisp because of its consistency and simplicity
compared to other languages and because it fits well with the way I like
to think about and solve problems. It has probably made me a better
programmer because it has allowed me to experiment with concepts and
therefore facilitated my learning and level of understanding, but that
is mainly due to my interest in the topic and not lisp.
can you decide -- did lisp help you or not? could you achieve same
improvement programming in VB or PHP? i guess no? then language
matters, a little at least?
could have learnt those concepts with other languages as well and I
thought I made that clear in my original post.
why didn't you stay with Ruby, Perl or Tcl? probably you haveWho said I didn't stay with them? You seem to like assumptions quite a
found something limiting about them? probably you have found
some inconsistencies and unneeded complexity, inelegance?
lot. I still use all of them on a regular basis. for some situations, I
prefer to use perl, for others, ruby and in some cases even Java and now
and again, I even use C. Every language, including lisp, has limitations
and strengths. I don't have any religious dogma for any particular
language. Often I use whatever will get the job done fastest or whatever
my collegues will find easiest to work with or whatever fits best with
how I'm thinking about the problem. Languages are tools and I like to
have enough of them to be able to select the best tool for the job. If
I've got to knock up a quick basic web page that displays some basic
information from a mysql db, I might just do it in PHP. If I need to
process a lot of log files, I might just use perl. If I need to do
something with SAX, xpath and xslt, I may use Java rather than lisp
because its all there ready to go. When I wanted to write a podcast
aggregator, I used lisp because all the library components were there -
at least I thought they were. It turns out there are so many badly
formed RSS feeds out there that rather than use a lisp based XML parser,
I got more reliable results using cl-pcre and just grabbing the
enclosures using regexps. I used lisp for that little project mainly
because I didn't really know what I wanted and it gave me the
flexibility to experiment 'on the fly'.
In fact, most of my projects don't rely on any single language. I'm
currently implementing a reasonably complex identity and access
management system. the db is Oracle and PL/SQL is used inthe
database. Java is used to connect to nonOracle databases, perl is used
for the provisioning component and at the moment, the business logic is
implemented in lisp. Not sure what the web front-end will be implemented
in yet. Two other people also work on this project. One is an extremely
talented programmer, but he doesn't use lisp and ahsn't used it since
University. He likes it as a language, but he prefers perl. the other
programmer loves C++, we give him hell for it, but I have to admit he is
a talented programmer with good design skills. I sometimes wonder if he
is so talented that its my lack of talent that prevents me from seeing
what he likes so much with C++. I had to use C++ for a time in the
mid-90s and I would have to say that while C was my first language and
as such, a language I will always have some fondness for, C++ was
possibly the most unpleasant and irritating language I've ever used (I
would have to also admit I don't see OO as being the great savior most
seem to think it is - it has its place and can be useful for some
categories of systems, but in other situations, it just feels like a
whole heap of overhead with little practicle benefit, so maybe I was a
little biased against it anyway).
you see, probably you was able to spot issues where other
people see none. maybe that says something about you.
maybe you have some better programming language sense,
better understanding about it's internal logic and structure.
and this aptitude made you learning lisp..
I don't know. I find this sort of thing very hard to judge and always
feel on thin ice. I always felt like a very average programmer. However,
the more projects I work on and the more programmers I work with makes
me think the average is pretty low. Then I meet someone who really
impresses me and I realise I'm not that good after all. I rarely look at
my code and thing "wow, thats really
elegant/beautiful/clear/efficient/etc. On the other hand, I've never had
a problem I couldn't find a solution to (but maybe I'm just good at
redefining the problem - is that the sign of a good programmer or a
cunning one?)
I don't think of myself as having any great programming talent and I've
rarely been congratulated on my programming. I have recieved lots of
praise for my analytical skills and while not obvious in this thread,
have been told I have superior communication and people skills. I find
programming the easiest things I've ever done and enjoy it immensely,
but enthusiasm and sweat don't necessarily make you good. I've got a
track record of successful projects and have had no problems finding
employment, so I consider myself lucky.
Lisp is a language that I found easy to learn, but I still feel at a
novice level. I think its a language that takes a lot of experience to
master. However, this is what I really like about lisp - it makes me
work hard - I really have to think about things. It challenges me more
than most languages have. I had a similar experience with prolog. It
took me probably 6 months of daily prolog programming before the penny
really dropped - I still remember the day. Suddenly, it just all came
into focus. I've not had the same revelation working in lisp. I've
marvelled at how my code has come into focus and how much I've enjoyed
the process and at times I've enjoyed how easily I've geen able to
prove/disprove ideas and how rarely the language actually limits how I
solve the problem. However, I don't know if that has made me a better
programmer or not any more than many of the other languages I've
learnt.
that what makes me think that some average lisper might be
a bit smarter than average rubist -- rubist was not able
to spot some weirdness of the language, it didn't bother
him, he did not care about elegance -- so he might be
a bit worse in programming languages.
I'm just not sure that there is any evidence that the average ruby
programmer is any less or more smart than the average lisp programmer. I
don't know what an average ruby programmer is or even what an average
lisp programmer is and have even less of an idea of what smart is.
I would be very uncomfortable making any generalisation that implies
users of my preferred language are on average smarter than users of any
other language. With ittle to back me up but my gut, I just find such
statements tending towards arrogance and insecurity. this is not meant
as a personal criticism of anyone BTW.
In fact, I think
many of the attributes that make a good programmer are language neutral
- the ability to aquire enough information about the problem domain and
abstract it in such a way to make the algorithms straight-forward and
possibly even elegant, the ability to ask the right questions to get the
right information, the ability to get inside the head of the end user,
the ability to consider on-going maintenance and development aspects,
the ability to learn and understand the subtleties of a problem domain
that may be very different to anything you have encountered before and
good communicaiton skils are all essential qualities for a good
programmer.
yep, this is right, it is what i said to Kenny -- there is no magic
stuff in Lisp that teaches you everything about programming.
Exactly, and ironically, its what set me off on my train of thought. It
was never supposed to be a direct challenge to your ideas (this is why
it was just appended at the end rather than inter-mixed with your
comments.
However, I do have (want) to say that without trying to cause offence,
the way you responded to my post actually makes me feel even more
strongly that lispers saying that lisp makes you a better programmer and
you will find more good programmers amongst lisp programmers than other
languages does have a component of rationalisation that is used to
offset the largely incorrect perceptions of lisp as an old, outdated,
slow, parenthesis ridden language that died of frost-bite in the Ai
winter.
regards,
Tim
--
tcross (at) rapttech dot com dot au
.
- References:
- Re: CollabRx seeks brilliant engineers for an excellent e-science adventure
- From: Kenny
- Re: CollabRx seeks brilliant engineers for an excellent e-science adventure
- From: Alex Mizrahi
- Re: CollabRx seeks brilliant engineers for an excellent e-science adventure
- From: Tim X
- Re: CollabRx seeks brilliant engineers for an excellent e-science adventure
- From: Alex Mizrahi
- Re: CollabRx seeks brilliant engineers for an excellent e-science adventure
- Prev by Date: Re: It was a good name in theory....Name That Software! Contest
- Next by Date: Re: It was a good name in theory....Name That Software! Contest
- Previous by thread: Re: CollabRx seeks brilliant engineers for an excellent e-science adventure
- Next by thread: Re: CollabRx seeks brilliant engineers for an excellent e-science adventure
- Index(es):