Por que Kotlin é melhor que Java?

Esta é uma resposta à postagem traduzida Por que Kotlin é pior que Java? ... Como a argumentação original é baseada em apenas dois exemplos, não perderemos tempo examinando essas "desvantagens" de Kotlin.





Metadados proprietários?

uma boa quantidade de detalhes sobre o funcionamento interno de kotlinc estão escondidos dentro dos arquivos de classe gerados ... sem IDEA, Kotlin morreria imediatamente





Este não é um código proprietário, mas apenas uma maneira de o compilador adicionar dados adicionais em um formato de arquivo .class embutido em código, que antes era aprimorado apenas para javac. Os metadados são necessários para reflexão e podem ser removidos durante a compilação. O código-fonte dos metadados está aberto e disponível publicamente .





Kotlin ficará para trás?

Resumindo, a mensagem do artigo original é que Kotlin foi inovador, mas Java adicionará todos os mesmos recursos de linguagem, só que mais pensativos e melhores, e já a versão Kotlin sairá do mainstream.

Como exemplo, o autor dá instanceof



:





Kotlin fez algo assim





if (x instanceof String) { 
  //  x   String!   
  System.out.println(x.toLowerCase()); 
}
      
      



Mas na versão 16+ do Java, ficou assim:





if (x instanceof String y) {  
  System.out.println(y.toLowerCase()); 
}
      
      



, , . , «», Kotlin -, Kotlin , Java. , Java : , « » (, «» -).

...

Java . instanceof , , Kotlin Java: , Java - ( , JEP ) , Kotlin.





Kotlin. , Kotlin . , ( ), Kotlin , , :





when(val v = calcValue()) {
  is String -> processString(v)
}
      
      



, . Java c if/instanceof/switch:





when(val v = calcValue()) {
  is String -> processString(v)
  42 -> prosess42()
  is Int -> processInt(v)
  else -> processElse(v)
}
      
      



, Kotlin, , - Java, , , , Kotlin.





Kotlin , , Java, .





, Kotlin . , Java. C# Kotlin Java , Java , , . Java , , .





null, , Java Optional.ofNullable



. Data- record



.





Java , , . Optional null, record data class.





, Kotlin ?





, Scala Java. , ++ .

, Java . Kotlin, , Android , backend jvm . Kotlin , , , .








All Articles