A Wake Up Call for the Logic Programming Community
|Editor: Enrico Pontelli
In the 6 six years that I have been doing research in the Logic
Programming community, I have met a lot of nice people and heard about
a lot of interesting research ideas. However, the community itself
isn't exactly thriving and LP has a serious PR problem. It's my fear
that if we happily continue along our current path, then there will be
little left of LP and its flagship Prolog in a couple of years.
There are plenty of stories about the fabled heydays of Logic
Programming with 300+ ICLP attendants, well before my time. However,
nowadays, what are LP's claims to fame? How can we motivate people to
join the field, while there are so many more exciting (better marketed)
research fields? What career opportunities can we promise people who
learn Prolog? What industrial applications can we mention? There must
be some out there, but for some reason it is oh so difficult to list
more than the one or two you always hear about.
The purpose of this article is to tell you about how the Functional
Programming community, and in particular the Haskell community, has
dealt quite successfully with very much the same issue.
My recent attendance of ICFP, the FP counterpart of ICLP, has been a
real eye-opener in this respect. There are plenty of tell-tale signs of
a successful PR machinery running at full throttle:
- There is an incredible boost in the number of ICFP
participants: 240 participants this year, which is about twice
the number at ICLP. There are about a 100 more than last year.
- The co-located Haskell workshop (one day, 10 papers) had
about 120 participants. That's about the same number as the ICLP main
conference! I'm sure it's 3x or 4x more popular than any ICLP
single day workshop.
- The second most popular co-located workshop is the
Commercial Users of Functional Programming (CUFP) workshop with 109
participants! Most of the speakers are indeed commercial users and
not affiliated to a university.
What's the secret of their success? These aspects must be having some effect:
- More than a few non-academics participate attend ICFP and
its workshops. Commercial users and hobbyists feel that ICFP has
something in store for them.
- Functional Programmers are confronted head-on with the
commercial applications of their work, and they cannot avoid
being motivated. I already mentioned the CUFP workshop. ICFP too
puts a big effort in a special track of 6 experience reports. These are
meant to build up a written body of evidence at the disposal of
the champions of FP. Do not except any new research ideas or new
insights in the use of FP. That's not what they are meant for. The
purpose is really to reinforce the community!
- Functional Programmers know where to find a job when they
finish their Ph.D. Companies are actively recruiting at ICFP. Get
a free dinner when you sign up for an interview!
- A considerable part of the program consists of new ideas to
make programming easier, libraries, tools and programming idioms.
These are exactly what real programmers and companies need, in
order to be convinced to adopt FP.
If the research community values
talks about these topics too, then you get more research effort
spent on them. More real world programming tools, means more real
world programmers. More real world programmers means more researchers!
Of course, there is more to a community than just conferences and
workshops, certainly if there is more to that community than just
academics. Haskell is the undisputed flagship of the FP
community. This language was designed by a committee and is especially
welcoming to outsiders:
- There is a tremendous amount of activity on the Haskell
mailing lists (Haskell and Haskell-Cafe): on October 10 I counted 83
messages versus the 7 messages on Prolog's main discussion forum
- The haskell.org
portal website bundles almost everything there is to know about the
language: papers, systems, tools, companies, tutorials and wikis with
explanations about language features and idioms,...
- There is a central repository (hackage) for all kinds of libraries and projects.
Everyone can step right in to contribute; in fact, the community
insists that you join the fray. There is no central authority, no
equivalent of the ALP, to tell people what to do or what not. You don't
need permission to update the website or to add another project to
hackage. It works: the open source community around Haskell is
growing and making Haskell into a viable alternative for mainstream
languages. These days libraries are a major factor for adopting a
language, and Haskell is getting them through its growing open source
community, its Google Summer of Code projects and its hacking marathon
co-located with ICFP, not to mention the researchers who can actually
publish their work on libraries for real-world problems. The snowball
was tiny when it was first thrown, but it's become a real avalanche
now! And the Haskell community sure is fanning the flames.
- Missed a symposium or FP user group meetings to know what's
going on? Simply catch up on Google Video! For example, all the
Haskell 2007 workshop talks are on-line. In comparison, if found
only two videos on Prolog which weren't even by LP people.
Clearly this community is doing some things right by investing
considerable efforts in community building. I think the LP community
should start learning from this if it doesn't want to get extinct.
There is little point in putting your hopes on parallel programming for
making LP popular again, if the community does not start to value and
advertise itself first. All the things I mentioned above, LP can do too:
- real-world application papers at ICLP and all these other signs that LP matters out there,
- more papers on programming tools and libraries at conferences,
- a centralized wiki website and project repository with all
kinds of resources where we can find out about LP people,
projects, software, companies, ...,
- a mailing list that pushes messages rather than a newsgroup from which you actively have to pull messages,
All this should happen with the communities encouragement. Don't put up
high barriers and high standards for people to contribute. Let them
contribute first, and, if you don't like what's there, then improve it!
It takes only a little effort from everyone to make a big difference.
- the ALP and other sponsors should financially back community efforts.
There is one big hurdle that the LP community has. The Prolog
implementations are hopelessly fragmented, and we cannot expect any
hope from the ISO Prolog committee. We are in great need of an
up-to-date language standard. It's been proven to be impossible to get
everyone to agree. So let's not do that; let's
lower our standards. Wouldn't it already be great if we could have JUST
TWO systems that we could rely on to behave in the same way.
Here's my challenge for you Prolog systems out there:
Here's my challenge to the community to back the first two systems that manage
- find a partner system,
- agree on a common module system,
- agree on a common set of built-ins, and
- agree on a common set of base libraries,
- present us your system at ICLP 2008.
to seriously cooperate:
- we conduct any generic Prolog research on these systems and say so in our papers,
- we contribute all the library code we happen to write,
- we teach our students to use these systems,
- we get our master students to write libraries and tools for these systems, and
- the ALP endorses these systems as the new Prolog standard.
Please let me and everybody else know what you think: tell us on comp.lang.prolog!