5 ms·
I want very badly to love Clojure and have done my best to try and use it in a number of medium-sized projects composed of several services... unfortunately it
by bengl3rt 15y ago
I want very badly to love Clojure and have done my best to try and use it in a number of medium-sized projects composed of several services... unfortunately it seems that deploying JVMs on EC2 (under Ubuntu, anyway) is just not reliable and we would always get into situations where the VM was locked up and pegging the machine at 100% CPU. Not sure if this was a Clojure problem or a JVM problem but it definitely was a huge headache.
That, and the fact that many of the libraries are immature (so you end up spending the time to fork them and add whatever they're lacking), and many of the error messages and exceptions it throws are pretty cryptic and useless... I'd be wary of Clojure in a production environment at this stage, unfortunately.
Which is really too bad because it is such a great language!
- siavosh 15y agoExcuse me if I'm totally off (I haven't actually used clojure, just evaluating it), but regarding the lacking libraries: isn't the fact that it runs in the JVM nullify this by having access to the rich java libraries?
- bengl3rt 15y agoThe java interop is very verbose and kind of ugly (next to "pure" clojure code anyway) so many clojure wrappers or reimplmentations for existing Java libraries exist. So yes, sometimes it's as simple as extending the wrapper to expose the part of the underlying Java library you need, but other times there are fundamental issues with the design of the library that prevent it from being useful in a multi-threaded multi-user server environment (instancing etc).
- mattdeboard 15y agoYour problems with the exceptions is a problem with Java. As far as the libraries, Clojure can use any Java library natively. Setting aside all that, how can you say it's a great language if in your experience it doesn't run reliably, has an immature library and troubleshooting is nearly impossible?
- bengl3rt 15y agoWell, the idea of leveraging the power and pragmatism of the JVM using a nice functional language is certainly appealing, and the moments in which it does work it's really nice. Not to mention the pragmatic and mostly idiot-proof approach to state and concurrency is awesome. I guess I don't mean exceptions encountered at runtime, btw. I mean more like syntax errors during development. The Clojure compiler does not yet provide useful error messages or other information like line numbers in most cases when you have a bizarre paren-balancing issue or something.
- mattdeboard 15y agore: exceptions in dev time I agree with you there.