The Artima Developer Community
Sponsored Link

Weblogs Forum
Caring About Programming Languages

10 replies on 1 page. Most recent reply: Jun 1, 2009 5:17 AM by Michele Simionato

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 10 replies on 1 page
Michele Simionato

Posts: 222
Nickname: micheles
Registered: Jun, 2008

Caring About Programming Languages (View in Weblogs)
Posted: Jun 1, 2009 5:17 AM
Reply to this message Reply
Summary
Some thoughts about programming-language communities, inspired by the Lisp conference I attended last week.
Advertisement

I do not care much about programming languages.

I mean, I do care about programming as a general activity of the mind and as a mean of self-expression, but I do not care much about a specific programming language.

I began to program professionally with Python, and I like the language, but now I am writing a book about Scheme, and tomorrow I will probably be looking at a language with static typing and type inference. I do have any kind of fidelity to a specific language. To me languages are tools which I use for my job and for my personal entertainment, but I do not feel any particular obligation to keep using the same language forever. I think my position about programming languages is quite common amongst programmers and that I am in the majority.

However, who cares about the majority?

The majority counts nothing when it comes to programming languages. Programming languages are designed and libraries are written by a very small minority. This is actually the norm: all science and arts are produced and evolve in consequence of the work of a small minority. The majority matters when it comes to the question of the success of language; one may argue that one language is more successful than another due to a set of specific boundary conditions: in that time and place, in that historic/economic situation, a language may have more or less success for all sort of technical and non-technical reasons.

When a language becomes successful the majority become relevant mostly in a negative sense, as a force resisting change, since backward compatibility concerns becomes essential. However, here I am not concerned with the question of success: I am concerned with the creative aspects of a language, and the creative parts are always done by a small minority. It is that minority which matters. In such a minority you will find a lot of people that really care about their chosen language. This is especially visible in non-mainstream languages, and particularly in the Common Lisp community.

I am writing these notes the day after the European Lisp Symposium, which was my first Lisp conference. I did attend the Italian Python conference three weeks before that, and while there are a lot of really passionated Pythonistas there, the passion is much more visible in the Lisp community, particularly in the etymological sense of the term. At the conference I saw with my own eyes many people caring and suffering for their language, and that sight prompted me to write these notes.

On a superficial level, the level of the user base, you could just dismiss such people as language geeks that should get a life and care more about other things. However, while not all language geeks are part of the active community (a lot of geeks are just whiners not producing any code relevant to the community and not having any effect on the evolution of a language and its libraries) I think it is fair to say that within the active community you can find a number of geeks which actually do care (and possibly care too much) about their language. I would also argue that the number of passionated people is much higher in the active community than in the passive community.

I put myself in the active community, since I have written a few open source modules, some of them with many thousands of downloads, and I have written papers documenting obscure features of at least one language, which have become the standard reference on the topic. On top of that I have being very active on newsgroups and mailing lists, I have a blog about programming and I am a participant and even an organizer of language conferences.

Still, I am not sold to any particular language, and I do not suffer/enjoy particularly if the language I am using right now is doing badly (in some sense) or is doing well. The reason is that I am a programmer by accident, not by design, and that programming is a secondary interest to me (I studied Physics not Computer Science!). However, I do realize that there is a sizable portion of people in the active community which care a lot for their chosen language and I take them very seriously.

The Lisp community is a special case, since the language is the second oldest language in the world and it has such a long and glorious history - for instance at the conference we had multiple references to the legendary Lisp machines the people of my generation never saw. My perception was that a lot of people at the conference felt very sad when comparing that times (the mid eighties) with the current situation. Common Lisp look is perceived to be in a bad shape with respect to the past, at least if we measure the success of language in terms of user base and of money being put in it - which is a measure of success I do not particularly like, BTW.

In the Common Lisp community you feel the suffering (and the pride too) much more than in other communities. Also, the people which used Lisp in the past but did not feel bound to it have already fled to other languages. As a consequence, now the community is somewhat self-selected and the percentage of people really caring about the language is much higher than in other communities. I did know about the Common Lisp community from comp.lang.lisp, which I read sometimes (rarely actually) but I did not really believe the newsgroup to be representative of the community. On the other hand, the language conference not only confirmed the feeling you get from the newsgroup, but actually I had an even stronger impression of suffering.

Is the language conference representative of the Common Lisp community at large? I do not know, probably not, since there were only forty or so people there, but I will assume here - as a working hypothesis - that the people at the conference were indeed representative of the active community (the passive community does not count).

I am more involved with the Scheme community, and I was quite surprised at the conference seeing how much different the communities are. Scheme is a research language, it has always had a small community and little money: people do not feel they have lost much during the last twenty years. Most Schemers know that they will never conquer the world and they are content with that.

On the other hand many lispers think that they have lost the mind-share they had in the past and they suffer for that: I remember particularly Scott McKay, who cited Ruby on Rails multiple times and made pretty clear that he was disturbed by the fact that Ruby was having much more success than Common Lisp, and that many great hackers very choosing Ruby, whereas twenty years ago they would have chosen Common Lisp. For comparison, I never heard in the Scheme community anybody complaining about the success of Ruby, they just do not care.

Of course, you should take with a grain of salt anything I am saying, since those are mostly subjective impressions I have got from a single conference. Certainly at the conference there were people happy with Common Lisp as it is (for instance Pascal Costanza did not look sad at all!). I may well be completely wrong about how the Common Lisp community feels, but it does not matter: what matters is the external perception of the community, nor the community in itself. So my perceptions from the outside, even if wrong, are significant. Actually, I am sure that a lot of people out there - people that could be potential new members of the Common Lisp community - do share my perception and stay away from the language because of that perception.

People - and I mean people that care - chose a language not only because of its features, but also because of its community. There are people taking pride in being part of a large "successful" community (they will not choose Common Lisp) and others taking pride in being part of a small "oppressed" community (they might choose Common Lisp).

I do not feel particularly either way. I am an organizer of the Italian Python conference, and this year we had Guido as guest of honor and more than 380 participants and I am happy of the success we got; nevertheless now I spend most of my spare time hacking Scheme and posting on the Ikarus mailing list, which has less than 10 active posters. I am not particularly proud of being part of a large community or of a small community, but many people care about these things.

I care about the philosophy of a language, which is the philosophy of its community: and when I had to choose between Ruby or Python I chose Python because of (the perception I had) of its community; similarly, when I had to choose between Common Lisp and Scheme I chose Scheme because of the community. Therefore, it is obvious to me that the problem of Common Lisp is not the language but the community: if the community is failing to attract new users, because it feels like a frozen community full of nostalgia and no clear vision about the future, there is no point in changing the language.

I have a lot of respect for the lisp community and for what they have accomplished in the latest 50 years: I want to absorb what they have to teach us youngsters so that their experience is not lost. It is important for that knowledge to be passed into new communities and new languages, since I perceive the Common Lisp community to be at a dead end. Of course Common Lisp will continue forever, just as FORTRAN will continue forever and COBOL will continue forever, but the language has stopped to innovate decades ago (note to the reader: at this point you should read Paul Graham's essay about why Microsoft is dead).

I am more optimistic about Scheme: it will never become mainstream, the standardization process will always suck, but there will always be young implementations and new blood coming in. This is clearly a personal impression: I talked with SBCL hackers at the conference, with CLisp hackers, as well as with people using Lisp professionally: there is still a lot of work being done in concrete implementations, and new projects. It is just a perception of mine that things are more fun in the Scheme community and that there is more going on, especially in the newest R6RS implementations.

I could just be ignorant; nevertheless, my impression after the conference if that I have been wise in choosing the Scheme camp. No offense to anybody is intended of course, and actually I am very happy they invited me, since it was a very nice conference and an extremely interesting experience. I have also seen a couple of cool projects that Pythonistas should copy, and perhaps I will have to write another post or two about ideas that came to me from the conference. All that is a measure of success to me ;-)


James Iry

Posts: 85
Nickname: jiry
Registered: Nov, 2007

Re: Caring about programming languages Posted: Jun 1, 2009 10:32 AM
Reply to this message Reply
This was a great article. I've had about the same observation as you. The Common Lispers lament their language's lack of success while the Schemer's just quietly continue doing what they do.

One difference I've noticed in the communities is that the Schemer's don't generally assume that their language is the best ever period end of discussion. Schemer's tend to, as a whole, be more willing to learn from other languages. Common Lispers, on the other hand, tend to get defensive at any hint of a suggestion that other languages might have something to offer.

Of course, that's all generalization. There are plenty of open minded CLers and close minded Schemers in the world.

I want to make one small correction to the article

> The Common Lisp community is a special case, since the language is the second oldest language in the world and it has such a long and glorious history

Common Lisp is actually younger than Scheme and in fact stole at least one important feature from Scheme: lexical scoping.

It's the Lisp family that's old. But Scheme is as much a part of that tradition as CL is. It's purely marketing that CL gets the Lisp "brand" where Scheme does not.

Michele Simionato

Posts: 222
Nickname: micheles
Registered: Jun, 2008

Re: Caring about programming languages Posted: Jun 1, 2009 11:14 AM
Reply to this message Reply
> I want to make one small correction to the article
>
> > The Common Lisp community is a special case, since the
> language is the second oldest language in the world and it
> has such a long and glorious history
>
> Common Lisp is actually younger than Scheme and in fact
> stole at least one important feature from Scheme: lexical
> scoping.
>
> It's the Lisp family that's old. But Scheme is as much a
> part of that tradition as CL is. It's purely marketing
> that CL gets the Lisp "brand" where Scheme does not.

You are 100% right of course. I made the unconscious mistake of identifying Common Lisp with Lisp. I have
changed the sentence now, by removing the word "Common".

Dick Ford

Posts: 149
Nickname: roybatty
Registered: Sep, 2003

Re: Caring about programming languages Posted: Jun 1, 2009 4:18 PM
Reply to this message Reply
First, does anybody really care about Paul Graham's predictions anymore? He's a semi-interesting writer, decent businessman, and probably good programmer, but his hand-wavy predictions and his hacker "identity politics" tend not to reflect reality.

On to CL: CL is interesting in that there's at least 3 companies still hanging in there developing and supporting proprietary implementations. By that measure, I can't call CL quite dead. It's combination of speed and extensibility are still pretty much unmatched when taken together as a whole.

But as far as some grass-roots revival, I tend to agree that's probably not going to happen. I will always contend that the syntax is a major stumbling block - there's just not enough no matter what.

Maybe someone can hack Dylan onto the JVM ;)

Kay Schluehr

Posts: 302
Nickname: schluehk
Registered: Jan, 2005

Re: Caring about programming languages Posted: Jun 2, 2009 1:08 PM
Reply to this message Reply
> First, does anybody really care about Paul Graham's
> predictions anymore? He's a semi-interesting writer,
> decent businessman, and probably good programmer, but his
> hand-wavy predictions and his hacker "identity politics"
> tend not to reflect reality.

He positioned at an extreme end of individualism and finally financed Web 2.0 startups as a consequent reflection of this attitude in the business world. It's an American Dream story, by which an eager and talented man becomes rich by virtue of his craft and a portion of luck but still preserves a liberal middle class standing, opposed to the hybris of the super rich. As someone who is more adherent to an "old European spirit" and fierce (anti-)philosophical traditions I found PG always a refreshingly original American in a positive sense. Nietzsche admired Emerson, so why shouldn't a German programmer admire Paul Graham?

Dick Ford

Posts: 149
Nickname: roybatty
Registered: Sep, 2003

Re: Caring about programming languages Posted: Jun 2, 2009 4:55 PM
Reply to this message Reply
> Nietzsche admired Emerson, so why shouldn't a German
> programmer admire Paul Graham?

My comments had nothing to do with admiring Paul Graham's past accomplishments. In fact, I think it's pretty cool that he leveraged CL to make some good money.

My point was that his predictions about Microsoft are not very insightful, and his hacker "identity politics" are more fantasy divisiveness than reality.

http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm is a rebuttal to his "Hackers and Painters" essay.

Graham might weave an interesting story, but that's about all as far as I'm concerned

Kay Schluehr

Posts: 302
Nickname: schluehk
Registered: Jan, 2005

Re: Caring about programming languages Posted: Jun 3, 2009 4:49 AM
Reply to this message Reply
http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm
> is a rebuttal to his "Hackers and Painters" essay.

Which is pretty evil ;)

Ironically it also shows the limitation of PGs individualism because modern art is mostly a fascinating abomination that ran into borderliner excesses and produced a parade of singularities and experiments. Software development will never ever catch up with this. It would become merely crackpottery.

> Graham might weave an interesting story, but that's about
> all as far as I'm concerned.

Creating a modern mythology is more than most of us will ever achieve in their lives even if it turns out to be short lived one. I believe PGs mythology just broke when he released Arc and everyone could clearly see that he is cooking with water like everyone else. No Michelangelo of our age.

The story of the Lisps continues and now Clojure gets much attention. I checked out Clojure once and after a few days of tinkering around with it I came to the point where I asked myself: why do you spend so much time with a language you don't really like? It is easy to convince me to give a new ( or old ) language a try but my stomach tells me that all those Lisp and APL and Joy and Forth derivates will be without a chance.

Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: Caring about programming languages Posted: Jun 3, 2009 6:07 AM
Reply to this message Reply
Most of the world's programmers do not really care about the language - what they really want is to create beautiful things and/or put food on the table. So they'll use whatever comes their way that they perceive as good for maximizing their benefits, whatever those benefits are (financial, quality, security, ego, whatever).

Michele Simionato

Posts: 222
Nickname: micheles
Registered: Jun, 2008

Re: Caring about programming languages Posted: Jun 3, 2009 6:29 AM
Reply to this message Reply
> Most of the world's programmers do not really care about
> the language - what they really want is to create
> beautiful things and/or put food on the table. So they'll
> use whatever comes their way that they perceive as good
> for maximizing their benefits, whatever those benefits are
> (financial, quality, security, ego, whatever).

Yes, but the point of my post is that we should not
care much about "most" programmers. The "few" are
the relevant programmers. At one extreme, I would think
that a language implementor (say Guido van Rossum) care a lot about his own programming language, to the point
that he has to invent it. Creative ideas come from such
people, not from the "most" programmers. For instance,
I will never invent a language, because I do not care
enough, and will never be involved too much with a specific
language, because I do not care enough. I will not claim
that all people that care too much about a language as worth of respect, but some are and they have my admiration.

Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: Caring about programming languages Posted: Jun 3, 2009 9:13 AM
Reply to this message Reply
> > Most of the world's programmers do not really care
> about
> > the language - what they really want is to create
> > beautiful things and/or put food on the table. So
> they'll
> > use whatever comes their way that they perceive as good
> > for maximizing their benefits, whatever those benefits
> are
> > (financial, quality, security, ego, whatever).
>
> Yes, but the point of my post is that we should not
> care much about "most" programmers. The "few" are
> the relevant programmers. At one extreme, I would think
> that a language implementor (say Guido van Rossum) care a
> lot about his own programming language, to the point
> that he has to invent it. Creative ideas come from such
> people, not from the "most" programmers. For instance,
> I will never invent a language, because I do not care
> enough, and will never be involved too much with a
> specific
> language, because I do not care enough. I will not claim
> that all people that care too much about a language as
> worth of respect, but some are and they have my admiration.

I don't think we should care about the few programmers that create programming languages. We should care about the programming languages those few programmers create, because by giving feedback we can make those languages better.

Michele Simionato

Posts: 222
Nickname: micheles
Registered: Jun, 2008

Re: Caring about programming languages Posted: Jun 3, 2009 10:29 AM
Reply to this message Reply
> We should care about
> the programming languages those few programmers create,
> because by giving feedback we can make those languages
> better.

Indeed, and I have a very recent example of that.
I was bugging Aziz about the fact that Ikarus does
not preserve the frames for tail recursive procedures.
He got tired of my ranting and implemented a debug mode for Ikarus such that:

1. tail recursion is preserved;
2. one still gets nice tracebacks.

The trick is to use a ring of frames (actually a ring of
rings) as suggested in this post by Joe Marshall:
http://funcall.blogspot.com/2009/05/you-knew-id-say-something-part-iv.html

Flat View: This topic has 10 replies on 1 page
Topic: The Adventures of a Pythonista in Schemeland/25 Previous Topic   Next Topic Topic: Thinking in Java 4e Electronic Book Now Available


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us