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