Hi Shantanu, Good questions.
> Can you share some details about the language selection process? Was it based > on developers consensus or it was a purely management decision? Was the > presence or absence of enough number of Clojure/Scala experts in the team > influential on the eventual decision? This was completely developer driven; management was mildly resistant to the idea from the beginning. I made my case for Clojure to the other tech/team leads and we all agreed to allow it on a case by case basis. Once the development organization was in agreement, it was run by management who pushed back due to staffing concerns. I negotiated a compromise (Scala) which (mostly) alleviated the staffing concern, but maintained many of the same benefits. This negotiation is partly reflected in the language selection slides, where number of books/training, developer acceptance/momentum, syntax were all used as selection criteria. > To help me understand, would you like to share how was this conclusion > derived ("Clojure - being a Lisp dialect - has a steeper learning curve due > to its syntax and more purely functional nature.")? When I show a typical Java developer some Clojure code, they immediately have to swim across two rivers: S expressions and functional concepts. We can agree that taking the plunge is incredibly rewarding, but we shouldn't deny that they present real obstacles to many developers. In contrast, when I show them some imperative-style Scala, they can immediately recognize syntax and patterns already familiar to them. This allows them to get up and running quickly, dipping their toe into functional concepts at their own rate. I do, however, agree that Clojure is simpler to use once you've crossed those rivers, helped deeply by its smaller, more consistent syntax. Clojure and Scala are both great languages that provide concrete improvements over vanilla Java. With this presentation I try to highlight two of those improvements that I found most compelling. Rob On Tue, Jan 18, 2011 at 7:21 PM, Shantanu Kumar <kumar.shant...@gmail.com> wrote: > Rob, thanks for sharing this and congratulations on having IDC (your > employer IIUC) adopting an alternate JVM language. Can you share some > details about the language selection process? Was it based on > developers consensus or it was a purely management decision? Was the > presence or absence of enough number of Clojure/Scala experts in the > team influential on the eventual decision? Finally, from your notes on > slide #25: > > > "Clojure - being a Lisp dialect - has a steeper learning curve due to > its syntax and more purely functional nature. > Since Scala is instead a hybrid language, both object oriented and > functional, it’s completely possible to write imperative, Java-style > Scala. > This allows developers to slowly ease into the language, adding more > powerful functional techniques as they become more comfortable. > So when management asks, “Where am I gonna find Scala programmers?”, > we can answer, > “The same places you find Java programmers: throughout IDC and the > greater market,” almost honestly..." > > > To help me understand, would you like to share how was this conclusion > derived ("Clojure - being a Lisp dialect - has a steeper learning > curve due to its syntax and more purely functional nature.")? Scala > has more syntax/semantics than Clojure AFAICT. Was it familiarity with > the Java syntax? > > Regards, > Shantanu > > On Jan 18, 4:33 am, Robert Campbell <rrc...@gmail.com> wrote: >> Hey guys, >> >> This past summer I gave a presentation on JVM langauges at our >> company's worldwide developer summit. I tried to get approval for >> Clojure but had to settle for Scala because its syntax didn't frighten >> management. I figured I'd share it in case any of the slides can be of >> use elsewhere. >> >> open in browser (no >> notes):http://public.iwork.com/document/?d=JVM_Languages.key&a=p1045023190 >> >> src:https://github.com/rcampbell/jvm-languages >> >> The talk (w/notes in github .key file) was very important and the >> slides don't make much sense without it, but it generally went like: >> >> -Topic is JVM languages, what they are, why we should care about them >> -We (as a mostly Java house) have two big problems: bloat and concurrency >> -Show bloat with examples, try to illustrate a trend >> -Why are these other languages so concise? >> -Go back over the examples pulling out a single language feature from >> each (in bold), explain how it leads to more concise code >> -Talk a bit about concurrency, No free lunch (R), Ghz wall, cores increasing >> -Java's answer to concurrency is difficult to work with >> -Make a token effort to select a JVM language based on books, >> perceived momentum/maturity/community, etc >> -Select Clojure and Scala, end with Scala example since that's the one >> that was approved (replace slide here :-) >> >> Rob > > -- > 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 -- 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