Now considering Kotlin 🤔 At least knowing the problems it solves. Interesting discussion I look forward to seeing more responses after the already good ones posted 🔥 💪🏼 big
Id say why not both ? Being fluent in Kotlin and knowing Java as first language is the bomb ! If Kotlin is simpler and like Java then why not learn Java First to create a strong foundation in software engineering ?
I really don't see the point of Kotlin, and it pains me to say this because so many people complain about Java, but Java is much more intuitive. Besides this whole thing is becoming rediculous, now we are supposed to be excited about Flutter and Dart too? No, no, no, Dart is terrible with all the nesting and BS it's a terrible language. Can we stop inventing new programming languages and frameworks every 2 years and improve the languages and frameworks we have already?
Def. Kotlin. I've been developing Android apps for five years, give or take. I remember the transition being hard but once Ive got used to Kotlin, I would not wanna go back to Java.
@@joseescalante6707 Development wise, it toughly took me about 6 months to a year. But I wouldn’t say its as ‘easy’ as writing Java now. Like Sam said in another video, Java’s my first language and I still feel slightly more comfortable using Java in job interviews, though I know it’s faster to code in Kotlin given its syntactic sugar.
Java was my second programming language, I learned oop on it in school, never really liked it over C++, started learning kotlin a few days ago and it looks to me like it is just Java but thinned with some python. I didn't develope an android app before, but I will now using Kotlin
4:28 - Extension functions are relatively useful but they are syntactic sugar, which becomes immediately obvious when trying to reference Kotlin code from Java; it is the equivalent of Project Lombok's @ExtensionMethod feature. Either way, you aren't actually _extending_ code in the traditional sense; you aren't doing the equivalent of applying a trait onto a pre-defined struct in Rust. 4:42 - This code example actually shows a particular gripe I have with Kotlin: it's so utterly obsessed with eradicating verbosity that it makes code _more_ difficult to read. Pretend for a second that you weren't learned in Kotlin: where would you suppose "length" comes from? Or "get()" for that matter? What scope are those functions located in? Is that even a method definition? 5:12 - Data classes are not exclusive to Kotlin. Records were admittedly a preview feature at the time this video was made, but even before then, there were ways to create data classes, like Project Lombok's @Data feature. 5:31 - Type inference is not exclusive to Kotlin.. indeed, full var support was added in Java 11 back in 2018. It can admittedly only be used for variables, not fields, but the video explicitly states "variables". It also goes without saying that the example you gave of why type inference is a good thing is actually an example of why type inference is a bad thing. If you're changing return types, your code is probably going to break more than just because of previous type declarations.
This code example actually shows a particular gripe I have with Kotlin: it's so utterly obsessed with eradicating verbosity that it makes code more difficult to read. Pretend for a second that you weren't learned in Kotlin: where would you suppose "length" comes from? Or "get()" for that matter? What scope are those functions located in? Is that even a method definition? it's basically a mix of java and javascript kek
well.. I'm learning Kotlin and I can tell you that Kotlin and Java have a lot of similarities and coming to Kotlin after being a Java developer wouldn't take much time since that Kotlin is the child of Java it's just easier and cooler
@@ultimate8673 it is.. But Kotlin is supported by Google itself. More money more to show. Updates for Kotlin are something regular to see when you open Android Studio unlike Java
@@MayTubeGames yea I mean I learned Java but atm I'm going for kotlin since its easier to learn from what I know and I love to learn more programming languages :D
Another well explained video. Currently I use Java since I have not learned Kotlin (yet). Also, in android studio there is a way to convert Java directly to Kotlin. I have not tried it yet but might help with the learning transition :)
Kotlin is more of a political battle between Google and Oracle than a real Android development improvement. I can understand Apple moving away from Objective-C since it was terrible to work with. However, moving from Java to whatever else new language does not add up, technically.
I agree with you on this. I have been using Java to write apps for a while. I have about 2 years experience with Java for Android. I just learnt Kotlin about 4 months ago and I really love it. I'm already preparing to release my 3rd app i wrote in Kotlin. Kotlin is really good and easy to learn if you have enough experience in Java.
@@hamzamaqsood5725 You're the person with 'Narsee Monjee College of Commerce and Economics' in his profile? Cause I can see so many 'Abeer Chaudhary' here
@@evil_onyxx_jr. Kotlin Multiplatform is in preview, you can write common code in one module (like flutter) but also platform specific code in other module, so you can also build things like widgets which is not possible in flutter. And the plus point can also produce app as small as 1mb.
You're wasting your time man if you're just going to learn kotlin for the sake of making android versions of your apps then why don't you use flutter it saves you a lot of time
I'd say, start learning general Java fundamentals (but don't go too far), then continue with Kotlin and after that you can start learning Android with Kotlin. Some companies still have older codebases, so it's recommended to know some Java too. Plus, it will make learning Kotlin easier. However, you can skip it if you know another language well. It depends on you. Good luck and don't rush!
@@sfhbgyfbyrahulranjan If you know any OOP then don’t waste your time learning java. Just go with Kotlin and if you find a job pick it up the week before you start.
As far as i know Android is basically frozen on Java 6 so im doubtful, that Java14 features made it to the platform even now. Correct me if im wrong though, this is just hearsay. :)
Stop talking java! We all know java is really sucks making app for gaming experience... We need an OS which can execute files (.ISO-Alike) under system-on-core!
This was a really useful video. Many videos start in the Stone Age and then fall asleep in the Middle Ages. There is a lot of compact and useful information here, no blah blah. Many questions that I had previously asked myself were answered. Thank you.
Thank you so much man. I am new to all of this and i was worried about which one of these i should learn. I was already started on Kotlin and this has swept away all my worries.
Well, as a cs student whose only proficient-level programming language is C, let me say that this is a great video! As I learn more about programming in general, I begin wanting to jump to more ambitious projects, and among these there is app development. I've been wanting to learn Kotlin for some time, since I heard it was kinda based on Java but with neat features of modern day programming languages. I feel like I'm better informed now. I also appreciate that you evaluate this objectively, with pros and cons of the two languages and not favouring any over the other, and yet give your opinion so that we have a reference in mind. It's something I wasn't expecting to find in this kinds of videos. Given I'm a bit familiar with Java, I'll give it a shot one of these days. I can already feel I'm gonna have fun. Thanks!
All of my apps are converted over to Kotlin, and all new apps that I write are Kotlin from the start. It took a little while to learn the syntax differences between Java and Kotlin, but the differences weren't large enough to make it a difficult transition. Yes, I had to look up things like how to write a switch statement, and even simple things like how to declare a constructor, but the information is readily available if you know what to look for. I think it's much easier to read and write than Java once you're used to it. I agree with your statement that Google is likely to eventually drop support for Java, especially if the lawsuit doesn't end in their favor.
I just wanted to comment on the part where you said that Google may stop supporting Java, and I highly disagree. Most Android apps and parts of the OS itself since its inception are still written in Java and no one is seriously going to re-write all that code in Kotlin. That being said, Kotlin is interoperable with Java and you can write Java code in Kotlin, so you can write new apps in Kotlin, but as far as stop supporting Java, that won't happen in the near future. The same thing can be said with Objective-C. Parts of iOS and tons of apps since it's inception are still written in Objective-C and no one in Apple is going to re-write millions of lines of code in Swift just because it's a more modern language. Even many of the libraries and frameworks that iOS developers use is still written in Objective-C.
While Kotlin is a genuinely better Java, C# was a step back on many fronts. C# reintroduced quite a few concepts from C++ which Java did not include on purpose to enable robust development of complex systems.
@@falklumo What features are you talking about, almost all of them are just options to give users choice. C# has structs which are treated as primitive compile time types. also java robust? you gotta be kidding me. C# took the best aspects of C and Java and made them into one awesome, albeit not super cross platform, thing
I've studied Kotlin and it's a really awesome language just like you described on video above it's nice features that allow us to create new methods without needing to create a whole class. Without doubt Kotlin's go-to language!
I personally would recommend to learn kotlin, even if you're good at java. Because kotlin is in my opinion so much better suited for android development than java. Coroutines alone would make me switch to kotlin.
When I change the datatype of a function, I need to change the way the output is handled anyway so I don't see the point in not having to declare the datatype except not knowing what datatype something is and having bugs like in Javascript where 11+1 is 12 most of the time except when it's "111". Just my opinion on that matter
That was just a bad example. Consider HashMap myVar = new HashMap(); vs. val myVar = hashMapOf() It is a bit less redundant and a bit more concise. You can still declare the type if you want/need to, eg. val myByte: Byte = 0 Remember, Kotlin it is still a statically typed language as opposed to JavaScript which is dynamically typed.
I wouldn't go with kotlin because it does not have enough tutorials/documenation/guides/forums/topics and etc. Those things are important when you are beginning.
how do null values "cause huge frustration for developers"? When I see a NullPointerException, I'm relieved; they're the easiest exception to deal with. Without them, I will have to 1) realize what's happening is not what's intended (which could take anywhere between seconds and months) 2) figure out why it's not doing what's intended 3) finally fix the boneheaded mistake. Debugging went from running once to potentially not even realizing there's a problem until well after launch. Null is one of the most powerful tools in a programmers pocket. Believe in the null. Trust in the null.
I agree with everything but unless java is unsupported for android development and kotlin becomes the only language to write android apps, why should someone switch from java to kotlin? Not only that, java can be used more than developing android apps so if someone already knows and likes java what is the benefit of switching to kotlin?
I remember that similar situation with Coldfusion (buyed for Adobe). ColdFusion were the future, but died, and Java, is live..... Why program in something that run in Java if I can program directly in java?
But since Java 9, type inference is there. Also, Java 15 and above has record which is more data classes than kotlin data-class or even lombok getters and setters (purely immutable)
@5:24 In Java, you never have to define constructors, getters and setters (uggh, please don't), hashcode(), toString(), or equals() if you don't need to. I've never once defined hashcode(). toString() maybe a dozen times, equals() even fewer....are you sure you've ever programmed in Java?
One thing to note. Java's standard library is fully compatible with Kotlin so there is no reason not to learn if both if you know one. It's not the same as learning a whole new language, the only thing that's changing is the syntax and that's about it. Of course Kotlin has it's own libraries too but it's not the same as learning a js after Java or some other language that is completely detached from the ecosystem, Kotlin is an extension.
As a professional mobile developer who has been developing iOS apps and been using Swift for like 6 years and have experience with Obj-C. Swift is much nicer. And I been doing some Android which I started with Java and Android as a side until about a year or so I been using Kotlin. I been taking Android seriously for over a year now and been using Kotlin. The way I see it is there will be plenty of legacy code out there so having familiarity with Obj-C and Java is a huge plus for that, but writing any new functionality or building any new apps I would use Swift for iOS and Kotlin for Android. I tend to avoid things like React Native as there is a whole slew of problems with it.
I have a question for u since you use swift and kotlin. When your building the same app in kotlin and swift what backend do i use for both or u have to have different backend for each. Thank you
@@mateoharmiss5830 If you are looking from a mobile perspective and if you mean backend as a web server, you can essentially use almost anything as your backend if you have proper web api calls like REST API. So, you can use a stand alone server, firebase, AWS, or anything really with any language really for that server. From the way you would see it as a mobile app is a web call and you get back a response in JSON or XML that you parse.
@@eberronbruce1328 I am new to the mobile scene, and just trying to understand it, Google dont offer much information unless am asking it the wrong way . From my understanding android use kotlin and ios swift for front end , that's simple but even mobile app need to fetch data or speak to the backend server side and that's what I don't understand, I know the can use pretty much and language in the server side but isn't there one better for mobile then others or is each os different . For example I was told for kotlin it be good to use korlin coroutines for backend but then what about swift app will it connect to kotlin coroutines or no . U see these questions seem complicated to find answers or again mite be me :) Thank you for the reply I really appreciated it.
@@mateoharmiss5830 To simplify this to help new developers understand, it's best to look at things as boxes. So look at the mobile device as a box and the servers/other devices as boxes. Then look at strings that go between the the boxes much like a child's phone that uses cans and strings. The strings are the lines of communication like HTTP/web calls. So Kotlin/Swift used on the mobile devices are just used for those devices, hence just the mobile box. You use that language to send a signal to the server box which responds through the same string. Then the mobile box handles the response. I hope this helps.
Definitely learned a lot watching this. I’m a recent CS grad currently job searching for both SE and Android dev jobs. Just made the decision to focus on Android dev instead. And enhance my development and architecture understanding/ experience. If anyone knows any startups (even for SE rolls 👀) looking to hire, please leave a comment
It seems if u wana limit yourself only to Android studio as a developer, then ul just learn Kotlin. On the other hand, u can do sooo much more with Java, including Android Studio, at least for now. I'd stick to Java... Until there's a real push against it. Then u just make the switch. Great Content Bro✌️.
I am an Android Developer in Java, bro !✌But Kotlin is growing way fast as you dont have to write bunch of code in Kotlin like you do in Java and it will replace Java for Android Development within this or the next decade but it is gonna be way easier for us to swtich to Kotlin as it is a mix of Java and JavaScript language ! Let's stay loyal for Java😁💪✌
@LeBlanco MOB I just did a quick google, and as I suspected, Kotlin is very good at interop, so you can write Spring app with Kotlin. Also, you can compile Kotlin to iOS, so that's nice :)
@LeBlanco MOB it is, you can share code between Android and iOS. Just like in Xamarin, React Native etc. It has some disadvantages, but it's not for everyone.
@LeBlanco MOB you are aware that Kotlin Native is pretty much native, right? There is some overhead, but other than that you get full iOS API, just like in Xamarin. As for Java and Android, Google created Android SDK, not Java or Sun or whoever owned Java then. They sued Google for using Java, so they pretty much bought Kotlin from Jetbrains, which just so happens to work on JVM. Also, ther are plenty of apps writen in ReactNative, Xamarin, Flutter etc, Kotlin is just one more option here.
Kotlin is a fork of Java. Both interoperate as both compile to class files and Kotlin uses the Java runtime. Note that Java continued to evolve after the fork and some of the newer features, like the stream API, are actually implemented in a more mature way than Kotlin, esp. if you run on many cores. While Kotlin has a slight edge today, that could reverse with some of the future enhancements planned for Java, esp. under the hood. Kotlin and Java in tandem are a great thing as they keep pushing themselves ahead and stay relevant against languages like Python, Julia, Go, Rust. Reminds me of Fortran which keeps coming back ;)
People arguing about java verbosity but when making comparaison in Time of writing code java is more intuitive and faster even in runtime and kotlin configuration takes 2times than java does ,java syntax IS more clear and easy to understand than kotlin ,
99% of the companies using Java not using it's latest version :D Most of these still uses Java 11 or earlier. Even tho Java getting some nice tools, it'll be at least 10-15 years until people will use them.
I personally don't mind writing extra code in Java, Kotlin's syntax is just weird and a bit harder to read. Maybe I am just used to using Java but that's what I think
android studio seems to want to use kotlin, anyone know how to choose java? with android studio or something else? just thought I'd play around with both, because I have an old android app in java, but the old version of android studio/ eclipse won't boot. I'm wondering if I should/could rescue that old app and revamp it, to get back into the groove, havent coded in 4 years
I was expecting comparisons on more dimensions. To take a decision, a programmer would have to know :- 1. Which language has better ease of programming and by how much (lines of code, language features, development time related metrics) 2. How easy is it to shift to the new language. 3. Difference in size of apk. That said, Kotlin is definitely way more powerful as a language compared to Java, particularly with respect to multi threaded programming. Most new articles about programming practices in Android are written in Kotlin. For new developers, it would definitely be the recommended language.
The best practice is learn Java to get an entry level job, and learn Kotlin for Android development only. Java will provide more non-Android job opportunities. Since the syntax is so similar, you can learn either one and quickly pick up the other.
I literally just picked up using Android studio after making apps with RN. I chose java but i having a really hard time finding recent resources for java so ig im going with kotlin now 😅
I don't think the objective c case really apply to java, java is a language backed by huge company Oracle and it is used everywhere, also at the kolin uses JVM, so it's just downing some syntax and complie improvements which java can catch up with it it Oracle what's to do so.
I think Java is forever better type language for computer science and IT world. As for some business issue Oracle and Google can't work together. In the meantime Jet Brains take this advantage, they are come for B2B solution and take a big scope with Google. That's why Google try as there level best to promote Kotlin. My personal overview, When I write a feature by Java and Kotlin in two deference project, I see kotline project take more then time between Java projects compile time. By the way, Android is Google's product, Kotlin language supported by Google So, in future if we want develope Android app we must write code by Kotlin.
Which language would you choose if you were an Android app developer?
Kotlin without a doubt
Your analogy with Swift makes sense. Hence if I started app development I would choose Kotlin as well.
Now considering Kotlin 🤔 At least knowing the problems it solves. Interesting discussion I look forward to seeing more responses after the already good ones posted 🔥 💪🏼 big
Id say why not both ? Being fluent in Kotlin and knowing Java as first language is the bomb ! If Kotlin is simpler and like Java then why not learn Java First to create a strong foundation in software engineering ?
the name kotlin was so ugly, thats why I love Java 😊
World : Kotlin Vs Java
Meanwhile Python : Launch the PyoDroid module
We need this
Exactly 🙆🏻♂️👌🏼
What if Google had a dispute with Jetbrains and again there is a new language, say, Klingon....
😂😂😂
Lol, the next new language is *fLULin* it will supports both of flutter n kotlin as well 🤗... Flulin is future 🕶️
HAHAHAHA!
I think the next language would be ( Kotva )
Kotlin + java
I really don't see the point of Kotlin, and it pains me to say this because so many people complain about Java, but Java is much more intuitive.
Besides this whole thing is becoming rediculous, now we are supposed to be excited about Flutter and Dart too? No, no, no, Dart is terrible with all the nesting and BS it's a terrible language. Can we stop inventing new programming languages and frameworks every 2 years and improve the languages and frameworks we have already?
Def. Kotlin. I've been developing Android apps for five years, give or take. I remember the transition being hard but once Ive got used to Kotlin, I would not wanna go back to Java.
I'm in that transition now, how long did it take you before writing Kotlin code was as easy as writing Java?
@@joseescalante6707 Development wise, it toughly took me about 6 months to a year. But I wouldn’t say its as ‘easy’ as writing Java now. Like Sam said in another video, Java’s my first language and I still feel slightly more comfortable using Java in job interviews, though I know it’s faster to code in Kotlin given its syntactic sugar.
How much salary do you make in android development? @Jerry Che
I still adapt for the transition with recent architecture
@@hyunpark8017 if you're in for the money you aint really gonna learn anything at all.
Java was my second programming language, I learned oop on it in school, never really liked it over C++, started learning kotlin a few days ago and it looks to me like it is just Java but thinned with some python.
I didn't develope an android app before, but I will now using Kotlin
It's been over a year
Did you make an android app with Kotlin yet?
How is it going
4:28 - Extension functions are relatively useful but they are syntactic sugar, which becomes immediately obvious when trying to reference Kotlin code from Java; it is the equivalent of Project Lombok's @ExtensionMethod feature. Either way, you aren't actually _extending_ code in the traditional sense; you aren't doing the equivalent of applying a trait onto a pre-defined struct in Rust.
4:42 - This code example actually shows a particular gripe I have with Kotlin: it's so utterly obsessed with eradicating verbosity that it makes code _more_ difficult to read. Pretend for a second that you weren't learned in Kotlin: where would you suppose "length" comes from? Or "get()" for that matter? What scope are those functions located in? Is that even a method definition?
5:12 - Data classes are not exclusive to Kotlin. Records were admittedly a preview feature at the time this video was made, but even before then, there were ways to create data classes, like Project Lombok's @Data feature.
5:31 - Type inference is not exclusive to Kotlin.. indeed, full var support was added in Java 11 back in 2018. It can admittedly only be used for variables, not fields, but the video explicitly states "variables". It also goes without saying that the example you gave of why type inference is a good thing is actually an example of why type inference is a bad thing. If you're changing return types, your code is probably going to break more than just because of previous type declarations.
This code example actually shows a particular gripe I have with Kotlin: it's so utterly obsessed with eradicating verbosity that it makes code more difficult to read. Pretend for a second that you weren't learned in Kotlin: where would you suppose "length" comes from? Or "get()" for that matter? What scope are those functions located in? Is that even a method definition?
it's basically a mix of java and javascript kek
You can’t use newer Java versions on Android, you’re stuck on 6 with a few features from 8. I think it’s because of legal issues
@@orangeguy5374 right? What’s the point of having the features if I can’t implement them in the use case discussed?
Kotlin definitely will become the main language, but Android developer should have the ability to read Java code
If that's the case, android gonna lose like 90% of its developers.
well.. I'm learning Kotlin and I can tell you that Kotlin and Java have a lot of similarities and coming to Kotlin after being a Java developer wouldn't take much time since that Kotlin is the child of Java it's just easier and cooler
@@MayTubeGames isn't kotlin based of Java?
@@ultimate8673 it is.. But Kotlin is supported by Google itself. More money more to show. Updates for Kotlin are something regular to see when you open Android Studio unlike Java
@@MayTubeGames yea I mean I learned Java but atm I'm going for kotlin since its easier to learn from what I know and I love to learn more programming languages :D
Your break down of things is always interesting and so helpful! Thanks!
Been jumping between these for over a month. Good Work, thanks for clarifying my doubts. I think, will be going with kotlin.
i love Java and it's the first programming language i started with . but now im learning kotlin
How is that going? Do you like it?
so what are your feelings about it?
have you moved on? Are you happier now?
look a t this dudes
Good! Nothing is worse than a programmer not willing to evolve (see Cobol programmers in finance).
Another well explained video. Currently I use Java since I have not learned Kotlin (yet). Also, in android studio there is a way to convert Java directly to Kotlin. I have not tried it yet but might help with the learning transition :)
Those 60 people who disliked are from Oracle, they just lost the case and probably Google Android support for the future.
Keen to know more about your Thesis on Android security as I'm interested in security as well.
Same here.
Please let me know when you get something on that. I will appreciate your kind gesture.
Kotlin is more of a political battle between Google and Oracle than a real Android development improvement. I can understand Apple moving away from Objective-C since it was terrible to work with. However, moving from Java to whatever else new language does not add up, technically.
Thank you for the video. looking forward to learn Kotlin, a transition from C/C++ to Kotlin. Hopefully it will be smooth.
C/C++/JAVA/Kotlin
I agree with you on this. I have been using Java to write apps for a while. I have about 2 years experience with Java for Android. I just learnt Kotlin about 4 months ago and I really love it. I'm already preparing to release my 3rd app i wrote in Kotlin. Kotlin is really good and easy to learn if you have enough experience in Java.
hey I have experience of 1 year in android dev kindly share what u have done in past
hey I have experience of 1 year in android dev kindly share what u have done in past
@@hamzamaqsood5725 Hey let's chat. Facebook, Twitter, WhatsApp, anyone... Let me know your handles bro 🙂
abeer. choudhary Facebook
@@hamzamaqsood5725 You're the person with 'Narsee Monjee College of Commerce and Economics' in his profile? Cause I can see so many 'Abeer Chaudhary' here
Very neat explanations. Also I like it the brevity of videos not making them too long.
Kotlin will be the main language and most company start making on kotlin :)
You just won yourself a new subscriber.
I write apps in iOS Swift and they’re fast and it’s great. Now, I’m learning Kotlin so I can migrate my iOS apps to Android. We’ll see how this goes.
Learn flutter for both
Exactly. Why not learn Flutter
bro don't do that... android is very difficult to handle
@@evil_onyxx_jr. Kotlin Multiplatform is in preview, you can write common code in one module (like flutter) but also platform specific code in other module, so you can also build things like widgets which is not possible in flutter. And the plus point can also produce app as small as 1mb.
You're wasting your time man if you're just going to learn kotlin for the sake of making android versions of your apps then why don't you use flutter it saves you a lot of time
Thought you were just a memer. You actually know what you're talking about. Very interesting, I subbed.
If I'm just starting to learn Android Development, do I have to learn Java and then Kotlin or immediately learn Kotlin?
Just learn Kotlin
I'd say, start learning general Java fundamentals (but don't go too far), then continue with Kotlin and after that you can start learning Android with Kotlin. Some companies still have older codebases, so it's recommended to know some Java too. Plus, it will make learning Kotlin easier. However, you can skip it if you know another language well. It depends on you. Good luck and don't rush!
@@OvidiuH252 what if I know c++ and starting to learn android development. So should I learn java and then kotlin or immediately learn kotlin
@@sfhbgyfbyrahulranjan If you know any OOP then don’t waste your time learning java. Just go with Kotlin and if you find a job pick it up the week before you start.
@@sfhbgyfbyrahulranjan fucking Java after c++, it's feeling like shit, like a:
(C++)
cout
Thanks for your opinion man, really appreciate your unbiased thoughts, considering you've done some app dev in Java. 👍😃
Java14 has record type which is similar to kotlin's data class.
As far as i know Android is basically frozen on Java 6 so im doubtful, that Java14 features made it to the platform even now. Correct me if im wrong though, this is just hearsay. :)
@@Chris-nk8oz It supports a subset of Java 8.
@@TheRealFFS Makes sense, because of lambdas and streams^^
Stop talking java! We all know java is really sucks making app for gaming experience... We need an OS which can execute files (.ISO-Alike) under system-on-core!
@@Chris-nk8oz Lol. Really you cannot use newer Java than 6 on Android? Is it because of some legal feud? Are there any chances it will be solved?
This was the first video I clicked on, when researching the subject, and answered so many of my questions. This was well put together, Thank you. :)
This was a really useful video. Many videos start in the Stone Age and then fall asleep in the Middle Ages. There is a lot of compact and useful information here, no blah blah. Many questions that I had previously asked myself were answered. Thank you.
Thank you so much man. I am new to all of this and i was worried about which one of these i should learn. I was already started on Kotlin and this has swept away all my worries.
idk why i laughed so hard at the " C (with classes)... that was really lame" part lollll
Well, as a cs student whose only proficient-level programming language is C, let me say that this is a great video!
As I learn more about programming in general, I begin wanting to jump to more ambitious projects, and among these there is app development.
I've been wanting to learn Kotlin for some time, since I heard it was kinda based on Java but with neat features of modern day programming languages. I feel like I'm better informed now.
I also appreciate that you evaluate this objectively, with pros and cons of the two languages and not favouring any over the other, and yet give your opinion so that we have a reference in mind. It's something I wasn't expecting to find in this kinds of videos.
Given I'm a bit familiar with Java, I'll give it a shot one of these days. I can already feel I'm gonna have fun. Thanks!
3:57 I'll miss you null pointer exception.
1:31 correction it was not originally forked by google.
All of my apps are converted over to Kotlin, and all new apps that I write are Kotlin from the start. It took a little while to learn the syntax differences between Java and Kotlin, but the differences weren't large enough to make it a difficult transition. Yes, I had to look up things like how to write a switch statement, and even simple things like how to declare a constructor, but the information is readily available if you know what to look for. I think it's much easier to read and write than Java once you're used to it.
I agree with your statement that Google is likely to eventually drop support for Java, especially if the lawsuit doesn't end in their favor.
Thanks for the insight Randy.
I just wanted to comment on the part where you said that Google may stop supporting Java, and I highly disagree. Most Android apps and parts of the OS itself since its inception are still written in Java and no one is seriously going to re-write all that code in Kotlin. That being said, Kotlin is interoperable with Java and you can write Java code in Kotlin, so you can write new apps in Kotlin, but as far as stop supporting Java, that won't happen in the near future.
The same thing can be said with Objective-C. Parts of iOS and tons of apps since it's inception are still written in Objective-C and no one in Apple is going to re-write millions of lines of code in Swift just because it's a more modern language. Even many of the libraries and frameworks that iOS developers use is still written in Objective-C.
So Kotlin is like, "What if we took Java and added all the really good and cool C# features?"
SOMEONE finallly mentions it, Kotlin was not first to make better java, microbad did it first
While Kotlin is a genuinely better Java, C# was a step back on many fronts. C# reintroduced quite a few concepts from C++ which Java did not include on purpose to enable robust development of complex systems.
@@falklumo What features are you talking about, almost all of them are just options to give users choice. C# has structs which are treated as primitive compile time types. also java robust? you gotta be kidding me. C# took the best aspects of C and Java and made them into one awesome, albeit not super cross platform, thing
@@rohansampat1995 👍
I've studied Kotlin and it's a really awesome language just like you described on video above it's nice features that allow us to create new methods without needing to create a whole class. Without doubt Kotlin's go-to language!
was so helpful. tnx alot!
super helpful, i was on the fence but now im decided. super thanks.
I'm in that transition right now, currently converting one of my apps to Kotlin !!
Definitely very helpful, thank you so much.
Great video, it is easy for the novice to follow along.
Thank you sir 👍🏼
I personally would recommend to learn kotlin, even if you're good at java. Because kotlin is in my opinion so much better suited for android development than java. Coroutines alone would make me switch to kotlin.
Thanks Sam, great analysis!
Your explanation are very clear! Brief but brings out all the key points. Thanks!
It was a great video, especially the way you built the whole context before going on main topic #respect from India
No semicolon at the end of the statement? // whyyyy? =)
When I change the datatype of a function, I need to change the way the output is handled anyway so I don't see the point in not having to declare the datatype except not knowing what datatype something is and having bugs like in Javascript where 11+1 is 12 most of the time except when it's "111". Just my opinion on that matter
That was just a bad example. Consider
HashMap myVar = new HashMap();
vs.
val myVar = hashMapOf()
It is a bit less redundant and a bit more concise. You can still declare the type if you want/need to, eg.
val myByte: Byte = 0
Remember, Kotlin it is still a statically typed language as opposed to JavaScript which is dynamically typed.
Java does have type inference, as of Java 10.
developer.oracle.com/java/jdk-10-local-variable-type-inference.html
Can’t believe I didn’t know that! Thanks for pointing that out.
Can we use Java 10 now in Android development? I think they are still using Java 8 for Android development.
Kool video, gr8t job
never seen you before and one video did it, I'm a new sub and I'll be looking forward to seeing more of your videos
5:18 java added data classes recently actually there called records
You just opened my brain and put new insights into it. Thanks a lot!
I wouldn't go with kotlin because it does not have enough tutorials/documenation/guides/forums/topics and etc. Those things are important when you are beginning.
Its docs are way easier to read (interactive UI as compared to java ones). Did you ever read that?
Kotlin docs are way better than java docs
great analysis !
how do null values "cause huge frustration for developers"? When I see a NullPointerException, I'm relieved; they're the easiest exception to deal with. Without them, I will have to 1) realize what's happening is not what's intended (which could take anywhere between seconds and months) 2) figure out why it's not doing what's intended 3) finally fix the boneheaded mistake. Debugging went from running once to potentially not even realizing there's a problem until well after launch.
Null is one of the most powerful tools in a programmers pocket.
Believe in the null.
Trust in the null.
That's really a great content bro.
I agree with everything but unless java is unsupported for android development and kotlin becomes the only language to write android apps, why should someone switch from java to kotlin? Not only that, java can be used more than developing android apps so if someone already knows and likes java what is the benefit of switching to kotlin?
Google announced last year in I/O, the documentation will be Kotlin only in a few years
Thanx a lot and i just decided that i'll start learning kotlin
I remember that similar situation with Coldfusion (buyed for Adobe). ColdFusion were the future, but died, and Java, is live..... Why program in something that run in Java if I can program directly in java?
Currently learning Kotlin. I must say it’s forgiving and has a lot of safeguards.
But since Java 9, type inference is there. Also, Java 15 and above has record which is more data classes than kotlin data-class or even lombok getters and setters (purely immutable)
@5:24 In Java, you never have to define constructors, getters and setters (uggh, please don't), hashcode(), toString(), or equals() if you don't need to. I've never once defined hashcode(). toString() maybe a dozen times, equals() even fewer....are you sure you've ever programmed in Java?
Yes he's sure and he's correct. Have you ever done anything outside of schoolwork in Java?
Just in the right time, Thank you so much
That null safe feature is a huge plus
Great video! Loved the content
Well put. Thank you.
One thing to note. Java's standard library is fully compatible with Kotlin so there is no reason not to learn if both if you know one. It's not the same as learning a whole new language, the only thing that's changing is the syntax and that's about it.
Of course Kotlin has it's own libraries too but it's not the same as learning a js after Java or some other language that is completely detached from the ecosystem, Kotlin is an extension.
As a professional mobile developer who has been developing iOS apps and been using Swift for like 6 years and have experience with Obj-C. Swift is much nicer. And I been doing some Android which I started with Java and Android as a side until about a year or so I been using Kotlin. I been taking Android seriously for over a year now and been using Kotlin. The way I see it is there will be plenty of legacy code out there so having familiarity with Obj-C and Java is a huge plus for that, but writing any new functionality or building any new apps I would use Swift for iOS and Kotlin for Android. I tend to avoid things like React Native as there is a whole slew of problems with it.
I have a question for u since you use swift and kotlin. When your building the same app in kotlin and swift what backend do i use for both or u have to have different backend for each. Thank you
@@mateoharmiss5830 If you are looking from a mobile perspective and if you mean backend as a web server, you can essentially use almost anything as your backend if you have proper web api calls like REST API. So, you can use a stand alone server, firebase, AWS, or anything really with any language really for that server. From the way you would see it as a mobile app is a web call and you get back a response in JSON or XML that you parse.
@@eberronbruce1328 I am new to the mobile scene, and just trying to understand it, Google dont offer much information unless am asking it the wrong way . From my understanding android use kotlin and ios swift for front end , that's simple but even mobile app need to fetch data or speak to the backend server side and that's what I don't understand, I know the can use pretty much and language in the server side but isn't there one better for mobile then others or is each os different . For example I was told for kotlin it be good to use korlin coroutines for backend but then what about swift app will it connect to kotlin coroutines or no . U see these questions seem complicated to find answers or again mite be me :)
Thank you for the reply I really appreciated it.
@@mateoharmiss5830 To simplify this to help new developers understand, it's best to look at things as boxes. So look at the mobile device as a box and the servers/other devices as boxes. Then look at strings that go between the the boxes much like a child's phone that uses cans and strings. The strings are the lines of communication like HTTP/web calls.
So Kotlin/Swift used on the mobile devices are just used for those devices, hence just the mobile box. You use that language to send a signal to the server box which responds through the same string. Then the mobile box handles the response.
I hope this helps.
@@eberronbruce1328 should i learn kotlin or Swift? Which OS is more in demand
Definitely learned a lot watching this. I’m a recent CS grad currently job searching for both SE and Android dev jobs. Just made the decision to focus on Android dev instead. And enhance my development and architecture understanding/ experience. If anyone knows any startups (even for SE rolls 👀) looking to hire, please leave a comment
Simple and yet Informative. Thanks !
It seems if u wana limit yourself only to Android studio as a developer, then ul just learn Kotlin. On the other hand, u can do sooo much more with Java, including Android Studio, at least for now. I'd stick to Java... Until there's a real push against it. Then u just make the switch.
Great Content Bro✌️.
I am an Android Developer in Java, bro !✌But Kotlin is growing way fast as you dont have to write bunch of code in Kotlin like you do in Java and it will replace Java for Android Development within this or the next decade but it is gonna be way easier for us to swtich to Kotlin as it is a mix of Java and JavaScript language ! Let's stay loyal for Java😁💪✌
@LeBlanco MOB Yeah, you are 100% right. Kotlin is limited and Java has wider community than Kt
@LeBlanco MOB I just did a quick google, and as I suspected, Kotlin is very good at interop, so you can write Spring app with Kotlin. Also, you can compile Kotlin to iOS, so that's nice :)
@LeBlanco MOB it is, you can share code between Android and iOS. Just like in Xamarin, React Native etc. It has some disadvantages, but it's not for everyone.
@LeBlanco MOB you are aware that Kotlin Native is pretty much native, right? There is some overhead, but other than that you get full iOS API, just like in Xamarin.
As for Java and Android, Google created Android SDK, not Java or Sun or whoever owned Java then. They sued Google for using Java, so they pretty much bought Kotlin from Jetbrains, which just so happens to work on JVM.
Also, ther are plenty of apps writen in ReactNative, Xamarin, Flutter etc, Kotlin is just one more option here.
thanks , you save my time ❤️
Thank you so much!
What about Python libraries like Kivy or BeeWare?
Or cross platform options like React?
Perfectly explained and exactly what I needed. Thank you.
Thank you very much for your course.
Thanks for explaining with proper reasons.
thank you so much for the video
Kotlin is a fork of Java. Both interoperate as both compile to class files and Kotlin uses the Java runtime. Note that Java continued to evolve after the fork and some of the newer features, like the stream API, are actually implemented in a more mature way than Kotlin, esp. if you run on many cores. While Kotlin has a slight edge today, that could reverse with some of the future enhancements planned for Java, esp. under the hood. Kotlin and Java in tandem are a great thing as they keep pushing themselves ahead and stay relevant against languages like Python, Julia, Go, Rust. Reminds me of Fortran which keeps coming back ;)
People arguing about java verbosity but when making comparaison in Time of writing code java is more intuitive and faster even in runtime and kotlin configuration takes 2times than java does ,java syntax IS more clear and easy to understand than kotlin ,
99% of the companies using Java not using it's latest version :D Most of these still uses Java 11 or earlier. Even tho Java getting some nice tools, it'll be at least 10-15 years until people will use them.
I personally don't mind writing extra code in Java, Kotlin's syntax is just weird and a bit harder to read. Maybe I am just used to using Java but that's what I think
yeah, me too. Kotlin is implicit and hard to read
Which one would be better for Smart Contracts?
android studio seems to want to use kotlin, anyone know how to choose java? with android studio or something else? just thought I'd play around with both, because I have an old android app in java, but the old version of android studio/ eclipse won't boot. I'm wondering if I should/could rescue that old app and revamp it, to get back into the groove, havent coded in 4 years
Is your thesis published in the web?
I was expecting comparisons on more dimensions. To take a decision, a programmer would have to know :-
1. Which language has better ease of programming and by how much (lines of code, language features, development time related metrics)
2. How easy is it to shift to the new language.
3. Difference in size of apk.
That said, Kotlin is definitely way more powerful as a language compared to Java, particularly with respect to multi threaded programming. Most new articles about programming practices in Android are written in Kotlin. For new developers, it would definitely be the recommended language.
The best practice is learn Java to get an entry level job, and learn Kotlin for Android development only.
Java will provide more non-Android job opportunities. Since the syntax is so similar, you can learn either one and quickly pick up the other.
I literally just picked up using Android studio after making apps with RN. I chose java but i having a really hard time finding recent resources for java so ig im going with kotlin now 😅
I don't think the objective c case really apply to java, java is a language backed by huge company Oracle and it is used everywhere, also at the kolin uses JVM, so it's just downing some syntax and complie improvements which java can catch up with it it Oracle what's to do so.
okay...alright... fair enough... BUT now, I want your take in this ---> "Kotlin vs Flutter"
should i learn kotlin or flutter(as a beginner in the mobile dev industry)? which has more potential?
7:34 : "I would choose Kotlin over Java"
My ears: I understood oovoo javer
My vine influenced brain: but ive never went to oovoo javer...
java vs kotlin is like c++ vs golang ... the ones on the right hand side are just nicer to work with.
Might be a bit of a tangent from the focus of the video but should I use Kotlin for Spring Boot?
U can use var x = 10 in Java too
For maintaining existing apps company requires employees to work on java. But to new design applications, every company moving toward Koltin.
Hi . I like the floor lamps in the back. What is it called?
I think Java is forever better type language for computer science and IT world.
As for some business issue Oracle and Google can't work together.
In the meantime Jet Brains take this advantage, they are come for B2B solution and take a big scope with Google.
That's why Google try as there level best to promote Kotlin.
My personal overview,
When I write a feature by Java and Kotlin in two deference project, I see kotline project take more then time between Java projects compile time.
By the way, Android is Google's product, Kotlin language supported by Google
So, in future if we want develope Android app we must write code by Kotlin.
Thank you, this video was a game changer for my.
I like your cap, where do I get one?
Prolly pick up Kotlin one day but I'm taking Java in school so I figure I might as well stick with that for now.
Try picking it up in your spare time outside of school.
Learn Java! Then Kotlin. The majority of mobile dev jobs where I live still advertise Java and Obj-C, ugh!
Agreed
Good
honestly what were oracle trying to do
The funniest part is that a simple AP connection from an android app is a Daunting task.
What do you think about flutter ?