4 ms·
Thanks for the reply James. I agree with everything you said. To clarify, I'm not advocating to re-create Rails for Clojure, rather, I'm arguing open-source e
by janetacarr 4y ago
Thanks for the reply James.
I agree with everything you said.
To clarify, I'm not advocating to re-create Rails for Clojure, rather, I'm arguing open-source efforts are too focused on the search for Clojure's Big Web Framework TM. However, I do like your guess as to what a Clojure Web service might look like.
- huahaiy 4y agoYour observation is simply not true. To the contrary, the consensus of the community seems to be that there's no need for a rails-like framework for Clojure. Most of Clojurians are satisfied with what we have in the Web front, and are not worrying about the lack of "big Web framework" at all. I don't know where you got your impression from.
- janetacarr 4y agoI got that impression from the relentless amount of web frameworks for Clojure that keep popping up. Anytime I see Clojure on the front page of HN, it's about some new Clojure web framework, so this post is a protest of that in a sense. The big web framework is an idea, one where people won't reinvent the wheel over and over again, so that we can have a lot more non-web packages for Clojure. I'm quite literally saying, the effort could be better spent elsewhere.
- huahaiy 4y agoI don't think the HN mentions of Clojure is representative of what the Clojure community thinks. If you are talking about the frontpage of HN, it is even less representative. The Clojurians slack, Clojure Reddits and Clojurverse are more representative, and you can hardly see anything about Web frameworks in those places.
- seancorfield 4y agoI must admit, I do not understand why (some) people seem to get so excited about the latest "Web Framework" for Clojure, over and over again. Yes, there seem to be a lot of them but they are mostly failures -- they rarely get any traction, and the creators often quickly move on (several to other tech altogether). I don't think those people would have directed their efforts into other things -- libraries -- to any degree that would mitigate some of the other points in your article. People tend to work on what interests them and if someone wants to design and build a web framework, persuading them not to isn't going to encourage them to work on a "more useful" library I suspect. I think the abandoned API library problem is real but partly because they were wrong-headed in the first place: Clojure is designed as a hosted language, specifically to take advantage of the vast, mature ecosystem that already exists on the JVM. When we got started with Clojure at work over a decade ago, it was common to see "all-Clojure" as a mindset and reject interop as a solution. I think that has changed a lot over the years and people now leverage interop and Java libraries as a "first solution" these days, perhaps with a thin wrapper around those libraries just to provide a more fluid, more functional approach. At work, we've certainly taken a conscious decision to switch away from "all-Clojure" where there are mature Java libraries that are reasonable to use via interop (unless, of course, the "all-Clojure" equivalent is very well-maintained and really adds a lot of value).
- janetacarr 4y agoThanks for the reply Sean. You're probably right about people working on what interests them. I may have started Clojure during the "all-Clojure" years and failed to recognize the shift.
- beanjuiceII 4y agoI am quite interested reading all this from both sides.. I saw a talk where Rich talked about clojure avoiding the HttpServletRequest calling it life sucking, and that one huge advantage clojure has is it's all data... but without wrappers, don't we have to then use these life sucking things? So many java api's are like this, the reason I use clojure is to not have these things, so I actually prefer the all clojure approach..
- seancorfield 4y agoAs noted elsewhere, it's not either/or here. Some wrappers are worth having and add huge value: Ring vs HttpServletRequest is a classic example, Cognitect's AWS libraries -- built on the same principle -- are another. Wrapping Java Time, on the other hand, is a bit pointless because it's already a value-based system with a "mostly functional" approach that is straightforward to use via interop. On the other hand, if you want to write portable -- .cljc -- code that manipulates date/time values, you _do_ want a wrapper so that your code works on both the JVM (using Java Time under the hood) and in JS (using whatever is the appropriate JS lib behind the scenes).
- beanjuiceII 4y agoyes makes perfect sense everything you just said..so I suppose this is one reason why clojure doesn't have one library/framework to rule them all, Rich saying he gave us a tool to do what we want/need, and clojurists do just that! Do what makes best sense in your situation etc unrelated sorta.. Really makes me wonder if the lisp curse is really not a curse, now that I also google it I see Eric Normand has something to say about it https://ericnormand.me/podcast/what-is-the-curse-of-lisp https://ericnormand.me/podcast/what-is-the-curse-of-lisp so maybe i should give that a listen!
- bcrosby95 4y agoThis is kinda like when go developers said the go community doesn't want generics. The people that really want these things will self select out of your community.
- huahaiy 4y agoThat's fine. But I was merely pointing out a false premise. The article was saying too much focus was spent on "big web frameworks" in Clojure, but the reality is that most people in the community do not care about these at all.
- didibus 4y agoI would agree, except this is different, anyone can be the one to provide this framework, you don't depend on the language stewards for it. With Generics in Go, it's more about asking for more power to the community itself to be able to extend the language. Clojure is strange in a way how much it can be extended by the community itself. Now, it might still self-select out people who don't want to contribute to a big web framework and just want one they can use right away. But it wouldn't self-select against people wanting to build a web framework.
- wokwokwok 4y ago> the consensus of the community seems to be that there's no need for a rails-like framework for Clojure Maybe (I’m not really sure how you judge community consensus) but, tangibly, the problem of libraries being old, broken and unmaintained while people go off and build new things is real. It’s also undeniable that (see https://www.reddit.com/r/Clojure/comments/w9roqv/is_there_anything_in_clojure_comparable_to/ https://www.reddit.com/r/Clojure/comments/w9roqv/is_there_an... for example) that there are tonne of half baked efforts in the web space. Maybe they’re unrelated. There are lots of argument you could make; Clojure has simultaneously tried to distance itself from the JVM and but also eat the cake of “just use the Java library for that”. I personally think the “you don’t need to use the Java runtime” has seen a de facto split in the ecosystem which is also partially to blame. Kotlin has been very successful at what is basically the same model, and it is different how? Stronger guiding principles? Found a silver bullet use case in android apps? Benefit of strongly opinionated steering from jetbrains? I don’t think is technically more sophisticated than clojure, but it’s definitely more successful and popular. I think we have to face the facts; clojure is flat if not already in decline. I know, usage goes up every year in the survey, but the ecosystem isn’t healthy. Especially in the web space. > Most of Clojurians are satisfied with what we have in the Web front Most? Geez. I think that’s a big call. I literally only ever hear people complain about this. I am not satisfied by the current state of affairs. :/
- cutler 4y agoI think this attitude in the Clojure community is sealing Clojure's fate. You discover the incredible genius of Clojure's simplicity then hit this brick wall of intransigence when you search for a framework which will give you leverage in the business world. Sad.
- cutler 4y agoI'm not part of that "consensus".