Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Cómo reportar bugs o errores

Una guía que nos muestra la mejor manera de hacer que nuestros reportes de bugs o errores a proyectos de software libre sea más útil y eficiente

Dentro del mundo del software libre, que la comunidad que usa el software reporte errores o bugs encontrados, hace que el software mejore y sea más fiable y seguro en distintos escenarios de uso y distintos equipos.

Reportar errores a la comunidad que desarrolla software es muy importante y es una tarea necesaria, pero ¿de qué manera hacer eso de forma que sea útil y eficiente para las personas que los reciben y que tienen que corregir los errores siguiendo esos reportes?

Este artículo te da algunas pistas para enviar esos importantes reportes de errores y que sean útiles y faciliten la tarea a quienes los reciben.

Este artículo es una traducción/adaptación de un artículo escrito en inglés por un joven desarrollador finlandés que publicó en su blog. En el que comparte su experiencia como desarrollador y como persona que envía informes de bugs, para hacerlo de manera efectiva.

Encontrar el sitio adecuado para reportar errores

Puede que a veces no sepas dónde reportar el error que has encontrado

El propio autor, indica que el sigue estas rutas:

  1. Si sucede con un software específico, repórtalo a la comunidad que desarrolla ese software específico.
  2. Si sucede con el hardware en torno a varios programas, repórtalo al repositorio de controladores de ese hardware.
  3. Si aún tienes dudas, lo mejor es preguntar en los canales de comunicación relacionados con el software/hardware (Matrix/IRC, listas de correo, repositorio en un servicio git, etc)

Normalmente alguien te indicará el mejor sitio. Así que no tengas miedo de preguntar si realmente no puedes averiguar dónde se debe enviar ese informe.

Sigue siempre el esquema

Ninguna de las cosas que digo aquí son buenas si no sigues la plantilla de informe de errores dada. A menudo, los proyectos tienen su propia plantilla para enviar informes de errores.

Nunca está de más volverlo a repetir: sigue lo más fielmente posible esa plantilla.

Muchos informes de errores a menudo no son muy útiles porque simplemente ignoran la plantilla. La información realmente buena se oculta dentro de algo (generalmente una diatriba) y los desarrolladores, a menudo está revisando muchos informes de errores, especialmente en proyectos grandes. Simplemente no hay tiempo para leer la larga diatriba y descifrar cuál es realmente el problema.

Proporciona los detalles que solicita la plantilla, coloca todo lo demás en la sección «información adicional» al final del informe.

Si no existe una plantilla predefinida, este es un buen ejemplo a seguir a la hora de enviar informes de errores.

Resumen del bug

¿Cuál es el error en realidad? ¿Qué falla? ¿Qué crees que está mal? ¿Quizás es una funcionalidad?

Escribe un breve resumen de lo que está sucediendo, pero proporciona más detalles que simplemente «la pantalla no funciona».

Por ejemplo:

La pantalla se apaga cuando abro <este programa>. Y también puedo escuchar los ventiladores de mi equipo que empiezan a girar muy rápido antes de que todo se quede congelado.

Esto sucede también con otras aplicaciones, que parecen usar <tal librería>.

Básicamente, proporciona la situación en la que ocurrió el error, pero de manera muy concisa. Puedes escribir más detalles en la sección «Información adicional».

Pasos para reproducir el error

Para corregir un error, el desarrollador debe poder reproducir dicho error. El desarrollador necesita ver qué está pasando, qué sale mal. Luego, pueden depurar el software con herramientas existentes.

Por lo tanto, escribe en el informe de error qué hiciste para que ocurriera. No tienes que escribir todo el día desde que te levantaste de la cama, pero trata de apuntar más o menos 5 pasos antes de que ocurriera el error. Además, debes anotar si podrías hacer que el error vuelva a ocurrir.

Por ejemplo:

  1. Actualicé mi PC
  2. Reinicié el PC
  3. Abrí la aplicación
  4. Cuando al realizar <tal tarea>
  5. El equipo se queda congelado

Reinicié el PC e intenté realizar la misma tarea y se volvió a congelar. A la tercera vez todo pareció que funcionaba correctamente.

Esto ya le da al desarrollador mucha información. Se puede suponer que antes de la actualización, el realizar esa tarea con la aplicación no hacía que se congelara el PC. Entonces el problema está en algún componente de actualización. Sin embargo, no sucede siempre, por lo que probablemente haya algún problema extraño. O algo más… ¡Empiezan a fluir los jugos creativos!

Básicamente, ofrecer instrucciones paso a paso sobre cómo hacer que el error ocurra en su PC. Además, si puedes, menciona con qué frecuencia ocurre el error.

Información del sistema

Esto es MUY importante, y aquí hay un par de comandos para sistemas GNU/Linux que puedo darte para obtener buena información.

Una muy buena opción es utilizar el comando inxi. Si no lo tienes instalado en tu equipo, instala esta pequeña utilidad para la línea de comandos que ofrece una información muy detallada de todo nuestro equipo y sistema.

Un simple inxi --full ofrece un log de información muy completo que puedes incluir en el reporte.

Asegúrate que la información que ofreces incluye los números de versión de todo y todos los datos necesarios. Sigue la plantilla, si existe, para ejecutar los comandos y la información del sistema si es necesario.

Información adicional

Si tienes alguna información específica que añadir, hazlo al final del archivo.

Puedes incluir, por ejemplo, si tienes conocimientos del fallo en otros sistemas, o si has leído algo relacionado con ello que pueda ayudar, o cualquier cosa que creas que puede ser relevante.

Registros

También es importante y útil incluir registros o logs del sistema, para ver si mientras se estaba ejecutando la tarea en concreto ha quedado alguna traza en nuestro sistema. Llamadas a interrupciones, ejecución de ciertas librerías, etc.

Si quieres comprobar si tu sistema ha registrado algo interesante, que pueda aportar información, puedes hacerlo mediante el siguiente comando:

journalctl --since="10 minutes ago"  > bug.log

Puedes cambiar el periodo de tiempo de 10 minutos a por lo menos 2 horas “2 hours ago” o algo similar. Ajusta el tiempo, y echa un vistazo al archivo bug.log para ver si hay algo interesante.

Si no hay nada que pueda resultar de interés, puedes omitir enviar ese archivo y preguntar si hay algún otro log o registro que deberías incluir.

El resultado final

Una vez seguidos los pasos y enviado un informe lo más completo que has sabido y podido, pueden pasar algunas de estas cosas:

  1. El desarrollador pregunta por más información detallada si es que tienen algo en mente que pudiera provocar dicho problema.
  2. El desarrollador no puede reproducir el error y te pide ayuda para solucionarlo, a menudo utilizando tal versión de de algo relacionado con el propio error.
  3. El error ya ha sido solucionado pero tienes que esperar a que se actualice el software.
  4. Quizás el sistema de reporte de errores te avisa que hay ya un reporte enviado sobre el mismo problema, por lo que no abras un nuevo reporte, añade información al ya existente con la información que has recopilado siguiendo los pasos anteriores.

Espero que esto sea interesante y te de una pauta o un procedimiento a seguir a la hora de informar de errores cuando te los encuentres al utilizar tu software libre preferido, ya sea sistema operativo, entorno de escritorio, aplicación, etc…

El reporte de errores es una de las tareas importantes, no dudes en ser riguroso, y respetuoso a la hora de reportar tus errores. Tus errores son muy importantes para ti, pero hay detrás una comunidad limitada de tiempo y recursos para solucionarlos, ten paciencia a la hora de exigir que se solucionen.

Reportando un error has dado un paso importante para su resolución y has apoyado tu proyecto de software libre preferido. ¡Enhorabuena!

a silhouette of a person's head and shoulders, used as a default avatar

Programa de charlas de Akademy-es 2023 de Málaga Opensouthcode Edition #akademyes

Como ya sabréis este año se celebra Akademy-es 2023 se celebrará en de forma presencial en Málaga, junto la Opensoutcode del 9 al 10 de junio, viernes y sábado. Hoy se ha publicado el programa de charlas de Akademy-es 2023 Léelo y seguro que encuentras más de una razón para acompañarnos.

Programa de charlas de Akademy-es 2023 de Málaga Opensouthcode Edition #akademyes

El 8 y 10 de junio se va a celebrar Akademy-es 2023 de Málaga que se celebrará organizado por KDE España y de forma paralela a otro gran evento como es Opensouthcode.

Este año se volvemos a tener un gran programa de ponencias, que van desde lo último en Plasma y en proyectos KDE pasando por temas de hardware, programación, ciberseguridad y privacidad.

Y si no te lo crees simplemente échale un vistazo al programa.

Programa de charlas de Akademy-es 2023 de Málaga Opensouthcode Edition #akademyes

Viernes 9 de junio

  • 10:00 – 10:15 Ceremonia de apertura de Akademy-es
  • 10:15 – 10:55 Cómo se gestionan las traducciones del proyecto KDEAlbert Astals Cid, Coordinador de traduciones de KDE
  • 11:00 – 11:45 Más secretos de Plasma y KDEBaltasar Ortega, Editor de kdeblog
  • 12:00 – 12:45 Cuando llegue el año del escritorioAleix Pol i González, Presidente de KDE eV – En remoto
  • 13:00 – 13:45 Charlas relámpago
    Descanso
  • 16:00 – 16:45 Software libre y educación: El papel de KDE en los centros educativos de bajos recursosCarlos Chan – En remoto
  • 17:00 – 17:45 Audiofilia en LinuxAntonio Larrosa, desarrollador KDE
  • 18:00 – 18:45 Las dificultades de las asociaciones ante las obligaciones documentales y fiscalesGNU/Linux Valencia – En remoto
  • 19:00 – 19:45 Sostenibilidad y software/hardware librePaula de la Hoz, analista de ciberseguridad

Sábado 10 de junio

  • 10:00 – 10:45 KDE y Qt 6Albert Astals Cid, desarrollador de KDE
  • 11:00 – 11:45 Commons el almacén multimedia de Wikimedia y otros proyectos relacionadosPedro Pacheco, Wikimedia España
  • 12:00 – 12:45 Empaquetando el software de KDE en ArchAntonio Rojas, empaquetador de KDE y software matemático en Arch Linux
  • 13:00 – 13:45 Encaminamiento en el Centro de Datos con software Open SourceEduardo Collado
    Descanso
  • 16:00 – 16:25 Charlas relámpago
  • 16:30 – 16:50 KDE EspañaAdrián Chaves, presidente KDE España
  • 17:00 – 17:45 Hola soy un usuario de KDE y llevo mas de 20 años siéndoloJosé Jiménez, formador y usuario de KDE y Fedora
  • 17:50 – 18:00 Ceremonia de clausura

Nota: Las charlas y horarios pueden sufrir ligeras modificaciones dependiendo de la disponibilidad de los ponentes

Vía: KDE España

La entrada Programa de charlas de Akademy-es 2023 de Málaga Opensouthcode Edition #akademyes se publicó primero en KDE Blog.

a silhouette of a person's head and shoulders, used as a default avatar

Actualización de mayo del 2023 de KDE Frameworks

Me complace anunciar la actualización de mayo del 2023 de KDE Frameworks. Con esta se llega a la versión 5.106 que evidencia el compromiso y constancia que no tiene un final cercano, a no ser que consideremos el salto al número 6 dado que ya se está haciendo la migración a Qt 6.

Actualización de mayo del 2023 de KDE Frameworks

A pesar de que para los usuarios corrientes esta noticia sea algo confusa ya que no se trata de realzar una nueva aplicación ni de una nueva gran funcionalidad del escritorio, el desarrollo de KDE Frameworks tiene repercusiones directas en él a medio y largo plazo.

La razón de esta afirmación es que KDE Frameworks es básicamente la base de trabajo de los desarrolladores para realizar sus aplicaciones, es como el papel y las herramientas de dibujo para un artista: cuanto mejor sea el papel y mejores pinceles tenga, la creación de una artista será mejor.

Actualización de abril del 2023 de KDE Frameworks

De esta forma, las mejoras en KDE Frameworks facilitan el desarrollo del Software de la Comunidad KDE, haciendo que su funcionamiento, su estabilidad y su integración sea la mejor posible.

El 13 de mayo de 2023 fue lanzado KDE Frameworks 5.106 la nueva revisión del entorno de programación sobre el que se asienta Plasma 5, el escritorio GNU/Linux de la Comunidad KDE, y las aplicaciones que se crean con para él.

Más información: KDE

La constancia del equipo de desarrollo de la Comunidad KDE

Hay que recordar que los desarrolladores de KDE decidieron lanzar actualizaciones mensuales de este proyecto y lo están cumpliendo con puntualmente. La idea es ofrecer pocas pero consolidadas novedades, a la vez que se mantiene el proyecto evolucionando y siempre adaptándose al vertiginoso mundo del Software Libre.

Una gran noticia para la Comunidad KDE que demuestra la evolución continua del proyecto que continua ganando prestigio en el mundo de los entornos de trabajo Libres.

¿Qué es KDE Frameworks?

Para los que no lo sepan, KDE Frameworks añade más de 70 librerías a Qt que proporcionan una gran variedad de funcionalidades necesarias y comunes, precisadas por los desarrolladores, testeadas por aplicaciones especí­ficas y publicadas bajo licencias flexibles. Como he comentado, este entorno de programación es la base para el desarrollo tanto de las nuevas aplicaciones KDE y del escritorio Plasma 5.

Actualización de febrero del 2022 de KDE Frameworks

Aquí podéis encontrar un listado con todos estos frameworks y la serie de artículos que dedico a KDE Frameworks en el blog,

Recuerda que puedes ver una introducción a Frameworks 5.0 en su anuncio de lanzamiento.

La entrada Actualización de mayo del 2023 de KDE Frameworks se publicó primero en KDE Blog.

the avatar of Hollow Man's Blog

My CNCF LFX Mentorship Spring 2023 Project at Kubescape

Project Link: CNCF – Kubescape: Release engineering: add Kubescape to commonly-requested package managers

kubescape is a Cloud Native Computing Foundation (CNCF) sandbox project. It is an open-source Kubernetes security platform and includes risk analysis, security compliance, and misconfiguration scanning. Targeted at the DevSecOps practitioner or platform engineer, it offers an easy-to-use CLI interface, flexible output formats, and automated scanning capabilities.

List of things I have done

Documentations:

Repo and Packages created:

PRs opened:

Issues opened/helped with:

Project summaries

Packaging

Other packages managers that have already been available and not introduced by me during this project period:

GitHub Actions Release CI

I helped improve the Kubescape GitHub Actions release CI process, where I added the ARM64 build and tested for the GitHub Actions release CI workflow. I use QEMU with Docker to simulate the Linux ARM64 environment for building and testing the binaries. For macOS M1/M2, I investigated how to cross-build libgit2 C code and use Golang cross-compilation to build the binaries.

I also helped add the auto version bumping CI for kubescape/homebrew-tap, kubescape/packaging, and kubescape/github-action. After the release is made, we trigger these CIs so that the kubescape versions in these repositories can get upgraded automatically.

GitHub Actions Code Review

I helped improve the Kubescape GitHub Actions fix suggestions code review process, where I created the workflow which works by collecting the SARIF (Static Analysis Results Interchange Format) file that kubescape generates. Then, with the help of HollowMan6/sarif4reviewdog, convert the SARIF file into RDFormat (Reviewdog Diagnostic Format) and generate reviews for code fix suggestions on GitHub Actions using Reviewdog. I also helped add the “fix” object support for the Kubescape-generated SARIF report.

In addition to the main project, I also helped the community with other issues like bug-fixing as well as feature-adding.

a silhouette of a person's head and shoulders, used as a default avatar

a silhouette of a person's head and shoulders, used as a default avatar

Actualización de mayo del 2023 de KDE Frameworks

Me complace anunciar la actualización de mayo del 2023 de KDE Frameworks. Con esta se llega a la versión 5.106 que evidencia el compromiso y constancia que no tiene un final cercano, a no ser que consideremos el salto al número 6 dado que ya se está haciendo la migración a Qt 6.

Actualización de mayo del 2023 de KDE Frameworks

A pesar de que para los usuarios corrientes esta noticia sea algo confusa ya que no se trata de realzar una nueva aplicación ni de una nueva gran funcionalidad del escritorio, el desarrollo de KDE Frameworks tiene repercusiones directas en él a medio y largo plazo.

La razón de esta afirmación es que KDE Frameworks es básicamente la base de trabajo de los desarrolladores para realizar sus aplicaciones, es como el papel y las herramientas de dibujo para un artista: cuanto mejor sea el papel y mejores pinceles tenga, la creación de una artista será mejor.

Actualización de abril del 2023 de KDE Frameworks

De esta forma, las mejoras en KDE Frameworks facilitan el desarrollo del Software de la Comunidad KDE, haciendo que su funcionamiento, su estabilidad y su integración sea la mejor posible.

El 13 de mayo de 2023 fue lanzado KDE Frameworks 5.106 la nueva revisión del entorno de programación sobre el que se asienta Plasma 5, el escritorio GNU/Linux de la Comunidad KDE, y las aplicaciones que se crean con para él.

Más información: KDE

La constancia del equipo de desarrollo de la Comunidad KDE

Hay que recordar que los desarrolladores de KDE decidieron lanzar actualizaciones mensuales de este proyecto y lo están cumpliendo con puntualmente. La idea es ofrecer pocas pero consolidadas novedades, a la vez que se mantiene el proyecto evolucionando y siempre adaptándose al vertiginoso mundo del Software Libre.

Una gran noticia para la Comunidad KDE que demuestra la evolución continua del proyecto que continua ganando prestigio en el mundo de los entornos de trabajo Libres.

¿Qué es KDE Frameworks?

Para los que no lo sepan, KDE Frameworks añade más de 70 librerías a Qt que proporcionan una gran variedad de funcionalidades necesarias y comunes, precisadas por los desarrolladores, testeadas por aplicaciones especí­ficas y publicadas bajo licencias flexibles. Como he comentado, este entorno de programación es la base para el desarrollo tanto de las nuevas aplicaciones KDE y del escritorio Plasma 5.

Actualización de febrero del 2022 de KDE Frameworks

Aquí podéis encontrar un listado con todos estos frameworks y la serie de artículos que dedico a KDE Frameworks en el blog,

Recuerda que puedes ver una introducción a Frameworks 5.0 en su anuncio de lanzamiento.

La entrada Actualización de mayo del 2023 de KDE Frameworks se publicó primero en KDE Blog.

a silhouette of a person's head and shoulders, used as a default avatar

KDE estará presente en Ujilliurex 2023, edición «Digitalización y enseñanza presencial»

Hoy quiero anunciar que KDE estará presente en Ujilliurex 2023, edición «Digitalización y enseñanza presencial» un evento que celebra de nuevo en busca de difundir más el Software Libre entre la Comunidad Docente. Ujilliurex es un evento que se celebra en la Universidad Jaume I de Castellón y que ya tiene a sus espaldas una buena cantidad de ediciones ya que ni con la pandemia cesaron su actividad.

KDE estará presente en Ujilliurex 2023, edición «Digitalización y enseñanza presencial»

La conversión de eventos presenciales a virtuales fue una constante este últimos años. Ujilliurex no fue la excepción en su edición de 2020 y del 2021, pero gracias a la aparición de las vacunas y al control que tenemos del COVID 19 volvió a ser presencial en la edición del 2022, siendo este año la continuación de la senda iniciada hace casi 265 días.

Este año viene con interesantes ponencias centradas el 17 de mayo que llevan como tema central la Digitalización y enseñanza presencial y la formación profesional como modelo o ejemplo.

Este año, si no hay ningún impedimento, la comunidad KDE estará presente de la mano de un servidor (Baltasar Ortega) que hablará a las 18.15 de «Más secretos de Lliurex, cosas que no sabes que puedes hacer y te ahorran mucho tiempo» donde hablaré de algunos de mis trucos favoritos de en KDE centrándome en los Service Menu.

No obstante, creo que mi charla es una de las menos interesante y os invito a ver todo el programa para ver la calidad del evento que empieza a las 9.30 de la mañana.

KDE estará presente en Ujilliurex 2023, edición "Digitalización y enseñanza presencial"

Para participar en él es recomendable la inscripción, que podéis realizar en este enlace.

¿Qué es Ujilliurex?

Se trata de un evento que tiene bastante solera en la provincia de Castellón en el que teniendo como protagonista la distribución de la Generalitat Valenciana Lliurex se presentan novedades sobre ésta y sobre otros proyectos libres.

Concretamente sus objetivos fundamentales son:

  • Difundir el uso y manejo de las TIC en la distribución LliureX entre la comunidad educativa universitaria
  • Promover la coordinación, el intercambio y la discusión de conocimientos y experiencias entre profesores universitarios, especialmente de los departamentos con una mayor implicación tanto en la parte educativa de los futuros docentes (Depto. Educación), como posibles usuarios de Lliurex como herramienta en su especialidad (Depto. de Traducción e Interpretación y Depto. de Estudios Ingleses), con docentes de centros educativos de la comunidad valenciana, especialmente de los departamentos de idiomas y Coordinadores de Tecnologías de la Información (Coordinadores TIC).
  • Compartir conocimiento y debatir sobre el contenido de la distribución y la utilización de diversas aplicaciones de la distribución
  • Iniciar una serie de contactos entre las entidades organizadoras de la jornada y los asistentes de los diferentes centros y departamentos.

La entrada KDE estará presente en Ujilliurex 2023, edición «Digitalización y enseñanza presencial» se publicó primero en KDE Blog.

a silhouette of a person's head and shoulders, used as a default avatar

Novedades de Konsole, Ark y Dragon Player en KDE Gear 23.04

El jueves 20 de abril fue lanzado KDE Gear 23.04, la gran actualización de sus aplicaciones que tiene una periodicidad cuatrimestral. Ha pasado casi tres semanas y voy desgranando poco a poco qué nos trajo de nuevo este nuevo anzamiento. Por fin llego a la última entrega y os presento las novedades de Konsole, Ark y Dragon Player en KDE Gear 23.04, tres aplicaciones para cerrar esta serie que traen pocas pero interesantes novedades.

Novedades de Konsole, Ark y Dragon Player en KDE Gear 23.04

Hoy toca hacer programa triple en esta serie de artículos de repaso al lanzamiento de KDE Gear 23.04 con los que finalizo la misma.

La primera de ellas es Konsole, el emulador de terminal de KDE, que en esta versión ofrece una más que interesante novedad: ¡Konsole ya funciona en Windows! Esto significa que Konsole integrado en otras aplicaciones como Kate, Dolphin o KDevelop también funciona en el sistema operativo de las ventanas.

Novedades de Konsole, Ark y Dragon Player en KDE Gear 23.04

Por otro lado Ark, la herramienta de compresión y descompresión de archivos, nos ofrece una pantalla de bienvenida más rica y con la posibilidad de extraer archivos Stuffit.

Novedades de Kasts y Kate en KDE Gear 23.04

Y para finalizar este repaso Dragon Player, es un reproductor minimalista de audio y vídeo nativo de KDE. Dragon Player ha sido objeto de una importante revisión visual, que incluye la adopción del menú hamburguesa de muchas otras aplicaciones de KDE y de una pantalla de bienvenida. También ha ganado un conjunto simplificado y más intuitivo de botones predeterminados en la barra de herramientas.

Más información: KDE Gear 23.04

Y, recuerda, todo este software es gratuito y sin publicidad en todos los sentidos: no te cuesta ni un euro y no se cobra en en forma de datos personales. No obstante, si quieres ayudar a su desarrollo siempre puedes participar en con donaciones.

La entrada Novedades de Konsole, Ark y Dragon Player en KDE Gear 23.04 se publicó primero en KDE Blog.

a silhouette of a person's head and shoulders, used as a default avatar
the avatar of Alessandro de Oliveira Faria

MOJO: A linguagem para IA que promete ser 35.000x mais veloz que Python

Mojo é uma linguagem de programação PROMETIDA SER projetada especificamente para aplicações de Inteligência Artificial (IA). Ela é uma inovação recente, mas não se preocupe, você não precisa começar do zero! Mojo é, de certa forma, um subconjunto do Python, aproveitando-se da facilidade de uso desta linguagem. Portanto, para aqueles familiarizados com Python, a transição para Mojo é bastante simples. Além disso, Mojo possui desempenho comparável ao do C.

Isso significa que Mojo diz combinar o melhor de dois mundos: a simplicidade do Python com a rapidez do C. Então, Python tornou-se obsoleto para Data Science e IA? Não exatamente. Embora Python possua um vasto arsenal de pacotes para lidar com dados, ele recorre a rotinas de baixo nível escritas em C, C++ ou outras linguagens de alta performance quando a demanda por desempenho é alta. É assim que bibliotecas como TensorFlow e numpy operam em Python.

A linguagem Mojo foi desenvolvida pela empresa Modular, sendo Chris Lattner, co-fundador da empresa e criador do Swift e da infraestrutura de compilação LLVM escrita em C++, um dos responsáveis pela sua criação.

Aqui estão algumas características distintivas do Mojo:

  1. Mojo é uma subset de Python, com o objetivo de ser totalmente compatível com esta linguagem.
  2. Ele apresenta uma forte verificação de tipos para melhorar o desempenho e a detecção de erros.
  3. Inclui um verificador de propriedade e empréstimo de memória, por meio de uma convenção de argumento de propriedade (“owner”), utilizada por funções que buscam adquirir propriedade exclusiva sobre um valor, aumentando a segurança da memória.
  4. Possui ajuste automático integrado, que auxilia na determinação dos melhores valores para os parâmetros de acordo com o hardware utilizado.
  5. Utiliza todo o potencial da MLIR (“Multi-Level Intermediate Representation”), facilitando o uso de vetores, threads e unidades de hardware específicas para IA.
  6. Suporta paralelismo, otimizando o uso de hardware avançado, como as modernas GPUs.

Para ilustrar o desempenho de Mojo comparado ao Python, observe a tabela abaixo (não consegui determinar qual aplicação gerou estes dados):

Para concluir, o Mojo foi concebido com o objetivo de prover um modelo de programação distinto para aceleradores de aprendizado de máquina.

A Modular decidiu que o Mojo deveria suportar programação de uso geral, visto que as CPUs atuais possuem tensores e outros aceleradores de IA incorporados. Além disso, devido à ampla utilização do Python em aprendizado de máquina e em diversas outras áreas, a Modular decidiu integrar-se ao ecossistema Python.

A escolha do Python simplificou ainda mais o processo de design da linguagem. Com grande parte da sintaxe já estabelecida, a empresa pôde focar na construção do compilador e na implementação de capacidades de programação especializadas.

Como iniciar?

Você pode dar os primeiros passos AQUI com a linguagem Mojo agora mesmo, utilizando o Playground disponibilizado. Este ambiente, baseado no JupyterHub, oferece tutoriais e a chance de elaborar seu próprio código Mojo, mesmo que a linguagem ainda esteja em desenvolvimento. Para acessar o Playground, basta se cadastrar no site da plataforma.

Referencias:

[1] The PyCoach, Mojo: The Programming Language for AI That Is Up To 35000x Faster Than Python. Disponível em: https://artificialcorner.com/mojo-the-programming-language-for-ai-that-is-up-to-35000x-faster-than-python-e68d1fba37db.

[2] Modular, Modular: Mojo. Disponível em: https://docs.modular.com/mojo/.