This talk will discuss the use of Scala and Clojure in an ongoing software project, now 2-years old. The talk will start with an anecdote about how each language was pitched to the software team composed of programmers with very little to no prior experience with functional programming. The actual Scala pitch will be dissected and criticized and then distilled into a few general thoughts on how to make an effective functional language pitch.
With these tangential matters out of the way, a description of the difficulties ramping up to the full use of Scala will be discussed, followed by a simplified description of the system developed. The talk will briefly cover the conceptual hurdles that the team experienced when changing from a purely object-oriented mindset to a more functional approach. Additionally, the talk will focus on how Clojure was used for ancillary functionality and tooling. The difficulties experienced, both technical and cultural, in introducing Clojure into the mainline source will then be covered.
To wind down, the advantages and disadvantages, both real and perceived, between the use of both languages in a commercial setting will be explored. Finally, the lessons learned after 2 years will be contrasted with the initial pitch to see where experience and naïveté intersected.