Java posiblemente es el primer lenguaje de programación en el que uno piensa cuando piensa en Android, pero en realidad no es el único. Se pueden realizar aplicaciones con diferentes lenguajes de programación, incluyendo C#, Lua, C/C++, JavaScript, Scala y Clojure, pero existe un lenguaje de programación en particular que esta tomando mucha atención desde el Google I/O de este año.

Durante el Google I/O, Google anuncio que harían de Kotlin un lenguaje oficial para el desarrollo de aplicaciones Android. En la versión 3.0 de Android Studio se tiene soporte para construir aplicaciones con Kotlin, esto se puede realizar con tan solo seleccionar un checkbox en la ayuda para crear proyectos.

Esta noticia ha generado mucho ruido, y a lanzado el debate de si debemos desarrollar con Kotlin o Java. Recientemente se han escuchado cosas buenas de Kotlin , pero si realiza el cambio de Java a Kotlin , ¿Exactamente que beneficios recibe? ¿Que características tiene Kotlin , que Java no?

En este artículo, vamos a revisar las principales diferencias entre Android y Kotlin, incluyendo algunas características que estaría dejando de lado si hace el cambio a Kotlin.

Mejora en el uso del findViewById

Si compara una clase Kotlin y una de Java que hagan lo mismo, la clase de Kotlin por lo general será más concisa, pero existe un área en particular donde Kotlin reduce en gran medida el código extra que se requiere para escribir: findViewByIds.

La extensión de Kotlin para Android, permite realizar el import a una referencia del View en el Activity, en este punto se puede trabajar con dicha vista al ser parte del Activity. El resultado, que no se necesita escribir el findViewById.

Ahora, por ejemplo, si el archivo activity_main.xml tiene un TextView con el ID textView, luego usted puede agregar lo siguiente al Activity:

Luego, puede acceder TextView utilizando el ID:

Esto es mejor que más sucinto que el equivalente en Java:

Kotlin no permite nulos

La excepción NullPointerException era una fuente constante de frustración para los programadores Java.  Java permite asignar un null para cualquier variable, pero si se quiere hacer uso de una variable que tenga el valor null, se lanza la excepción NullPointerException.

En Kotlin, no se puede asignar null a una variable, y esto cumple para todos los tipos. Si usted intenta asignar un valor null a una variable, el código falla en tiempo de compilación, entonces, ninguna de las siguientes líneas compila:

Si realmente requiere que una variable tenga null, usted requiere en forma explícita indicar que dicha variable podrá ser null:

Esto hace casi imposible encontrarse con NullPointerException en Kotlin, de hecho si encuentra una es por que en forma explícita indico a Kotlin que la lanzara o el NullPointerException es originado por código Java externo.

Extensión de Funciones

Kotlin permite a los programadores heredar una clase con nueva funcionalidad, que es ideal si usted piensa que hay una clase a la que le falta un método.

Esta extensión de funciones no se encuentra disponible en Java, aunque si se encuentra disponible en otros lenguajes de programación que pueden ser utilizados para programar con Android, tal como C#.

Para crear la extensión de una clase, se realiza de la siguiente forma:

Kotlin no tiene excepciones del tipo checked

Kotlin no tiene excepciones del tipo checked, entonces no se requiere capturar o declarar ninguna excepción.

Si esto es algo que te parece adecuado o te hace querer seguir con Java, depende de tu opinión sobre las excepciones del tipo checked. Si no te gusta tener tu código rodeado de try/catch, debes estar contento con esta omisión, sin embargo si encuentras que las excepciones del tipo checked son una ayuda para tener código más robusto, entonces esta es una ventaja de Java sobre Kotlin.

Clases de datos

En los proyectos se tienen los denominados bean que se utilizan para indicar los objetos base de nuestro proyecto. En Java, se puede realizar mucho código para este tipo de clases a fin de agregarle los métodos get y set apropiados, constructores, además de los métodos hashCode(), equals() y toString().

En Kotlin, si le incluye la palabra reservada data, el compilador realizara todo ese trabajo por ustedes, incluyendo todos los métodos get y set necesarios.

Cast inteligente

En Java, constantemente se tiene que revisar el tipo de un objeto y luego realizar un cast del objeto, en los casos que se pueda realizar el mismo.

Kotlin puede realizar el manejo de estos cast redundantes por usted, entonces no se requiere realizar el cast dentro de una sentencia si se ha realizado la validación con el operador “is”. Para el ejemplo, el compilador sabe que el siguiente cast es seguro:

Kotlin no soporta conversiones implícitas

Kotlin no soporta las conversiones implícitas para números, entonces los números de menor rango no pueden ser convertidos a los tipos mayores. En Kotlin, si quiere asignar un valor del tipo Byte a uno del tipo Int, se requiere realizar una conversión explícita, sin embargo Java soporta la conversión implícita.

Intercambiable con Java

Si aún no decide si utilizar Kotlin o Java para el desarrollo con Android, existe una tercer opción: utilizar ambos. Dejando de lado las diferencias, Java y Kotlin son 100% intercambiables. Se puede llamar código Kotlin desde Java, y puede llamar código Java desde Kotlin, así es posible tener clases Kotlin y clases Java trabajando juntas.

Esta flexibilidad es muy útil si quiere empezar a utilizar Kotlin en un proyecto existente y lo quiere para las nuevas funcionalidades. Considerando que ambos lenguajes, Kotlin y Java, compilan en byte-codes, el usuario final no notará la diferencia.

Conclusiones:

Como ve, existen buenas razones para preferir Kotlin sobre Java, sin embargo hay algunas cosas donde Java tiene ventaja. Aunque el debate de si utilizar Kotlin o Java continuara, ambos tienen sus propios méritos.

Artículo basado en Kotlin vs Java.

Kotlin vs Java, principales diferencias de los lenguajes oficiales de Android
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Google+
Google+
Etiquetado en:        

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook
A %d blogueros les gusta esto: