6 ms·
Isn't Clojure the literal "Lisp for the modern day(a.k.a JVM)"? I hope I don't get kicked out of HN altogether for this comment :)
by theanonymousone 3y ago
Isn't Clojure the literal "Lisp for the modern day(a.k.a JVM)"?
I hope I don't get kicked out of HN altogether for this comment :)
- c_crank 3y agoClojure is opinionated against using all the potential features of Lisp.
- masijo 3y agoWhat would be those potential features of Lisp that Clojure is missing?
- c_crank 3y agoMulti paradigm support, low level / C interop capacity, really any sort of native features
- waffletower 3y agoClojure is a multi-hosted language. Clean native interop would be nice to have I agree though.
- fulafel 3y agoIt steers you pretty heavily toward functional programming.
- waffletower 3y agoThat is fair, though not a negative for many. Clojure prefers immutable data structures and functional constructs. Rich Hickey even wishes that he added fewer OOP constructs in the language (such as structs) and leaned more heavily on Clojure rooted functional concepts like 'transducers' which came later in the life of the language.
- mejutoco 3y agoIMHO Common Lisp is the modern one. Using the JVM is nice for certain uses, and clojure is a fine language, but going bare metal from higher abstractions is some power of Lisp that we should not give up. Same with macros and code generation. Luckily all of them can coexist, so we do not need to choose.
- criddell 3y agoHow is code generation handled on modern operating systems and CPUs? Isn't there normally a strict separation between code and data to prevent exploits?
- andsoitis 3y ago> How is code generation handled on modern operating systems and CPUs? Isn't there normally a strict separation between code and data to prevent exploits? You compile code, which is text (data), all the time, don’t you?
- p_l 3y agoAt worst you have to ensure that you separate what needs to be writeable from executable, and then flip mappings RW->RX when generating new code, just like other JIT compilers do.
- 3y ago
- wildermuthn 3y agoUnfortunately, IMHO Clojure’s maintainers hold an iron grip on the language and actively limit the growth of an ecosystem around it. See “Open Source is not about you”. It’s too bad, because itself is really terrific.
- pjmlp 3y agoTo their right, Rich Hickey almost got bankrupted while developing Clojure. The usual "expect all for free, give nothing back" attitude.
- threatofrain 3y agoRich Hickey basically wrote this in response to one of the notable and respected contributors of his ecosystem. If Rich wanted open source to be nothing more than a license and delivery mechanism then he shouldn’t have accepted volunteers. But a language without an ecosystem of volunteers is a dead language.
- pjmlp 3y agoMany languages do quite well as commercial products.
- erichocean 3y agoClojure "the language" is certainly ossified, but Clojure "the ecosystem" is doing very, very well.
- nocman 3y agoI'm genuinely curious. What about the language do you feel is "ossified"? I am interpreting that as being a negative description. Stability is extremely valuable. A lack of change to the core language over extended periods of time can be a very good thing, especially if certain changes would break existing code. Rich has made it clear that he is indeed targeting this kind of stability. Again, I would be very interested to hear what specific changes you think need to be made to 'Clojure "the language"'.
- systems 3y agothe problem with clojure is you have to learn java (or at least some java) same issue i see with F#, you still need to have at least some basic knowledge of C# unfortunately running on JVM actually really means running on Java same for .net it mean running on C# i dont mind learning two languages, its expected from most developers to know more than one, but context switching in a single function between two language is not fun
- pjmlp 3y agoThe curse of guest languages. However F# suffers from a bigger issue, that clojure doesn't, belonging to the platform owner, that behaves as if it was an error to make it part of VS 2010.
- jeremyjh 3y agoIsn't that because F# failed to win any significant market share? I think F#'s problem is that C# is too good and this was true even in 2010, its not like Scala vs. Java in 2010.
- systems 3y agoF# is way nicer than C# (and Clojure is still way nicer than Java) And I dont think F# failed, I just think it needs to find a way to hide C# and OOP better But the language is doing fairly well, tons of educational resources, tons of videos on youtube , several nice projects on github, solid vs code mode, it is part of .net , but still a lot can be improved, and microsoft is far from abandoning, C# is one of MS flagship products , F# is not a flagship product And I also think that Don Syme is a lot more active working for F# and promoting it, than Rich Hickey is currently working for Clojure
- soulbadguy 3y agoBig F# fan here, but i don't really "doing fairly well" is a fair assessment of the F# ecosystem right now. > microsoft is far from abandoning Might has well. When you look at the resources actually being deployed for F#, it's clear that MSFT either don't care or don't really have plan for F#. Most of the work is done by the community. The number of actual paid/full time MSFT dev on F# is very limited. The tooling is extremely limited, there is no official F# libraries for pretty much any MSFT and azure services (have to relie on C# libs.) In leetcode where the have C# (so already have the infra to run .net stuff, and language like elixir and racket (so they do have more niche language), they still don't have F#. The salvation for F# would come from finding a killer app, something akin to pytorch/numbpy or rails.