Up until a month ago, my total Lisp experience consisted of hacking
my .emacs file to bend it to my will -- a lot.  Discovering Clojure
was amazing.  I immediately liked several aspects of it, especially
how compact it feels and easy it is to do complex functional tasks.

I decided the best way to get to know Clojure is to write something in
it.  So I've been doing a stock-market backtesting simulator with
Clojure in my nights & weekends.  There's just one problem: I think
I'm tainted by too much exposure to OO.

I often find my self going upstream, against the language.  I want to
have an object and send it a message or invoke it, rather than
invoking a function in some package and happening to pass it the right
type of thing.  An object-oriented model "feels" more natural to me,
and when I try to express that design in Clojure, I wind up doing a
lot of awkward-feeling things involving watchers and agents.

As an experiment, I switched over to Ruby, and within 2 hours I had a
basic scaffolding up and running.  Now I know being new to Clojure
means I shouldn't expect miracles, and I don't -- but it did feel like
I'm missing something.  Either too many years of OO have poisoned my
brain, or I'm just using the wrong tool for the job.

Can anyone here offer some advice to those who are too ingrained in
using an object-oriented hammer on every nail they see?  I know Rich
and Stuart have some good design examples around (I've read many), but
if there are any tutorials that show how to re-envision OO problems in
an FP world, I'd love to see them.

Thanks for the great & lively community,
Rick in Bainbridge Island, WA

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to