Fuera del desarrollo de Android, ¿cuáles son los principales usos de Kotlin?

El objetivo de Jetbrains siempre ha sido hacer de Kotlin un lenguaje que pueda usar en cualquier parte de su sistema de software.

Puede compilar Kotlin a la JVM, haciéndolo disponible para todas las áreas donde se usa Java hoy en día. En particular, Kotlin se puede usar en el backend .

Por otro lado, Kotlin también puede compilar a JavaScript (el soporte aún se está mejorando), lo que lo hace disponible para la interfaz .

También está diseñado para funcionar bien para el desarrollo web y el desarrollo del lado del servidor. Hay un libro disponible sobre esto [1].

En este momento, la gente también está hablando de usar Kotlin para la ciencia de datos y reemplazar Scala / Python, etc., tendremos que ver cómo avanza esta tendencia. Hay una comunidad floreciente alrededor de Kotlin que ya comenzó a crear bibliotecas para este caso de uso.

Actualmente, Jetbrains está trabajando duro en Kotlin Native para permitir que Kotlin se ejecute sin la sobrecarga de una VM si es necesario. Aquí hay una cita que explica esta tendencia y también subraya mis declaraciones de que Kotlin debería ser utilizable en todo su sistema:

Kotlin / Native es otro paso para hacer que Kotlin sea utilizable en una aplicación moderna. Eventualmente, será posible usar Kotlin para escribir cada componente, desde el back-end del servidor a la web o clientes móviles. Compartir el conjunto de habilidades es una gran motivación para este escenario. Otro es compartir el código real.

Para ver hacia dónde podría conducir el futuro, aquí hay otra cita de esa misma página:

Como posible trabajo futuro, estamos considerando los siguientes casos de uso posibles:

  • Aplicaciones de iOS (reutilizando código con Android)
  • Sistemas integrados / IoT (por ejemplo, Arduino y más allá)
  • Análisis de datos e informática científica
  • Del lado del servidor y microservicios (ejecutables de baja huella, que utilizan el poder de las rutinas)
  • Desarrollo de juegos

Fuente: Kotlin / Native Tech Preview: Kotlin sin una VM (los aspectos más destacados son míos)

Por lo tanto, hay muchas áreas donde Kotlin puede tomar una posición más prominente en el futuro, y será emocionante ver cómo esta tendencia actual avanzará.

Notas al pie

[1] Desarrollo web moderno con … por Denis Kalinin [PDF / iPad / Kindle]

Soy el desarrollador de estas aplicaciones en Play Store.

Tuple.me – Aplicaciones de Android en Google Play

Tengo un proyecto de biblioteca común que se usa en todas las aplicaciones de Android. Recientemente intenté convertir mi proyecto de biblioteca a kotlin ya que me impresionó un poco el manejo de kotlin por parte de NPE. Mi lema principal de crear mi propia biblioteca es evitar el repetitivo. Todo lo que hago es algo que hace que mi código sea demasiado difícil de mantener (las razones son que toco mi código cuando estoy libre. Casi una vez en una semana o una vez en un mes Toma al menos de diez a veinte minutos recoger lo que está sucediendo).

Es fácil recordar sintaxis y conceptos difíciles de un lenguaje. Pero es demasiado aburrido ver muchos

trata de atraparlo{}

If (a! = Null && ab! = Null && a.bc! = Null) {// hacer cualquier cosa con abc}

Muchos métodos sobrecargados que llaman a un método desde otro método con valor predeterminado. Este tipo de métodos se acumularon durante un período de tiempo para brindar compatibilidad con versiones anteriores de todas mis aplicaciones.

Gran cantidad de variables volátiles para proporcionar singleton, si inicializo ansiosamente la variable es una sobrecarga. Tiendo a incurrir si los gastos generales son demasiado pequeños, ya que quiero concentrarme en otras cosas. Hace al menos 8 líneas de código para hacer un singleton perfecto. Hay algunos métodos para evitar estas situaciones daga 2 etc. Pero no evitará todas las situaciones. No quiero hacer una implementación perfecta completa con cero gastos generales cuando estoy ocupado y trabajando en estas aplicaciones solo durante una o dos horas por semana.

Hice muchos ajustes en muchas bibliotecas y las implementé por mi cuenta para mis necesidades exactas o escribí una clase de utilidad envuelta alrededor de una biblioteca. El resultado es conocido. Hay muchas clases de utilidades o clases de generador en mi biblioteca.

Escribir clases de pojo es uno de los trabajos más difíciles.

La mayoría del IDE hace el ajuste de código para ocultar cosas no deseadas, como devoluciones de llamada conocidas, etc., pero no es el ajuste perfecto cuando se trabaja en el editor de texto.

Los problemas anteriores no son solo para Android. Viene para todos los productos Java. Cuando pueda deshacerse de estos problemas comunes sin sacrificar nada (JVM madurado, todas las bibliotecas escritas en Java, todo su código anterior, en su mayoría cero sobrecarga o mayor rendimiento) puede hacerlo.

Hay mucho para profundizar. Acabo de usar kotlin durante dos días debido a la exageración. Para su información, he probado Scala. Al principio, self scala dice que puedes llamar a cualquier cosa en java desde scala, pero no al revés. Como llegó Java 8, no quiero aprender scala en profundidad. Como kotlin tiene más compatibilidad que scala, lo probé y vale la pena.

Si necesitas una respuesta simple. Es menos detallado y vale la pena en otras plataformas que no sean Android.

También es el idioma principal para escribir complementos de Gradle desde 2016. Los scripts de compilación de Gradle también se pueden escribir en Kotlin en lugar de Groovy, aunque no estoy seguro de cuánta tracción tiene todavía.

En Netflix lo estoy usando para reescribir el núcleo del microservicio de orquestación de Spinnaker. [1] Ese es el código del lado del servidor que se ejecuta en la infraestructura de la nube de AWS. Es trivial usar Kotlin en lugar de Java en ese contexto.

Notas al pie

[1] Spinnaker Orchestration – Netflix TechBlog – Medio

More Interesting

¿Qué debe saber un desarrollador fullstack en 2016? ¿Qué idiomas deberíamos saber realmente?

¿Por qué los ingenieros de software pierden regularmente las fechas de lanzamiento del producto?

¿Existe una correlación entre los diseñadores de software / juegos y los científicos sociales?

¿Cuáles son algunos buenos softwares de monitoreo de empleados que graban pulsaciones de teclas o capturan imágenes en la pantalla?

¿Cuál es su opinión sobre Atom (editor de texto)?

¿Es válido el concepto de ingeniero 10x? Específicamente, ¿es este multiplicador defendible? ¿Hay datos que sugieran que los mejores ingenieros son 10 veces mejores que los ingenieros normales, a diferencia de 3x o 100x?

¿Qué es VoLTE? ¿Es un software? ¿O una infraestructura de hardware?

¿Puede el software de reconocimiento de fotos identificar un estilo (p. Ej., Urbano, preppy, chic, etc.)?

¿Qué canales de YouTube puedo seguir como ingeniero de software interesado en charlas sobre lenguajes de programación, tecnologías de software y código abierto?

¿Cuál es la razón detrás de 'las grandes empresas de software que no abren sus sucursales en Coimbatore'?

Cómo hacer que mi viaje en autobús sea más productivo

¿Cuál es la mejor práctica para usar una capa de caché (por ejemplo, memcached) frente a un almacén de datos eventualmente consistente (por ejemplo, SimpleDB)?

¿La realidad virtual llega a Linux?

¿Cuáles son algunas técnicas para calcular la prioridad de errores o solicitudes de características para un producto de software?

¿Cuáles son algunos libros recomendados en VHDL para un desarrollador de software experimentado sin experiencia en diseño de hardware?