[haskell-cafe] Some reflections on Haskell

Kevin Jardine notices "the full Haskell ecosystem ... is huge", and laments the absence of "a sophisticated IDE to help manage" it. Being a small-code type, I don't personally enjoy IDE's, which are undeniably useful in big projects, at the cost of a whole lot more to learn about "programmering" in addition to programming. Nevertheless, I share Jardine's concern about the central problem. It is hard to find one's way in this ecosystem. It needn't be, as Java illustrates. To my mind Java's great contribution to the world is its library index--light years ahead of typical "documentation" one finds at haskell.org, which lacks the guiding hand of a flesh-and-blood librarian. In this matter, it seems, industrial curation can achieve clarity more easily than open source. (To avoid entanglement with social media, this comment is going to Haskell Cafe rather than Google+ where other comments reside.) Doug McIlroy

What about hoogle/hayoo and hackage?
On Tue, Feb 14, 2012 at 5:13 PM, Doug McIlroy
Kevin Jardine notices "the full Haskell ecosystem ... is huge", and laments the absence of "a sophisticated IDE to help manage" it. Being a small-code type, I don't personally enjoy IDE's, which are undeniably useful in big projects, at the cost of a whole lot more to learn about "programmering" in addition to programming.
Nevertheless, I share Jardine's concern about the central problem. It is hard to find one's way in this ecosystem. It needn't be, as Java illustrates. To my mind Java's great contribution to the world is its library index--light years ahead of typical "documentation" one finds at haskell.org, which lacks the guiding hand of a flesh-and-blood librarian. In this matter, it seems, industrial curation can achieve clarity more easily than open source.
(To avoid entanglement with social media, this comment is going to Haskell Cafe rather than Google+ where other comments reside.)
Doug McIlroy
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Markus Läll

On Tue, Feb 14, 2012 at 9:13 AM, Doug McIlroy
Nevertheless, I share Jardine's concern about the central problem. It is hard to find one's way in this ecosystem. It needn't be, as Java illustrates. To my mind Java's great contribution to the world is its library index--light years ahead of typical "documentation" one finds at haskell.org, which lacks the guiding hand of a flesh-and-blood librarian. In this matter, it seems, industrial curation can achieve clarity more easily than open source.
Hi Doug, I'm not really familiar with the Java ecosystem - most of my experience has involved a couple Apache projects, which had decent wikis next to really terrible raw API documentation (with links from the wikis into the raw API documentation as if it were a useful thing). But I assume my experience isn't typical - I'm not a Java dev. Do you have any links to examples that we should imitate? Or a summary of how it works "over there"? Thanks, Antoine

On 02/14/2012 04:13 PM, Doug McIlroy wrote:
Nevertheless, I share Jardine's concern about the central problem. It is hard to find one's way in this ecosystem. It needn't be, as Java illustrates.
As a professional Java developer this sounds really strange, but maybe I just haven't found it yet. Do you mean to suggest that it's easy to choose between e.g. Spring, Guice, etc., the umpteen OSGi containers, the several logging frameworks, etc. etc. etc.?
To my mind Java's great contribution to theworld is its library index--light years ahead of typical "documentation" one finds at haskell.org, which lacks the guiding hand of a flesh-and-blood librarian. In this matter, it seems, industrial curation can achieve clarity more easily than open source.
Which library index? If you're talking about API documentation, then I must confess that I much prefer the Hackage docs. I'm *really* confused by your post and really can't recognize the Java you're talking about. Can you give us pointers to concrete examples?

On 2/14/12 11:41 AM, Bardur Arantsson wrote:
On 02/14/2012 04:13 PM, Doug McIlroy wrote:
Nevertheless, I share Jardine's concern about the central problem. It is hard to find one's way in this ecosystem. It needn't be, as Java illustrates.
As a professional Java developer this sounds really strange, but maybe I just haven't found it yet.
Do you mean to suggest that it's easy to choose between e.g. Spring, Guice, etc., the umpteen OSGi containers, the several logging frameworks, etc. etc. etc.?
I'm not sure I'd call myself a "professional" Java programmer ---though I've been paid for writing Java on numerous occasions--- but I'm with Bardur. The JavaDocs for the built-in libraries that come with Java are indeed excellent. However, once you move out of the built-in ecosystem and start using other people's projects, the quality of documentation degenerates rapidly. I can't recall how many opensource projects I've used for which the only thing provided by JavaDoc is the type signatures it could scrape off the code. While the documentation of Hackage projects could certainly be improved, on the whole I find it's much better than what you get from non-core packages for Java. The one big thing I think Hackage needs is better top-level organization. Right now it's hard to browse and find new packages for some topic you're interested in, in part because we're blessed with so many packages, and in part because some packages are properly considered as a group (e.g., Yesod, Kmett's replacement for category-extras,...) but this isn't well-captured by the current system. -- Live well, ~wren

Hi,
2012/2/14 Doug McIlroy
Kevin Jardine notices "the full Haskell ecosystem ... is huge", and laments the absence of "a sophisticated IDE to help manage" it. Being a small-code type, I don't personally enjoy IDE's, which are undeniably useful in big projects, at the cost of a whole lot more to learn about "programmering" in addition to programming.
There are now several IDEs (or development environments) that you may use for Haskell programming: I personally work on EclipseFP (so the environment is quite similar to Java), but there is also Leksah. I've seen people making incredible things using Emacs and the Haskell modes, so I think there is now quite nice support for Haskell programming. Apart from that, Haskell Platform and cabal makes it easy to use Haskell (at least as easy as PHP if you are using any of the LAMP packages in Windows, or Perl or Python). (Disclaimer: I'm currently one of the developers of EclipseFP)
Nevertheless, I share Jardine's concern about the central problem. It is hard to find one's way in this ecosystem. It needn't be, as Java illustrates. To my mind Java's great contribution to the world is its library index--light years ahead of typical "documentation" one finds at haskell.org, which lacks the guiding hand of a flesh-and-blood librarian. In this matter, it seems, industrial curation can achieve clarity more easily than open source.
I disagree with that. For me, one of the best things about Haskell community is Hackage, where I can actually find and browse package documentation in a centralized way. In these days, Maven or Ivy (for automatically resolving and getting Java dependencies) are seen as great tools for Java ecosystem, and in Haskell we have that, with an even easier way to add packages and new versions to the index! Indeed, I find that Hackage enables a workflow not available in any other programming language: say you don't find a feature in Hackage libraries. Well, you can be pretty sure that no one has programmed a library for your task (opposed to Java or .NET, where it may be a commercial library, and be found somewhere random in the internet). Once you program it, you can upload it to Hackage and share easily with the rest of the community. Finally, even though we may argue about the point that "core" Java libraries have better documentation that "core" Haskell libraries (although libraries such as "container" even give complexity bounds to their operations), I find better Haskell documentation for other different resources: see the free-available "Learn you a Haskell", "Real World Haskell" (just to name some tutorials), the Snap and Yesod documentation (as opposed to the documentation of other web frameworks in the wild)...

Since people are mentioning how great the Haskell type system is for
refactoring, here's one of those "wow, that's really great" experiences I
just had hacking on some Java code in Eclipse. I wanted to remove duplicate
code, so I selected one of the duplications and used Refactor->Extract
method. To my astonishment and delight, Eclipse also automatically replaced
all duplications with a call to the new method. It's things like that which
make me really like advanced IDEs and sometimes choose a "lesser" language
with better IDE support (the code in question was actually backported from
Scala, because the pains of a Java+Scala project far outweighed the gains).
It does not matter that much when writing new small to mid-size programs,
but when working in a larger codebase, or inside frameworks (Yesod might be
an example in the Haskell world), I'll take any help I can get, even if
it's only autocomplete and suggestions based on type. And the larger the
ecosystem gets, the more important that will become.
Apart from the IDE matter, I'd also would like to see some sort of rating
system on Hackage, or at least some support to choose between the available
packages. Indicators might be popularity, actively maintained, age, ...
Many participants in Johan Tibell's survey seemed to want something along
these lines.
Just my 2 cents,
Chris
On Tue, Feb 14, 2012 at 8:05 PM, Alejandro Serrano Mena
Hi,
2012/2/14 Doug McIlroy
Kevin Jardine notices "the full Haskell ecosystem ... is huge", and laments the absence of "a sophisticated IDE to help manage" it. Being a small-code type, I don't personally enjoy IDE's, which are undeniably useful in big projects, at the cost of a whole lot more to learn about "programmering" in addition to programming.
There are now several IDEs (or development environments) that you may use for Haskell programming: I personally work on EclipseFP (so the environment is quite similar to Java), but there is also Leksah. I've seen people making incredible things using Emacs and the Haskell modes, so I think there is now quite nice support for Haskell programming. Apart from that, Haskell Platform and cabal makes it easy to use Haskell (at least as easy as PHP if you are using any of the LAMP packages in Windows, or Perl or Python).
(Disclaimer: I'm currently one of the developers of EclipseFP)
Nevertheless, I share Jardine's concern about the central problem. It is hard to find one's way in this ecosystem. It needn't be, as Java illustrates. To my mind Java's great contribution to the world is its library index--light years ahead of typical "documentation" one finds at haskell.org, which lacks the guiding hand of a flesh-and-blood librarian. In this matter, it seems, industrial curation can achieve clarity more easily than open source.
I disagree with that. For me, one of the best things about Haskell community is Hackage, where I can actually find and browse package documentation in a centralized way. In these days, Maven or Ivy (for automatically resolving and getting Java dependencies) are seen as great tools for Java ecosystem, and in Haskell we have that, with an even easier way to add packages and new versions to the index! Indeed, I find that Hackage enables a workflow not available in any other programming language: say you don't find a feature in Hackage libraries. Well, you can be pretty sure that no one has programmed a library for your task (opposed to Java or .NET, where it may be a commercial library, and be found somewhere random in the internet). Once you program it, you can upload it to Hackage and share easily with the rest of the community. Finally, even though we may argue about the point that "core" Java libraries have better documentation that "core" Haskell libraries (although libraries such as "container" even give complexity bounds to their operations), I find better Haskell documentation for other different resources: see the free-available "Learn you a Haskell", "Real World Haskell" (just to name some tutorials), the Snap and Yesod documentation (as opposed to the documentation of other web frameworks in the wild)...
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On 16/02/2012, at 12:21 PM, Christoph Breitkopf wrote:
Apart from the IDE matter, I'd also would like to see some sort of rating system on Hackage, or at least some support to choose between the available packages. Indicators might be popularity, actively maintained, age, ... Many participants in Johan Tibell's survey seemed to want something along these lines.
A good start along these lines may be to have a simple "similar packages" field for hackage packages which could initially be populated by package authors. Cheers, M
participants (8)
-
A.M.
-
Alejandro Serrano Mena
-
Antoine Latter
-
Bardur Arantsson
-
Christoph Breitkopf
-
Doug McIlroy
-
Markus Läll
-
wren ng thornton