Is Kotlin easy to learn with no Java or C-like lan...
# getting-started
m
Is Kotlin easy to learn with no Java or C-like language experience? Only language I know is Common Lisp.
v
You have got to start somewhere anyways, right?
👍 7
b
Coming from Lisp, i would say that it would be easier to adapt to Kotlin than to Java
If you see that its too complicated, maybe take a look at Clojure before, to ease the transition to JVM
t
@mfiano imo, one of the major strengths of kotlin is the community/support. it has good docs and examples, excellent ide-support, and this slack channel
it won't necessarily be easy to learn, but you can always come here and ask for help
m
I was moreso wondering if it is like Clojure in that I would need to know Java well to really use it.
I am not a fan of Clojure or the ratio of code to functionality that comes with Java. I know Kotlin tries to solve this, but I am wondering if Java is needed to really learn the language or particular mature areas like GUI frameworks and OpenGL rendering
t
that's harder to answer
a lot of gui/graphics programming would probably rely on using java libraries, reading java docs, looking at java examples, and then understanding how to translate that into kotlin. there is a conversion-tool in idea, but it will only take you 90% there
i don't know a lot about gui/graphics in java or kotlin though, so i should keep quiet 🤐
b
You dont NEED to know Java to learn Kotlin or to do UI programming (see #tornadofx). Just give it a try, and if you like it and become involved, there will be time later to dive into java if you need to use an specific library
You are probably aware that now Android is oficially supporting Kotlin as a development language. I have the impression that a lot of people are jumping to Android development using just only Kotlin, mainly coming from an swift or dotnet background
p
I might be the minority but I think that knowing Java stdlib is almost essential when learning Kotlin. The interop permeates Kotlin and intertwines both of these languages and without Java Kotlin would be just an empty shell; moreso than Clojure. There is also many quirks and edge-cases in Kotlin that are there only because it needs to work with Java. For a beginner it could be really confusing.
As a specific example, Kotlin reuses Java collections implementation and does all sorts of tricks to make it work including special cases for when the compiler encounters a collection type. As opposed to that Clojure has its own implementation of collections so you can get quite far without Java.
k
Another question is what you'll use this for. If it's server side, you can just use Closure. Kotlin has a huge number of benefits for Android developer. Servers have more memory and flexibility.
m
What will I use it for. Well, I'm mostly a 3D graphics programmer and game developer.
k
For that, I would think the languages C# and C++ are a lot more important. Unity and Unreal engines are far more important to game programming...