¿Por qué Google introduce un lenguaje más complejo Kotlin para el desarrollo de Android?

Puede ser para usted, pero depende de la persona. Hay ventajas y desventajas de usar Kotlin para Android dev.

Pros

Hay mucho que me gusta de Kotlin. Algunas de las características obvias, como la seguridad nula, el acceso a la propiedad y las excepciones no verificadas, están cubiertas en detalle en otras publicaciones, por lo que no las repetiré aquí. En cambio, aquí están algunas de las características menos discutidas de Kotlin que realmente me gustan.

Conversión automática de Java a Kotlin

El convertidor JetBrains de Java a Kotlin integrado en IntelliJ ahorra una gran cantidad de tiempo. Está lejos de ser perfecto, pero le evita tener que volver a escribir el código mundano. Sin él, la migración de código de Java a Kotlin llevaría mucho más tiempo.

lateinit, Delegates.notNull y vago

La seguridad nula de Kotlin es excelente, pero debido a la forma en que está diseñado el ciclo de vida de la Actividad de Android, a menudo encontrará que debe inicializar una propiedad en una devolución de llamada como onCreate en lugar del constructor de su clase.

Contras

Sin espacios de nombres

Kotlin le permite definir funciones y propiedades en el nivel superior de sus archivos. Esa es una gran característica, pero puede causar cierta confusión cuando se combina con el hecho de que todas las declaraciones de nivel superior están referenciadas sin calificación de Kotlin. Esto a veces puede dificultar saber qué es una función al leer uno de sus usos.

Sin modificador estático

Siguiendo con el punto anterior, Kotlin tiene un manejo inusual de la función estática y las declaraciones de propiedades que se invocan desde Java. No está mal, pero se siente más sucio de lo necesario.

Escribir código en Kotlin ciertamente reducirá la cantidad de líneas de código en su proyecto. Pero también probablemente aumentará el recuento de métodos del código compilado, lo que, por supuesto, es un inconveniente si está utilizando Android. Hay varias razones para eso, pero uno de los principales contribuyentes es la forma en que Kotlin implementa las propiedades.

A diferencia de Java, el lenguaje Kotlin no proporciona ninguna forma de definir un campo simple. Todas las declaraciones val y var en su lugar crean una propiedad. Esto tiene la ventaja de permitirle agregar una definición get o set a una propiedad cuando lo desee sin romper el código que hace referencia a la propiedad. Esa es una gran característica que elimina la necesidad de escribir getters y setters defensivos de la forma en que lo haces a menudo en Java.

Kotlin es en general un gran idioma. Es mucho menos detallado que Java, y tiene una excelente biblioteca estándar que elimina la necesidad de usar muchas de las bibliotecas que hacen soportable la vida de Java. Convertir una aplicación de Java a Kotlin se hace mucho más fácil gracias a la conversión automática de sintaxis, y el resultado es casi siempre una mejora. Si eres un desarrollador de Android, te lo debes a ti mismo para probarlo.

Fuente – Kotlin: Lo bueno, lo malo y lo feo – Ingeniería de seguridad – Medio

Trataré de responder la pregunta desde una perspectiva neutral. También soy nuevo en Kotlin y amo mucho Java. Pero lo que siento es que Kotlin “parece” complejo porque sigue un estilo diferente de programación, una sintaxis diferente a la que los desarrolladores no están acostumbrados. Por eso, parece complejo. Kotlin se encarga de muchos códigos de placa de caldera, que tenemos que escribir en Java. Pero, ¿por qué quieren reducir el código de la placa de la caldera?

¿Recuerdas haber escrito alguna API para tus aplicaciones? Intentamos hacer todo el trabajo pesado en la API, para que el usuario se salve del trabajo pesado. Esto es lo que Kotlin está tratando de hacer. Está tratando de salvar a los desarrolladores de muchas molestias, pero como la apariencia es diferente, parece que estamos obteniendo un reemplazo difícil para Java.

Intente ver el código desde una perspectiva neutral y no como desarrollador de Java, lo encontrará mucho más fácil una vez que comience a aprender el idioma.

Puedes encontrar un muy buen libro aquí:

https://github.com/panxl6/Kotlin

Lo que siento: es una oportunidad única en la vida para aprender un idioma, desde esta etapa. Puede intentar, fracasar y aprender desde cero sin temor a quedarse atrás, ya que no hay expertos en Kotlin. Si trabajas duro puedes ser el EXPERTO. Nosotros, como programadores / ingenieros, debemos centrarnos en lo que se necesita construir y considerar los idiomas y las pilas de tecnología como parafernalia para nuestro trabajo.

Fui desarrollador de C durante mucho tiempo, cuando comencé Java, créanme que odiaba todo. Pero ahora amo a C y Java por igual. Hope Kotlin se agregará a la lista.

Gracias.

También estaba un poco escéptico cuando vi a Kotlin por primera vez, pero recientemente comencé un nuevo proyecto en el que solo uso Kotlin y estoy fascinado.

Kotlin puede parecer más complejo que Java, pero cuando lo use por algún tiempo, se dará cuenta de que le da un gran impulso en la legibilidad y ayuda a ahorrar un montón de código innecesario.

Java es estable y popular, pero está desactualizado. Kotlin está diseñado para funcionar muy bien en la JVM y puede usar todas las bibliotecas de Javas mientras trae características que Java ni siquiera tiene; Las funciones de Lambda, por ejemplo, se introdujeron en Java 8, que no es compatible con Android Studio.

Dos de mis características favoritas de Kotlin son que puede acceder a las variables directamente (C # -Estilo Getters y Setters), por ejemplo. View.context en cambio si View.getContext, y que está evitando excepciones de puntero nulo al no permitir declarar una variable sin un valor y al verificar si la variable contiene un valor antes de usarlo (Operador de Elvis).

Ejemplo:

val l: Int = if (b! = null) b.length else -1

se puede acortar a:

val l = b? .length?: -1

Lo primero es lo primero, Google no introdujo el idioma en E / S. Los desarrolladores han estado usando Kotlin para escribir aplicaciones de Android durante años. Google simplemente anunció que ahora están apoyando oficialmente a Kotlin. Entonces, todos los que han estado usando Kotlin para Android y lo adoran ahora tienen soporte de primera parte, ¡y eso es genial!

Entonces, ¿por qué la gente quiere usar Kotlin? Bueno, hay muchas razones, pero seré breve. Kotlin es un lenguaje que fue diseñado para ser similar a Java pero soluciona muchos de los puntos débiles de Java. Kotlin hace las mismas cosas que Java, pero agrega muchos atajos que facilitan las cosas comunes. ¿Todo este azúcar sintáctico hace que el lenguaje sea más complejo? Claro, supongo que se podría decir eso. Pero para los desarrolladores experimentados de Java, vale la pena aprenderlo porque permite que su código sea mucho más elegante y expresivo.

Y la otra gran cosa acerca de Kotlin es que es 100% compatible con Java, ya que se compila en código de bytes Java. Entonces puedes escribir clases Java y clases Kotlin juntas en el mismo proyecto. Si quieres comenzar lentamente a probar Kotlin en tu aplicación de Android existente, ¡puedes hacerlo!

Para más detalles sobre Kotlin vs Java

Comparación con Java: lenguaje de programación Kotlin

No creo que Kotlin sea más complejo que Java. Es diferente y desconocido. Eso no es lo mismo.

Al menos Kotlin es menos complejo que, por ejemplo, Scala o Swift. Y Kotlin tiene la ventaja de ser utilizado en Android durante años. Por lo tanto, es una cantidad conocida.

Francamente, hubiera sido mucho más feliz ir con un lenguaje mucho más simple como Smalltalk: vea ¿Qué hace que un lenguaje de programación sea “genial?” – Hacker Noon.

Sé una razón:

Java es propiedad de SUN Microsystems y es de código abierto, oficialmente Java se usa en el desarrollo de aplicaciones de Android, pero SUN Microsystems dice que Java no es gratuito para la plataforma de desarrollo de aplicaciones como Android y que hay muchos problemas en Android (mientras se usa Java) que son difíciles de solucionar. manejar por los desarrolladores.

Pensé que habían solucionado esos problemas en Kotlin.

Creo que Google crea una alternativa a Java, Java ahora es propiedad de Oracle anteriormente, era un activo de código abierto y soles, por lo que no hay garantía de que Oracle lo mantenga abierto por mucho tiempo en el futuro, pronto podrían introducir un nuevo acuerdo de licencia y comenzar a cobrar para ello