[Haskell-cafe] Re: Libraries for Commercial Users

John A. De Goes john at n-brain.net
Thu Oct 8 11:43:19 EDT 2009

Here's a list of libraries that are quite significant to commercial  
software development in 2009, but which either do not exist in  
Haskell, or if they exist, are hard to find, undocumented, unstable,  
or perhaps uncompilable:

	* A drop-in comet server, with JavaScript bindings (or compatible  
with existing JavaScript bindings).
	* A library for producing RESTful APIs, which does much of the work  
in mapping URLs into operations on a database.
	* Speaking of database, a robust, well-documented, cross-platform  
interface to popular databases, with a commercial-friendly license.
	* A scalable, fault-tolerant, distributed data store in the mold of  
BigTable, which provides map reduce. Or at least Haskell bindings for  
one, and a Haskellized wrapper around the binder.
	* A Haskell client for AMQP or other message broker, ideally reactive  
but anything's better than nothing. And while I'm at it, how about a  
100% Haskell message broker that takes advantage of Haskell's  
functional nature to deliver something of Erlang quality.
	* A scalable, fault-tolerant, distributed graph database that can be  
used for building and maintaining social networks.
	* A networking library that supports peer-to-peer communication,  
authentication, encryption, and other features via plug-ins, with  
seamless multicasting when possible.
	* Infrastructure for building Haskell cloud computing clusters that  
are scalable and fault-tolerant.
	* Search and other data mining libraries, with robust indexing  
features, and the capacity to scale indefinitely.
	* Haskell interfaces to Twitter, Facebook, MySpace, Google, etc.
	* etc.

In any one of these categories, Java has multiple implementations,  
sometimes 20 or more (yes, it's absurd at times, but it's also  
comforting because it means choosing Java is not risky). Many are  
meticulously documented with extensive Javadoc and tutorials.

And this just scratches the surface. Most apps today are web apps,  
meaning they have client and server portions. Some modern languages  
natively support cross-compilation (Haxe, Fan), and others such as  
Java can be cross-compiled with the aid of third-party packages (gwt,  
java2script), but not Haskell. Reusing code, and using a single  
language across different platforms opens up many new possibilities  
and greatly improves productivity and efficiency.

Let me ask you this question. How long would it take you to write a  
scalable first-pass Twitter clone? A good Java developer could do it  
in a week, maybe a day, and deploy it on AppEngine, where it will  
scale indefinitely with no effort. That's power.

The syntax of a language, no matter how beautiful or high-level,  
cannot compete with the billions of dollars worth of resources freely  
available for inferior languages like Java.

Haskell on the JVM with seamless Java interop (no need for method-by- 
method foreign import of information that's freely available via  
reflection) would go a long way towards leveling the playing field.


John A. De Goes
N-Brain, Inc.
The Evolution of Collaboration

http://www.n-brain.net    |    877-376-2724 x 101

On Oct 7, 2009, at 5:41 PM, Curt Sampson wrote:

> On 2009-10-02 09:03 -0600 (Fri), John A. De Goes wrote:
>> [Haskell] is missing many key libraries that would be of great
>> commercial value.
> Just out of curiousity, can you give me some examples of what you feel
> these are?
> cjs
> -- 
> Curt Sampson       <cjs at starling-software.com>        +81 90 7737 2974
>           Functional programming in all senses of the word:
>                   http://www.starling-software.com

More information about the Haskell-Cafe mailing list