Functional programming promises to raise the abstraction of code and to help to escape the micromanaging prevalent in imperative programming. Concepts like Immutability are essential to many functional languages and promise to remove whole classes of bugs (race conditions, etc), improve scalability (locking becomes unnecessary) and bring new capabilities (versioning stores over destructive ones). A recent example is Datomic which was created in Clojure and, as Rich Hickey explains in "Writing Datomic in Clojure", benefits from functional concepts.



But where is functional programming in the industry and particularly the enterprise? Java and other languages still reign in the enterprise.



What keeps developers, teams and companies from adopting functional languages?



In order to find out, InfoQ would like to hear from you, in particular if you have

tried to get your team or company to adopt a functional language but found problems or failed to convince the developers or other decision makers.

assessed functional languages but found them wanting.

created or taken over a codebase in a functional language but have run into problems (maintenance, scaling, or other)