> 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