Kotlin y Web Service
Kotlin y Web Service
Kotlin
Es un lenguaje de programación de tipado estático que corre sobre la máquina virtual
de Java y que también puede ser compilado a código fuente de JavaScript. Es
desarrollado principalmente por JetBrains en sus oficinas de San Petersburgo (Rusia).
El nombre proviene de la isla de Kotlin, situada cerca de San Petersburgo.
Kotlin fue nombrado lenguaje del mes por la revista Dr. Dobb' Journal en su edición de
enero de 2012. Aunque no tiene una sintaxis compatible con Java, Kotlin está
diseñado para interoperar con código Java y es dependiente del código Java de su
biblioteca de clases, tal como pueda ser el entorno de colecciones de Java
(Java collections framework).
Historia
En julio de 2011 JetBrains reveló el Proyecto Kotlin, un nuevo lenguaje para la JVM, el cual
había estado bajo desarrollo por un año. El líder de JetBrains, Dmitry Jemerov, dijo que la
mayoría de lenguajes no tienen las características que buscaban, con la excepción de
Scala. Sin embargo, citó el lento tiempo de compilación de Scala como una deficiencia
obvia. Uno de los objetivos establecidos de Kotlin es el de compilar tan deprisa como
Java. En febrero de 2012, JetBrains liberó el código fuente del proyecto bajo la Licencia
Apache 2. Jetbrains espera que el nuevo lenguaje impulsará las ventas de IntelliJ IDEA.
En 2017, recibe un importante impulso al ser nombrado por Google como lenguaje oficial
para Android al mismo nivel que Java.
Sintaxis
Al igual que Pascal, Haxe, PL/SQL, F#, Go y Scala —y a diferencia de C y sus derivados
como C++, Java, C#, y D— la declaración de variables y listas de parámetros en Kotlin
tienen el tipo de dato después del identificador y un separador de dos puntos. Igual que en
otros lenguajes modernos como Scala y Groovy, los puntos y comas son opcionales como
final de sentencia; en muchos casos un salto de línea es suficiente para que
el compilador pueda deducir que la declaración terminó.
Semantico
Además de clases y métodos (en Kotlin se llaman funciones miembro) clásicos de
la programación orientada a objetos, Kotlin también soporta programación por
procedimientos y el uso de funciones.11 Igual que en C y C++, el punto de entrada a
un programa Kotlin es una función llamada "main", que recibe un array que contiene los
argumentos pasados desde la línea de comandos. Soporta la interpolación de variables
dentro de cadenas de texto al estilo de los shell scripts de Perl y Unix/Linux. La inferencia
de tipos es otra de las características de Kotlin.
Kotlin hace una distinción entre tipos nullables y no-nullables (aquellos que pueden o no
tener un valor nulo). Todos los objetos nullables tienen que ser declarados con un "?" sufijo
después del nombre de tipo. Las operaciones con objetos nullables necesitan cuidado
especial de los desarrolladores: una verificación de valor null debe ser realizado antes de
utilizar el valor. Kotlin proporciona operadores seguros de nulidad para ayudar a los
desarrolladores:
?. (Operador de navegación segura) puede ser usado para acceder de forma seguras
a un método o propiedad de un posible objeto nulo. Si el objeto es nulo, el método no
se invocará y la expresión evalúa a null.
?: (operador de coalescencia nula) a menudo referido a como el operador Elvis:
Intro to Kotlin impartido por Hadi Hariri y Andrey Breslav, ambos de Jetbrain.
Life is great and everything will be ok, Kotlin is here por Christina Lee (Pinterest) y Jake
Wharton (Square), ambos ampliamente conocidos dentro de la comunidad de
desarrollo Android.
La primera introducción de los web services en el mundo de Internet vino de la mano de SOAP.
SOAP es un protocolo que define cómo deben de realizarse las comunicaciones entre
máquinas. SOAP usa XML como lenguaje de intercambio de datos con una estructura compleja
que es capaz de albergar todo tipo de datos sobre la solicitud o respuesta generada.
REST usa el propio protocolo HTTP para la comunicación entre máquinas. HTTP es
ampliamente soportado por todos los sistemas y de hecho para la transferencia de datos en la
web se usa HTTP.
REST se caracteriza por no tener estado. Es decir, el servidor no es capaz de recordar el estado
de la anterior solicitud REST que pudo, o no, hacer un cliente. Por ello, el cliente tiene que
enviar en cada solicitud todo el estado de su sesión, lo que se suele hacer mediante un token
que le “ayude a recordar” al servidor.
REST tiene a simplificar las cosas y en esa misma línea se suele usar un lenguaje diferente para
representación de los datos, el lenguaje JSON. Hoy REST y JSON se han convertido en la opción
más sencilla y por tanto más recomendable para implementar un servicio web.
XML Vs JSON
Para los sistemas de comunicación entre máquinas se requiere una serie de características,
básicamente marcadas porque las máquinas implicadas en la comunicación pueden tener
sistemas muy diferentes. Pueden usar lenguajes de programación o bases de datos diferentes
y hasta los sistemas operativos suelen ser distintos entre clientes y servidores. Por ello, para la
comunicación de los datos se usa básicamente lenguajes escritos en archivos de texto plano.
Entre los lenguajes más usados para la comunicación de los datos en los servicios web,
encontramos XML y JSON.
XML está basado en etiquetas, como HTML. Es más tradicional pero también es un lenguaje
más avanzado, que presenta diversas utilidades para su extensión, validación de la información
y sintaxis de los datos, etc.
JSON es un lenguaje más nuevo, basado en sintaxis Javascript. Generalmente, es más ligero y
requiere mucho mejor carga del servidor para su procesamiento.