> 2. What are good examples of complex domains that have been tackled with 
> Clojure web apps and API layers?
>

At my company we have built an entire B2B platform that drives the exchange 
of business documents for my country's largest company. Our first 
production version was on Clojure 0.9 and has been rock-solid from that day 
on. My previous experience with anything else JVM-based has been fraught 
with many more reliability and performance issues (various application 
containers, for example). The smaller codebase means less bugs, and bugs of 
coarser granularity. They are more visible in running code, more obvious to 
locate in the source code, fixed soon never to return.

As a different example, we have also built several JFace/SWT WebStart 
applications, with similar success. In this case the ease of building DSLs 
in Clojure has made a great mark: we have beautifully succint descriptions 
of window layouts, together with action handlers. Hacking together a GUI 
library has been a great pleasure for me.
 

> 3. What major road blocks have teams discovered at the edges of Clojure 
> (keeping in mind that perhaps several of these problems could be solved 
> using native Java calls)?
>

Nothing major; as you already point out, at rare occasions one needs some 
Java code. Mind that it is not for performance, but in some complicated 
interop scenarios. Writing top-performant code in Clojure is mostly 
possible, but often harder than in Java, especially if you want to port a 
performant Java solution to Clojure.
 

> What other tips do you have for convincing an employer that Clojure makes 
> good business sense? (Of course I've already told them about 
> domain-tailored abstractions, containing complexity, the ease of data 
> manipulation with a functional language, etc.)
>

My favorite is hot-patching production code by just using vi to edit it at 
the server. My workflow:

   1. read the server logs;
   2. if not enough data, introduce focused logging statements to server 
   code;
   3. reproduce the problem and fix it locally;
   4. make the necessary edit right at the server.

In most cases I am able to deploy an emergency bugfix within one hour, 
while the employees whose business depends on this take a coffee break. My 
client *loves* this. On the other hand, since Day One the client has 
experienced perhaps a dozen of such bugs. After that, the code has just 
been running completely unattended for months.

-- 
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