On Mon, Nov 2, 2009 at 7:01 PM, Stephen J. Turnbull
<stephen@example.com> wrote:
Alan Busby writes:
> Irregardless of quality, or old/bad design in many cases, it's very
> useful not to have to write an entire library by hand simply to
> deal with paypal, amazon, or any number of other systems.
Uh, you want to, uh, "clarify" that? I mean, that clearly implies
that you use libraries that deal with *money* "irregardless of
quality, or old/bad design"!
Er, maybe poor choice of wording. I didn't necessarily mean broken/buggy libraries, but ones that might be "less than elegant".
Ignoring web services though, how about DB drivers, SOAP/XML, Stats/Math, graphics/3D, networking, device, cryptography, etc.
You can accomplish far more work in less time by harnessing the efforts of others.
> You can't dismiss one tool, simply because it may not be the best
> for one job.
Of course you can, as long as that job's the one the customer is
paying you to do. In this case, the OP specifically asked for
"functional". I agree with Curt, a lot of features of Clojure obscure
the functional aspects of programming style. It might be a practical
choice, of course.
The OP was curious about catching up on the latest programming language developments, and although Haskell has a lot to offer, there are number of other new languages which incorporated many of Haskells good points while introducing additional new material as well.
As a professional developer we need to know which tools to use for the job we're payed for. To do that though, you need to experiment with a broad range of different tools. In this case Clojure offers the broadest range unless the OP is already familiar with Lisp/Scheme.
I'd argue that learning to use macros well, offers more educationally than the Hindley-Milner type system. Not that static typing isn't useful, but it doesn't open up new ways of thinking like the way code generation does.