Nuevo Kotlin User Group en Valencia y event "Estado de Machine Learning en Kotlin"
¡Se acaba de inaugurar el nuevo Kotlin Valencia User Group! Inicialmente organizado por Carlos Cáceres
Artículo original: http://blog.jetbrains.com/kotlin/2015/11/the-kotlin-language-1-0-beta-is-here/
¡Nos complace presentar la Beta de Kotlin 1.0 para la JVM y Android!
Recapitulando: Kotlin es un lenguaje de programación moderno en el que JetBrains lleva trabajando algún tiempo.
Esta entrada pretende indicar en qué punto estamos ahora y hacia dónde nos dirigimos. Podéis ver los cambios de esta versión aquí.
Kotlin fue concebido en 2010. Tras diez años de desarrollo en Java, teníamos la sensación de que se podía mejorar significativamente la productividad que teníamos en JetBrains usando un lenguaje moderno para la JVM junto con Java. Tras haber evaluado otras opciones disponibles, decidimos que necesitábamos un lenguaje nuevo. Y teníamos la habilidad y los recursos para crear dicho lenguaje. Nuestra principal línea de negocio se basa en crear herramientas para desarrolladores, y el principio que nos guiaba es que para hacer los productos más increíbles para los usuarios teníamos que crear herramientas increíbles que necesitábamos nosotros mismos. Esto ha sido así con InteliiJ IDEA, ReSharper y otros IDEs, así como con TeamCity y otros productos de servidor, así que hemos partido del mismo principio para otra herramienta: un lenguaje de programación.
Diseñamos Kotlin como un lenguaje moderno para la industria,
y teníamos unos cuantos requisitos específicos para él.
En primer lugar, nuestros proyectos viven y crecen bastante
(muchos millones de línea de código), así que necesitábamos tipado estático
para ser capaces de mantener semejante base de código durante años.
En aquel entonces, todo el código estaba escrito en Java,
así que necesitábamos un mecanismo para de migrar fácilmente,
de forma que pudiésemos introducir el nuevo lenguaje gradualmente en
nuestra base de código Java afectando lo mínimos posible al resto del código.
También, siendo JetBrains, no queríamos comprometer la calidad de las herramientas:
buscábamos un nuevo lenguaje que nos hiciese más productivos,
y creemos que gran parte de eso depende de las herramientas.
Finalmente, necesitábamos un lenguaje fácil de aprender y de comprender:
en nuestros equipos no separamos a “gente que escribe librerías” de
“gente que usa librerías”, y queremos que todos nuestros desarrolladores
sean igual de productivos con el lenguaje que usen. Semejante proyecto
implica tomar muchas decisiones, y ya sabíamos desde el principio que es
imposible hacerlo todo perfecto con el primer intento. Es por eso que
estuvimos un periodo de tiempo considerable experimentando y validando las
decisiones clave: ya que estaba siendo usado por adoptadores tempranos
tanto dentro como fuera de JetBrains obteníamos feedback y hacíamos cambios
continuamente (¡muchas gracias a nuestra comunidad por todos los comentarios
que nos habéis hecho!). Esto nos dio perspectiva de un montón de casos de
uso y ahora creemos que seremos capaces de
mantener compatibilidad hacia atrás tras la 1.0.
JetBrains ha estado usando Kotlin en producción con IntelliJ IDEA,
YouTrack y otros productos ya bastante tiempo. En estos momentos,
ya tenemos más de 250.000 líneas de código en Kotlin en producción
además de casi la misma cantidad en el proyecto kotlin
en sí. Mientras que algunos de nuestros proyectos están escritos íntegramente
en Kotlin (account.jetbrains.com), otros se han ido incluyendo en
nuestras bases de código Java, como teníamos planeado inicialmente.
Hemos llegado a un nivel de interoperabilidad que introducir kotlin
es transparente para las clases Java: Se puede llamar a Java desde
Kotlin y al revés, se puede tener código de ambos lenguajes mezclados
en un mismo proyecto, teniendo como resultado archivos .class totalmente
compatibles con las herramientas de java.
Kotlin nos está sirviendo bien y tenemos un
equipo dedicado de 20 personas desarrollándolo.
Aún cuando no hemos llegado a la 1.0 todavía, otras compañías y desarrolladores individuales ya están usando Kotlin en producción
en desde backends a aplicaciones Android.
Tenemos constancia de
Expedia,
Prezi.com y
muchos otros
(sentíos libres de añadir vuestra compañía haciendo una PR aquí).
El número de líneas de código Kotlin en repositorios públicos de GitHub ha crecido exponencialmente hasta ahora (sin incluir los repositorios de JetBrains):
Por nuestra propia experiencia con el lenguaje y a partir de la información que tenemos de otros usuarios feeling de Kotlin es el siguiente:
Aún cuando lo estamos usando activamente en producción, Kotlin aún está en beta. Lo que significa para ti:
Kotlin no permanecerá en beta mucho tiempo y la 1.0 va a llegar pronto.
Nuestro objeto es hacer que la experiencia de los usuarios sea lo mejor posible, y eso incluye compatibilidad entre versiones de Kotlin. Tras la 1.0 todos los cambios en el lenguaje y librerías tendrán compatibilidad hacia atrás:
Todo lo indicado arriba aplica únicamente al soporte de JVM/Android. El soporte de JavaScript sigue siendo experimental por el momento y tendrá su propia versión más adelante.
Virtualmente cualquier framework de Java o Android funciona sin ningún problema con Kotlin. Entre otros, eso incluye Spring MVC, Vaadin, Vert.x y Jackson. Muchos frameworks de Android requieren procesado de anotaciones que están disponibles en Kotlin a través de kapt y soporta Dagger 2, DataBinding, DBFlow, ButrerKnife, AndroidAnnotations y otros.
Kotlin tiene sus propios frameworks y librerías desarrolladas por JetBrains y la comunidad. Algunos ejemplos: Anko, RxKotlin, funKtilnale, kohesive, kovenant, la herramienta de Kobalt y mucho más.
Hay un conversor integrado en el IDE que ayuda a migrar el código de Java a Kotlin. Y otro online disponible en http://try.kotlinlang.org/
¡Que tengáis un buen Kotlin!