Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

By "enterprise ready" I am referring to availability of tools: dependency management, build management, message servers, databases, application platforms and servers, and are secure and scale well?

For example, is there a lisp (or ML) alternative to j2ee?

Please exclude FP's ported to JVM or .NET CLR.

EDIT: I know that one could use an FP jvm port i.e. clojure or F# on .NET CLR however I am curious to know if it is possible to develop a purely functional application for the enterprise without the JVM or CLR?

share|improve this question

migrated from Jan 4 '12 at 18:21

This question came from our site for professional and enthusiast programmers.

closed as not constructive by Jarrod Roberson, back2dos, ChrisF Jan 6 '12 at 22:17

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Anything wrong with F#? – dasblinkenlight Jan 4 '12 at 15:26
@dasblinkenlight +1. You should add more details and post that as an answer. – Abbas Jan 4 '12 at 15:55
I am intentionally trying exclude the JVM and .NET CLR from this discussion. I know there are FP ports to the JVM and F# is there for .NET. – Reuben Peter-Paul Jan 4 '12 at 16:00
It's seems a bit odd to exclude JRE and .NET CLR explicitly, considering that they're the layers that provide most of what you consider to define what "enterprise ready" is. Without libraries and build tools, you could also say that C or C++ aren't enterprise ready, yet I'm fairly sure they're used in a number of companies. – Bruno Jan 4 '12 at 16:11
Many of the tools you've listed are nothing but crutches designed to leverage the architectural issues of the OOP languages. – SK-logic Jan 4 '12 at 16:45
up vote 7 down vote accepted

You have Haskell for Enterprise Linux. The haskell wiki even includes a survey page about how to use Haskell in the Enterprise.

Erlang (as mentioned by Chris) is definitely also a good suggestion. It is built to scale, be fault-tolerant and stay in continuous operation for many years.

Personally I'm more of a fan of the static type system that Haskell has.

share|improve this answer
Interesting link to "Haskell for Enterprise Linux". However, I'm not sure I'd consider a project that released its alpha version about 2 months ago and its first beta 3 days ago as (enterprise) ready just yet. Ready soon, hopefully... – Bruno Jan 4 '12 at 19:45
Haskell is mature enough (almost 22 years) and widely used enough in industry, but that particular project isn’t such a good example. – Jon Purdy Jan 4 '12 at 23:10
The OP explicitly said "Please exclude FP's ported to JVM or .NET CLR." Erlang has been ported to the JVM, ergo it is not acceptable by the OP. There are also both .NET and JVM ports of Haskell, which, again, means that they are not acceptable. – Jörg W Mittag Jan 5 '12 at 0:35
Haskell has native compilers. You aren't limited by CLR/JVM runtimes. – MPD Jan 5 '12 at 3:13
@Jörg Are you sure there are Haskell ports to the JVM? Please provide evidence. (dead/incomplete projects excluded) – Ingo Jan 5 '12 at 10:24

I don't use Erlang, but I know someone who does, and from everything he's described it as it sounds like exactly what you are looking for. (It was designed by an enterprise (Ericsson) for enterprise use, after all.)

share|improve this answer
There is a quote from the inventor in an interview: "In telecoms, downtime of a few seconds a year is just not acceptable!" – Martin Beckett Jan 4 '12 at 21:23
The OP explicitly said "Please exclude FP's ported to JVM or .NET CLR." Erlang has been ported to the JVM, ergo it is not acceptable by the OP. – Jörg W Mittag Jan 5 '12 at 0:33
@JörgWMittag I'm pretty sure the OP is interested in non-JVM non-CLR "enterprise-ready" functional languages. i.e. A functional language is not to be considered "enterprise-ready" solely on the basis of having been ported to JVM or CLR. It would be very strange to exclude a language from this discussion solely because there is another implementation of it on the JVM! – Ben Jan 5 '12 at 13:19

Common Lisp has a long history of being used professionally.

It has two commercial implementations:

And several high-quality open source implementations.

share|improve this answer
Common Lisp isn't really a functionnal programming language, you can do things the way they're done in functionnal programming language but that's not often the case. it's a multi-paradimg language. So you use functionnal ease when you need it, object or imperative style when you need it and so on. But I think that's a great language to build large and robust system that are meant to stay for more than 5 years. – Daimrod Jan 4 '12 at 21:24
Lisp is ideal to me. I'm actually strongly considering taking the plunge into Clojure since interop b/w JVM is very seamless I can introduce it to other projects in phases :) – Reuben Peter-Paul Jan 4 '12 at 21:28
@Daimrod: functional has 1 n, not two. You are right, it's not a pure functional language. It does, however, support functional programming. Also I like it. ;) – Paul Nathan Jan 4 '12 at 21:28
@ReubenPeter-Paul: if I had to work with a JVM codebase, I would work with Clojure by preference, because of the interop capabilities. :-) – Paul Nathan Jan 4 '12 at 21:29
@ReubenPeter-Paul: uh my bad and I can't edit it anymore :(. Anyway, if you had to use the JVM but not the java API you could look at ABCL because it's a complete Common Lisp implementation thus your program will also run with other Common Lisp implementation. – Daimrod Jan 4 '12 at 21:38

Not the answer you're looking for? Browse other questions tagged or ask your own question.