Lenguajes, Frameworks, SDKs, churras y merinas en Swift

octubre 18, 2019
logo swift

Hace unos días, alguien preguntaba en Twitter por recomendaciones sobre algún lenguaje de programación para iniciar su aprendizaje. Ni corto ni perezoso contesté: “Swift”. La respuesta me dejó bastantes sorprendido ya que dijo: “No, gracias pero Swift es Apple”. Algún día os contaré las mil y una bondades sobre Swift como lenguaje de programación, pero hoy quiero hablaros de la separación entre el propio lenguaje de programación y las diferentes librerías compatibles o basadas en ellos.

Primero el lenguaje

Un lenguaje de programación es el conjunto de instrucciones, de palabras reservadas, la sintaxis incluyendo la puntuación y separación de instrucciones con las que podemos generar un programa que compilado o no, sea capaz de ejecutarse en una máquina. Seguro que la Wikipedia no dice lo mismo pero sí parecido y me gusta más mi definición.

Los lenguajes de programación pueden tener un creador o varios, particular o empresa, y pueden estar licenciados como software libre o ser propiedad de alguna compañía. Por ejemplo, Swift es Open Source, fue creado por Apple pero ahora mismo es mantenido por una comunidad de desarrolladores. Si, también hay otras empresas e incluso empleados de Apple pero forman parte de una comunidad e incluso tu, si tú, también podrías contribuir al desarrollo del lenguaje.

Una cosa que puede sorprender es que diferentes lenguajes pueden ser interoperables entre sí, es decir, podemos hacer una aplicación que utilice dos o más lengujes diferentes. Sin entrar en mucho detalle, la conexión entre ambos puede darse en varios niveles: código, código intermedio, binario… Pero antes de bucear en las profundidades y dar ejemplos concretos de la relación de los lenguajes, vamos a ver qué es un framework.

Librerías y frameworks

Crear programas complejos simplemente con el lenguaje puede ser una tarea ardua. Por ello, se crean librerías y éstas se agrupan en frameworks más complejos. Estas librerías no son más que líneas de código que proporcionan funcionalidades concretas, y mediante una interfaz más o menos sencilla, nos permiten realizar llamadas en nuestro código para no tener que implementar funcionalidades complejas o repetitivas. De esta forma no necesito enviar los datos bit a bit a un servidor si no que hay librerías que proporcionan abstracciones y me permiten llamar a un servicio web sin conocer todos los niveles que tiene una conexión HTTP.

Muchas de estas librerías son desarrolladas de forma conjunta con el lenguaje porque a fin de cuentas, proporcionan una funcionalidad tan básica que en el 99% de los casos no tendría sentido realizar uno mismo la implementación. Un ejemplo es Foundation que la librería mínima básica de Swift y que implementa acceso a la red, programación asíncrona, tipos básicos de datos… Incluso resulta complicado a veces separarlo del propio lenguaje.

De esta misma manera, existen librerías oficiales para determinados sistemas y otras denominadas “de terceros” que, con más o menos soporte, se crean para facilitar el desarrollo o para ayudar a programadores noveles a hacer cosas complicadas con menos esfuerzo. La utilización de las mismas queda a gusto del consumidor, personalmente prefiero implementar ciertas cosas por mi mismo y utilizar sólo las librerías oficiales pero seguro que para muchos es mejor utilizar librerías.

SDKs y demás herramientas

Genial, ya tenemos nuestro lenguaje para escribir código, nuestras librerías y frameworks que nos facilitan la vida y ¿ahora qué? Pues ya vienen los SDKs y las herramientas de desarrollo. Un SDK (Software Development Kit) es el conjunto de herramientas que nos permite realizar aplicaciones para una plataforma determinada. Con plataforma no quiero decir sistemas, porque existen SDKs como Xamarin o Cordova que generan aplicaciones compatibles con varios sistemas.

Los SDKs incluyen herramientas de edición de código, con sugerencias, autocompletado, etc… pero también programas de diseño de interfaz, de gestión de las preferencias y configuración de nuestros desarrollos. En resumen es todo lo necesario para poder desarrollar una aplicación y que se ejecute en un sistema X.

Con todo lo que sabemos, en este punto ya podemos relacionar los conceptos y ver ejemplos determinados. Empezaremos por algunas plataformas hasta llegar a los lenguajes y luego veremos lenguajes que pueden utilizarse en muchas plataformas.

Xamarin Se programa utilizando Visual Studio, propiedad de Microsoft y permite generar aplicaciones para Windows, macOS, iOS, Android… mediante las librerías .NET. Se programa en C# pero muchas de las librerías sobre las que está construido están desarrolladas utilizando C o C++. Vale, al final son superclases de C todo, pero veamos más ejemplos.

Android La herramienta oficial actual es Android Studio. Proporciona todas las librerías necesarias para el desarrollo así como el constructor de interfaces y la generación de ejecutables. Pueden utilizarse los lenguajes Java y/o Kotlin indistintamente y las librerías pueden estar programadas en cualquiera de ellos. Ambos lenguajes son interoperables (podemos hacer llamadas de uno a otro de forma simple) y además se pueden ejecutar sobre la máquina virtual de Java que da soporte a las aplicaciones de Android.

Apple Xcode es la herramienta que proporciona todos los SDKs para crear aplicaciones en plataformas de Apple. Cada una de las apps (al menos hasta septiembre) tienen su framework de desarrollo de aplicaciones: UIKit para iOS, AppKit para macOS, WatchKit para watchOS… que incluyen el diseño de las interfaces. Los lenguajes para usar son Swift u Objective-C. Los frameworks están construidos con este último ya que Swift hasta hace poco no era estable como para crear librerías independientes, pero con SwiftUI esto cambiará. El truco en este caso es que ambos lenguajes utilizan el mismo compilador llamado LLVM y mediante cabeceras simples pueden hacerse llamadas entre ellos.

Pero, ¿Swift es Apple o no?

¡No, no y mil veces no! Swift fue creado por Apple, empleados de Apple están inmersos en su desarrollo y sus plataformas utilizan el lenguaje pero hay mucho más Swift ahí fuera. Para empezar, Swift es compatible con Ubuntu, es decir, que podemos crear programas que se ejecuten sobre este sistema. Además Microsoft anunció que haría compatible Windows en cuanto el lenguaje fuera estable a nivel binario, cosa que ha pasado hace unos meses.

Por si esto fuera poco, existen frameworks que permiten crear servidores web completos de forma muy sencilla, segura y con un rendimiento muy alto. Por lo que podemos desarrollar servicios de backend para nuestras aplicaciones o una página web completa utilizando Swift.

Otro detalle muy importe es que el padre del lenguaje, Chris Lattner, tras dejar la compañía de la manzana y pasar por Tesla, ahora es el máximo responsable de TensorFlow, el framework de Machine Learning de Google y probablemente el más avanzado. Pues bien, TensorFlow está desarrollado en python (a saber: otro lenguaje de programación) y se están dando pasos para que las librerías sean interoperables con Swift. Además, y esto ya son rumores, como python se antoja algo lento a medida que se necesitan aplicaciones más robustas, se bajara la opción de que Swift pase a ser un lenguaje de primer nivel en cuanto a Machine Learning.

Por último y no menos importante, el nuevo sistema de Google llamado Fuchsia tendría soporte para Swift. Aunque la compañía del buscador dice que es un pasatiempo, muchas son las voces que aseguran que sería el sustituto de Android en unos años.

Espero que haya quedado un poco más claro quién es quién y, si no elijes Swift como lenguaje de programación para aprender, que al menos la razón no sea incorrecta.

What do you think?

What do you think?

22 Comments:
octubre 17, 2019

buena pagina pero quiero saber como o donde comprarlo y ocuparlo en el movil

noviembre 21, 2019

Desde Baoss ofrecemos productos y soluciones a medida para empresas y organizaciones. Para particulares puedes buscar en internet por herramientas de análisis de datos y podrás acceder una serie muy variada de oferta dependiendo tus necesidades y presupuesto.

octubre 25, 2019

El avance tecnológico es indudablemente de gran ayuda en los diferentes sectores o áreas de la vida real. Me gustaría saber el uso del big Data en las exploraciones mineras,dando un ejemplo real.

noviembre 21, 2019

Estimado Alberto, gracias por tu comentario. Para analizar un caso real en el sector que comentas puedes ponerte en contacto con nosotros a través del formulario que encontrarás en la página de Contacto y con mucho gusto estudiaremos tu caso.

diciembre 17, 2019

Creo que también ha sido muy útil en las predicciones de las ocurrencias de eventos de la naturaleza, como los huracanes, los terremotos, maremotos, las trombas marinas, incluso creo que con los suficientes datos podrán predecir los incendios forestales

febrero 2, 2020

Hola muy buen día, soy estudiante de Ciencias de la Tierra y el Big Data es uno de los temas que más se están manejando en la actualidad, pues sus aplicaciones son realmente ilimitadas- Me gustaría que me compartieran un poco de sus conocimientos a manera breve y general sobre las aplicaciones en casos de la vida real que se estén llevando a cabo en sectores como la industria minera, la industria petrolera y algunas otras aplicaciones en la solución de problemas ambientales.

.Espero me puedan compartir un poco de su información, sin duda sería interesante aplicarlo en la solución de problemas de mi área de estudio y de la misma forma compartirlo con mis colegas de profesión, pues es necesario divulgar estos conocimientos para que lleguen a más personas y comiencen a tomarse en cuenta en otras áreas de estudio. Saludos y gracias por su tiempo

febrero 21, 2020

Gracias Emiliano por tu comentario y por seguirnos. Iremos publicando nuevos artículos. Suerte en tu carrera!

mayo 1, 2020

I am really enjoying the theme/design of your site.

Do you ever run into any browser compatibility issues?
A few of my blog readers have complained about my site not
operating correctly in Explorer but looks great in Firefox.
Do you have any tips to help fix this problem?

mayo 11, 2020

Not at all. Thanks!

junio 6, 2020

Hay algún municipio que utilice el big data y que haya mejorado el servicio a la ciudadanía, me podrías compartir esa información

junio 11, 2020

Prácticamente todos los municipios grandes lo llevan utilizando hace años para medir y prever niveles de contaminación, tráfico, turismo, y muchos casos mas.

octubre 18, 2020

A través de la Big Data, existe el más pavoroso riesgo, todo lo anterior obvia el mayor peligro implícito en este tipo de tecnologías que hoy por hoy están fuera de control. La posibilidad de controlar, manipular, inducir, orientar a poblaciones enteras en pos de obtener objetivos perversos dirigidos por poderes fácticos ubicados en cualquier parte del mundo. Estamos iniciando un proceso que más temprano que tarde terminará con las democracias occidentales.

10 Trackbacks:

[…] conclusiones obtenidas del estudio masivo de datos ya están revolucionando muchos campos que nada tienen que ver con la empresa o el retail. Por ejemplo: Google y el CDC, el centro de control de enfermedades de Estados Unidos, se aliaron […]

[…] Fuente de información: https://www.baoss.es/10-ejemplos-usos-reales-big-data/ […]

[…] Referencias: wikipedia.org, pauhortal.net, baoss.es, powerdata.es, mintic.gov.co […]

[…] Y, como decíamos, esta tendencia no solo puede ayudarnos a mejorar las ventas en nuestros negocios, si no que, aplicada a otros sectores, puede mejorar nuestra calidad de vida. La administración pública, el turismo, la sanidad, hacienda… todos ellos disponen de grandes almacenes de datos que con un buen análisis y el uso de las herramientas adecuadas pueden aportar importantes soluciones. Hay ya muchos ejemplos reales de uso de Big Data en este sentido: se integran datos de historiales clínicos con otros de redes sociales para detectar brotes de gripe en tiempo real; se usan datos de tráfico rodado para mejorar la movilidad en las ciudades; o el uso de datos personales (a veces trascendiendo el derecho a la privacidad) para evitar ataques terroristas. Ver más ejemplos aquí. […]

[…] EJEMPLOS: Marketing y ventas son quizá las áreas de mayor aplicación de big data en la actualidad, los datos que se encuentran sirven para entender mejor al cliente. en la salud pública La capacidad de procesamiento de plataformas de análisis de big data nos permite ya descodificar cadenas enteras de ADN en cuestión de minutos y permitirá encontrar nuevos tratamientos y comprender mejor las enfermedades, sus desencadenantes y los patrones de propagación mejoramiento de la seguridad: El sistema de IA creado en el MIT predice el 85% de los ciberataques.  Otros ejemplos: Las fuerzas policiales están empezando a utilizar herramientas de big data para dar con criminales e incluso prevenir actividades criminales.Otro ejemplo que lleva años empleándose es en la detección de transacciones fraudulentas con tarjetas de crédito. https://www.sas.com/es_pe/insights/big-data/what-is-big-data.html https://xombit.com/2015/11/big-data-procesar-informacion http://www.iic.uam.es/innovacion/big-data-caracteristicas-mas-importantes-7-v/ https://www.baoss.es/10-ejemplos-usos-reales-big-data/ […]

[…] Lee más ejemplos de Big Data Analytics eficaz aquí. […]

[…] El uso de Big Data: El uso de Big Data nos facilita muchísimo la conexión con posibles compradores y sus intereses, esto nos ayuda a ser […]

Comments are closed.

More notes