All of the worries below probably don't apply for the next 10 years period, but longer-term, which is what I'm looking for.
I am going to need a functional language to develop some projects in the coming years and, unfortunately, being a lone programmer I can't afford to invest my time in both. I really need to stick with one. So here are my views and thougts:
- VM: Running on the JVM I think is more probable to have long term support with it being open source and having lots of third parties invested in it (the JVM, not Clojure itself I mean). Running on .Net it is all up to what MS might decide to do. It's true we have Mono as an open source option, and that leaves the open source future of F# tied to that of Mono's which, as much as I love the people behind it, doesn't have the amount of support and investment in it the JVM has.
- Community: this is just a feel... but for me it seems that Clojure is having a more active community developing all sorts of interesting libraries and extensions to the language. This might just be a consecuence of people leaning towards Clojure due to reasons exposed in point A (or it may not).
- Language: And here it is what's driving me nuts. Both are great languages (really), but it all boils down to personal preference. I do feel F# syntax much more appealing. I also do prefer its defaults of "strict by default, lazy when you need it", "static typing with support for interaction with dynamic when needed", "pure by default, mutating when needed", etc... I mean, if it wasn't for the worries of points A and B I would choose F# without a doubt.
I think it also fits better with my main field of action which would be financials and trading.
I've thought about all of this lots of times and would appreciate any opinions/experiences/insights you can provide, as maybe there are some other important things I may not be considering. But, in short... should I prioritize the language or the rest around it?
Thanks a lot. Cheers!
This is a very subjective question that I hope can be asked here; if not, please remove it.
I have some experience with F# and have almost finished reading "The Joy of Clojure" which as provided me (I hope) enough preliminary insight about Clojure.
These are just opinions not meant to disrespect any one involved with any of both languages as I truly believe both teams and communities are great.