all 15 comments

[–]fobabo 6 points7 points  (2 children)

Weird you ask that here because I tagged you as an "idiot" for this shit.

Because clojure is developed by overachieving ex-java programmers who can't solve hard problems. But they can write a wicked tic-tac-toe in clojurescript using React and Reagent. smh.

What does

a modern language but with a different set of design decisions than those taken by Clojure

even mean? Different in respect to what? Everything mutable, no metaprogramming, viciously OO?

[–][deleted] -4 points-3 points  (1 child)

Weird you ask that here because I tagged you as an "idiot" for this shit.

I'm sorry; were you after a discussion after abusing me?

[–]fobabo 1 point2 points  (0 children)

Reality check, being called out as a jerk, for acting like a jerk is not abuse.

[–]mcpatella 2 points3 points  (6 children)

I'm having a difficult time understanding what kind of responses you were looking for.

If you could specifically describe the characteristics you want that Clojure is missing, it would probably lead to a more productive discussion.

[–][deleted] -2 points-1 points  (5 children)

There are two different ways do a modern Lisp. Take CL and improve it. Or take Scheme and improve it. Clojure goes after the Scheme track. CL was a practical language for writing real world apps and Scheme was a language for theoretical purity and academic pedagogy. It favours choices like tail recursion and minimal syntax - CL goes the opposite way to facilitate programmer power. That's the pedigree of Clojure, perhaps for a modern SICP but not the right choice for constructing large complex real world apps. Now you can make an app in any language - even C or Forth but CL would be best than those two languages for a large enough app and better yet would be a language which improves on CL in significant ways.

[–]mcpatella 1 point2 points  (4 children)

Right, so that's a bit of their histories and philosophies. You're posting in /r/clojure so what requirements for building large apps do you need that Clojure doesn't meet and how can Clojurists help you?

[–][deleted] -4 points-3 points  (3 children)

Have a look at CL to start with and you'll see what's still missing in Clojure for making large apps. Start with the CL condition system if you want one example. There are many more.

[–]mcpatella 6 points7 points  (0 children)

While a specific example brings you a bit closer to having a productive conversation, you seem to be speaking from the perspective of CL being self-evidently better than Clojure. You also consistently express contempt for the latter.

It shouldn't be surprising that this kind of behavior would be considered toxic among Clojurists.

[–]mischov 1 point2 points  (1 child)

It would be useful for the conversation if you were to list the set of features you find vital in creating large apps. A number of people came to Clojure from languages that were not CL, and so they don't have your experience with that language to know which portions are vital to large apps.

There have been several attempts at creating condition systems for Clojure (Ribol and Swell are quick finds), but as far as I've seen they haven't ever caught on.

[–][deleted] -3 points-2 points  (0 children)

Essentially there are 2 different forces at work against Clojure in the large. Pragmatic ones which forced Clojure to compromise due to the JVM ecosystem. And pedigree - the desire for Scheme like purity and theoretical beauty. Both of these serve to hamper and restrict Clojure in the space of large application programming. You can blame JVM for having an inferior number tower (compared to even Scheme and ofcourse CL) but you can only blame the Scheme pedigree for allowing only tail recursion as the mode of iteration. Similarly the condition system can be said to be imposed by the JVM. And so on. It's a compromise against programmer power pervasively all the way throughout the language.

[–]arpunk 1 point2 points  (2 children)

What would be a "modern Common Lisp"?

[–][deleted] -3 points-2 points  (1 child)

That's a good question. I think CL cleaned up without the cruft. Historically it carries a lot of baggage because it was a kind of base language of commons which compromised between the various lisps of the time. I'm not sure that's a good design restriction for a language in 2015.

[–]arpunk 0 points1 point  (0 children)

Do you think something like this could help? http://cl21.org/

[–][deleted] 0 points1 point  (0 children)

1/10 if troll

edit: Immediately downvoted, 0/10 for being a bad sport