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 ?
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
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.
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 :)
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
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 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.
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'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.
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 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.
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!
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.
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.
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
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.
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.
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!
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.
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.
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
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
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 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.
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 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?
Kotlin absolutely needs Jetbrain IDEA with a build manager like Gradle. If you use the "kotlinc" compiler alone, it compiles unbearably slow compared to Java compiler.
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.
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.
Java is used for building large scale Enterprise systems and other systems as well being able to use use it to build android apps is a pluss. I will still prefer to use java.
Kotlin could be great and awesome programing language, however. I like to learn and use tools that are not only used for one purpose. For example, Java is already used every where. From web applications to refrigerators, it is highly demanded as well. Why learn a new programing language that I would only use for android development? Instead I would learn a programing language that allows me to deploy the same application to Android and iPhone. And only, if I need something very native support specific then android studio with Java. But for light applications I would stay away from swift of kotlin, and I would choose something like flutter or React Native.
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)
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'm developing using Java for several years, I just changed to Kotlin and I see it's way better, I'll slow down a bit until I learn it completely, but once I master it, I'll probably code twice as fast as I used to code in Java.
@Mr.Samosa for new developers, I'd say learn Kotlin, it's the the preferred language for Android and prospective employers will be looking for Kotlin developers as opposed to Java (unless you are going to support legacy apps)
Uber's api uses Kotlin a lot. I don't know, they have a lot of code converters that go between the two languages. Some code samples are coded in Java, some in Kotlin or both. It just reminds me of SQL vs No-SQL....No-SQL sounded less scary. I guess Java was scary so they created Kotlin.
Your timeline needs a bit of a correction. Android was already using java for quite a while(2003) before Oracle acquired Sun (2009). Not buying Sun was one of the most boneheaded and obvious screwups by Google. Your other info is great though, thanks! I did prefer eclipse, guess I was crazy. I don't like that android studio has features disabled unless you pay for the full intellij, makes it annoying that you can no longer use eclipse. I used vscode and command line for the last java app I did, was just so annoyed with the bloated android studio. To answer your question, "why wouldn't you use kotlin", because there are a zillion other java jobs so if just android dev isn't paying the bills at some point you have that to fall back on. Kotlin's adoption outside of Android seems pretty minimal even in 2020. Personally, I think Google could have done us coders a solid and just chosen Swift as the language for Android.
I am currently learning HTML5, CSS3, and JavaScript for Mobile App Development. Developers: Would you all recommend following HTML5, CSS3 and JavaScript up with learning Java; (OR), doubling down on a 2nd course expanding on HTML5, CSS3 and JavaScript then moving on to Java? Your your input in valued!
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 wrote an application in kotlin and man it is way faster and easier. With some advanced tasks it is a little bit harder but once you've mastered it it is way better than java from a "conding" perspective
I'm very interested in app development but I feel like, when it comes to choosing a programming language as an African American, do I really wanna pick Kotlin?
Kotlin is hamstrung by JetBrains IDE. I can't have to spend days getting an IDE to work before I can use a programming language. If I can't use vim and build off the command line, it's not a viable programming language, it's a macro that's no better than VBA. I get it that Google needs an out, but JetBrains IDEs are a non-starter.
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 😊
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
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.
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
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 :)
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?
World : Kotlin Vs Java
Meanwhile Python : Launch the PyoDroid module
We need this
Exactly 🙆🏻♂️👌🏼
Those 60 people who disliked are from Oracle, they just lost the case and probably Google Android support for the future.
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).
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
Your break down of things is always interesting and so helpful! Thanks!
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.
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.
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
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
Thanks for your opinion man, really appreciate your unbiased thoughts, considering you've done some app dev in Java. 👍😃
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.
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.
Thought you were just a memer. You actually know what you're talking about. Very interesting, I subbed.
Very neat explanations. Also I like it the brevity of videos not making them too long.
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
Kotlin will be the main language and most company start making on kotlin :)
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 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
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!
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.
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.
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
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.
idk why i laughed so hard at the " C (with classes)... that was really lame" part lollll
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.
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?
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.
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
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 👍
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
You just won yourself a new subscriber.
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. :)
Great video, it is easy for the novice to follow along.
Thank you sir 👍🏼
I'm in that transition right now, currently converting one of my apps to Kotlin !!
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
5:11 This is what records where created for in Java SE 14 which was released on March 17, 2020. So just 4 days after this video was posted.
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.
3:57 I'll miss you null pointer exception.
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.
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
okay...alright... fair enough... BUT now, I want your take in this ---> "Kotlin vs Flutter"
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 😅
It was a great video, especially the way you built the whole context before going on main topic #respect from India
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?
Thanx a lot and i just decided that i'll start learning kotlin
Your explanation are very clear! Brief but brings out all the key points. Thanks!
Kotlin absolutely needs Jetbrain IDEA with a build manager like Gradle. If you use the "kotlinc" compiler alone, it compiles unbearably slow compared to Java compiler.
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.
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.
Java is used for building large scale Enterprise systems and other systems as well being able to use use it to build android apps is a pluss. I will still prefer to use java.
super helpful, i was on the fence but now im decided. super thanks.
You just opened my brain and put new insights into it. Thanks a lot!
Kotlin could be great and awesome programing language, however. I like to learn and use tools that are not only used for one purpose. For example, Java is already used every where. From web applications to refrigerators, it is highly demanded as well. Why learn a new programing language that I would only use for android development? Instead I would learn a programing language that allows me to deploy the same application to Android and iPhone. And only, if I need something very native support specific then android studio with Java. But for light applications I would stay away from swift of kotlin, and I would choose something like flutter or React Native.
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)
Definitely very helpful, thank you so much.
Currently learning Kotlin. I must say it’s forgiving and has a lot of safeguards.
"The implementation of OOP in C++ is really dumb..."
As a developer who did C++, I can relate and agree
Why
Is
Vector
The
"List"??!?!
java vs kotlin is like c++ vs golang ... the ones on the right hand side are just nicer to work with.
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'm developing using Java for several years, I just changed to Kotlin and I see it's way better, I'll slow down a bit until I learn it completely, but once I master it, I'll probably code twice as fast as I used to code in Java.
hello sir, it's been two years, how is it going with kotlin, and I am a beginner so should i go with Java or kotlin, i am a little bit confused.
@@Mr.Samosa java
@Mr.Samosa for new developers, I'd say learn Kotlin, it's the the preferred language for Android and prospective employers will be looking for Kotlin developers as opposed to Java (unless you are going to support legacy apps)
was so helpful. tnx alot!
Thanks Sam, great analysis!
Uber's api uses Kotlin a lot. I don't know, they have a lot of code converters that go between the two languages. Some code samples are coded in Java, some in Kotlin or both. It just reminds me of SQL vs No-SQL....No-SQL sounded less scary. I guess Java was scary so they created Kotlin.
Learn Java! Then Kotlin. The majority of mobile dev jobs where I live still advertise Java and Obj-C, ugh!
Agreed
Good
1:31 correction it was not originally forked by google.
Your timeline needs a bit of a correction. Android was already using java for quite a while(2003) before Oracle acquired Sun (2009). Not buying Sun was one of the most boneheaded and obvious screwups by Google. Your other info is great though, thanks!
I did prefer eclipse, guess I was crazy. I don't like that android studio has features disabled unless you pay for the full intellij, makes it annoying that you can no longer use eclipse. I used vscode and command line for the last java app I did, was just so annoyed with the bloated android studio. To answer your question, "why wouldn't you use kotlin", because there are a zillion other java jobs so if just android dev isn't paying the bills at some point you have that to fall back on. Kotlin's adoption outside of Android seems pretty minimal even in 2020.
Personally, I think Google could have done us coders a solid and just chosen Swift as the language for Android.
Can you tell the opportunities/advantage I would have learning java other than app development??
Kool video, gr8t job
I am currently learning HTML5, CSS3, and JavaScript for Mobile App Development.
Developers: Would you all recommend following HTML5, CSS3 and JavaScript up with learning Java; (OR), doubling down on a 2nd course expanding on HTML5, CSS3 and JavaScript then moving on to Java?
Your your input in valued!
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.
Simple and yet Informative. Thanks !
Learn both
Java & Kotlin is Awesome for me....,
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.
Perfectly explained and exactly what I needed. Thank you.
java (if you are new like me) because there will always be an answer somewhere if u are stuck.
so kotlin doesnt have?
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.
That null safe feature is a huge plus
Objective-C was actually a bigger influence on Java than C++.
I wrote an application in kotlin and man it is way faster and easier. With some advanced tasks it is a little bit harder but once you've mastered it it is way better than java from a "conding" perspective
Kotlin trying to catch up with C# providing new similar syntax which I find it very good.
Well put. Thank you.
Just in the right time, Thank you so much
Thanks for explaining with proper reasons.
Java is the best language to develop Android App
Hey bro.... I really like your vedios.... Lots of love from INDIA ♥ ♥ ♥
Dear friends, I know 0 coding, should I start with Kotlin ? Java ? or Unity c# ?
This video is interesting and helpful for me. Thanks for uploading 😀😀😀😀
I'm very interested in app development but I feel like, when it comes to choosing a programming language as an African American, do I really wanna pick Kotlin?
Kotlin is hamstrung by JetBrains IDE. I can't have to spend days getting an IDE to work before I can use a programming language. If I can't use vim and build off the command line, it's not a viable programming language, it's a macro that's no better than VBA. I get it that Google needs an out, but JetBrains IDEs are a non-starter.
Please do a similar video of GO programming language.
Thank you, this video was a game changer for my.
5:18 java added data classes recently actually there called records