3 ms·
I aggree. I love the language and concepts, but at some point, after two months of learning it, I've got fed up with the slugishness of the whole thing and gave
by codeshaman 11y ago
I aggree. I love the language and concepts, but at some point, after two months of learning it, I've got fed up with the slugishness of the whole thing and gave up because I have no idea what to do with it.
I also found it a very difficult language to learn. I felt like I was taking baby steps every day, although I was giving it all I could. I felt stupid and frustrated to the point that I'm actually considering quitting the profession, because, well, I'm not good enough for this.
Contrast that with Objective-C which I learned last year - it took me a couple of weeks to become profficient and start writing real world, commercial apps which I can sell. Maybe 15 years of daily C++ programming has had something to do with it, but still.
I struggle to imagine a practical project which I could use clojure for.
Front end, user-facing apps, utilities, system tools - forget it - an app takes 15 seconds to load and uses gigabytes of RAM.
Backend - maybe, but there are a lot of other languages and frameworks out there which are really powerful and have huge communities.
So I don't know, I really love clojure, but the JVM just doesn't cut it for me. I want a C++ version of Clojure, which I was thinking about starting every single day I was learning it.
- dasmoth 11y agohttps://github.com/pixie-lang/pixie https://github.com/pixie-lang/pixie could be worth a look. That said, "add more type hints" hasn't generally been my experience of Clojure. If anything, it tends to be an indication that you've already gone a bit far down the path of "doing things the Java way".
- TickleSteve 11y agoIf you read the forum threads on performance issues, what they generally come down to is type-hints & using Java types. The problem is that idiomatic clojure doesn't perform well (it may scale well but you throw away a bucket-load of performance by using it anyway). The way to get truly good performing Clojure is to write Java... Pixie does look promising and is more my type of thing (coming from a low-level background) but I haven't managed to have time to look at it properly yet tho.
- muraiki 11y agoI appreciate your sharing your experiences. But don't give up just because you struggle with Clojure. That's certainly not a sign that you're not good enough for this profession, especially if you have 15 years of C++ experience! Is the problem that you struggle with how to solve problems in a functional style? I can imagine that Clojure might be a tough place to start for learning FP, even though you don't have to worry about a type system such as in an FP language like Haskell. What really helped me understand functional programming (in the lispy sense, not the Haskell sense) was the free book "How to Design Programs" http://www.htdp.org/ http://www.htdp.org/ This book taught me, for instance, how to break down problems into small blocks that use recursion, and how to compose those blocks together. There's also a second edition that seems to be significantly more streamlined (which is probably more appropriate, given your existing experience with programming), but I haven't used it: http://www.ccs.neu.edu/home/matthias/HtDP2e/ http://www.ccs.neu.edu/home/matthias/HtDP2e/ In the end, if you can make things that solve problems, that's what really matters. :) Consider a language like Clojure as another tool. There's no requirement that you use it.
- SergeyHack 11y agoTo really feel the difference you have to work on complex logic. It's easy to be under illusion that you can create everything using a verbose language. At some point the complex system you work on just gets extremely hard to reason about. For verbose languages you reach this point considerably faster.