Obviamente, es realmente difícil de predecir, pero creo que tiene mucho que ofrecer y un impulso significativo.
Hace un par de años, muchos lo descartaron como una pérdida de tiempo para que JetBrains invierta. Sin embargo, otro lenguaje JVM, ¿no tenemos suficiente? Es solo una Scala menos capaz. Un Groovy de tipo estático.
Sin embargo, donde Kotlin se ha ganado a la gente, creo que es con 3 cosas:
- ¿Qué se debe hacer para obtener grandes patrocinadores para los festivales tecnológicos?
- En Star Trek, si la Federación es tan tecnológicamente avanzada, ¿por qué no tienen dispositivos de ocultación como los Klingon menos avanzados?
- ¿Cómo puedo aprender los conceptos básicos de desarrollo web y administración de servidores? Intenté buscar tutoriales en Google, pero los resultados no fueron muy útiles. ¿Cuáles son algunos libros / recursos para construir una comprensión sólida de los fundamentos de back-end?
- ¿El cifrado de una palabra es igual para la misma palabra?
- ¿Cómo puede realmente ayudar la tecnología digital en el aprendizaje profesional de los adultos?
- Facilidad de comenzar. Literalmente, puede mezclar el código de Kotlin con el código de Java en el mismo proyecto. La curva de aprendizaje para el idioma es bastante superficial (tal vez menos que Groovy). La biblioteca estándar es pequeña (compárese con Scala con su biblioteca de colecciones completamente diferentes y una gran cantidad de problemas con implicidades que convierten cosas de un lado a otro para interoperabilidad, por ejemplo). Interopera mejor con Java que con cualquier otro lenguaje JVM. No requiere herramientas especiales o sistemas de módulos (el sistema de tipos de Ceylon es más poderoso que el de Kotlin, pero no puede simplemente arrojar un código de Ceilán en un proyecto existente).
- Soluciones simples a las frustraciones cotidianas en Java. ¿Seguridad nula? – comprobar. ¿Incompatibilidad de tipos de opciones con bibliotecas heredadas? – comprobar. ¿Se requiere repetitivo para definir los tipos de valor? – comprobar. ¿Tipo de fundición excesivo? – comprobar. ¿API funcional que va más allá del mínimo? – comprobar. Escriba DSL seguras? – comprobar. ¿Capacidad para ampliar las bibliotecas principales (sin fugas de extensiones y manteniendo la compilación estática)? – comprobar. Corutinas? – comprobar. Cadena con plantilla? – comprobar. La lista continua. Otros idiomas tienen algunos, incluso muchos de esos. No conozco ninguno en la JVM que los tenga todos.
- Las herramientas son geniales. Por supuesto que es. El lenguaje está hecho por las personas que construyen el IDE. Groovy tardó años en obtener un soporte IDE medio decente y todavía no es tan bueno como eso para Java (es más difícil soportar un lenguaje de tipo dinámico ya que el IDE tiene que confiar en la heurística y el conocimiento de las bibliotecas hasta cierto punto). El soporte de Scala en IntelliJ es decente, pero es propenso a agotar los recursos del sistema (puede decirle a las personas que codifican en Scala porque puede escuchar a los fanáticos de la CPU desde el otro lado de la habitación).
Con el primer Gradle y ahora Google saltando a bordo, el idioma tiene credibilidad. Aunque cualquier programador sensato no solo dice “oh, Google lo está usando así que debería usarlo”, ese tipo de crédito es importante para afianzarse en organizaciones más conservadoras e inertes (la mayoría de ellas).
JetBrains y Google van a establecer una fundación sin fines de lucro para administrar el lenguaje, por lo que ya no será el “lenguaje JVM patentado de JetBrains”.
Kotlin definitivamente tiene una oportunidad de ser grande. No va a desplazar a Java en el corto plazo, nada lo es. Sin embargo, puedo ver que se está volviendo muy popular.