diff options
author | michele.simionato <devnull@localhost> | 2009-06-01 09:22:42 +0000 |
---|---|---|
committer | michele.simionato <devnull@localhost> | 2009-06-01 09:22:42 +0000 |
commit | d383901db8c9045d4489a8dadb5bc4403d633e70 (patch) | |
tree | a8af189dddee716f3d79fd58cb07c0d11f9c6b75 /artima | |
parent | 0b21315e6abbbffabbbfa090313c63d1837b50af (diff) | |
download | micheles-d383901db8c9045d4489a8dadb5bc4403d633e70.tar.gz |
Published version of my article "Caring about programming languages"
Diffstat (limited to 'artima')
-rw-r--r-- | artima/general/Makefile | 3 | ||||
-rw-r--r-- | artima/general/caring.txt | 199 |
2 files changed, 202 insertions, 0 deletions
diff --git a/artima/general/Makefile b/artima/general/Makefile index 66a3d0a..eaebfd9 100644 --- a/artima/general/Makefile +++ b/artima/general/Makefile @@ -9,3 +9,6 @@ eeepc-ubuntu: eeepc-main: python2.5 ../post.py eeepc-as-main-box.txt 257325 + +caring: + python2.5 ../post.py caring.txt 259296 diff --git a/artima/general/caring.txt b/artima/general/caring.txt new file mode 100644 index 0000000..7a4abc6 --- /dev/null +++ b/artima/general/caring.txt @@ -0,0 +1,199 @@ +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 on 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 +entertainement, 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 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: science and arts are produced +and evolve in consequence of the work of a small aristocracy. +The majority matters when it comes to the question of +the *success* of language; one may argue that one language is +more successfull 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 sort of +technical and non-technical reasons. + +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 partecipant 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 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 - 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 mindshare +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 "successfull" +community (they will not choose Common Lisp) and others taking pride +in being part of a small "oppressed" community (they may 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 isthe +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 absorbe +what they have to teach us youngesters 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 +offence 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 ;-) + +.. _Microsoft is dead: http://www.paulgraham.com/microsoft.html +.. _European Lisp Symposium: http://www.european-lisp-symposium.org/ +.. _Italian Python conference: http://www.pycon.it/ +.. _Pascal Costanza: http://p-cos.blogspot.com/ |