Java vs Kotlin for Android App Development

Поділитися
Вставка
  • Опубліковано 30 вер 2024

КОМЕНТАРІ • 567

  • @KeepOnCoding
    @KeepOnCoding  4 роки тому +131

    Which language would you choose if you were an Android app developer?

    • @JJGM91
      @JJGM91 4 роки тому +33

      Kotlin without a doubt

    • @kaifahsan8459
      @kaifahsan8459 4 роки тому +11

      Your analogy with Swift makes sense. Hence if I started app development I would choose Kotlin as well.

    • @HouseFromSmartCity
      @HouseFromSmartCity 4 роки тому +7

      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

    • @B1GL3G3ND
      @B1GL3G3ND 4 роки тому +53

      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 ?

    • @arvincasupanan
      @arvincasupanan 4 роки тому +43

      the name kotlin was so ugly, thats why I love Java 😊

  • @ItachiUchiha-nx2sw
    @ItachiUchiha-nx2sw 4 роки тому +505

    What if Google had a dispute with Jetbrains and again there is a new language, say, Klingon....

    • @mohantalachutla6834
      @mohantalachutla6834 4 роки тому +5

      😂😂😂

    • @muhamadimron9785
      @muhamadimron9785 4 роки тому +22

      Lol, the next new language is *fLULin* it will supports both of flutter n kotlin as well 🤗... Flulin is future 🕶️

    • @firemidge8705
      @firemidge8705 3 роки тому +1

      HAHAHAHA!

    • @ravinderbrar343
      @ravinderbrar343 3 роки тому +10

      I think the next language would be ( Kotva )
      Kotlin + java

    • @BillClinton228
      @BillClinton228 3 роки тому +56

      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?

  • @bassam_salim
    @bassam_salim 3 роки тому +79

    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

  • @babythedude
    @babythedude 4 роки тому +394

    Kotlin definitely will become the main language, but Android developer should have the ability to read Java code

    • @seriousskateboarding9938
      @seriousskateboarding9938 3 роки тому +32

      If that's the case, android gonna lose like 90% of its developers.

    • @MayTubeGames
      @MayTubeGames 3 роки тому +64

      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
      @ultimate8673 3 роки тому +4

      @@MayTubeGames isn't kotlin based of Java?

    • @MayTubeGames
      @MayTubeGames 3 роки тому +23

      @@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

    • @ultimate8673
      @ultimate8673 3 роки тому +15

      @@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

  • @AlbertoRodriguez-oe6jo
    @AlbertoRodriguez-oe6jo 3 роки тому +42

    Those 60 people who disliked are from Oracle, they just lost the case and probably Google Android support for the future.

  • @spec_wasted
    @spec_wasted 3 роки тому +62

    World : Kotlin Vs Java
    Meanwhile Python : Launch the PyoDroid module

  • @MrYuhsien
    @MrYuhsien 4 роки тому +174

    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
      @joseescalante6707 4 роки тому +5

      I'm in that transition now, how long did it take you before writing Kotlin code was as easy as writing Java?

    • @MrYuhsien
      @MrYuhsien 4 роки тому +23

      @@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.

    • @hyunpark8017
      @hyunpark8017 3 роки тому +2

      How much salary do you make in android development? @Jerry Che

    • @jhngolan
      @jhngolan 3 роки тому

      I still adapt for the transition with recent architecture

    • @memenchance1747
      @memenchance1747 3 роки тому +16

      @@hyunpark8017 if you're in for the money you aint really gonna learn anything at all.

  • @lodgin
    @lodgin 2 роки тому +34

    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.

    • @sebastianzdroana7834
      @sebastianzdroana7834 2 роки тому

      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

    • @orangeguy5374
      @orangeguy5374 2 роки тому +2

      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

    • @wanderingthewastes6159
      @wanderingthewastes6159 2 роки тому

      @@orangeguy5374 right? What’s the point of having the features if I can’t implement them in the use case discussed?

  • @fabiomoggi
    @fabiomoggi 3 роки тому +15

    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.

  • @zzz8055
    @zzz8055 3 роки тому +28

    If I'm just starting to learn Android Development, do I have to learn Java and then Kotlin or immediately learn Kotlin?

    • @pixchcn3773
      @pixchcn3773 3 роки тому +16

      Just learn Kotlin

    • @OvidiuH252
      @OvidiuH252 3 роки тому +18

      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
      @sfhbgyfbyrahulranjan 3 роки тому +1

      @@OvidiuH252 what if I know c++ and starting to learn android development. So should I learn java and then kotlin or immediately learn kotlin

    • @huey1153
      @huey1153 3 роки тому +1

      @@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.

    • @jokeycoffe9083
      @jokeycoffe9083 3 роки тому

      @@sfhbgyfbyrahulranjan fucking Java after c++, it's feeling like shit, like a:
      (C++)
      cout

  • @KIKITO94
    @KIKITO94 3 роки тому +12

    Kotlin will be the main language and most company start making on kotlin :)

  • @kaifahsan8459
    @kaifahsan8459 4 роки тому +75

    Keen to know more about your Thesis on Android security as I'm interested in security as well.

    • @Aweklin
      @Aweklin 4 роки тому +4

      Same here.
      Please let me know when you get something on that. I will appreciate your kind gesture.

  • @elafalzoubi6530
    @elafalzoubi6530 3 роки тому +27

    i love Java and it's the first programming language i started with . but now im learning kotlin

    • @vanesauribe2754
      @vanesauribe2754 3 роки тому +1

      How is that going? Do you like it?

    • @vladarskopin3314
      @vladarskopin3314 3 роки тому +1

      so what are your feelings about it?

    • @boredchicken5755
      @boredchicken5755 3 роки тому +1

      have you moved on? Are you happier now?

    • @nested9301
      @nested9301 3 роки тому

      look a t this dudes

    • @akin242002
      @akin242002 3 роки тому

      Good! Nothing is worse than a programmer not willing to evolve (see Cobol programmers in finance).

  • @fourlokouva
    @fourlokouva 4 роки тому +85

    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 :)

  • @rajanbirsingh202
    @rajanbirsingh202 4 роки тому +15

    Been jumping between these for over a month. Good Work, thanks for clarifying my doubts. I think, will be going with kotlin.

  • @--sql
    @--sql 3 роки тому +58

    So Kotlin is like, "What if we took Java and added all the really good and cool C# features?"

    • @rohansampat1995
      @rohansampat1995 3 роки тому +2

      SOMEONE finallly mentions it, Kotlin was not first to make better java, microbad did it first

    • @falklumo
      @falklumo 3 роки тому +1

      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.

    • @rohansampat1995
      @rohansampat1995 3 роки тому +3

      @@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

    • @iankariuki5557
      @iankariuki5557 3 роки тому

      @@rohansampat1995 👍

  • @omermir332
    @omermir332 4 роки тому +17

    Your break down of things is always interesting and so helpful! Thanks!

  • @anonthenon196
    @anonthenon196 3 роки тому +5

    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.

  • @bbrauner
    @bbrauner 4 роки тому +8

    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.

  • @michaelm001
    @michaelm001 2 роки тому +1

    var is a terrible idea, no matter what the language is. Hiding the type adds no value and makes the code less clear. You end up relying on variable names which are often horrible. When changing the type of something you NEED to deal with it, not just sweep it under the carpet with var.

  • @Tsunkuotaku
    @Tsunkuotaku 3 роки тому +3

    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.

  • @shankarraj3433
    @shankarraj3433 3 роки тому +2

    Java is the best language to develop Android App

  • @michaeladetona5880
    @michaeladetona5880 9 місяців тому +1

    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.

  • @krishnachandradas8386
    @krishnachandradas8386 2 роки тому +1

    Dear friends, I know 0 coding, should I start with Kotlin ? Java ? or Unity c# ?

  • @damercy
    @damercy 3 роки тому +7

    Thanks for your opinion man, really appreciate your unbiased thoughts, considering you've done some app dev in Java. 👍😃

  • @ghabrielmielli5858
    @ghabrielmielli5858 3 роки тому +5

    idk why i laughed so hard at the " C (with classes)... that was really lame" part lollll

  • @christophorosprodromou818
    @christophorosprodromou818 4 роки тому +13

    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?

    • @waqas3491
      @waqas3491 4 роки тому +2

      Google announced last year in I/O, the documentation will be Kotlin only in a few years

  • @HandsOnKnowledge
    @HandsOnKnowledge 3 роки тому +7

    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

    • @nguyenconghuy3847
      @nguyenconghuy3847 2 роки тому +2

      yeah, me too. Kotlin is implicit and hard to read

  • @robj7481
    @robj7481 4 роки тому +25

    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.

    • @sarveshagrawal4588
      @sarveshagrawal4588 4 роки тому +11

      Learn flutter for both

    • @evil_onyxx_jr.
      @evil_onyxx_jr. 4 роки тому +2

      Exactly. Why not learn Flutter

    • @hamzamaqsood5725
      @hamzamaqsood5725 4 роки тому +1

      bro don't do that... android is very difficult to handle

    • @animeshsahu2803
      @animeshsahu2803 3 роки тому +2

      @@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.

    • @choalon2381
      @choalon2381 3 роки тому +1

      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

  • @mazexmaze8011
    @mazexmaze8011 4 роки тому +16

    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.

    • @animeshsahu2803
      @animeshsahu2803 3 роки тому +3

      Its docs are way easier to read (interactive UI as compared to java ones). Did you ever read that?

    • @naveenbattula
      @naveenbattula 3 роки тому +3

      Kotlin docs are way better than java docs

  • @someguy007
    @someguy007 4 роки тому +26

    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✌️.

    • @devjeff3192
      @devjeff3192 4 роки тому +4

      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😁💪✌

    • @devjeff3192
      @devjeff3192 4 роки тому +1

      @LeBlanco MOB Yeah, you are 100% right. Kotlin is limited and Java has wider community than Kt

    • @Qrzychu92
      @Qrzychu92 4 роки тому +2

      @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 :)

    • @Qrzychu92
      @Qrzychu92 4 роки тому

      @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.

    • @Qrzychu92
      @Qrzychu92 4 роки тому

      @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.

  • @memorylanezz
    @memorylanezz 3 роки тому +5

    Thank you for the video. looking forward to learn Kotlin, a transition from C/C++ to Kotlin. Hopefully it will be smooth.

  • @sleepy026
    @sleepy026 4 роки тому +66

    Java14 has record type which is similar to kotlin's data class.

    • @Chris-nk8oz
      @Chris-nk8oz 3 роки тому +3

      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. :)

    • @TheRealFFS
      @TheRealFFS 3 роки тому +2

      @@Chris-nk8oz It supports a subset of Java 8.

    • @Chris-nk8oz
      @Chris-nk8oz 3 роки тому +1

      @@TheRealFFS Makes sense, because of lambdas and streams^^

    • @Hcheeza
      @Hcheeza 3 роки тому

      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!

    • @plrc4593
      @plrc4593 2 роки тому

      @@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?

  • @charlesochanda5111
    @charlesochanda5111 4 роки тому +10

    Old is gold I still prefer java

  • @Xiaolong-sh5tl
    @Xiaolong-sh5tl 4 роки тому +3

    In my opinion, java will die out within the next five to seven years. In the end we will be forced to learn Kotlin and Swift, right now I'm still using Java and do prefer it over Kotlin.

    • @Ubben1999
      @Ubben1999 4 роки тому +2

      Java will live far longer than that, I guarantee it. There's simply too many millions (probably billions) of lines of code of Java out there. Consider that COBOL still exists in the wild, and that was never anywhere near as big as Java.
      While I really hope that Kotlin becomes more popular for greenfield projects, as it's a far more refined labguage, there's no doubt that Java will be around for decades to come.

    • @mandisaw
      @mandisaw 3 роки тому

      Google is hedging their bets, but Java isn't going anywhere, especially not in the enterprise world. Companies will switch to mobile-web and ditch native-mobile development altogether before hitching their wagon to an untested, single-vendor language.

  • @evil_onyxx_jr.
    @evil_onyxx_jr. 4 роки тому +8

    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
      @hamzamaqsood5725 4 роки тому +1

      hey I have experience of 1 year in android dev kindly share what u have done in past

    • @hamzamaqsood5725
      @hamzamaqsood5725 4 роки тому

      hey I have experience of 1 year in android dev kindly share what u have done in past

    • @evil_onyxx_jr.
      @evil_onyxx_jr. 4 роки тому

      @@hamzamaqsood5725 Hey let's chat. Facebook, Twitter, WhatsApp, anyone... Let me know your handles bro 🙂

    • @hamzamaqsood5725
      @hamzamaqsood5725 4 роки тому

      abeer. choudhary Facebook

    • @evil_onyxx_jr.
      @evil_onyxx_jr. 4 роки тому

      @@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

  • @angelotheman
    @angelotheman 4 роки тому +6

    You just won yourself a new subscriber.

  • @devidbingo
    @devidbingo 4 роки тому +4

    Java does have type inference, as of Java 10.
    developer.oracle.com/java/jdk-10-local-variable-type-inference.html

    • @KeepOnCoding
      @KeepOnCoding  4 роки тому +2

      Can’t believe I didn’t know that! Thanks for pointing that out.

    • @stealthseeker18
      @stealthseeker18 4 роки тому +2

      Can we use Java 10 now in Android development? I think they are still using Java 8 for Android development.

  • @rgenericson5361
    @rgenericson5361 4 роки тому +4

    Learn Java! Then Kotlin. The majority of mobile dev jobs where I live still advertise Java and Obj-C, ugh!

  • @md.emranhossain8156
    @md.emranhossain8156 4 роки тому +3

    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.

  • @mitchellbarnow1709
    @mitchellbarnow1709 4 роки тому +7

    Great video, it is easy for the novice to follow along.

  • @freezerain
    @freezerain 4 роки тому +3

    - You shouldnt make sugestions on kotlin/java future looking on swift history, who even using Objective-C nowadays, and java is very popular and there are so much old and young programmers that feels comfortable with java.
    - While I am always standing for any progress, personaly I cannot justify amount of time should I spend to code as fast in kotlin as right now I am coding in java. Kotlin is important for android but it is just a sugar and a way for google to be more independent from oracle.
    - Besides when you coding on java for android you just few frameworks away from JavaEE server backend fun stuff, while kotlin is only for android.
    - And how long android will stick around, I am
    passionately want it to die, android is a mess builded on legacy mess.
    - I will always recomend to code on java and go kotlin only if you already experienced programmer who will have less risk more efficiency than for a novice who NEED to learn as much universal stuff as possible and have more backup oportunities. Kotlin is pretty niche

    • @Ubben1999
      @Ubben1999 4 роки тому

      Kotlin is not only for Android, it runs anywhere the JVM runs, can also compile to JavaScript (i.e. you can do web dev), and work on native is ongoing.
      Being fully compatible with Java, any library or framework that exists for Java can be used wiyh Kotlin. It's a backwards compatible upgrade to a more refined and immensely less verbose language. You can even do Kotlin and Java in the same project, which makes converting legacy code to Kotlin an incremental affair.

    • @freezerain
      @freezerain 4 роки тому +1

      @@Ubben1999 Sure, because it is a java sugar, but realisticly whats a point of using kotlin outside android? I am not expert and this is a speculation zone, but I can not imagine enterprise server builded on kotlin. An additional unnecessary level. And sure cooworkers will be happy to know that you will use kotlin inbetween java code.
      If you want to unvalidate my statement that kotlin is only for android, please link me any released enterprise projects on kotlin, I will be happy to investigate further, but I doubt it is a frequent enough practice.

    • @Ubben1999
      @Ubben1999 4 роки тому +1

      @@freezerain I wouldn't call myself an expert on the topic either. I do have an education in language design and implementation, but I've not worked with it professionally. So, I'm no expert, but I somewhat know what I'm talking about, and these are my two cents.
      First, Kotlin is by no means syntactical sugar for Java, it's a standalone programming language that runs on the JVM. It's not built on top of Java in any shape or form, it's simply interoperable. There is no "additional level". Note that while the JVM has been influenced by Java (and vice versa), they are not one and the same. The JVM is a runtime environment that executes a specific form of bytecode instructions, and you can implement languages that run on the JVM, yet are completely incompatible with Java. I know this well because it's something I've done myself, and I assure you that language and the compiler I built for it had little in common with Java, and 0 interoperability. It was a garbage language, but that's besides the point.
      What does Kotlin bring then? For starters, a much better type system. Java's type system has some serious legacy flaws, such as covariant arrays and raw generics, that Kotlin has avoided. Also, the value of null-safety simply can't be overstated; there's a reason why Tony Hoare referred to the null reference as his "billion dollar mistake". Kotlin is also much less verbose than Java, and introduces functional programming concepts in a way that's simply not possible in Java (again because of legacy). In terms of language design, Kotlin is simply a significant step up. So the point of using Kotlin instead of Java (even outside of Android) is basically the same as using Java instead of COBOL: it's a better designed language.
      As for using Kotlin on the backend, here are a few examples:
      www.meshcloud.io/2018/03/15/lets-talk-about-kotlin/
      talkingkotlin.com/kotlin-at-allegro/
      talkingkotlin.com/kotlin-at-shazam/
      To be clear, I still use Java myself most of the time because I'm more comfortable with it than I am with Kotlin. But I'm more and more adopting Kotlin and seeing the massive benefits it brings in terms of code readability and maintainability. I doubt I can convince you of that, though, and I wouldn't take my word for it if I were you (that would be naive). It's something you'll have to discover for yourself :)

    • @freezerain
      @freezerain 4 роки тому +2

      @@Ubben1999 Nice answer. My background is juniour-middle c++, javaEE, UnrealE, android. I was also teaching few students from zero to first android app(not my best experience).
      You missed my point, it is not about conviencing me of kotlin feautres, it is about kotlin position on the market that put in less recomendable position for newbies than java, and I will stay on this point until kotlin will conquare bigger part of any industry except android. This is not about you or my abilities, it is about make as smooth learning curve for new people as possible, like with little puppies we NEED to be carefull about what we pushing to them. They need to understand that choosing kotlin over java can limit they scope of jobs as for now. Even syntaxis I found more script-like than C-like. You can easily read majority of c++ code as java programmer, not so sure about kotlin. So in 2020 my point: kotlin is solid choice for already experienced java programmers but not so much as standalone 1-for-all main purpose language for new people.
      As for me I never tried null-safe language, I found this idea simmilar to auto/var types, nice to have but I dont care. Covariant arrays example is just a way to shot your self in the leg but not such a big deal from my experience, I did not even know how this behavior is called before, how many times you encountered bugs or restriction because of this, 2-3 times?
      I tried multiple times but never found "significant step up" features over java. But you hooked me up on functional programming for sure. Streams in java 8 changed my style significantly, I will defenetly give another shot for kotlin from perspective of functional programming. But still will not recomend it over java.
      *If android will die today, tommorow kotlin will vanish.*
      This is becoming too long and dirty, lets not continue in the comment section. Thank you for your replies and thoughts

    • @Ubben1999
      @Ubben1999 4 роки тому +1

      @@freezerain I was responding in regards to "why use Kotlin for enterprise server". For beginners, you have a solid argument to recommend Java. I agree with your reasoning, and I would probably do the same.
      Covariant arrays hasn't really caused me issues, it's just a wart in the type system that I as a language enthusiast like to point out. Raw generics, on the other hand, does cause issues, especially for beginners that don't understand them.
      Null-safe means that you never get a NullPointerException. It's very nice, try it :)

  • @user-dm5qi4nb6l
    @user-dm5qi4nb6l 3 роки тому +1

    okay...alright... fair enough... BUT now, I want your take in this ---> "Kotlin vs Flutter"

  • @jpjph5006
    @jpjph5006 2 роки тому +1

    XAMARIN and C#: AM I A JOKE TO YOU lol

  • @madlad_noah8956
    @madlad_noah8956 3 роки тому +2

    kotlin will be better for android development but java will still remain popular for its other uses

  • @azevedoedison
    @azevedoedison 3 роки тому +1

    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?

  • @themarvelgirl1382
    @themarvelgirl1382 3 роки тому +1

    I think Kotlin is better than Java

  • @sourandbitter3062
    @sourandbitter3062 3 роки тому +2

    Thought you were just a memer. You actually know what you're talking about. Very interesting, I subbed.

  • @tayyabachowdary1007
    @tayyabachowdary1007 4 роки тому +4

    Very neat explanations. Also I like it the brevity of videos not making them too long.

  • @EduardoSantanaSeverino
    @EduardoSantanaSeverino Рік тому +1

    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.

  • @Bob-1802
    @Bob-1802 2 місяці тому

    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.

  • @unlokia
    @unlokia 2 роки тому

    Technical stuff aside, “Kotlin” sounds like a word a toddler spluttered out of its mouth 🤦🏻‍♂️😁
    Google is a very clumsy, focus-deprived, idiotic company.

  • @josefcrosz
    @josefcrosz 2 місяці тому

    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.

  • @satyamraj2779
    @satyamraj2779 4 місяці тому

    Did you just say that c++ is stupid language and with stupid classes???!! , a lot of C++ developers will get triggered..🤣

  • @GorVala
    @GorVala 4 роки тому +4

    Kool video, gr8t job

  • @zetabyte0076
    @zetabyte0076 2 роки тому +10

    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!

  • @SKCodesForFun
    @SKCodesForFun Рік тому

    You are not quite correct about the genesis on Android, this one of those times the distinction of linux referring to the kernel is important.
    Also Andy rubin's folks did it before google bought them.
    Vast majority of Android code that is not inherited from the Linux kernel is in CPP, not C
    Yes the Android SDK predominantly supports Java/Kotlin, basically JVM langs, as the modus operandus for making appa, you can make an app entirely using the NDK and stuff that binds into it using plain old CPP or even frameworks like Unity. Your fav game probably uses the latter approach.
    A note about runtimes, Android used to use a Java runtime called Dalvik and that is what added Java support, not the other way round. The language will support any OS the JVM can run on. In some ways even the old J2ME VMs had wider support for Java classes than the early versions of Android.

  • @bsmaheshkumar5328
    @bsmaheshkumar5328 3 роки тому +3

    Koltin is as easy as python.

  • @chudchadanstud
    @chudchadanstud Рік тому

    I'm completely new to this. I have dabled in Android development in the past but it was mostly UI. How is documentation for Kotlin like when compared to Java? How is it use on other things besides android development?
    With Java if android development isn't doing it for me, I can move else where. There is also a lot of legacy support and the community is bigger. You literally rambled for 8 mins without talking about the important things. Syntax and NullRef nonsense literally doesn't matter. It's like picking an outfit.

  • @uuu12343
    @uuu12343 2 роки тому

    "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"??!?!

  • @first-thoughtgiver-of-will2456
    @first-thoughtgiver-of-will2456 3 роки тому +1

    *Rust on Android!!!!*

  • @core36
    @core36 3 роки тому +2

    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

    • @TheRealFFS
      @TheRealFFS 3 роки тому +1

      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.

  • @EK-ck2xf
    @EK-ck2xf 4 роки тому +1

    There are some mistakes in what you're saying and I would advise you if you want to give a reliable account of the history to do your research more in-depth - for example, Google hasn't created an Android system, they acquired an existing product in 2005. Also, Android platform is not solely based on C but rather a combination of C and C++ which are two different languages

  • @johngehman5836
    @johngehman5836 Рік тому

    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.

  • @metatechnologist
    @metatechnologist 2 роки тому

    "....It was kind of an awkward implementation of object oriented programming" - in other words, a "kludge".

  • @AGUNGKAYA
    @AGUNGKAYA 5 місяців тому

    Lesson: if you are new to the field, just pick newer language between the two 😂
    If you are senior, stick to the language you have mastered 😎

  • @seriousskateboarding9938
    @seriousskateboarding9938 3 роки тому

    4:00 Lmao. google is so lame. Null pointer safe?? So in other words, it will run your code with invalid variables. Cool, I always wanted to run/build what is otherwise considered broken code.. (NOT).. Kotlin may have some advantages over java, but for the most part it appears to be a dead end language (has no use without android). I'd love to see some actual good engineers (like oracle engineers) make a mobile operating system. I'm sick and tired of watching these Bob's working at google keep ruining android, every chance they get.

  • @angduongmachle9231
    @angduongmachle9231 Рік тому

    This video is interesting and helpful for me. Thanks for uploading 😀😀😀😀

  • @DepressedNOF
    @DepressedNOF 2 роки тому

    idk. Give me my C++ for app development and I'm fine. If a language doesn't give me the ability to program mem-leaks and segmentation faults I don't really want it.

  • @shush1329
    @shush1329 2 роки тому

    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...

  • @bocckoka
    @bocckoka 3 роки тому

    java doesn't have type inference? so disappointing. people should know what they can expect from a language, so these garbage languages would die out

  • @homeoffice3524
    @homeoffice3524 Рік тому

    Definitely learn Java and avoid Kotlin or Go. Any Google languages. It's just way how to get monopoly.

  • @MarlonOwnsYourCake
    @MarlonOwnsYourCake 3 роки тому +1

    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?

  • @kamikazedavid20
    @kamikazedavid20 2 роки тому +1

    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

  • @CodeWithCal
    @CodeWithCal 3 роки тому +1

    3:57 I'll miss you null pointer exception.

  • @androidboss
    @androidboss 10 місяців тому

    Basically Kotlin is just easy but for robustness Java is op.

  • @alfonstabz9741
    @alfonstabz9741 7 місяців тому

    is kotlin built on java or pattern on java? that is two different things it matters if who will win the case between google and oracle.

  • @garyjacobs330
    @garyjacobs330 3 роки тому

    You haven't done any Kotlin. What makes you qualified to even talk about this? You guys just like to see yourselves on UA-cam?

  • @NandoBrunner
    @NandoBrunner Рік тому

    My opinion Kotlin is much convrnient for beginners in application developpment..

  • @Georgggg
    @Georgggg Місяць тому

    Best feature of Kotlin is ability to ditch classes entirely.

  • @mohamadjradi8324
    @mohamadjradi8324 4 роки тому +1

    I really know 70% java, so shell i learn android development ? Please give some advices.

  • @andyhall7032
    @andyhall7032 3 роки тому +1

    java vs kotlin is like c++ vs golang ... the ones on the right hand side are just nicer to work with.

  • @germainkevin5987
    @germainkevin5987 4 роки тому +3

    I'm in that transition right now, currently converting one of my apps to Kotlin !!

  • @khalidsaifullahfuad
    @khalidsaifullahfuad 2 роки тому

    C++ is awkward oop implementation. Oooh, cpp developers not gonna like that statement.

  • @pratikpattanaik
    @pratikpattanaik 4 роки тому +2

    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.

    • @akin242002
      @akin242002 2 роки тому

      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.

    • @theholyjosh5384
      @theholyjosh5384 2 роки тому

      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 😅

  • @LostRoaming
    @LostRoaming 3 роки тому +1

    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.

    • @ZQK-live
      @ZQK-live 2 роки тому

      Can you tell the opportunities/advantage I would have learning java other than app development??

  • @mathajar9563
    @mathajar9563 2 роки тому

    why why i should face history why bcz you can learn past people mistake?

  • @eberronbruce1328
    @eberronbruce1328 3 роки тому +12

    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.

    • @mateoharmiss5830
      @mateoharmiss5830 3 роки тому

      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

    • @eberronbruce1328
      @eberronbruce1328 3 роки тому +1

      @@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.

    • @mateoharmiss5830
      @mateoharmiss5830 3 роки тому

      @@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.

    • @eberronbruce1328
      @eberronbruce1328 3 роки тому +1

      @@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.

    • @maruf7956
      @maruf7956 3 роки тому

      @@eberronbruce1328 should i learn kotlin or Swift? Which OS is more in demand

  • @jamesmakume2630
    @jamesmakume2630 Рік тому

    You're more likely to appreciate Kotlin if you already know Java.

  • @penguthepenguinj
    @penguthepenguinj Рік тому

    I only know Java right now, for me kotlin seems too simple and less easy for me to understand

  • @andreanonali4557
    @andreanonali4557 4 роки тому +1

    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

  • @abdelkadersoudani1955
    @abdelkadersoudani1955 3 роки тому +1

    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

  • @theowillis6870
    @theowillis6870 2 роки тому

    isnt kotlen Java with an easier Syntax and u can have cross compatable with java

  • @codesouls2441
    @codesouls2441 3 роки тому +1

    I use kotlin because it's just great

  • @MrSarma1991
    @MrSarma1991 4 роки тому +2

    Thanx a lot and i just decided that i'll start learning kotlin

  • @Tommy-vt9fg
    @Tommy-vt9fg 2 роки тому +1

    You just opened my brain and put new insights into it. Thanks a lot!

  • @jack8249
    @jack8249 3 роки тому

    I don’t understand why they chose dart for flutter instead of kotlin. It is so stupid.

  • @havens1515
    @havens1515 4 роки тому +27

    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.

  • @renecabuhan1675
    @renecabuhan1675 2 роки тому +1

    Java : we run in 3billion devices 😄..

  • @First_Principals
    @First_Principals 4 роки тому +1

    Please do a similar video of GO programming language.