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.

Regards,

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       <c...@starling-software.com>        +81 90 7737 2974
          Functional programming in all senses of the word:
                  http://www.starling-software.com

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to