
Haskell, Ada, C++, Awk: An Experiment in Prototyping Productivity (1994) [pdf] - lelf
http://haskell.cs.yale.edu/wp-content/uploads/2011/03/HaskellVsAda-NSWC.pdf
======
jliechti1
"Them" refers to the developers using languages other than Haskell:

 _" We provided them with a copy of P1 without explaining that it was a
program, and based on preconceptions from their past experience, they had
studied P1 under the assumption that it was a mixture of requirements
speciﬁcation and top level design. They were convinced it was incomplete
because it did not address issues such as data structure design and execution
order.”_

 _" The other kind of response had more to do with the 'cleverness' of the
solution...[one of them] described the Haskell prototype as being 'too cute
for its own good'._

These both sound like they could have been written today.

Reminds me of this from the Incomplete and Mostly Wrong History of Programming
Languages:

 _Haskell gets some resistance due to the complexity of using monads to
control side effects. Wadler tries to appease critics by explaining that 'a
monad is a monoid in the category of endofunctors, what's the problem?'_

~~~
mcguire
Admittedly, "too cute for its own good" _is_ a pretty fair description of a
lot of Haskell.

~~~
anon_d
Over-engineering definitely does seem to be a problem in very-expressive
programming languages. Probably has more to do with the reasons most people
use Haskell rather than with Haskell itself.

------
cviedmai
There is another really nice paper from 2000 by Lutz Prechelt called ”An
empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl”
([http://page.mi.fu-
berlin.de/prechelt/Biblio/jccpprt2_advance...](http://page.mi.fu-
berlin.de/prechelt/Biblio/jccpprt2_advances2003.pdf))

This paper compared several properties of 80 implementations of a set of
requirements. It compared properties such as run time, memory consumption,
source text length, time expended developing the solution, comment density,
reliability and program structure.

Overall, even though there are some obvious threats to validity, I find this
work quite read-worthy.

------
vinkelhake
Might be a good idea to stick "1994" in the title of this post. This paper is
almost 20 years and things have happened since.

~~~
abdullin
It would be interesting to see how things have developed since 1994. Could you
recommend more recent references on the topic?

~~~
Morgawr
I've been recently studying comparisons of programming languages/programming
semantics and I've been reading papers on the subject. While I do not have
strictly relevant papers (I swear I had but I can't find them right now,
sorry), if you're interested on a broader subject, this could help:

* What is the Impact of Static Type Systems on Programming Time? ([http://ecs.victoria.ac.nz/foswiki/pub/Events/PLATEAU/2009Pro...](http://ecs.victoria.ac.nz/foswiki/pub/Events/PLATEAU/2009Program/plateau09-hanenberg.pdf))

* Heuristic Evaluation of Programming Language Features: Two Parallel Programming Case Studies ([http://ecs.victoria.ac.nz/foswiki/pub/Events/PLATEAU/Program...](http://ecs.victoria.ac.nz/foswiki/pub/Events/PLATEAU/Program/plateau2011-sadowski.pdf))

* Do Programming Languages Affect Productivity? A Case Study Using Data from Open Source Projects ([http://sequoia.cs.byu.edu/lab/files/pubs/Delorey2007a.pdf](http://sequoia.cs.byu.edu/lab/files/pubs/Delorey2007a.pdf))

They are all (mostly) recent papers, at least post-2005. Furthermore, the
Plateau international workshop might have some more material of interest:
[https://sites.google.com/site/workshopplateau/](https://sites.google.com/site/workshopplateau/)

ps: this Thursday/Friday in Delft (NL - Europe) there will be a conference
related on the subject of programming languages, it's free and might interest
someone: [http://eelcovisser.org/wiki/future-of-
programming](http://eelcovisser.org/wiki/future-of-programming)

EDIT: fixed second link

~~~
nbouscal
You gave the same link for the first two studies you mention. Also, it's
pretty easy to detect the author's heavy bias against type systems just from a
quick perusal of the first page. The methodology used is extremely
questionable, not to mention that he doesn't even consider languages with type
inference.

~~~
Morgawr
Whoops! Sorry, you're correct. I apologize for the wrong link (fixed now).

And yeah, I agree that some studies are a bit biased (it's hard to find
objective studies with a proper applied method). I just wanted to share some
findings that might have been interesting to the reader and let him/her take
home his/her own considerations on the matter. Entirely agree with you though.

------
gaius
Posted only 4 days ago:
[https://news.ycombinator.com/item?id=7029783](https://news.ycombinator.com/item?id=7029783)

~~~
fhars
Coincidence or synchronicity? I posted a link to the very same paper one day
ago without knowing about the other submission:
[https://news.ycombinator.com/item?id=7043915](https://news.ycombinator.com/item?id=7043915)
Why does everyone remember that paper now :-)?.

------
taeric
I commented on this in another thread where it came up[1]. My main takeaway
from this is that they had a ridiculously good lisper handy. Quite literally
less than half of the time of the next fastest implementation! That is insane.

[1]
[https://news.ycombinator.com/item?id=7044797](https://news.ycombinator.com/item?id=7044797)

------
Marazan
I was taught programming at University with a combination of Ada and Haskell
(In the first two years at least, year 3 & 4 used whatever was appropriate for
the module)

------
acconrad
It has "Haskell" in the domain name, it sounds quite biased to favor
Haskellers, as well as the fact that the paper is dated.

~~~
Sssnake
Good thing you caught on to Yale's conspiracy to trick you into using haskell.
Now avert your gaze lest you be corrupted.

------
jonathansizz
We're now 20 years on, and still hardly anybody uses Haskell. This is just a
guess, but _maybe it 's not going to catch on_..

~~~
thirsteh
I don't think you're paying very much attention.

~~~
jonathansizz
Outside the HN bubble, I mean.

EDIT: I stand corrected; there is a Haskell job listed at the moment:
[http://www.indeed.com/q-Haskell-jobs.html](http://www.indeed.com/q-Haskell-
jobs.html)

Have fun in Reston, VA!

~~~
derefr
The types of coding work hired out through job boards, and the types of coding
work Haskell is good for, are not intersecting sets.

~~~
platz
Implying Haskell should only be used in the ivory tower? Just because it can
be abstract doesn't mean you can't do CRUD apps with Haskell - why not?

~~~
derefr
What a language _can_ do, and what a language is _uniquely suited_ for, are
distinct concepts. You _can_ do CRUD apps in Haskell--but writing a CRUD app
doesn't _suggest_ Haskell, and so you won't likely hire Haskell people to
write you a CRUD app.

I didn't mean to imply that Haskell's specialty lies anywhere near the ivory
tower, either. It seems to me closer to a replacement for Ada in writing
provable-yet-optimized software.

------
LeoNatan25
Tomato vs tomàto vs tomáto vs tomatö

