Tag: lenguaje de programación

La vigésima edición de Developer Economics reveló en su estudio que JavaScript es el lenguaje de programación más popular con bastante diferencia, casi 14 millones de desarrolladores a nivel mundial (de 24,3 millones activos) frente al resto. Asimismo, se destaca a dos lenguajes de programación Rust y Lua que, a pesar de ser aún desconocidos, han sido los que más han crecido en los últimos 12 meses. Por este motivo, queremos ahondar más en Rust, un lenguaje de programación que además de su reciente crecimiento, grandes empresas como Facebook y Microsoft están interesados en él.

Antes de desglosaros qué ventajas posee este lenguaje de programación de sistemas de código abierto, veamos brevemente un poco cómo fue su origen. Rust nace gracias a Mozilla Firefox en el año 2006, de la mano de Graydon Hoare, quien buscaba un lenguaje que permitiese escribir un código tan rápido como C o C++, eliminando los inconvenientes con el recolector de basura (garbage recollector) con el fin de evitar los problemas derivados de la gestión de memoria. Rust comienza a evolucionar gracias al impulso de Firefox y de un gran número de contribuidores de la comunidad. Sin embargo, debido a algunos problemas de capital de la compañía para asumir el proyecto, los responsables de Rust deciden independizarse creando una fundación homónima. Así nace la Fundación Rust en 2010, una nueva organización sin ánimo de lucro cuyo objetivo es dirigir y apoyar el desarrollo del lenguaje de programación Rust y su ecosistema. En la actualidad, Rust está financiada por grandes entidades como Amazon AWS, Microsoft Azure, Google Cloud, Facebook y, desde sus inicios, Mozilla Firefox.

¿Qué ventajas vienen de la mano de Rust?

Interoperabilidad fácil y segura de Rust con C++

Existe una gran cantidad de código C++ que es necesario para comunicarse con los sistemas de back-end en los que se basan los servicios. Por lo que es necesario que los desarrolladores puedan utilizar estas bibliotecas de forma segura y sencilla sin sacrificar los beneficios que ofrece Rust. Además, si se desea ver los componentes de Rust integrados con los binarios de C++ más grandes, se necesita una interoperabilidad inteligente en tiempo de ejecución en código asincrónico.

Asegurar una excelente gestión de memoria

Tal como hemos comentado antes, Rust  garantiza la seguridad de la memoria sin un recolector de basura. Si se llena una memoria, se produce un error en el sistema y, por lo tanto, una brecha que puede ser explotada. Un «garbage recollector» asegura que los objetos innecesarios desaparezcan de la memoria pero, claro está, esto hace que la ejecución del cogido se ralentice. Sin embargo, Rust somprueba si puede haber errores en la memoria en tiempo de compilación por lo que el recolector de basura se queda obsoleto.

Alta velocidad y lenguajes de alto nivel. No afecta al rendimiento.

Al igual que Co C++, el lenguaje Rust está muy cerca del hardware, lo que garantiza una alta velocidad. Adicionalmente, gracias al compilador de este, se cumplen convenientemente las garantías de seguridad del resto de las validaciones que conllevan que este lenguaje sea eficiente y seguro. Si te preguntas si estas sólidas medidas de seguridad provocan una bajada del rendimiento, la respuesta es que no.  Esto se debe, como hemos dicho, a la ausencia del recolector de basura pero también debido a que Rust permite programar de manera abstracta sin afectar el rendimiento.

Fácil uso

Por último, tanto los programadores con menos conocimientos, como los profesionales, pueden aprender a utilizar Rust rápidamente. En términos de uso, el lenguaje apenas difiere de las alternativas más conocidas. Una gran ventaja es su elaborado sistema de emisión de mensajes de error: donde otros lenguajes de programación solo generan avisos crípticos, Rust proporciona consejos aplicables para solucionar los errores.

¿Quieres aprender más de Rust?

Rust cuenta con una excelente documentación en su web oficial con recursos totalmente guiados, diversos ejercicios a modo de ejemplo en su site oficial en Github y múltiples recursos en su canal oficial en Youtube.

¿Por qué está creciendo tan rápido en el ultimo año?

Probablemente, el apoyo por parte de Facebook como miembro Platinum en la Fundación Rust y el lanzamiento de «Rust for Windows’ por parte de Azure, sean indicadores que existe un interés en la comunidad de implementar este lenguaje de programación.

Lo más significativo de «Rust for Windows» es que, no sólo ofrece un ‘crate’ (componente) que permite al software desarrollado en Rust comunicarse con cualquier API de Windows, sino que lo acompaña de todo un pack de herramientas para desarrollar con Rust en Windows. Microsoft está trabajando para buscar las características de seguridad de memoria de Rust para crear un nuevo lenguaje para la programación de infraestructura segura bajo el Proyecto Verona. La versión para Windows del compilador de Rust está disponible en la web, pero si vamos a usar ‘Rust for Windows’ necesitaremos usarlo conjuntamente con Visual Studio o con Visual Studio Code (acompañado, en este último caso, de las extensiones Rust-Analyzer y CodeLLDB).

 

  • Os recomendamos un framework de Machine Learning de código abierto y multi-plataforma para C#
  • ML.NET ofrece la posibilidad de agregar el aprendizaje automático en aplicaciones de .NET, ya sea en escenarios on line o sin conexión

machine learning mlnet

¿Qué es ML.NET?

ML.NET ofrece la posibilidad de agregar el aprendizaje automático en aplicaciones de .NET, ya sea en escenarios on line o sin conexión. Con esta funcionalidad, es posible realizar predicciones automáticas usando los datos disponibles para la aplicación sin tener que estar conectado a una red.

Aprendizaje automático en ML.NET, ¿qué predicciones puede hacer?

Algunos ejemplos del tipo de predicciones que puede hacer con ML.NET son los siguientes: 

  1. Clasificación y categorización. Por ejemplo, clasificar automáticamente los comentarios de clientes en positivos y negativos
  2. Valores continuos de regresión y predicción. Por ejemplo, predecir el precio de la vivienda según el tamaño y la ubicación
  3. Detección de anomalías. Por ejemplo, detectar fraudes en transacciones bancarias
  4. Recomendaciones. Por ejemplo, realizar sugerencias de productos al consumidor on line en función de sus compras anteriores

ML.NET ofrece Model Builder (una herramienta de interfaz de usuario simple) y ML.NET CLI para que sea muy fácil crear modelos de aprendizaje automático personalizados. Estas herramientas utilizan Automated ML (AutoML), una tecnología de vanguardia que automatiza el proceso de creación de modelos con el mejor rendimiento para su escenario de Machine Learning. Lo único que se necesita es cargar tus dato y AutoML se encarga del resto del proceso de construcción del modelo.

¿En qué se caracteriza ML.NET?

  • Extendido con TensorFlow y otros..  ML.NET ha sido diseñado como una plataforma extensible para que se pueda consumir otros framework de aprendizaje automático populares tales como TensorFlow, ONNX, Infer.NET, entre otros; y tener acceso a más escenarios de machine learning, como clasificación de imágenes, detección de objetos, etc.
  • Alto rendimiento y precisión. Utilizando un conjunto de datos de revisión de Amazon de 9GB, ML.NET entrenó un modelo de análisis de sentimientos con un 95% de precisión. Otros framworks de aprendizaje automático populares no pueden procesar el conjunto de datos debido a errores de memoria. La capacitación en el 10% del conjunto de datos, para permitir que todos los framworks completen la capacitación, ML.NET ha supuesto la mayor velocidad y precisión.

¿Quieres saber más? Puedes consultar todos los tutoriales, ejemplos de código, referencia de API y otra documentación en la web de docs.microsoft.com

python que es para que sirve

Qué es Python

Se trata de un lenguaje de programación creado en 1991 por Guindo Van Rossum (1956, Holanda). Python es una opción interesante para realizar todo tipo de programas que se ejecuten en cualquier máquina. Está orientado a objetos y preparado para realizar cualquier tipo de programa, con este lenguaje podemos desarrollar software para app científicas, para comunicaciones de red, para app de escritorio con interfaz gráfica de usuario (GUI), para crear videojuegos, para smartphones, para inteligencia artificial, para automatización de tareas y por supuesto, para programación web.

Python es uno de los lenguajes de programación más utilizados, encargado de asegurarse de que la sintaxis haga posible que el código sea legible. Está considerado un lenguaje multiparadigma, al poder ser enfocado a varios estilos, y posee la ventaja de ser de código abierto, lo que permite que cualquiera pueda acceder a él. Desde que en 1991 se publicó el código, han ido evolucionando sus características, las cuales van siendo planteadas desde su filosofía de transparencia y legibilidad:

  • Python puede ser fácil de aprender si eres programador o si tienes experiencia con otros lenguajes programación.
  • Friendly & fácil de aprender. La comunidad organiza conferencias y reuniones, colabora en el código entre otras actividades.
  • Aplicaciones. El Índice de paquetes de Python (PyPI) alberga miles de módulos de terceros para Python. Tanto la biblioteca estándar de Python como los módulos aportados por la comunidad permiten infinitas posibilidades.
  • Open Source. Python se desarrolla bajo una licencia de código abierto aprobada por OSI, por lo que se puede usar y distribuir libremente, incluso para uso comercial. La licencia de Python es administrada por Python Software Foundation.

Para qué sirve

Uno de los principales objetivos del uso de Python es conseguir evitar complicaciones y ahorrar tiempo. Además, es muy útil para trabajar con grandes volúmenes de datos, ya que nos favorece los procesos de extracción y procesamiento de estos. Por este motivo, cuando se habla de Big Data también suele mencionarse Python. Algunos de los usos más comunes para los que sirve Python son:

  • Realizar cálculos científicos y de ingeniería.
  • Desarrollo web.
  • Programación de videojuegos.
  • Ejecutar programas gráficos.
  • Creación de efectos especiales.

Características y ventajas que ofrece Python:

  1. Sistema multiplataforma. No fuerza a los programadores a aprender un estilo especial sino que permite poder implementar varios estilos de programación enfocados a distintos aspectos. Entre dichos estilos podemos encontrar: programación imperativa, programación orientada a objetos y programación funcional.
  2. Orientado a objetos. Una de las características de un lenguaje de programación orientado a objetos es la capacidad de permitir a un programador crear nuevas clases que modelen los datos necesarios para resolver un problema. Con Python, nos encontramos ante un paradigma que propone modelar todo en función a clases y a objetos. Esto nos ofrece un uso de conceptos de cohesión, polimorfismo, abstracción y mucho más.
  3. Código abierto y libre. Posee una licencia de código abierto denominada Python Software Foundation Licence.  Toda la información relativa a este lenguaje de programación es libre por lo que, como hemos mencionado anteriormente, cualquier persona puede acceder a él.
  4. Frameworks. Python cuenta con frameworks de gran calibre para auxiliar el desarrollo web, el desarrollo de juegos o algoritmos avanzados.  Son estructuras o espacios de trabajo en base a las cuales se pueden organizar y desarrollar los softwares. Python posee algunos de los más poderosos (como son por ejemplo Django, Flask, Pyramid y Web2py), destacando todos ellos por su gran utilidad, puesto que facilitan en gran medida trabajo de los desarrolladores.
  5. Tipado dinámico. En Python, una misma variable puede tomar valores de distinto tipo en distintos momentos y en cualquier lugar de su código fuente.
  6. Calidad en la sintaxis. Esta es una de las ventajas de Python.  Este lenguaje de programación nos ofrece una sintaxis clara y limpia que facilita su aprendizaje y enseñanza. Se caracteriza por sustituir las delimitaciones y elementos de alto nivel por sangrías y tokens, componentes lexicográficos elementales que facilitan la escritura y lectura del código. También, otra de las funciones es la de reducir el uso de caracteres y escribir un formato que testee una secuencia determinada.

¿Quieres aprender Pyhton?

En la web se pueden encontrar diversos sites en los que se ofrece información y tutoriales detallados para aprender Python desde cero. Asimismo, el sitio pyhton.org cuenta con una guía para principiantes