Re: [Haskell-cafe] Aim Of Haskell

Hello Kaveh,
Sunday, December 10, 2006, 6:15:23 PM, you wrote:
chosen one. But Haskell seems to be buzz-full research platform. Now again to the top : what is the aim of Haskell project? If it is going to be used in real world applications it needs more attention to real world application developers and their needs.
you are right - just now Haskell is a huge technology with non-obvious
that use Haskell and therefore it's hard to change Haskell to suit their needs, on the other hand this means that pragmatic programmers can't grok Haskell
on the way to make Haskell more pragmatic i especially mention renewal of Haskell standard to include modern language extensions, modern
I think this hits the nail on the head. To be blunt, the presence of so many academics and scientists in the Haskell community is intimidating to those of us that work "in industry". Our brains are, after all, not as highly trained as yours, and we care about different things than you do. Now I don't mean to say that the academics and scientists should go away! Far from it. Just that it would be great to hear more about the mundane aspects of programming occasionally. Like, how exactly do I read from a relational database with Haskell? Or process an XML file? Or build an event-driven GUI? And crucially, why does Haskell do those things better than Java, or C#, or Ruby? If somebody could write some articles on those subjects, and get them up on popular websites like Digg or Reddit, this would be far more helpful than yet another monad tutorial. The Haskell web server that Simon Peyton-Jones et al described in their paper would be a great example. But where's the download? How do I get a copy to play with? In the "real world", things don't stop with the publication of a paper ;-) I think Haskell has huge potential to improve mainstream programming, if it could only catch on a bit. I don't know how to make that happen, unfortunately (if I did, I would do it, and hopefully get rich in the process). But whatever Haskell needs, it's not getting at the moment. Neil path to learn. there is some work to make Haskell more pragmatic, but it's an chicken-and-egg problem - we have a small number of pragmatic programmers programming
environments such as WinHugs or BusinessObjects, development of web/db/gui libraries, and definition of core (standard) libraries set
one particular thing that we still lack is something like book "Haskell in real world"
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Hello! On Fri, Dec 15, 2006 at 01:14:38PM -0000, Neil Bartlett wrote:
Just that it would be great to hear more about the mundane aspects of programming occasionally. Like, how exactly do I read from a relational database with Haskell? Or process an XML file? Or build an event-driven GUI? And crucially, why does Haskell do those things better than Java, or C#, or Ruby? If somebody could write some articles on those subjects,
You seem to assume no such articles exist, which is wrong. It doesn't take too much searching to find them - I just googled for "haskell gui", "haskell xml", "haskell database" and got very relevent links at the top. Don't expect you'll find those articles on your doorstep together with a milk bottle ;-) There are so many topics connected with Haskell that it wouldn't be possible to link them directly from the start page of http://www.haskell.org/. Also, writing articles about the superiority of Haskell over Java, C#, etc. could be seen as (or simply be) chauvinism and arrogance, don't you think? Especially if written by someone like me, who knows Haskell much better than all those languages (so can't program *well* in those languages). Well, you can try with the "great programming language shootout", where many people contribute solutions for the same problems in many languages.
and get them up on popular websites like Digg or Reddit, this would be far more helpful than yet another monad tutorial.
Are you sure it's a good idea to bomb uninterested people with Haskell all the time. Something to get them interested - sure. But when they are interested, I believe they can find what they want mostly on their own. Of course it's good to make the search easier, but it's impossible to eliminate it completely.
The Haskell web server that Simon Peyton-Jones et al described in their paper would be a great example. But where's the download?
Let me stress this: HWS is an *exception*. It's the only Haskell related thing that I had trouble to find.
I think Haskell has huge potential to improve mainstream programming, if it could only catch on a bit.
Define "a bit". According to my definition, it already happened :-)
I don't know how to make that happen, unfortunately
Don't start a crusade to convert the people - history shows that such enterprises most often have fatal outcomes.
But whatever Haskell needs, it's not getting at the moment.
Honestly, I don't see that. To me it seems that everything is going nicely: the language is used, the community is alive, compilers are getting better, libraries are getting better are more numerous, the number of users seems to be increasing. What is the problem? Try to convince me that something is wrong ;-) (I can think of some problems, but I am *not sure* we should be afraid of them). Best regards Tomasz

On 12/15/06, Tomasz Zielonka
The Haskell web server that Simon Peyton-Jones et al described in their paper would be a great example. But where's the download?
Let me stress this: HWS is an *exception*. It's the only Haskell related thing that I had trouble to find.
This is the only thing I disagree with in your post. I've had at least one of the following questions/problems with all of the libraries/tools that I'm about to list. I'd say some of the questions are normal and expected regardless of language choice but I mention them here because in the case of Haskell it was significantly a problem compared to what I'm used to: Problems: * finding which version is "current" * where is the documentation * is it still maintained * is this what people are actually using or was it just a proof of concept * where are the tutorials (research papers don't count) * how does it compare with the version commonly found in "mainstream" languages Libraries: * H/Direct * HOpenGL * HaXML vs. HXT * .NET interoperability? * HDBC * QuickCheck * TH Those are just the ones I can think of off the top of my head. With the exception of HOpenGL I've looked at them with the intention of using them at work where I do windows application development. I now know that most of them have some information I can get from the haskell wiki assuming I search long enough (for some reason the wiki search and google don't find the relevant wiki pages very often when I search). In many cases I end up at the tool/library website and many of my questions are still unanswered. I've now started reading the research papers when I don't immediately see the information I want to know, but a research paper is not what "industry" types want to look at when they want to know how to write QuickCheck properties (as an example). With a few of the listed libraries I resorted to reading the code to find out what I wanted to know. That's a nice fall back but it shouldn't be the normal way to learn about libraries. The best source of info I've found when trying to pick a library is to ask in #haskell on freenode. Some of the problems I've had are quite silly in some sense. As in the case of HOpenGL. With HOpenGL the documentation can be found and even some extensive PDFs detailing how to use it. But as anyone who has played with HOpenGL can tell you, those long PDFs contain many errors about the exact names of functions (I suspect the library has evolved since the PDF was written) and HOpenGL is quite different than OpenGL in terms of function names. This is partly why I created my ne-he tutorial conversion. So that people would have working example code to play with when they want to start learning HOpenGL. Jason

Quoth Jason Dagit, nevermore:
but a research paper is not what "industry" types want to look at when they want to know how to write QuickCheck properties (as an example).
This one posed big problems for me when trying to choose an XML parser. The HaXml research papers are about 3 dramatic API changes away from the current version or something. There was very little of use in the documents so I just had to work everything out from the Haddock-generated data --- something which I may say is remarkably easy to do when compared to other languages. D. -- Dougal Stanton

Hi, I don't answer specific previous line of mail but just give my opinion :) As with any non-mainstream or young language, there's some kind of lack of libraries/tools/whatever. With the arrival of Java, people get used to have scores of libraries which are 'right there', just 'part' of the java api. (Just google for any "java <class-name>" and 1/ you will find the approriate doc on sun's site and 2/ well, there's no number 2 : the library is already availble on your machine). The problem is the same with other languages. I talk especially of the problem of finding last version of a lib, installing it, finding/reading the doc. But the problem is quite cosmetic. There *are* libs. I don't know Cabal. Maybe such a tool has to enforce or encourage the lib author to package it carefully. Maybe such a tool could be used with a haskell.org-side server app to provide the relevent information to the user and cache the lib if it's author is erased from the map. If the haskell community has the tool, I'm sure every member of the community will use it. (the problem with tool adoption is another point). (I found the idea on the wiki of 'how to start a haskell project' has the same merit.) Well. Don't bother with 'building the community' or 'spread the word'. People on this mailing list have needs which are quite the same than the ones that will make the two 'goals' happen. Or in other words : I see a lot of thread about 'building ...' and 'spread ..' but the fact is : the community is building up itself and does it quite right. Ciao, mt

minh thu schrieb:
With the arrival of Java, people get used to have scores of libraries which are 'right there', just 'part' of the java api.
Actually, the importance of libraries predates Java. However, Java may have been the first language where writing the libraries was a conscious strategic decision. Regards, Jo

On 12/15/06, Jason Dagit
The Haskell web server that Simon Peyton-Jones et al described in
On 12/15/06, Tomasz Zielonka
wrote: their paper would be a great example. But where's the download?
Let me stress this: HWS is an *exception*. It's the only Haskell related thing that I had trouble to find.
This is the only thing I disagree with in your post.
As someone learning about Haskell while working in "industry", I second the concerns expressed here. My particular case involves the variety of "functional reactive programming" libraries and papers out there. After reading Hudak's School of Expression, I first tried to download the code referenced in the book. It was pretty stale but someone did the nice work of making sure Hugs still has a version of the original library that matches the SOE source. Sort of - once I figured out a few key module changes it was no big deal. I've tried to look at other libraries, FRAP and Yampl, but found them both stale and hard to figure out how to install. The Haskell community might take a page from the Ruby book here and look at the "Ruby Gems" package distribution system. It makes install new ruby libraries and applications as simple as a single command. For example, to install rails you just type: gem install rails And all the source for the latest released Ruby on Rails is downloaded and installed on your machine, ready to use. Haskell's compiled nature might make that a bit more difficult but its still pretty awesome and definiltey the preferred way of getting libraries out in Ruby community. If you don't believe me, search the google group "comp.lang.ruby" for emails with "[ANN]" in the header and you'll see most are distributed via gems.

On Fri, Dec 15, 2006 at 09:21:52AM -0800, Jason Dagit wrote:
On 12/15/06, Tomasz Zielonka
wrote: The Haskell web server that Simon Peyton-Jones et al described in their paper would be a great example. But where's the download?
Let me stress this: HWS is an *exception*. It's the only Haskell related thing that I had trouble to find.
This is the only thing I disagree with in your post.
Well, something told me there is something wrong in my statement, but in a hurry I chose not to listen ;-) Of course you are right, at least in the sense that this matter is very subjective, so I can't answer for all the people. OK, so HWS is not the only case, but this was a striking one - when I wanted it, I searched for a long time and the only thing I found was a hws-wp patch to the original sources. Unfortunately, I couldn't recreate full sources from it :-) Best regards Tomasz

This is sort of a tangent... One of the things I notice happens a lot on the lists is that it is very difficult to answer questions without knowing the background of the person asking it. Haskell is a 'multi-level' language in a lot of ways, there is the nice friendly veneer described in the report, but a lot of that functionality exposed to the user is implemented in haskell itself using unsafe operations and interesting and useful implementation specific tricks, but that are probably not what someone learning the language is looking for. So, the most basic question, perhaps one of the first things someone exploring the language asks: "How do I turn an IO String into a String?" gets several different replys which can be quite intimidating for someone expecting a simple answer "unsafePerformIO but don't use it!" "Haskell Performs IO using Monads, a mathematical construct taken from category theory" "You need to put your call to getContents in a 'do' block" "perhaps you should be using Arrows" (okay, perhaps this one doesn't come up so much) now, for a newbie, picking out choice number 3 may or may not be obvious, but it certainly can be a very intimidating barrage of replies. I think we need some sort of signal, to show that one means "I understand why haskell doesn't allow this in general, but am interested in a compiler specific trick or some theoretical background on the issue" rather than "I am learning haskell and am somewhat confused due to preconcieved notions fostered by my experience with other languages, can someone help me?" Perhaps we as a community need to avoid the urge (it is hard to resist) to give esoteric answers unless specifically asked for and veterans will have to try not to be too offended if someone mistakes their obscure implementation question for a confused beginning one on occasion. John -- John Meacham - ⑆repetae.net⑆john⑈

On Fri, 15 Dec 2006, John Meacham wrote:
One of the things I notice happens a lot on the lists is that it is very difficult to answer questions without knowing the background of the person asking it.
<snip>
Perhaps we as a community need to avoid the urge (it is hard to resist) to give esoteric answers unless specifically asked for and veterans will have to try not to be too offended if someone mistakes their obscure implementation question for a confused beginning one on occasion.
I have to admit I've more than once had to supress the urge to PM something like "STFU" to someone in #haskell while I'm explaining something to a newbie because they're all unsafePerformIO and arrows and other confusing stuff. It's even worse when answering questions like "doesn't the IO monad make the language impure still?", although that's not such a problem in email because at least I can get through my own explanation without interruption. It's worth noting that sometimes the obscure question's theory-related rather than implementation. -- flippa@flippac.org Sometimes you gotta fight fire with fire. Most of the time you just get burnt worse though.

John Meacham schrieb:
I think we need some sort of signal, to show that one means "I understand why haskell doesn't allow this in general, but am interested in a compiler specific trick or some theoretical background on the issue" rather than "I am learning haskell and am somewhat confused due to preconcieved notions fostered by my experience with other languages, can someone help me?"
The usual answer to this kind of problem is splitting up the forums. E.g. a haskell-learners list for those who should be saying "I'm learning Haskell", a haskell-tricks one for the more esoteric (high-level, whatyanameit) stuff. Possibly haskell-libraries for library announcements and questions of the form "where do I find the library for doing foobar". Just my 2c. There may be better courses of action (or non-action). Regards, Jo

On Sat, Dec 16, 2006 at 10:40:10PM +0100, Joachim Durchholz wrote:
John Meacham schrieb:
I think we need some sort of signal, to show that one means "I understand why haskell doesn't allow this in general, but am interested in a compiler specific trick or some theoretical background on the issue" rather than "I am learning haskell and am somewhat confused due to preconcieved notions fostered by my experience with other languages, can someone help me?"
The usual answer to this kind of problem is splitting up the forums. E.g. a haskell-learners list for those who should be saying "I'm learning Haskell", a haskell-tricks one for the more esoteric (high-level, whatyanameit) stuff. Possibly haskell-libraries for library announcements and questions of the form "where do I find the library for doing foobar".
But part of the fun of haskell-cafe is that it's where all the cool people hang out, so you can sit there and be dazzled by their arcane knowledge, and yet also find help for your more mundane problems. I don't think it hurts for a newbie to get a mixture of answers, including the simple ones that benefit them, along with a few to stretch their mind. -- David Roundy Department of Physics Oregon State University

On 15 dec 2006, at 14.14, Neil Bartlett wrote:
... The Haskell web server that Simon Peyton-Jones et al described in their paper would be a great example. But where's the download? How do I get a copy to play with? In the "real world", things don't stop with the publication of a paper ;-) ...
There is a darcs repo with the HWS at: http://darcs.haskell.org/hws/ It's the 2th result if you google for "haskell web server" (though to be fair, I set up that repo pretty recently just because the original code was hard to find). It's not exactly the original sources, as they have been modified to compile with GHC 6.6 and current library versions. The original code is available from http://cvs.haskell.org/ cgi-bin/cvsweb.cgi/fptools/hws/ /Björn
participants (11)
-
Bjorn Bringert
-
David Roundy
-
Dougal Stanton
-
Jason Dagit
-
Joachim Durchholz
-
John Meacham
-
Justin Bailey
-
minh thu
-
Neil Bartlett
-
Philippa Cowderoy
-
Tomasz Zielonka