I think that indeed both Scala and Kotlin are actually a layer over Java in a way. I really like Clojure a lot. In my opinion I think the reason clojure doesn't grow that fast is purely because although lots of people claim that Java is a "horrible language", those same people likely do not want to do anything that is fundamentally different than java and clojure is an example of that. The fact that it also works in the JVM doesn't help to the argument. Some Kotlin developers I've met aren't even aware that there is a JVM running when they start a kotlin "program" to begin with.
I think the type system is better which allows for moving more validations into compilation time. The implicit feature in version 2 enables a lot of good abstractions which can be made more explicit in the 3ed version. Those are my favorites but the list is long. It all boils down to a small but powerful feature set.
Clojure's backwards compatibility far out performs that of Scala's. Clojure just works, I haven't had issues w/versioning. Compare that w/Scala, where my Intellij setup is *always* breaking.
Oh really? Interesting, ive not done serious work with any of the 4 languages but Clojure has been the most difficult to grasp, which is a shame because i was most excited by it. Scala makes more sense to me and seems cool for the dual paradigms. But to hear that scala setup is always breaking in intelliJ is disappointing.
😂 hahahah i think the LISP thing is really cool. But i recently looked at some Clojure code for a Kafka Producer and didnt feel like analyzing it. But thats a likel a function of my unfamiliarity with the language.
The main issue with clojure is the relatively steep learning curve, for example due to the lack of standards for many common tasks (it follows quite a lot the lisp philosophy of having a lot home made)
I think the main reason there is a steep curve comes from the fact that many new Kotlin developers are for the most part former Java developers. Many of them express an enormous disdain for the Java language, while at the same time the fact that they once did Java is the main reason why they can assimilate Kotlin so well. Clojure is different and many of these Kotlin developers will never even consider doing code in other languages. That is also why Kotlin is being used now to create frontend applications by using javascript compilers to turn kotlin code into javascript code, removing the need for Kotlin developers to learn anything about javascript. Having all of this with a new language comes from the powerful marketing that comes from the Kotlin foundation to promote the language. Clojure doesn't have that marketing power and that influences how people think. It is almost like fame. Kotlin is now a famous language and so people assume that it is good, almost gaining a divine classification, and so if some people look at Clojure with this mentality then they will never find the benefits of using it.
yes dude but its not STD afaik so not really an argument. Scala is similar to most general purpose languages, you can just do things as you do them normally and ignore most of the monads and other shit, expecially because scala alow you to write oop. But if let say we we take haskell or clojure its a compleatly different thing even if we get rid of monads and other stuff
Scala still has a lot of insane stuff that is completely distinct from Java in it's "standard" like implicits and extension functions and eta expansion. The OO model is not the same. Plus, Scala compiles to JS or Native and interops with C, Python, Java, and JavaScript. It's a very useful lightweight language that can be extended in several directions for lots of usecases. Java isn't like that at all.
Languages without types are not all the same, things like object destructuring, truthiness (only nil and false are falsey) and the data based approach makes it easy to reason about input and output. When writing clojure I feel more confident than with python or js that my program will work.
@@the-lisperthat you feel more confident that it will work is very intersting. I wonder if that comes from it being a LISP, or from the FP paradigm? Also, the first time i heard the word "truthiness" was in The Joy of Clojure.
Agree, clojure is (generally) great
Why generally xd
generally is not callable
@@vikingthedudeHaha nice!
I think that indeed both Scala and Kotlin are actually a layer over Java in a way. I really like Clojure a lot. In my opinion I think the reason clojure doesn't grow that fast is purely because although lots of people claim that Java is a "horrible language", those same people likely do not want to do anything that is fundamentally different than java and clojure is an example of that. The fact that it also works in the JVM doesn't help to the argument. Some Kotlin developers I've met aren't even aware that there is a JVM running when they start a kotlin "program" to begin with.
Clojure is a Lisp so you can't really beat that.
True true
Our simulation is written in a lisp
My take is that Kotlin is a better Java, but Scala is a better programming language.
THAT's an interesting way to put it. Why do you say that?
Why do you say that?
I think the type system is better which allows for moving more validations into compilation time. The implicit feature in version 2 enables a lot of good abstractions which can be made more explicit in the 3ed version. Those are my favorites but the list is long. It all boils down to a small but powerful feature set.
Clojure's backwards compatibility far out performs that of Scala's. Clojure just works, I haven't had issues w/versioning. Compare that w/Scala, where my Intellij setup is *always* breaking.
Oh really? Interesting, ive not done serious work with any of the 4 languages but Clojure has been the most difficult to grasp, which is a shame because i was most excited by it. Scala makes more sense to me and seems cool for the dual paradigms. But to hear that scala setup is always breaking in intelliJ is disappointing.
After i learn clojure, my mind change
hear hear
Warning, may contain LISP
😂 hahahah i think the LISP thing is really cool. But i recently looked at some Clojure code for a Kafka Producer and didnt feel like analyzing it. But thats a likel a function of my unfamiliarity with the language.
The main issue with clojure is the relatively steep learning curve, for example due to the lack of standards for many common tasks (it follows quite a lot the lisp philosophy of having a lot home made)
I think the main reason there is a steep curve comes from the fact that many new Kotlin developers are for the most part former Java developers. Many of them express an enormous disdain for the Java language, while at the same time the fact that they once did Java is the main reason why they can assimilate Kotlin so well. Clojure is different and many of these Kotlin developers will never even consider doing code in other languages. That is also why Kotlin is being used now to create frontend applications by using javascript compilers to turn kotlin code into javascript code, removing the need for Kotlin developers to learn anything about javascript. Having all of this with a new language comes from the powerful marketing that comes from the Kotlin foundation to promote the language. Clojure doesn't have that marketing power and that influences how people think. It is almost like fame. Kotlin is now a famous language and so people assume that it is good, almost gaining a divine classification, and so if some people look at Clojure with this mentality then they will never find the benefits of using it.
@@jesprotech many good points. I wish Clojure was more popular. But hey people whobuse it, love it.
@@chillbro2275 Thanks! I think Clojure has a lot of potential too.
well Java hasn't been copying many ideas lately from Clojure ;)
Scala is very much like Java... Hmm.... Ok, try to explain cats effects to a Java Programmer
Like trying to do Haskell in Java
yes dude but its not STD afaik so not really an argument.
Scala is similar to most general purpose languages, you can just do things as you do them normally and ignore most of the monads and other shit, expecially because scala alow you to write oop. But if let say we we take haskell or clojure its a compleatly different thing even if we get rid of monads and other stuff
Scala still has a lot of insane stuff that is completely distinct from Java in it's "standard" like implicits and extension functions and eta expansion. The OO model is not the same. Plus, Scala compiles to JS or Native and interops with C, Python, Java, and JavaScript. It's a very useful lightweight language that can be extended in several directions for lots of usecases. Java isn't like that at all.
@@borisbeginin What do you mean ignore monads? Why would you do that in Scala?
Actually I realized that you can explain cats effect to a Java dev in terms of project reactor
tried it but got too pissed off with no types and left
I tried and left Haskell for the exact opposite reason. Different people like different ways of working.
I love it but I don't know if it would be pleasant to work with in a large codebase
sad
Languages without types are not all the same, things like object destructuring, truthiness (only nil and false are falsey) and the data based approach makes it easy to reason about input and output. When writing clojure I feel more confident than with python or js that my program will work.
@@the-lisperthat you feel more confident that it will work is very intersting. I wonder if that comes from it being a LISP, or from the FP paradigm? Also, the first time i heard the word "truthiness" was in The Joy of Clojure.