juego-de-tronos-friki

La Armada de Kotlin se hace a la mar

Las noticias que nos han llegado desde el Google IO son varias y por varios frentes. Sin embargo, no necesariamente las que recibieron más bombo y platillo por parte de Google son las más relevantes.

Veamos por ejemplo, Android Go. Se trata de toda una gama de dispositivos y software para el mercado más de baja gama posible. Tal vez Google gane algo en su negocio de publicidad o de recolección de datos de usuarios, pero está claro que para nosotros, desarrolladores de Apps, poco vamos a pinchar ahí. Es un tramo del mercado absolutamente no rentable para nosotros.

Luego, tenemos todos los productos relacionados con Machine Learning, incluyendo las famosas TPUs (hardware específico para ejecutar Tensor Flow con el máximo rendimiento) que acaban de lanzar. Ahí sin duda está el mañana y los cambios estratégicos en el mercado vendrán de ahí.

Sin embargo, lo que más nos va a afectar de forma inmediata, es la puesta en largo de Kotlin. No es un lenguaje nuevo, ni mucho menos, lleva ya mucho tiempo siendo desarrollado por JetBrains y es una opción más de las disponibles para la JVM.

La gran diferencia, es que a partir de ahora, Google lo apoya de forma oficial y ocupa un lugar igual al de Java a la hora de desarrollar para Android. Si eso no es una razón de peso, te dejo 7 razónes más para aprender este lenguaje.

Es decir, Kotlin lleva años deambulando por Essos, pero finalmente parece que su momento de embarcar hacia Poniente ha llegado.

En un año, Kotlin será el lenguaje estándar para Android

java-ha-muerto-juego-de-tronos

Sospecho que a Java le quedan 4 telediarios en Android. El lenguaje adolece de ciertos achaques por la edad, y por si fuera poco, las notables mejoras introducidas en las últimas versiones de Java, no han llegado a Android, y es posible que no lleguen nunca ya.

Se ha hablado mucho de Swift en estos últimos años, y estaba claro que Google tenía que mover ficha y sacar algún lenguaje más «sexy» para Android.

Lo que pocos se han dado cuenta de que Kotlin está en muchísima mejor posición para asaltar el mercado de desarrollo Android de lo que estaba Swift para hacerlo en iOS cuando salió.

Incuestionablemente, Kotlin es un lenguaje mejor diseñado para su propósito (sustituir a Java) de lo que los estaba Swift en el suyo (sustituir a Objective C). Swift hizo una ruptura total con todo el código pre-existente y con la forma de programar para Cocoa, lo cual ha creado y aun crea una enorme fricción. Por si fuera poco, salió muchísimo antes de estar listo para para ser usado, y sufrió una cantidad enorme de cambios que rompían el código (y los huevos).

Kotlin es distinto en varios puntos claves:

  • No representa un paradigma de programación sustancialmente  distinto y no niega el legado orientado a objetos de Java y la JVM.
  • Kotlin es una mejora sobre Java sin ninguna desventaja respecto al último.
  • Es un lenguaje estable que ya ha sido usado para desarrollos comerciales.

Por lo tanto, aunque se seguirá manteniendo todo el código pre-existente en Java y todo desarrollador Android tendrá que conocer Java, en un año todo nuevo proyecto de Android se hará con Kotlin.

Pronto será el lenguaje de referencia para la JVM

Los dinosaurios siguen teniendo su lugar (en los museos) e incluso COBOL tiene el suyo (banca y seguros). De la misma forma, Java seguirá siendo relevante en aplicaciones empresariales que nadie se atreve a cambiar.

Sin embargo, está claro que Kotlin es el mejor candidato para ser el actor principal en la JVM para todo tipo de proyectos. La razón principal es que se trata de un Java mejor que Java.

Hay más candidatos, por supuesto, para hacerse con el Trono de Hierro, aquí van algunos:

banderas-juegos-de-tronos-segun-lenguaje-de-programacion

Scala

Es uno de los contendientes que aspira al trono desde hace ya tiempo. Sin embargo, aunque tiene sus virtudes, es un lenguaje sumamente complejo, tanto o más que Swift o C++. Esto dificulta su adopción, ya que cada empresa donde se usa, termina utilizando un dialecto del mismo, lo que hace difícil integrar nuevos programadores y establecer reglas comunes de código.

Sospecho que Scala seguirá siendo fuerte en su nicho, pero el Trono de Hierro está fuera de su alcance. Como Nymeros Martell, vamos.

Ceylon

Este es quizás el menos conocido de todos. Tenía todo para ganar,  y dió los primeros pasos para hacerse con Android sacando una integración con Eclipse. Además, proviene de una casa de rancio abolengo, como redHat. Sin embargo, Google optó por otro pretendiente: basó su Android Studio no en Eclipse, sino en IntelliJ de JetBrains (Gracias sean dadas al Altísimo), y ahora encima elige a Kotlin para llevársela al altar.

Aquí tenemos a Rob Stark: empezó fuerte, pero al final todo se desmoronó y quedará como una nota a pie de página en la Historia de Poniente.

Clojure

Realmente nunca ha pretendido el trono. Sus intereses son otros, más intelectuales y esotéricos. Se trata de un lenguaje fascinante, de lejos el más interesante de todos los disponibles para la JVM y que deberías de aprender. Seguirá siendo fuerte en nichos muy punteros, sobre todo de la mano de su amiga Datomic. Estamos ante Samwell Tarly y su novia.

Java

Al igual que Cersei Lannister, tiene que caer y de la peor forma posible. Tiene sus atractivos (es la reina malvada perfecta), pero no puede seguir en el Trono de Hierro de la JVM por más tiempo. Bueno está lo bueno y es hora de hacer el petate.

Kotlin

Aquí tenemos a la niña bonita, a la que al principio nadie le hacía caso. Sin embargo, se fue haciendo con aliados y hoy es la mejor pretendiente al trono, y por derecho propio. Es guapa, competente y tiene carisma: Daenerys Targaryen.

Por si fuera poco, preveo que Google pronto comprará a JetBrains. Este matrimonio, si llega a consumarse, sería como el de Jon Snow y Dany: una pareja muy difícil de batir.

El número de desarrolladores bilingües aumentará

El parecido superficial entre Kotlin y Swift es muy notable. Sin embargo, el parecido no va mucho más allá: Kotlin es de lejos un lenguaje muchísimo menos complicado que Swift.

Preveo que este parecido inicial vaya a atraer a desarrolladores iOS a Android y que la mayor sencillez de Kotlin pueda retenerlos. Todo esto va a crear alianzas antes inverosímiles, como Yara Greyjoy o Tyrion Lannister uniendo fuerzas con Dany. Cosas raras veredes, Sancho…

El futuro está aún por decidir

trono-de-hierro

Nada está decidido aún, y más allá del Muro, Tim Cook reúne sus huestes. No sabemos con qué saldrá Apple en su WWDC, pero algo me dice que los dados decisivos ya han sido lanzados: Swift y Kotlin.

Mucho me temo que dentro de unos años, el lanzamiento tan prematuro de Swift y su aversión a toda la tradición de Cocoa sea visto como un error estratégico de Apple. Tal vez, al final, sea Google quien, de la mano de JetBrains y Kotlin, ria por último.

El tiempo dirá.

 

Fernando Rodriguez

Acerca de Fernando Rodríguez Romero

Co-Founder & Trainer at @Keepcoding_es. Advanced iOS instructor at @bignerdranch. Previous life as pythonista and smalltalker. Coder, Speaker, Blogger, Dad&Cook

Share this:

5 comments, add yours.

Orlando Santiago

Interesante artículo. Me encantó tu analogía con Game of Thrones. Sólo creo que aunque mencionas que Kotlin es mejor lenguaje que Java nunca explicas bien el porque. Tal vez sea un buen tema para una siguiente entrega. Saludos

    Carlos M.

    Me uno a la petición. Sería interesante una comparativa entre ambos lenguajes 🙂
    Un artículo muy interesante, gracias Fernando!

franco paredes

muy buen articulo sr. Little Finger.. 🙂

    Fernando Rodriguez

    Fernando Rodriguez

    Autor

    Me gusta más The Hound: su humor negro y su método expeditivo de resolver problemas. 😉

Leave a comment