Hace 4 años | Por charly-0711 a hipertextual.com
Publicado hace 4 años por charly-0711 a hipertextual.com

Creado como alternativa a Java, Kotlin es un lenguaje de programación que Google ha colocado en primera línea para desarrollar Android en el futuro, en gran parte por sus disputas con Oracle, propietaria de Java. ¿Logrará esta relación de simbiosis que Kotlin desbanque a lenguajes tan populares como Java o JavaScript? Del 4 al 6 de diciembre se celebra en Copenhagen, Dinamarca, la Kotlin Conf’19, la conferencia mundial de Kotlin que llega a su tercera edición. Según sus responsables, habrá más de 1.500 asistentes y más de 60 conferenciantes.

Comentarios

D

Está pasando como con iOS y Swift / Objective C pero unos años por detrás. Por ahora todavía se encuentran más cosas en Java que en Kotlin pero en cualquier momento será al revés como ya ocurre en iOS.

r

#7 muy valiente eso teniendo en cuenta el hipsterismo de otros lenguajes como ruby, scala, go... Que han despegado y caido con tanta frecuencia. Más tiobe y menos hipertextual.com

D

#17 hipsterismo Go?

r

#37 go tuvo hype cuando salio y puedes buscar en google el uso que tiene ahora (tiobe, stackoverflow, linkedin, infojobs, indra, everis,...). A favor de que se invente algo mejor que java y que supere el ecosistema de herramientas de java... Encantado.

Zade

#7 En efecto, Swift es ya un estandar de facto en iOS y su hermano gemelo Kotlin va por el mismo camino (y puede que lo consiga incluso en menos tiempo). A día de hoy casi todos los proyectos nuevos de Android piden Kotlin

Nagash

#0 ¿Logrará esta relación de simbiosis que Kotlin desbanque a lenguajes tan populares como Java o JavaScript?

No. siguiente pregunta.

H

#28 Pues yo diría que sí.

Hace dos años, o incluso uno, el discurso que soltaba más de una empresa o recruiter era "sí, está muy bien, pero aquí programamos en Java y necesitamos gente rodada en Java".

Desde hace un año aproximadamente, y cada vez de forma más clara, ahora el discurso es "culo veo culo quiero" o "lo quiero porque Pepe el de la competencia también lo usa".

Nagash

#30 Por ahora el indice TIOBE que es el estandar de medida parecería indicar otra cosa https://www.tiobe.com/tiobe-index/ , Java esta en el primer lugar y Kotlin en el 40

H

#c-36" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3140013/order/36">#36 Depende del contexto. Allá donde se use Java puro tampoco hay mucha presión por pasarse a Kotlin.

Donde sí hay esa presión, y es exagerado, es en Android. En Android, Java se ha quedado atascado mucho tiempo en la versión 6, teniendo que tirar de guarradas como Retrolambda para meter algunas de las cosas que traía Java 8 o superiores.

En Android eso ha supuesto pasar de un lenguaje revenido y sin características que ya llevaban años presentes en otros lenguajes (como las propiedades de C#), a ponerse al día. Por eso está arrasando. Google lo apoya sin disimulo porque le permite soltarse otro cacho más de Oracle.

D

#33 yo también

H

Kotlin ya llevaba un tiempo rondando, pero el pistoletazo de salida fue hace dos años cuando Google anunció que le iba a dar soporte oficial.

Desde entonces, en Android está arrasando. Kotlin no es ni mucho menos una moda, éste sí ha llegado para quedarse. Se carga de un plumazo varios problemas crónicos de Java como la verbosidad. Y de paso obliga a saber algo más de programación para explotar la concisión que Kotlin ofrece.

En cristiano de cara a las charcuteras: ahora va a ser bastante más difícil formar "pogramadoress" con un cursito de dos/tres meses. Se han recuperado muchos conceptos de C++ como sobrecarga de operadores o acabar con el horror ése de meterlo todo dentro de una clase.

Y el programador aún puede agradecer que no se hayan recuperado los punteros.

r

#29 que la verbosidad es un antipatron real es una moda como un templo

sorrillo

#12 Microsoft y Apple no ofrecen su sistema operativo en forma de software libre, salvo las aplicaciones específicas de Google.

Eso provoca que los usuarios no se sientan suyo el sistema operativo y esperen que sea el fabricante quien lleve la voz cantante.

tiopio

Google metiendo las manos en todo.

llorencs

#3 E incluso con Python con Kivy...

Liet_Kynes

#18 No lo conocía. La verdad es que quería empezar a desarrollar apps con Ruby Motion porque Ruby es un lenguaje que me encanta pero el entorno de desarrollo solo funciona en OS X. La verdad es que Kivy tiene buena pinta y versión para linux. Me estaba tentando aprender python y creo que ahora ya tengo la excusa

Rudolf_Rocker

#3 Pero como lenguaje oficial solo están Kotlin y Java.

r

#2 como que en produccion hay muchas cosas especificas de la 8 lol

frankiegth

#1. Google ya esta metido en todo pero empeora por momentos (ahora Google quiere eleminar de un plumazo los bloqueadores de publicidad de sus navegadores) pero Oracle es el auténtico troll del software desde hace décadas y va camino de destruir Java como una opción 'deseable' en proyectos software. Goto #2.

frankiegth

#2. Me acabas de solucionar un problema que tenía con Java de un plumazo. La versión 11 de Java no me ejecutaba en Gnu/Linux la última versión de JSIDPlay2 V4.1' por temas de librerias que la vesión 11 de Java ya no incluye de forma estandar y es una pesadilla de manual integrarlas de nuevo.

Acabo de desinstalar la vesión de Java 11 y he instalado la versión 8 de Java y ahora funciona a la primera. Mil gracias. https://csdb.dk/release/?id=178348 (CC #1)

frankiegth

Edit #34. versión, versión, versión. (CC #2)

y

#1 kotlin no es de google, es de Jetbrains una empresa Checoslovaca.

https://en.wikipedia.org/wiki/JetBrains

t

#5 Es que Google, tanta empresa que es y luego:

- Android fue comprado
- Al principio se desarrollaba en Eclipse
- Tuvo que ser Intel la que sacó un emulador decente, pues lo que había se arrrastraban
- Por fin sacan en IDE mejor, Android Studio, y es de JetBrains
- Saca un nuevo lenguaje oficial para Android y es de JetBrains

y

#6 Lo normal desde el inicio de la informática: Uno lo desarrolla y cuando ven que tienen éxito viene otro lo compra y se forra con ello.

sorrillo

#6 Google facilitó que Android estuviera en todas partes, y eso fomenta que el resto se vean involucrados en el proyecto y aporten las mejoras que entiendan útiles.

t

#9 Pero el tema es que Microsoft tiene su Visual Studio y Apple su xCode, mientras que Google ofreció durante años la chapuza de los plugins para Eclipse y la basura de emuladores.

r

#6 cierto. Google lleva 10 años recordando a los dinosaurios de los 90

D

#5 República Checa o Eslovaquia?
Creo que hace tiempo que se separaron

y

#15 Dios, tienes razón. República Checa. lol lol

Yo es que soy de la EGB

a

#1 El problema no es que sea Google, el problema es que puede convencernos de que sea bueno, y puede que lo sea. Nos ponemos a aprenderlo por las buenas o porque el que dirija los proyectos le entre el hype y en dos o tres años con proyectos en produccion Google decide que no mola y nos deja a todos con el culo al aire.

Y no seria la primera vez.

D

#22 el problema es por las extensiones. Trabajar con ellas desde Java es feo y doloroso. Se crea una clase intermedia con una función estática.

editado:
el uso de lambdas también queda feo en Java, pero comparando con llamar a una función de extensión es una maravilla

EDIT2: sé que se puede porque me tocó hacerlo en un proyecto legacy que estamos modernizando

Rudolf_Rocker

#22 De la wikipedia: La programación modular es una técnica de diseño de software que enfatiza la separación de la funcionalidad de un programa en módulos independientes e intercambiables, de modo que cada uno contiene todo lo necesario para ejecutar sólo un aspecto de la funcionalidad deseada.

Por lo que veo, la librería tiene un módulo core y después diferentes funcionalidades que le puedes añadir implementando los otros módulos, de esta manera no tienes que implementar en tu proyecto todas las funcionalidades cuando solo necesitas una en especifico.

Y no están diciendo que no funcione con Java, lo que dicen es que te va a resultar molesto, seguramente porque lo que se hace en Kotlin en 2 líneas, en Java tengas que usar 20. Quizás usen bastante function parameters y coroutines (las coroutines son un infierno en Java).

musg0

#38 Debería haber dicho que no supe hacerlo funcionar más que no funciona, o como dices, si hay que escribir 20 líneas para 2, es tan complicado que no merece la pena meterse en ese lío. Entre que soy bastante novato en Java y Android, para cuando me empiezo a enterar algo de Java los de Google se sacan el Kotlin y a aprender otra cosa nueva.

Rudolf_Rocker

#41 Mírate este curso de Udacity:

https://eu.udacity.com/course/developing-android-apps-with-kotlin--ud9012

Te animo a que te pongas desde ya a programar con Kotlin en Android, hazme caso que el cambio no es tan grande y enseguida vas a ver los beneficios.

koki142

Por si le interesa a alguien: en mi empresa en Tokyo usamos Kotlin + RxJava + Dagger2 para nuestras app en Android (y es una gozada!)

musg0

#14 A ver si es verdad Si un día estoy aburrido igual me pongo porque sí es que es verdad que parece mucho menos farragoso y más claro de escribir que Java

musg0

Ya me he encontrado alguna librería que uso, y que han migrado a Kotlin, pero que no se puede usar con proyectos en Java. Creía que era compatible 100%, pero se ve que no.
Tampoco sé si hay alguna forma de migrar poco a poco una App que ya usa Java, pero al menos por ahora suena a meterse en un fregao importante que no sé si aporta mucho.
Probablemente sea el lenguaje del futuro de Android, pero por ahora sólo lo veo para Apps nuevas

c

#4 Me interesa mucho esto que acabas de poner. Llevo año y medio desarrollando backend con Kotlin y lo más curioso es que genera bytecode compilado java, así que si no puedes usar la librería migrada a Kotlin es bastante extraño. Me gustaría investigar sobre el tema, ¿puedes darme algo más de info?

musg0

#10 La librería en concreto es esta https://github.com/afollestad/material-dialogs, y en el cambio de versión de Java a Kotlin pone esto "This library is now designed specifically to work with Kotlin - it technically will work with Java, but not pleasantly - extension modules will not work in Java."
Así que en teoría funciona con Java pero no conseguí que me hiciera caso. Supongo que al no haber ejemplos de cómo serían las llamadas en Java no supe dar con la forma correcta.
Lo de los módulos no sé qué es, pero ya dice que no funcionan con Java.

c

#4 Yo tengo algunas apps que estaban hechas totalmente en Java y todo lo nuevo lo voy haciendo en Kotlin y migrando poco a poco lo de Java según puedo. Es perfectamente posible hacerlo, bien sencillo además.
Y Kotlin le mete mil patadas a Java, especialmente para desarrollar en Android.

D

#4 Puedes ir migrando clase/fichero a clase. Muy facil, 100% compatible.

pedrobz

#4 Es muy raro lo que dices, una de las grandes ventajas que tiene Kotlin respecto a otros es su integración con java. Para empezar Kotlin se ejecuta en la JVM así que el .class no lo puedes distinguir de uno creado con java. Segundo las herramientas y entornos de desarrollo permiten el uso transparente de clases Java y Kotlin juntas.

A modo de ejemplo yo creé un proyecto mezcla hecho con Spring boot, la mayoría del código era Java, pero el modelo de datos lo tenia en data class de Kotlin, y el programa los usaba como clases java normales, hasta JPA los guardaba en la base de datos sin problemas.

Y mucha gente ha hecho mezclas aun mas raras que la mía.

Rudolf_Rocker

#4 En mi curro estamos migrando una aplicación de cerca de 250.000 líneas de código Java y llevamos 91.000 en Kotlin y quedan 65.000 en Java todavía. No es para nada ningún fregado simplemente cuando vas a refactorizar una funcionalidad, la migras a Kotlin sin ningún problema.

Es imposible que no puedas usar la líbrería si está en Kotlin. Te lo aseguro.

Hombre lenguaje del futuro... Todo lo que hacen nuevo en Google de Android se hace en Kotlin, y las grandes empresas todo lo hacen con Kotlin, yo creo que mas presente no puede tener. De hecho puedes verte las estadísticas de StackOverflow sobre el crecimiento que ha tenido en estos dos últimos años. Vamos, yo ya no entiendo hacer una aplicación Android que no sea con Kotlin, es que te da una agilidad comparado con Java que no hay color vamos. Y encima es medio funcional, pero si usas librerías como Arrow puedes usarlo de manera funcional 100%.