4 ms·
> which is why Clojure is hardly used at all and why Java is everywhere. Surely that has nothing to do with Java being 20 years old, and Clojure 1.0 being 6 ye
by arohner 11y ago
> which is why Clojure is hardly used at all and why Java is everywhere.
Surely that has nothing to do with Java being 20 years old, and Clojure 1.0 being 6 years old?
> Clojure doesn't even win in the one line department against modern JVM languages (e.g. Kotlin).
Example, please.
- incepted 11y ago> Surely that has nothing to do with Java being 20 years old, and Clojure 1.0 being 6 years old? Lisp has been around for 50+ years, hasn't really helped its popularity much. But I'm willing to bet with you that in 14 years from now, Clojure will have even fewer users than it has today. > > Clojure doesn't even win in the one line department against modern JVM languages (e.g. Kotlin). > Example, please. Here it is in Kotlin: (0 .. 20).filter { it % 2 == 0 }
- j-pb 11y agoI'd say clojure won that one liner.
- huahaiy 11y ago> Lisp has been around for 50+ years, hasn't really helped its popularity much. But I'm willing to bet with you that in 14 years from now, Clojure will have even fewer users than it has today. Computer science has too short a history to make any sound arguments from history. However, if you insists on arguing from history, let's look at the long term trend. Would you agree that the trend of programming language is progressing to higher and higher level of abstraction and further and further away from the machine details? From machine code, to assembly language, to C, to Java, and now FP languages, this trend of mainstream programming language evolution is very clear. In this sense, if you take Lisp as a pioneer of function programming, it was simply ahead of its time. If you are implying that Lisp syntax is somehow an impediment to its popularity. That may well be. It's a personal preference issue. Some people like more syntax in their language, some people like less. If you are in the later camp, Lisp is surely very attractive. For example, in your kotlin one-liner, there are just too much syntax to understand "()", "..", ".", "{}", etc. Life is too short, I just don't want to learn all these idiosyncrasy invented by someone just for the sake of being different. I wished I had knew Lisp sooner, certainly not having programmed for 20 years. I am sure you will lose that bet.
- dragonwriter 11y ago> Would you agree that the trend of programming language is progressing to higher and higher level of abstraction and further and further away from the machine details? That's...less than clear. The extreme high level of abstraction in PLs is consistently increasing, or at least non-decreasing, over time, but the mean/median used in actual programming may not be.
- huahaiy 11y agoWith some minor assumptions, my assertion would be correct. Yours needs a lot of strong assumptions to be mathematically feasible. Basically, you are saying, when the max of a sequence is increasing, the mean/median stays or even decreases. That would require that the frequencies on the lower end to increase much faster than that on the higher end, which is certainly not the case. For example, the number of C programmers is growing faster than the number of Java programmer today? No one would think that's correct.
- incepted 11y agoEven if your assumption about the trend being to higher levels of abstraction (which is highly questionable) is correct, this doesn't give any credence to the prediction that it will make Lisp finally popular. Yes, Lisp is a 4GL but even if everyone is rushing toward 4GL, there are plenty to choose from and it's not clear that they will flock toward Lisp. Even if CS is still pretty recent (50+ years), there is still something to be said about a language that never managed to become mainstream in that period. Whether Lisp was ahead of its time is irrelevant. The question is: will there ever be a time where Lisp will be ripe for its time? I think that window closed a while ago. It's not about the parentheses or its FP side, it's just that the world is moving toward statically typed languages with sophisticated type inference, and it's a league that Lisp simply doesn't belong to.
- j-pb 11y ago> it's just that the world is moving toward statically typed languages with sophisticated type inference The billion lines of Javascript, Python, Ruby and R would like to differ. Each of the first three has probably more users than all languages (ML family, haskell, scala) with an advanced type system combined. I love dependent typing, I truly do. But the right tool for the job, and a formally verified coq program is certainly suited for a rocket, but not for the high iteration and velocity environments most people program in.
- dkersten 11y agoI still find the clojure version (ever so slightly) simpler. Mostly because this has magic implicit it variable. In real code, this of course wouldn't matter, though.
- jiyinyiyong 11y agoThere will have fewer users according to Google Trend: https://www.google.com/trends/explore#q=java&cmpt=q&tz=Etc%2FGMT-8 https://www.google.com/trends/explore#q=java&cmpt=q&tz=Etc%2... And Clojure, not many is interested in it: https://www.google.com/trends/explore#q=clojure&cmpt=q&tz=Etc%2FGMT-8 https://www.google.com/trends/explore#q=clojure&cmpt=q&tz=Et... Actually I'm on the Clojure side. News comer will always pick a language which is simpler, more expressive, newer. Java is no longer such a language comparing to others.