[darcs-users] darcs issues
Alexander Staubo
alex at byzantine.no
Tue Dec 21 02:28:43 UTC 2004
Neal D. Becker wrote:
> There is one major stumbling block - and I would guess it
> may have been discussed here before - which is the implementation language.
I'm curious why you think this is a stumbling block, and also what you
think it's blocking in the first place.
Do you think that Haskell is going to make adoption slower? Do you think
that Haskell is going to make *development* slower? Do you think users
(those don't care about the source code) mind that it's Haskell? Do you
think developers who would like to contribute mind that it's Haskell?
Floating vague speculations around is not helping anyone, really. You
will have to cough up some pretty convincing, hard evidence in order to
sway anyone. How about a 30-page analysis on how rewriting Darcs in
Python would make it 50 times faster, increase portability and make
Darcs developers three times as attractive to the opposite sex.
Anything not based on facts is useless and ultimately tainted by
politics and a myopic bias towards the technology-of-the-day. It could
be Python today, it might be Ruby tomorrow. If Python goes out of
favour, is Darcs going to chase whatever new thing comes along?
Admittedly a language has logistical facets; it depends on a sort of
language ecology. A project needs developers who know the language, and
it needs up-to-date compiler tools and libraries that support the
platforms we need.
If we were talking about Algol here I would be a little more worried,
because then the tool infrastructure itself would be a liability. But
Haskell's tool support is not a liability.
As for developers, as Mark Stosberg comments, even though Svk is using a
much more mainstream language than Haskell, its development seems less
active. There's a ton of dead open source projects out there that are
based on Python, C or other popular languages; they are the living (or
rather, dead) evidence against the oft-touted argument that a mainstream
language by itself would attract more developers. That's because
developers usually don't work on a project because of the language, but
because of what's *being implemented* in the language.
Anything beyond that is speculation. The developer mindshare problem is
not worth discussing until Darcs suddenly suffers a dearth of
contributions. As it is now, it looks like Darcs is doing fine; and
there's that old adage, "if it ain't broke..." Darcs is even attracting
developers *because* of Haskell; I know, because I'm one such developer.
Still, this is speculation with very little hard evidence. Now if, like
Stephan Bortzmeyer, you said, "GHC doesn't compile binaries for my
platform of choice," or, "Haskell can't do blah by design", then you
would at least dealing with facts. Whether they're important facts is
another matter, but at least we can evaluate them logically.
In conclusion, evaluate a language's suitability based on facts, not
vague, unfounded statements like "x is more mainstream than y". Then we
can have a real discussion.
> Haskell is not exactly your main stream language.
I'm interested in the psychology here. How does a language's
mainstreamness affect a program?
Mainstreamness, I think, is about sexiness; it's not just that you don't
know Haskell, you don't think it's as sexy as the alternatives.
The notion of mainstreamness is a vicious circle, and you're already
perpetuating it with your mindset. Languages increase in adoption and
become mainstream thanks to grassroots and corporate promotion and
support. But if everybody decides not to adopt something because it's
not mainstream yet, then that something will never become mainstream.
Python wasn't mainstream just a few years ago. Just two or three of
years ago people would laugh at you for suggesting developing serious,
large-scale apps in Python. As a rule, people don't laugh so much these
days. But they would probably still laugh at Haskell.
As an aside, I'll mention that two of Haskell's best features --
generators and list comprehensions -- were grafted onto Python
relatively recently. In a way you're using Haskell without realizing it
(assuming you're a Python user).
> I wonder what you think
> of the idea of a re-implementation in a more main stream language. I think
> anyone who likes elegant languages would probably like Python, which is
> very widely available.
I will pretend you said something like "Python is a more suitable
language than Haskell for technical reasons", because your other
argument is so irrelevant and badly formulated.
While I know Python better than I know Haskell, and I know that it would
be easier for me to implement certain features I want if Darcs were
written in Python, I think Python is slightly less suitable, because
Darcs' use of Haskell to express the theory of patches.
I also suspect Python would be just as slow, or slower, than Haskell.
Remember that Python is, at the moment, interpreted, whereas Haskell is
natively compiled. Haskell is statically typed, whereas Python uses a
humongous amount of dynamic dispatching at runtime.
Python might seem easier to optimize at first glance, due to its
non-functional, non-recursive nature, but in the end it would probably
mean writing a bunch of stuff in C, as opposed to making the Python code
more efficient.
The performance part is just my professional opinion, and is impossible
to predict except with a proper proof of conept.
If Darcs today were just an idea and we were still talking about which
language to choose, and I were one of the core developers, I would
suggest Python. But that's because I'm an experienced Python developer
and would be more productive, at least initially, in that language. It's
not because of any technical reasons per se.
Since Darcs already exists, the language has been decided. And David
Roundy, the principal author of Darcs, does not hold Python in very high
regard. If I remember correctly, it was his experiences with Python that
pushed him into Haskell's loving arms.
Of course, anyone is free to offer alternative implementations in other
languages.
Alexander.
More information about the darcs-users
mailing list