5.4.05
Josef Svenningsson on Links
I'm sorry I haven't responded to your invitation to the Links workshop
earlier. Although it sounds like great fun I have my hands full with
writing up my thesis. Whether or not I'll be participating in the
future depends on who my future employer might be...
I'd still like to make some comments on the project though. First of
all I think the Links project has a lot of potential. I'm absolutely
confident that Links is going to be a really sweet language. There is
also a lot of opportunities for exciting research in the design and
programming experience with this language.
Now to my remarks. Here's a short summary:
One of your primary goals with Links seems to be to make a widely used
language. The mechanisms of language stardom is very complex and
completely different from designing a good language. Below I share
some thoughts on what I think it takes for a language to become
popular these days. The last paragraph talks about types and effects.
I'd like to start by quoting you:
"If we bent our minds to it, could we produce a functional language
that was as widely used as Python? There is reason to believe that
functional languages are particularly well suited to building web
applications."
These are two sentences which have very little in common. The first talks
about a language which is going to be famous and widely used. The second
talks about a technically superior language. I think it is time we learn
from history. Whether a technology becomes standard or widely used has
very little to do with the quality of that technology. As I said above I
am convinced that you're going to cook up a very nice language. But making
it widely used is a whole different mission.
But maybe it won't be that difficult to get Links widely used? After all it
has a "killer app"; web applications. But in my experience this is not
enough to draw attention. What you have to do nowadays to draw attention to
a language is to write a really unique program or system which people will
want to use. Recent examples of this is darcs, the revision control program
written in Haskell. It is a nice piece of software which could have
been written in any language really. To draw attention to Links I think you
should involve some hard core web developers (it is a good idea anyway
to hear what they have to say about the design of the language.) You will
be needing to write eye popping applications. Example of such applications
abound at Google; Google suggest, Google maps, GMail for example.
After getting peoples attention to a language there really needs to be
a lot of example code, libraries and tutorials for people to use and
look at. Haskell still lacks in this respect. And this is because it
is tedious work to write these things, work that one doesn't get score
any academic point with. Companies like Sun and Microsoft can handle
these things by setting their armies of programmers and technical
writers to work.
I find it interesting that you suggest that Links type system should
be equipped with effects. In fact I'm really thrilled by this language
design experiment. As far as I know there is really no knowledge at
all about the practical use of effects in programming so its going to
be interesting to see what comes out of this. Immediate obstacles that
come to mind is for instance debugging. I believe that using print
statements inside a algorithms is still a very common thing to do. But
with monads or effects this suddenly changes the type of my algorithm
making it incompatible with the rest of my program. In Haskell this
has led to some gruesome hacks such as the trace function. Another
thing is common exceptions like arithmetic exceptions and stack
overflow. In Java they solve this by having a special class of
exceptions. This may or may not be the best way to solve the
problem. Finally, since effects are rather fresh ground they might not
be the best choice for a language which is supposed to be widely used.
I hope my tone hasn't been overly patronising. As I said above I think
Links is going to be just great I'm looking forward to seeing it
develop. I wish you good luck with the workshop next week.
/Josef Svenningsson
earlier. Although it sounds like great fun I have my hands full with
writing up my thesis. Whether or not I'll be participating in the
future depends on who my future employer might be...
I'd still like to make some comments on the project though. First of
all I think the Links project has a lot of potential. I'm absolutely
confident that Links is going to be a really sweet language. There is
also a lot of opportunities for exciting research in the design and
programming experience with this language.
Now to my remarks. Here's a short summary:
One of your primary goals with Links seems to be to make a widely used
language. The mechanisms of language stardom is very complex and
completely different from designing a good language. Below I share
some thoughts on what I think it takes for a language to become
popular these days. The last paragraph talks about types and effects.
I'd like to start by quoting you:
"If we bent our minds to it, could we produce a functional language
that was as widely used as Python? There is reason to believe that
functional languages are particularly well suited to building web
applications."
These are two sentences which have very little in common. The first talks
about a language which is going to be famous and widely used. The second
talks about a technically superior language. I think it is time we learn
from history. Whether a technology becomes standard or widely used has
very little to do with the quality of that technology. As I said above I
am convinced that you're going to cook up a very nice language. But making
it widely used is a whole different mission.
But maybe it won't be that difficult to get Links widely used? After all it
has a "killer app"; web applications. But in my experience this is not
enough to draw attention. What you have to do nowadays to draw attention to
a language is to write a really unique program or system which people will
want to use. Recent examples of this is darcs, the revision control program
written in Haskell. It is a nice piece of software which could have
been written in any language really. To draw attention to Links I think you
should involve some hard core web developers (it is a good idea anyway
to hear what they have to say about the design of the language.) You will
be needing to write eye popping applications. Example of such applications
abound at Google; Google suggest, Google maps, GMail for example.
After getting peoples attention to a language there really needs to be
a lot of example code, libraries and tutorials for people to use and
look at. Haskell still lacks in this respect. And this is because it
is tedious work to write these things, work that one doesn't get score
any academic point with. Companies like Sun and Microsoft can handle
these things by setting their armies of programmers and technical
writers to work.
I find it interesting that you suggest that Links type system should
be equipped with effects. In fact I'm really thrilled by this language
design experiment. As far as I know there is really no knowledge at
all about the practical use of effects in programming so its going to
be interesting to see what comes out of this. Immediate obstacles that
come to mind is for instance debugging. I believe that using print
statements inside a algorithms is still a very common thing to do. But
with monads or effects this suddenly changes the type of my algorithm
making it incompatible with the rest of my program. In Haskell this
has led to some gruesome hacks such as the trace function. Another
thing is common exceptions like arithmetic exceptions and stack
overflow. In Java they solve this by having a special class of
exceptions. This may or may not be the best way to solve the
problem. Finally, since effects are rather fresh ground they might not
be the best choice for a language which is supposed to be widely used.
I hope my tone hasn't been overly patronising. As I said above I think
Links is going to be just great I'm looking forward to seeing it
develop. I wish you good luck with the workshop next week.
/Josef Svenningsson