3 ms·
You may want to check out Clojure.
by douglasisshiny 14y ago
You may want to check out Clojure.
- skore 14y agoI was actually checking out Clozure. Not a big fan of anything Java or Java adjacent.
- deleted 14y ago[deleted]
- stesch 14y agoThat's my problem, too. There are a lot of cool languages for the JVM, but the target group are people who know Java, the JVM, and the whole Java ecosystem.
- adambard 14y agoThere's no reason to avoid the JVM ecosystem just because you don't like Java, especially if you've never done enough Java to develop a strong and well-founded hatred for its verbosity and excessive emphasis on mutability rather than for its unfamiliar object system and static typing, which tends to be what people starting with Java seem to dislike. You can start to use Clojure effectively without ever importing a Java library. (Even without java.lang.*, although that gets implicitly imported anyhow). The rest, you can pick up as you go. It's not too bad.
- neutronicus 14y agoClozure is a good choice of Lisp to get something done. It's got a really neat FFI (Foreign Function Interface), including an Objective-C bridge that lets you talk with Mac OS X, so you can interface with C libraries to handle all those wheels you really don't want to re-invent. That said, try to get over your Java prejudice with Clojure. Java libraries are nice.
- skore 14y agoI already have an overly healthy dose of self-loathing since I'm mainly programming in PHP. I guess that's why I'm mostly staying away from Java ;-) And thanks for the further insight on Clozure!
- iso8859-1 14y agoAs I see it, OOP PHP 5 is Java without static types and without a proper standard library. I'd regard it as an upgrade coming from PHP. Check out the Play Framework.
- skore 14y agoAnd that's exactly why I'd like to try out something that is a lot more different, not just slightly different ;-)
- douglasisshiny 14y agoClojure is not Java. It runs on the JVM. It can use Java methods. But it is not Java.
- kyllo 14y agoJava libraries are nice and all, but I could sure do without java.lang.StackOverflowError. I recently started learning Clojure and was floored when I found out it lacked tail-call optimization. I thought that was pretty much a requirement for a functional language. I understand that it's a limitation of the JVM and that there are workarounds, but they all seem kinda hacky, so I don't really plan to use recursion a whole lot in Clojure. On the other hand, its libraries for building and processing collections are so good that I don't think I will really need to. No car, cdr, or cons is just weird though, for a language that's considered a Lisp.
- Sandman 14y agoWhat do you mean? http://clojuredocs.org/clojure_core/clojure.core/cons http://clojuredocs.org/clojure_core/clojure.core/cons http://clojuredocs.org/clojure_core/clojure.core/first http://clojuredocs.org/clojure_core/clojure.core/first http://clojuredocs.org/clojure_core/clojure.core/rest http://clojuredocs.org/clojure_core/clojure.core/rest