KotlinConf 2019: What's New in Java 19: The end of Kotlin? by Jake Wharton

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

КОМЕНТАРІ • 275

  • @Xaxxus
    @Xaxxus 5 років тому +553

    By the time java 19 comes out companies might actually be on java 11.

    • @DavidThoren
      @DavidThoren 5 років тому +59

      I think you mean "By the time java 19 comes out companies might actually be on java 9."

    • @df-hh7yd
      @df-hh7yd 5 років тому +30

      @@DavidThoren It is more likely they will move to next LTS version which is java 11.

    • @nonamenoname5939
      @nonamenoname5939 5 років тому +8

      depends on the company, we are running multiple desktop, server and web apps on jdk13, and there is no issue with updating to latest.

    • @aegisxiii2384
      @aegisxiii2384 5 років тому +9

      That's a c++ joke.

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

      @@DavidThoren I think you mean "By the time Java 19 comes out companies might actually still be on Java 8"

  • @zhou7yuan
    @zhou7yuan 5 років тому +182

    Variable Type Inference (Java 10) [3:59]
    Local Functions (Java 16/17) [7:15]
    Multiline Strings (Java 15) [10:38]
    Value-Based Classes (Java 15/16 Records) [18:20]
    Sealed Hierarchies (Java 15/16) [22:40]
    Type Matching (Java 15/16) [25:56]
    Destructuring [29:09]
    Coroutines [45:07]
    Executores.networkStealingPool()
    The end of Kotlin? [46:40]
    Java 16/17 Pattern Matching
    Java 14: Expression Switch
    Java 18/19: Inline Classes
    Java 16/17: Virtual Threads
    conclusion [47:21]

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

      And if you're wondering why "inline classes" is in the summary but not the talk, skipped for time :(

  • @edinsonsanchez5591
    @edinsonsanchez5591 5 років тому +120

    The internet manual, rule 47:
    -Any youtube video phrased as a question can be answered with a simple NO

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

      Edinson Sanchez Bederidge’s Law.

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

      Applies to headlines, too.

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

      Thanks, I thought so too.. now I don't have to watch the video.

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

      The answer usually is "it depends"

  • @shoaibahmad6910
    @shoaibahmad6910 5 років тому +175

    Congratulate us, the Android developers who are still stuck at java 8, which isn't even fully supported!! We aren't gonna let Kotlin die

    • @neo-vj4zq
      @neo-vj4zq 5 років тому +5

      And with differing non spec behaviours

    • @andres-rodriguez
      @andres-rodriguez 4 роки тому

      @Tired doctor yes you can. Try to work with new apps but to support any legacy code you would have to learn Java

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

      @Umbrella Corporation How so? Only thing I see going for kotlin is a whole lot of hype, which isn't going to last. Android apps developed using java have better performance and less lag. It would appear to me java is superior to kotlin in almost every way. I'm not going to go learn a new language just so it can fix pointers for me. Or is there something I'm missing about kotlin that somehow makes it better than java?

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

      @@seriousskateboarding9938 Java code seems more primitive and full of words, kotlin simplified it and clean

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

      I was thinking about ultra native development

  • @anthony452
    @anthony452 5 років тому +118

    "The end of Kotlin"
    *Obvious clickbait*

    • @__manish_kumar__
      @__manish_kumar__ 5 років тому +1

      But you are still here

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

      Yeah. I am only here to see this "end of Kotlin" bullshit

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

      That was Jake say for the Intro

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

      It was meant to be a joke entry for the talk afaik but he got greenlit and here we are

  • @simioni
    @simioni 5 років тому +195

    *Title:* "The end of Kotlin"
    *Actual content:* "A million ways why Kotlin is better. But Java is scheduled to gain some of these features over the next few years."
    😂😂

    • @barddoo
      @barddoo 5 років тому +3

      yeah, it will be most performative in Java, but it is still a promise

    • @hefaistoss1
      @hefaistoss1 5 років тому +9

      I think Java just recycling Kotlin and try for some kind of "resurrection" but Kotlin is a future. Still Java don't have null-safe calls. For other things i don't really care. Less code = less mistakes. And only way to produce "safe code" is with usage of null-safe calls and i don't mean check of nullability with if...

    • @neo-vj4zq
      @neo-vj4zq 5 років тому +1

      @@hefaistoss1 you are using lambdas when you shouldn't be

    • @alessandroautiero5414
      @alessandroautiero5414 5 років тому +4

      @@hefaistoss1 I use Java and Kotlin and together, they are obviously flexing about Java doesn't have, but if you know both at the save level, you'd know why Kotlin isn't as used as Java. Thought, I'd like null safety

    • @kamikakushi_
      @kamikakushi_ 5 років тому +9

      @@hefaistoss1 yes, you're right less code (or you could say, less complicated logic too) means less mistakes, but the truth is, I've seen a LOT of new developers who started learning kotlin from the get go, doesn't know sh*t on how the actual code works (i.e. how it work inside the system) and basically just use whatever the tutorial gave them and resulted in a less performant code (yes, it happens a lot. please DO look somewhere else around you).
      I don't really care about which one is the future programming language. The point is, once you get used to and understand how the internals are working together, no matter what programming language you use, you'll produce a code with less null-related errors

  • @KangoV
    @KangoV 3 роки тому +8

    Java inline types and virtual threads will provide an insane performance boost allowing the CPU to avoid massive amounts of cache misses. When this is combined with the Vector API it'll be huge for SIMD processing.

  • @JonathanCottrell
    @JonathanCottrell 5 років тому +87

    Got clickbaited so hard. But I ain't mad because I still want to watch it.

    • @GagandeepSingh1984
      @GagandeepSingh1984 5 років тому +2

      Agreed!

    • @jsonkody
      @jsonkody 5 років тому +2

      it's not clickbait .. it's pretty obvious cause today version of java is 13 ._.

    • @Pulkit__7
      @Pulkit__7 5 років тому +1

      Lol watching it at 3 in morning, cause of clickbait

  • @PaulSCoder
    @PaulSCoder 5 років тому +18

    I really appreciate the example and comparison of destructuring. It's interesting to see some discourse over positional attributes and changes management.

  • @andreaho4841
    @andreaho4841 5 років тому +59

    The title made me sick. I've just finished a Kotlin course.

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

      Kotlin is the future.

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

      @LeBlanco MOB Kotlin is not only for android programming lol xD I do modding and game development for windows/multiplatform in Kotlin xD

  • @mikew3752
    @mikew3752 5 років тому +38

    I think it's quite important that with Kotlin, you can clearly see variable definitions, and they line up. Makes reading the code easier.
    The same principle applies to the internal function. In Kotlin, you can see the `fun` word, and know it's a function. With Java, there was a `boolean` and then a name. Much harder to skim the code and realize there's an internal function.

  • @xpusostomos
    @xpusostomos 4 роки тому +40

    Your daily reminder that you could do all this in LISP in 1958.

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

      While keeping LISP simplicity and not adding stupid stuff every year. That's why I love Clojure.

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

    What does he mean with "Kotlin has an IDE to potentially evolve in ways that Java cannot" (48:14)? IntelliJ also supports Java.

  • @geoffreylee1780
    @geoffreylee1780 5 років тому +34

    The feeling of coding without generic for 8 years, go ask Go developer

    • @jasonleo
      @jasonleo 5 років тому +3

      Feels terrible, man!

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

    I think what kotlin and java ecosystem lacks are a more standard toolchains. In go and rust world, I don't have to fight the toolings and choose which code standard that I wanted to choose. If only in kotlin I can just generate "kotlin init my-project" with all the minimal best practices, and no linter settings, just make it standard toolins. And if I could do "kotlin run" or "kotlin build", I think it will catchup to more developers.

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

      Java has so much more robust tooling than go.. was that comment a joke?

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

      @@joachim5080 Except Gradle is a tool hated by many developers worldwide.

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

      That and the pervasiveness of IDEs really turns me off. When other communities are busy working on easily pluggable, flexible tools for people to make more complex tooling on top of, the JVM world seems to start with bad abstractions, realize the mistakes halfway, and start over from scratch with an entirely new behemoth. Kotlin, despite being probably the most fun language that I've come across, is an absolute pain to get set up with anything outside of IntelliJ, which is a shame because it seemed like a perfect replacement to Python for scripting and online problem-solving purposes.

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

      @@joachim5080 i think he's refer to the simplicity of the tools, yes. as a java dev i know java has a lot of more mature an better tooling, is just that sometimes it's too complex, ant -> maven -> gradle they are all are different

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

      @@biskitpagla yes i agree, but java at least has the jshell ( run java in a repl ) and you can also code in emacs/vim with an lsp plugin or vscode, kotlin doesn't even develop a proper lsp outside intellij

  • @compateur
    @compateur 5 років тому +26

    Another interesting competitor, which is not mentioned, is C#. Lately I'm focusing on C# and I see those features also implemented in C#. The way that Java implements 'smart casting'is the same as in C# (and it is already available). Coincidence? I don't think so. C# 8 also implemented nullable types, just like in Kotlin. I'm pretty sure that Oracle is also watching Microsoft's endeavors.

    • @YS-zk4wz
      @YS-zk4wz 5 років тому +1

      @rudolf de grijs Can they please make something like Blazor so Java code can compile into native webassembly like .net core can?

    • @GuiChaguri
      @GuiChaguri 5 років тому +4

      As he showed the "smart casting" feature in Java, I immediately thought of C# too. I don't think Oracle cares that much about Kotlin as a competitor as they care about C#

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

      @@GuiChaguri Kotlin is more of companion rather than competitors because of interoperability. C#, on the other hand, lives in different ecosystem

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

      And you have in C# a code from version 1 that run on jdk 19 ?

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

    Optional is the way Java introduced to deal with null safety. It's not a language feature, but you can use it anyway, if you need to. It's used by popular frame works as JPA.

  • @dmitry-utkin
    @dmitry-utkin 5 років тому +17

    I've just finished a book about Java 1.0.2

  • @pr0master
    @pr0master 5 років тому +16

    Great presentation!

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

    I very much enjoyed this talk. Clear, considered and unbiased comparison. Nice one.

  • @HoD999x
    @HoD999x 5 років тому +15

    i am going to ruin the talk for you: focus on the presenters breathing between words and sentences

  • @jimmorrison2657
    @jimmorrison2657 5 років тому +10

    There currently seems to be an obsession with new 'language features'.
    It doesn't matter how gimmicky or silly they are, they will be accepted without question into the language. There used to be sensible debate about whether or not new features should be added, and quite often they were rejected. But now the flood gates have been opened and any ridiculous crap is welcomed into the language as soon as the devs can add it.

    • @simioni
      @simioni 5 років тому +4

      I agree with that sentiment in part, but the opposite is also true. The requirements for what languages should accomplish change along the years, and it was only very recently that developer experience took the front seat in language development. Compared with more modern languages, Java is super verbose and yet harder to read. Learning from the better parts of other languages is cool, and Java definitely needs some modernizing. Hopefully it'll not be redundant features just for the sake of it, but instead features that make the code easier to read and more pleasurable to write.

    • @jimmorrison2657
      @jimmorrison2657 5 років тому +2

      simioni I also agree with you in part. Languages have to change and adapt to new requirements and developers. And some of the changes that are happening are good.

    • @tschallacka874
      @tschallacka874 5 років тому +1

      I also agree. Some things are benificial, others make me think, why? It enables lazy hard to trace coding. But oh well, one doesn't have to use it.

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

      There's a place for Kotlin, and then there's a place for Go. Both are valid approaches to pl design with differing strengths and weaknesses. That said, one thing that I don't like about Kotlin is just how relatively unopinionated the language is. There're other "batteries-included" languages out there like Python and even Haskell but it's not as common for people to develop idioglossias in them as it is in Kotlin. For every single problem Kotlin seems to offer three more solutions, all of which happen to be equally promoted by the language's design.

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

    When you actually have to write and maintain real code for a living you don't want rapid change.

  • @AungThiha92
    @AungThiha92 5 років тому +8

    Does anyone know what kind of tool can create such presentation?

  • @alpex92
    @alpex92 5 років тому +14

    It's so funny to listen about some cool features and syntactic sugar which Kotlin has, and Java will recieve 3 years later, assuming that some languages (Scala for example) already have them for at least 10 years.

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

      Whatever features get bolted on Java, it's always done in this Javaesque, square, human-hostile syntax that feels clunky and absurd (to me)

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

      When scala introduces features they usually shoot themselves in the foot. When java gets a new feature one can rest assured that it’s useful, stable and understandable. So i rather wait a few years before dealing with crazy junk

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

      @@vibovitold Hard agree. I was convinced that functional code is elegant by default until I saw functional Java.

  • @PaulSCoder
    @PaulSCoder 5 років тому +9

    In all seriousness with the velocity of Java releases do you think something similar to what happened with CoffeeScript will happen and Kotlin will be absorbed by Java 20.
    What I found very interesting is some of the Kotlin bytecode is calling Java bytecode. Are there examples of what kotlin does that isn't a terse transpilation on top of Java?

    • @mikew3752
      @mikew3752 5 років тому +10

      Strictly speaking, wouldn't it be JVM bytecode. All languages that run on the JVM have to transpile to the same bytecode in order to run on the JVM. It's just changes to the JVM bytecode are driven by changes/enhancements to the Java language only. Other languages have to create workarounds for features that aren't natively supported in the bytecode.
      For example, prior to JDK8, bytecode didn't support methods on interfaces. So Kotlin would work around it with classes and other manipulation. In fact, if you're on JDK8+ and want to use default methods on interfaces in your bytecode, you have to tell the Kotlin Compiler explicitly with @JvmDefault.

    • @PaulSCoder
      @PaulSCoder 5 років тому +1

      @@mikew3752 Thanks for giving me some clarification

    • @yoapps137
      @yoapps137 5 років тому

      @mike w you gave the most perfect example! I actually went through this in most of my lectures. And that's why I'm happy I've had my grounding in hard core Java cause once I work from that Interface all the way up to functional interfaces & lambdas.. Its then that the students get everything.. Even the Kotlin guys! ;-)
      Great answer!

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

    This is like when Apple announces a feature that Android has had for years, but theirs is better for some incrementally small reason.

  • @fmaylinch
    @fmaylinch 5 років тому +4

    Mmm, I didn't see properties, right? I mean getting rid of getters and setters in normal classes. Also, I hope Java does something to be able to use future features on previous versions, like Babel does for JavaScript. (I saw a similar tool, now I can't remember its name, but it was very beta).

  • @Skiamakhos
    @Skiamakhos 4 роки тому +12

    The only Java version numbers that truly matter though are the LTS (Long Term Support) versions. So, Java 11, right now.

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

    Why is the java code missing the pesky semicolons that java requires but kotlin does not? Did I miss a massive upgrade to java that eliminates the need for semicolons everywhere?

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

    The end of Kotlin?
    The answer is at @48:37

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

    Just signed for an all-Kotlin job, seems like Kotlin survived :D

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

    Java 19 is NEXT MONTH!

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

    I'm still at java 8. Tried migrating to java 9, whole project crashed. Went back to java 8 🤣

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

    Java 15 September 2020, so accurate!

  • @BrandonLamb1
    @BrandonLamb1 5 років тому +2

    Cool video! Learned multiple new things!

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

    Very nice balanced and informative presentation.

  • @alexeylugovskoy9487
    @alexeylugovskoy9487 5 років тому +1

    Why only idea supported? What about other ide?

    • @damienstanton
      @damienstanton 5 років тому +2

      Kotlin works well in VSCode as well as Vim.

    • @nimaparsa5960
      @nimaparsa5960 5 років тому +1

      @@damienstanton VSCode ? not sure fully support

    • @damienstanton
      @damienstanton 5 років тому

      @@nimaparsa5960 Yeah, the "official" preview plugin uses Kotlin Language Server (like the Vim one): marketplace.visualstudio.com/items?itemName=fwcd.kotlin

    • @zozazu7650
      @zozazu7650 5 років тому

      Kotlin works in eclipse with pluggin and vs code etc.

    • @enrico3527
      @enrico3527 5 років тому +3

      Kotlin main purpose is to promote their ide which is idea

  • @CopernicoTube
    @CopernicoTube 5 років тому +10

    Under Oracle, Java as a language is still kicking, but as platform is almost dead. JCP is dead. Oracle was the worst possible successor for Sun Microsystems.
    Welcome, Kotlin! I loved Java, but we are not engaged anymore.

    • @mosup5007
      @mosup5007 5 років тому +2

      you made me lough althogh if any thing in java is loosing populerity is the java language not the java platform jvm because it runs dozens of languages and java kotlin among others is just one of these languages and java in the enterprise developement is one of the best if it was not the best

    • @CopernicoTube
      @CopernicoTube 5 років тому +3

      @@mosup5007 dude, English isn't my native language to have any authority about, but I think you need some improvement here. Keep studying.
      When I said Java as a platform I was referring its stack, not the JVM itself. Even so, you need to remember that JVM isn't the only virtual machine based technology anymore, and even Java language doesn't compile just to it.
      On Android, for instance, Java never compiled to JVM. The old Dalvik machine had success where the JVM ever failed: mobile devices. And the new ART keep doing it. Is still unpractical run JVM even on modern mobile devices (with a power of old PCs and even not so old) because is so heavy and slow.
      About Kotlin, the language compile/run against really a LOT of environments. Even JavaScript on a web browser! Any VM supporting dynamic invoking can run it. JVM included.
      About Java as language, it not aged nicely. Again is probably Oracle's fault by the lack of JCP involvement, but the sintax became really messy across time. So many syntactic sugar, the lambda implementation isn't exactly the best possible, so many things solved with preprocessors (annotations) instead language specs, etc.
      Project jigsaw also destroyed the platform backward compatibility (a thing that we was proud in the past) In old times, if you had a self contained executable jar file you knew that you can run it anywhere against any JDK or JRE implementation. Now, so many old files doesn't run anymore by lack platform libraries, *even when you put the libraries in the classpath* because the classloader isn't accepted to that libraries. Is a damn pain in the neck.
      Old Java just worked. Write Once, compile once, Run Anywhere. Isn't like that anymore.
      My final advice to you: technology change across time, like people. Don't be like a cheerleader to any kind of tech.

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

      @@CopernicoTube I worked for the biggest cloud companies you can name and I can say that at least 80% of codes is written in Java and still used in new projects.

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

      @@voronoit4091 Yeah because transition is the most pain in the butt to do it.But luckily,the presence of jetpack compose,which only available on kotlin,with so much less codes and huge feature served in it,would likely a game changer in mobile development

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

    It's exactly first of September 2022. Let's see

  • @_slier
    @_slier 5 років тому +20

    The only thing that gonna make kotlin alive is Native..other than that, all the kotlin feature will be implemented in java..Thx to kotlin because make java a better language

    • @HendraWijayaDjiono
      @HendraWijayaDjiono 5 років тому +1

      48:14

    • @byunghwara
      @byunghwara 5 років тому +3

      "The only thing that gonna make kotlin alive is Native..other than that, all the kotlin feature will be implemented in java..Thx to kotlin because make java a better language"
      Not true. Google is a huge supporter of the Kotlin language. Even if Java was able to become even better than Kotlin in the future, Google would still prefer Kotlin because the last thing Google wants is another lawsuit with Oracle.

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

      I do not see a boilerplate language like java could potentially adapt all kotlin features.By the time kotlin more advance,java might only adapt val features in kotlin lmao.As you can see,java code is really taking much boilerplate code than kotlin to do the same thing.And,with the presence of jetpack compose,kotlin features language which became more advance and google support,i do not see java could even stand a chances again flutter,let alone kotlin.so yeah

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

    ... so when is Java getting extension methods/properties and inline/reified methods???

  • @thexs1118
    @thexs1118 5 років тому +12

    Holy shit he’s wearing a Circa Survive sweater!

  • @hohojimmy4443
    @hohojimmy4443 5 років тому +21

    what?Java 19 is coming ,im still use java 8 🤣

    • @shijinphilip6500
      @shijinphilip6500 5 років тому

      I think majority is still using java 7 and 8

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

      dam i though writing android 9 java 8 latest ,, haish

  • @daggerok
    @daggerok 5 років тому +2

    surprisedly nice talk

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

    Java 19 is finally out!

  • @lambda-code
    @lambda-code 2 роки тому +2

    Very good

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

    Not even 1 minute in and he started trolling Go. How serious should I take this talk...

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

    Really interesting talk.

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

    Why is Java rushing with its versions??

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

      Marketing gimmick. Same happened with web browsers.

  • @mambisizempare9671
    @mambisizempare9671 5 років тому +13

    After switching to GoLang from java spring .. my productivity has increased 1000% . Generics is a good add on but not essential 🤣

    • @BosonCollider
      @BosonCollider 5 років тому +5

      A better way to put it is that generics are essential for some applications and less for others.
      It's optional for Go's userbase mainly because developers who inherently need them to do anything useful have self-selected away from Go.

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

      I would have trusted your statement if you weren't the type of people who exaggerate things to 1000%.

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

    that pattern matching shit is from erlang, good one java

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

    So both Kotlin and Java will continue to take in features that Scala already has right now, but at a rather slow pace.

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

      basically what C# does with F# 😂

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

    Great Content keep it up bro!

  • @BosonCollider
    @BosonCollider 5 років тому +4

    Apart from nullability he forgot to mention operator overloading. Massive miss by Java which makes any kind of avanced math in it feel like you're writing COBOL

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

      Second on my list would probably be extension functions! There's a lot of other things which I think are nice-to-haves, but nullability feels like the really foundational omission from Java's future.

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

      agreed. I know everyone was hyped up about nullability stuff in kotlin when it got popular and stuff but when I first discovered kotlin, the thing that amazed me the most was extension functions. I guess it looked too good to be true to an Android developer like me who is mostly stuck with Java 7/8 :')

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

      I guess he has not included operator over-loading because it can be added in future, unlike nullability which cannot be removed without breaking existing code.

  • @sadeghsaati1335
    @sadeghsaati1335 5 років тому

    Does anyone know how old Jake is ?

  • @igrai
    @igrai 5 років тому +8

    Too much precious time dedicated to string formatting topics

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

    Imagine live conferences being a thing again when Java 19 is released xD

  • @SachithDickwellaPrasanna
    @SachithDickwellaPrasanna 5 років тому +4

    Great presentation. But one question, Hasn't Java tackle 'null' with 'Optional' in Java 8 already?

    • @GuiChaguri
      @GuiChaguri 5 років тому +5

      Not in the same degree. You don't have idiomatic non-nullable object types, you can still null any object in Java, no matter if it's wrapped around a Optional or not

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

      @Niklaus Bucher your point is spot on. Optional actually makes things worse since Java still cannot represent things that are non-null.
      Kotlin:
      - String means "not null"
      - String? means "maybe null"
      Java:
      - String means "maybe null"
      - Optional means "the optional can be null or the string can be null"

  • @barddoo
    @barddoo 5 років тому +5

    in some decades, the will be no numerical possibility to represent Java version

  • @calmchess2515
    @calmchess2515 5 років тому +3

    These few features are going to kill off kotlin? I doubt it I can code Kotlin way faster than Java. The amount of time I save typing kotlin compared to Java is 10 fold

  • @Zouti123
    @Zouti123 5 років тому +1

    Poeple just get paid to post 'The end of X'. Unfortunately I will not continue to watch the video. Not because I'm a kotlin supporter, but because I was a victim of those marketings.

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

    Kotlin is a bless to all developers

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

    During the whole video I was thinking: but Java won't have nullability! And yes, in the end Jake said it.
    Just because of nullability Kotlin will remain much more convenient and efficient, than Java

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

    If it wasnt for android and google's pressure on developers, kotlin would not even had a chance even to end.

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

      So? 🤷‍♂️

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

      @@TheRealFFS java isn't something all about oracle. Kotlin is still dependant on some other language, mostly java. I got nothing against kotlin itself. But it feels like too much when they mock/asperse java . It's like asking to demolish the ground floor once first floor is completed.

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

      @@harshar6897 What are you talking about? I have no idea what you're trying to say, or what your reply has to do with your original post.
      I don't think they're mocking anything. It's competition, and that's good. Java is trying to keep up as best as it can, but some of its primary faults still remain, mainly 'null' and its verbosity. The best thing it has going for it is its large ecosystem and user base.

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

      That's true, just like how the same is true for Java because of the billions of dollars that went into its marketing and the absolutely horrendous OS-specific APIs of that time.

  • @TheWitzig
    @TheWitzig 5 років тому +1

    Great talk! :)

  • @ChazAllenUK
    @ChazAllenUK 5 років тому +4

    Java 19?!? I thought 13 just came out!!!

    • @kenocontreras
      @kenocontreras 5 років тому

      watch the video first.

    • @ChazAllenUK
      @ChazAllenUK 5 років тому

      @@kenocontreras - It's on my watch later

    • @6fixedrob
      @6fixedrob 5 років тому +1

      We being fooled

    • @TheCodeAcademy
      @TheCodeAcademy 5 років тому

      September 22 is when java 19 will come out

  • @leomak7580
    @leomak7580 5 років тому

    really nice talk )

  • @psinghiitr
    @psinghiitr 5 років тому +7

    Java is killing jvm langs by copying.

  • @jamalmikrotik673
    @jamalmikrotik673 5 років тому +7

    Java its Monster

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

    Isn't likely that Java only began to change in 2004 because .NET got popularity and Java was behind C# in terms of modern features?

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

    Literally came here from introduction to kotlin vedio feeling very stupid.

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

    Please don’t call these things destructors. Even “deconstructor” isn’t a very good name, but it’s much better than destructor, since nothing is being destroyed. Also that name is already used by C++ for actual object destruction(freeing memory). In python, the concept under discussion here is called “tuple unpacking.” I’d start with that.

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

      I disagree. Deconstructor is a perfectly good term since we reverse the constructor. Especially since we already have a tupel class and this code works with tupel in Kotlin but not only.

  • @krokenstiv8777
    @krokenstiv8777 5 років тому +9

    I used Kotlin for a while and I made a conclusion that Java is better. Kotlin's ? is practically dangerous.

    • @yoapps137
      @yoapps137 5 років тому +10

      I agree too.. But tell that to a Kotlin fan boy and see the nonsense you get back! Hahahaaaaa
      Yes Kotlin might have some cooler features but in no way it has the depth of Java.. No way. No chance. Java will always be the beast. And as time goes on.. It'll just get more & more refined. Love it or hate it.. It delivers. See my comment on this same video..(by the way already attacked by Kotlin fan boys!!!)

    • @artemurubkov3588
      @artemurubkov3588 5 років тому +3

      Guys, you just haven't used Kotlin deeply. It is for 100% compatible with Java. 1. Q: what you use instead of coroutines? 2.Ok, let's imagine, you invokeMethod1, then wait for result of some Callback{onSuccess(sResult); onFailure{fResult}}, then invokeMethod2(sResult), and process Exceptions -> please provide here your implementation in Java

    • @scriber36
      @scriber36 5 років тому +4

      Why is Kotlin's ? dangerous? It clearly specifies, that you must expect to receive null value. From that point, you either:
      - a, handle null case safely
      - b, don't care about mountains of warnings THEN fail
      I don't see what is dangerous about this, especially that in Java you kinda always should expect null, or make assumptions about being nonnull and make sure your assumptions are met. You can use annotations for that, but hell it is so verbose to annotate everything instead of just one ? character extending the type system with nullability, which IS the proper way to integrate null into the system - as C# noticed it too and is now applying the ? nullable type thing to reference types too.
      It is dangerous not to know whether some method is expecting null or not and whether you receive null or not. Throwing an exception upon receiving null is digusting imo, it should be part of specification (some write it in JavaDoc, but that is not compile checked), so part of the type system.
      Optional is a completely different tool. You cannot use Optional for every parameter where you expect a value or null, that would look ridiculous. I loved and use Java every day at work, but Kotlin does nullability a hell lot better. Java IS null-dangerous, Kotlin is not.
      In Kotlin null is not danger, it is a useful tool. In Java you better use Null Object Pattern for safety, which is a half solution, in Kotlin there is no need to, because null policy must be specified everywhere (via ?'s).

    • @artemurubkov3588
      @artemurubkov3588 5 років тому

      @@scriber36 To my mind, null-safety is really not so great+explicit in Kotlin, just because of !! operator is required some time. Yet, there are: sealed classes/coroutines/StringUtils/semicolons )))

    • @scriber36
      @scriber36 5 років тому +4

      @@artemurubkov3588 Kotlin states never use the !! operator - if you use it you are a bad Kotlin programmer in most cases - that is written in its specification. You are never forced to use it, since you can do the same safely via a null-check or use the ?. operator if null result is acceptable.

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

    Release 19, Java still has no string interpolation? No need to watch the rest of the video - DISLIKE

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

      as much as String interpolation looks cool, it can (and WILL) break existing code if it gets added to java later on. imagine having a string that is like String s = "test $something"; then you updated your java version to which they added string interpolation and getting a compiler error "Variable 'something' cannot be resolved
      "

  • @zedisdeadz
    @zedisdeadz 5 років тому +2

    TLDR; The answer is no

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

    should I be worried if I am still learning java 8?

  • @Amitkumar-dv1kk
    @Amitkumar-dv1kk 5 років тому +5

    I'm still in java7 😭😭

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

      If you want to know what is real suffering you should downgrade to Java 1.1

  • @web3tel
    @web3tel 5 років тому +7

    Nullability argument is very weak. Java solved nullability issue by introducing Optional which happens to be Functor(map) and Monad (flatMap).

    • @scottmacwatters
      @scottmacwatters 5 років тому +6

      Next time I get an NPE in production, I'll be sure to call you to ask why nullability is solved. As long as you can compile code which gives you NPEs, I wouldn't consider nullability solved.
      I'm all on the java train for most things. It's a strong language that can do it all -- including crash your system because you forgot to check for null in a weird case which is now the normal case.

    • @web3tel
      @web3tel 5 років тому +3

      @@scottmacwatters Never use null. Use Optional instead. Using null in Java today is like using !! at Kotlin. In fact looking at kotlinlang.org/docs/reference/null-safety.html, I see there plenty holes at Kotlin null safety. Please don't get me wrong I agree that null safety at Kotlin as elegant, but is is far away from being killer feature.

    • @RobBygrave
      @RobBygrave 5 років тому +3

      Until the JVM has value types (and Optional becomes a value type) using Optional has extra overhead with the extra object reference lookup vs Kotlin null checking which is compile time. You can use Optional with Kotlin if that is your thing but Optional isn't "free" wrt runtime cost.

    • @web3tel
      @web3tel 5 років тому +1

      @@RobBygrave it is right, but Scott's point was that even for long run Kotlin will stay superior to Java.

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

      No they did not. Java still lacks the ability to say that a reference can not be null.
      And the official documentation say that optional should only be used as a return type, not as an argument type. The main reason for this is that if a function takes an optional, the code can still call it with null. Also the optional syntax in java is insanely verbose. Just try to compare the code needed to call a method on a reference if it's not null.
      And the Kotlin compiler is so smart, that if you have tested if a reference is not null, the compiler know this so later in the code it will be ok to use the reference as if the type was "can't be null".
      Optional in java was created to only solve the problem of how to signal that an return value was optional(Could be null). it does solve this specific problem, but that is only a very small part of the null problem.
      In kotlin you can use the type system, to do a static verification that this program can newer throw a null pointer exception*. Doing that in java is impossible. This is one of the reasons that we are currently looking at moving from Java to Kotlin(On a jvm) for our furture server side code. That way we can still use all the great java libraries.

  • @Kabodanki
    @Kabodanki 5 років тому +9

    Oracle, what a sad word

  • @daniela9171
    @daniela9171 5 років тому +3

    end of Kotlin ? LOL.. clickbait nonsense

  • @sagittarius5315
    @sagittarius5315 5 років тому

    I will be happy if they make string one of the key words such as int, float and... IT IS ANNOYING

    • @911SuperGT
      @911SuperGT 5 років тому

      Why? String is better of as a class than a datatype.

    • @sagittarius5315
      @sagittarius5315 5 років тому

      ​@@911SuperGTIn my opinion it would be better to become a datatype and has a wrapper class(I don't know why it shouldn't... I'll be thankful if someone explain it)

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

    That positional destructuring is pretty gross.

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

    A clickbaiter admitting this is a clickbait. That's a first.

  • @cas1652
    @cas1652 5 років тому +6

    it's a bit infuriating to see that the Java designers can not get out of the habit of making their language clumsy and cumbersome. Why in gods name are they dropping whitespaces in multiline strings? They are actually adding more weird java things to think about that distracts from writing your application when they should be getting rid of them.
    Why are they dropping the beans conventions for records of all things? For decades now we built everything on top of beans and now? I predict people are going to use linters to ban using the new Java Records because they break the whole ecosystem.

    • @AbhijithVMohan
      @AbhijithVMohan 5 років тому

      Records are nicer for data only objects. Less boilerplate without using annotation magic like lombok, immutability etc. Less code means less bugs and more time for coding the application.
      Javabean way is already considered as a less favourable way in books like effective java

    • @dariy1999
      @dariy1999 5 років тому

      I do not agree on the beans point at all, you're making it sound like things that are already years in development are going to embrace Java 14 etc with open arms and migrate. Very few big projects are moved at all.
      Records are a new approach for an old thing, designed for new projects and faster and easier development. People always talk about how writing something in another language is much less verbose, but that is a new language, a new project - no mention of changing the existing code base. Same thing here, new versions of existing tools will adjust and new projects will thrive.
      And I also love the getters without "get", so much cleaner. Agree with you on the first point about the spaces though, that's a weird one

    • @tschallacka874
      @tschallacka874 5 років тому

      Mhhh, it sounds more like controllers and models to me like in laravel php. The bean controls, the record holds data. Up to the dev how to implement it though.

    • @cas1652
      @cas1652 5 років тому

      guys beans is the convention that a property foo has getter getFoo() and maybe a setter setFoo(value). For records they'll make it foo(), breaking everything that expects the beans convention, so essentially every library and application that generically reads data from objects.

    • @tschallacka874
      @tschallacka874 5 років тому

      @@cas1652 if you're familiar with laravel style models its actually okay. Of course it would break older java ruts, but transitioning from php/laravel to java would be easier. It gives a kind of flexibility in approach.

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

    your anwer 48:38

  • @kemuri22
    @kemuri22 5 років тому +15

    this guy has real trouble breathing though

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

    Java (rabbit) will never catch Kotlin (turtle). Because Kotlin introduced improvements to Java, right? When Java catch up with those improvements, Kotlin will be more advanced in the meantime. And again, and again.
    *That's why Kotlin will always be more advanced than Java.* Got it?
    😜

  • @yoapps137
    @yoapps137 5 років тому +9

    Congratulations to all Android Developers who never fell victim to the Kotlin hype Google created just bcz Oracle is gona sack their ass of $9billion!!! I use Kotlin, sure its nice.. But I will always remember the backbone of all great programming will always be JAVA!

    • @tdsora
      @tdsora 5 років тому +6

      kotlin is not hype. ur just missing out while the rest of us enjoy how much better kotlin is than java

    • @yoapps137
      @yoapps137 5 років тому +6

      I'm not missing out on shit.. I use Kotlin.. And thank my lucky stars my grounding was in Java & C#. And I don't make a living by playing fan boy to groups, teams or languages... I've been in the industry for more than 22yrs now and can safely say this like all the real guns - No matter what you do with your IT skills, Java will align with the future. Take a close look at dart today and tell me how many Python guys can pick it up faster than Java guys. Take a closer look at graalVM.. And tell me how many JS guys really get the idea from where that kick is coming. I'm not saying C or C++.. That might be a bit too much.. But Java is surely the one to not trade away for Kotlin. Flutter has already started proving cooler.. So if you ask me, your the guy missing out on cool stuff with Dart.. And hard core stuff with Java!!!

    • @jatinrana7998
      @jatinrana7998 5 років тому +1

      @@tdsora it's all hype , used it and now back to java. Kotlin is good though but not worth switching.

    • @yoapps137
      @yoapps137 5 років тому +2

      @@jatinrana7998 .. Well said ;-)
      I only use it when I'm forced to.. Otherwise Java is insane! Love it or hate it.. It'll just keep getting better and better.. All these piddly little decorational advantages they say Kotlin has won't be visible post the next 2-3 updates in Java ;-)

    • @jatinrana7998
      @jatinrana7998 5 років тому +3

      @@yoapps137 i also hate it when client force me to use kotlin who have no knowledge of programming, they ask for it because somebody told them kotlin is cool.

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

    Java is one of the worst languages in the world. Thank god for allowing us to use Kotlin 🙏

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

    but java forced you to do everything in OOP which is sucks..no thank you

  • @seancpp
    @seancpp 5 років тому +3

    Java is like the out-of-touch old man that tries to follow memes but doesn’t really “get it”
    It’ll always be playing catch up to the likes of C# or Kotlin, which are just simply better languages by all accounts in my opinion.

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

    Java is trying too hard

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

    Java is still alive I thought it died a while ago

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

      It went zombie mode and started devouring features from literally every single other language in existence.

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

      @@biskitpagla true

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

    Dont talk shit man, i just moved to kotlin!

  • @hackerman7835
    @hackerman7835 5 років тому +6

    Always dislike clickbait videos

    • @byunghwara
      @byunghwara 5 років тому

      I'd say it's sarcasm, not clickbait.

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

    why is this guy talking about JAVAsyntax as if Kotlin was the first one to do ALL of the features?

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

      most kotlin people were java people, all of these were news to them just how kotlin is still news to current java people

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

    Can someone give this man a jar of water!? He's dry as hell!!

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

    Why is this dude breathing so heavy

  • @Nextechdynamics
    @Nextechdynamics 5 років тому

    😅😚😚🙁😅😂🤣😅😅