Lenguajes & Frameworks
Adoptar
-
75. dbt
dbt sigue siendo una opción sólida y sensata para implementar transformaciones de datos en pipelines ELT. Nos gusta que favorece un enfoque riguroso de ingeniería y habilita prácticas como modularidad, capacidad de prueba y reutilización de transformaciones basadas en SQL. dbt se integra bien con muchos data warehouses en la nube, lakehouses y bases de datos, incluidos Snowflake, BigQuery, Redshift, Databricks y Postgres, y cuenta con un ecosistema saludable de paquetes comunitarios. El soporte nativo que se introdujo recientemente (en dbt core 1.8+ y la experiencia recién introducida de dbt Cloudsin versión”) para las pruebas unitarias, refuerza aún más su posición en nuestro conjunto de herramientas. A nuestros equipos les gusta la nueva característica de pruebas unitarias, ya que les permite definir fácilmente datos de prueba estáticos, establecer expectativas de salida y probar tanto los modos de actualización incremental como de actualización completa de sus pipelines. En muchos casos, esto les ha permitido retirar scripts desarrollados internamente, manteniendo el mismo nivel de calidad.
-
76. Testcontainers
En nuestra experiencia, Testcontainers es una opción predeterminada útil para crear entornos confiables para ejecutar pruebas. Es una librería adaptada a múltiples lenguajes, que “Dockeriza” dependencias de pruebas comunes – incluyendo diferentes tipos de bases de datos, tecnologías de colas, servicios en la nube y dependencias de pruebas de interfaces de usuario, como navegadores web – con la capacidad de ejecutar Dockerfiles personalizados cuando sea necesario. Recientemente, se lanzó una versión de escritorio que permite la gestión visual de sesiones de pruebas y la capacidad de gestionar escenarios más complejos, lo que nuestros equipos han encontrado muy útil.
Probar
-
77. CAP
CAP (en inglés) es una biblioteca de .NET que implementa el patrón Outbox. Cuando se trabaja con sistemas de mensajes distribuidos como RabbitMQ o Kafka es común encontrar dificultades para asegurar la atomicidad de las actualizaciones de bases de datos y publicaciones de eventos. CAP permite conseguir este objetivo guardando la petición de publicación del evento en la misma transacción de base de datos que causó el evento. Consideramos que CAP es muy útil porque ofrece soporte para varias bases de datos y sistemas de mensajería distribuidos al tiempo que garantiza la entrega de notificaciones al menos una vez.
-
78. CARLA
CARLA es un simulador de código abierto para investigación de conducción autónoma, usado para probar este tipo de sistemas antes de su despliegue en producción. Ofrece flexibilidad para crear y reutilizar modelos 3D de vehículos, terrenos, humanos y animales, entre otros, haciendo posible simular escenarios como un peatón entrando en la calzada o encontrarse con un vehículo que viene en sentido contrario a una velocidad determinada. El sistema de conducción autónoma que se está probando debe reconocer esos actores dinámicos y realizar las acciones apropiadas, como frenar. Nuestros equipos usan CARLA para el desarrollo y pruebas continuas de sistemas de conducción autónoma.
-
79. Databricks Asset Bundles
Databricks Asset Bundles (DABs), que alcanzó disponibilidad general en abril de 2024, se está convirtiendo en la herramienta predilecta para empaquetar y desplegar recursos de Databricks que facilitan la adopción de técnicas de desarrollo de software en nuestros equipos de datos. DABs soporta el empaquetamiento de la configuración de flujos de trabajo y tareas, al igual que el código a ser ejecutado en dichas tareas, como un paquete que puede ser desplegado a múltiples entornos mediante pipelines de CI/CD. Incluye plantillas para recursos comúnmente utilizados y tiene soporte para plantillas personalizadas, lo que permite la creación de plantillas de servicios a la medida para proyectos de ingeniería de datos y ML. Nuestros equipos están incrementalmente adoptando esta tecnología como una parte clave de sus workflows de ingeniería. A pesar de que DABs incluye plantillas para notebooks y soporta desplegarlos en producción, no recomendamos llevar notebooks a producción. En su lugar impulsamos la creación de código para producción de manera intencional con las prácticas de resiliencia, soporte, escalabilidad y mantenimiento necesarias para este tipo de trabajo.
-
80. Instructor
Cuando usamos bots de conversación basados en modelos de lenguaje de gran tamaño (LLM, por sus siglas en inglés) como usuarios finales, generalmente devuelven una respuesta no estructurada en lenguaje natural. Cuando construimos aplicaciones con IA generativa que son algo más que bots de conversación, puede ser útil que el bot devuelva una respuesta estructurada en JSON, YAML u otros formatos para después procesar esta respuesta y utilizarla en la aplicación. Sin embargo, ya que los LLM no son deterministas, puede que no siempre hagan lo que les pedimos. Instructor es una biblioteca que nos ayuda a solicitar salida estructurada a LLMs. Se puede definir la estructura de salida deseada y configurar reintentos si el modelo no devuelve una respuesta en el formato solicitado. Además, ya que la experiencia de usuario óptima con LLMs suele ser transmitir los resultados según se generan en lugar de esperar a tener la respuesta completa, Instructor también se encarga de procesar estructuras parciales a partir de un flujo de datos.
-
81. Kedro
Kedro ha mejorado significativamente como herramienta para MLOps y ha mantenido su enfoque en prácticas de modularidad e ingeniería, lo que nos gustaba desde el inicio. Un paso que resalta su modularidad es la introducción del paquete autónomo kedro-datasets, que desacopla el código de los datos. Kedro ha añadido mejoras en su CLI, plantillas de inicio de proyecto y capacidades de telemetría. Adicionalmente, el reciente lanzamiento de una extensión en VS Code es un buen impulso para la experiencia del desarrollador.
-
82. LiteLLM
LiteLLM es una librería para facilitar la integración con varias APIs de proveedores de modelos de lenguaje de gran tamaño (LLM, por sus siglas en inglés de Large Language Model) que estandariza las interacciones mediante un formato de API de OpenAI. Tiene soporte para un amplio número de proveedores y modelos y ofrece una interfaz unificada para completar, hacer embedding y generar imágenes. LiteLLM simplifica la integración al traducir las entradas para que encajen con los requisitos de cada endpoint específico de cada proveedor. También ofrece un framework que es necesario para implementar muchas de las características operacionales que necesita una aplicación en producción, como caching, logging, rate limiting y balanceo de carga. Esto asegura una operación uniforme entre distintos LLMs. Nuestros equipos utilizan LiteLLM para facilitar el cambio entre distintos modelos, algo necesario en el contexto actual donde los modelos evolucionan rápidamente. Es importante tener en cuenta que al hacer esto, las respuestas de los modelos a prompts idénticos varían, lo que indica que un método de invocación consistente por sí solo puede no ser suficiente para optimizar por completo el rendimiento al completar texto. Además, cada modelo implementa funcionalidades add-on de forma única, por lo que una sola interfaz puede no ser suficiente para todos. Por ejemplo, uno de nuestros equipos tuvo dificultades en aprovechar la invocación de funciones a un modelo AWS Bedrock mediante proxying a través de LiteLLM.
-
83. LlamaIndex
LLamaIndex incluye motores que permiten diseñar aplicaciones LLM específicas de dominio, de contexto aumentado y admite tareas como la ingestión de datos, la indexación por vectores y la respuesta a preguntas en lenguaje natural sobre documentos, por mencionar algunas. Nuestros equipos utilizaron LlamaIndex para construir un pipeline de generación mejorada por recuperación (RAG) que automatiza la ingesta de documentos, indexa las representaciones vectoriales de los documentos y consulta estas representaciones según las entradas del usuario. Al utilizar LlamaHub, tu puedes extender y personalizar los módulos de LlamaIndex para poder ajustarse a tus necesidades y así construir, por ejemplo, las aplicaci ones LLM con tus LLMs preferidos, representaciones vectoriales y proveedores de almacenamiento de vectores preferidos.
-
84. LLM Guardrails
LLM Guardrails son un conjunto de pautas, políticas o filtros diseñados para evitar que los modelos de lenguaje de gran tamaño (LLMs) generen contenido dañino, engañoso o irrelevante. Las barreras también pueden usarse para proteger a las aplicaciones LLM de usuarios malintencionados que intenten abusar del sistema mediante técnicas como la manipulación de inputs. Actúan como una red de seguridad al establecer límites para que el modelo procese y genere contenido. Existen algunos frameworks emergentes en este ámbito como NeMo Guardrails, Guardrails AI y Aporia Guardrails que nuestros equipos han encontrado útiles. Recomendamos que toda aplicación de LLM tenga guardrails implementadas y que sus reglas y políticas se mejoren continuamente. Son cruciales para construir aplicaciones de chat responsables y confiables con LLMs.
-
85. Medusa
En nuestra experiencia, la mayoría de soluciones de comercio electrónico para construir páginas web de compras caen en la trampa del 80/20 — podemos construir fácilmente el 80% de lo que queremos pero no podemos hacer nada sobre el 20% restante. Medusa ofrece un buen balance. Es una plataforma de comercio de código abierto altamente personalizable que permite a los desarrolladores crear experiencias de compra únicas y a la medida que pueden ejecutarse localmente o en la plataforma de Medusa. Construido con Next.js y PostgreSQL, Medusa acelera el proceso de desarrollo con su amplio conjunto de módulos — desde un carrito de compras básico y manejo de órdenes hasta funciones avanzadas como módulos de tarjetas de regalo y cálculo de impuestos para diferentes regiones. Hemos encontrado a Medusa como un valioso framework y lo hemos aplicado en algunos proyectos.
-
86. Pkl
Pkl es un lenguaje y herramienta de configuración de código abierto, creado inicialmente para uso interno en Apple. Su funcionalidad principal es su tipo y sistema de validación, que permite detectar errores de configuración antes de la ejecución del despliegue. Pkl ha permitido a nuestros equipos reducir la duplicidad de código (en casos como sobrescritura de ambientes) y realizar la validación antes de aplicar los cambios de configuración a los ambientes en vivo. Genera archivos JSON, PLIST, YAML y .properties; y cuenta con una amplia integración de IDE y lenguaje, incluida la generación de código.
-
87. ROS 2
ROS 2 Es un framework de código abierto diseñado para el desarrollo de sistemas robóticos. Proporciona un conjunto de librerías y herramientas que permiten la implementación modular de aplicaciones, cubriendo funciones como la comunicación entre procesos, la ejecución multihilo y la calidad de servicio. ROS 2 se basa en su predecesor y ofrece funciones mejoradas en tiempo real, mayor modularidad, mayor compatibilidad con diversas plataformas y sensible defaults. ROS 2 está ganando aceptación en el sector de la industria automotriz; su arquitectura basada en nodos y su modelo de comunicación basado en tópicos resultan especialmente atractivos para fabricantes de aplicaciones complejas y en evolución dentro del vehículo, como la funcionalidad de conducción autónoma.
-
88. seL4
En los vehículos definidos por software (SDV) u otros escenarios críticos para la seguridad, la estabilidad en tiempo real del sistema operativo es crucial. Unas pocas empresas monopolizan este campo debido a sus elevadas barreras de entrada, por lo que soluciones de código abierto como seL4 son muy preciadas. seL4 es un micronúcleo de sistema operativo de alto rendimiento y garantía. Utiliza métodos de verificación formal para garantizar «matemáticamente» que el comportamiento del sistema operativo se ajusta a la especificación. Su arquitectura de micronúcleo también minimiza las responsabilidades centrales para garantizar la estabilidad del sistema. Hemos visto a empresas de EV como NIO participar en el ecosistema seL4, y es posible que en el futuro se produzcan más desarrollos en este ámbito.
-
89. SetFit
La mayoría de las herramientas basadas en IA disponibles actualmente, son generativas — generan textos e imágenes y usan transformers generativos pre-entrenados (GPTs por sus siglas en inglés) para hacerlo. Para casos de uso que requieren trabajar con texto existente — para clasificar fragmentos de texto o determinar intención — los transformers de oraciones son la herramienta a elegir. En este contexto SetFit es un framework para el fine-tuning de transformers de oraciones. Nos gusta SetFit porque usa aprendizaje contrastivo para separar diferentes clases de intención, a menudo logrando una separación clara con un conjunto pequeño de ejemplos, 25 o incluso menos. Los transformers de oraciones también pueden jugar un rol en un sistema de IA generativa. Hemos utilizado con éxito SetFit para la detección de intención en un chatbot de atención al cliente que usa un LLM; y a pesar de que conocemos la API de moderación de OpenAI, hemos elegido un clasificador basado en SetFit para realizar fine-tuning adicional y obtener un filtrado más estricto.
-
90. vLLM
vLLM es un motor de inferencia de alto rendimiento y gestión de memoria eficiente para LLM que puede ejecutarse en la nube o en servidores propios. Admite perfectamente múltiples modelos de arquitectura y modelos populares de código abierto. Nuestros equipos despliegan tareas vLLM en plataformas GPU como NVIDIA DGX e Intel HPC, alojando modelos como por ejemplo Llama 3.1(8B and 70B), Mistral 7B, y Llama-SQL para la asistencia en desarrollo de código, búsqueda de conocimiento e interacciones de bases de datos en lenguaje natural. vLLM es compatible con el estándar de OpenAI SDK, facilitando un servicio de modelo consistente. El catálogo de modelos de IA de Azure utiliza un contenedor de inferencia personalizado para mejorar el rendimiento del servicio de modelos, con vLLM como motor de inferencia predeterminado debido a su alto rendimiento y gestión eficiente de la memoria. El framework vLLM está emergiendo como el modelo predeterminado de despliegues a larga escala.
Evaluar
-
91. Apache XTable™
Entre los formatos de tabla abiertos disponibles que soportan lakehouses — como Apache Iceberg, Delta y Hudi — no ha surgido un claro ganador. En cambio, estamos viendo herramientas que permiten la interoperabilidad entre estos formatos. Por ejemplo, Delta UniForm soporta la interoperabilidad unidireccional al permitir que los clientes de Hudi y Iceberg lean tablas de Delta. Otro nuevo participante en este espacio es Apache XTable™, un proyecto incubadora de Apache que facilita la interoperabilidad omnidireccional entre Hudi, Delta y Iceberg. Al igual que UniForm, convierte los metadatos entre estos formatos sin duplicar los datos subyacentes. XTable podría ser útil para equipos que estén experimentando con diferentes formatos de tablas. Sin embargo, para un uso a largo plazo, dada la diferencia de las características entre estos formatos, depender en gran medida de la interoperabilidad omnidireccional podría hacer que los equipos solo puedan utilizar el “mínimo común denominador” de las funcionalidades.
-
92. dbldatagen
Preparar los datos de prueba para ingeniería de datos es un gran desafío. Transferir datos desde producción a ambientes de prueba puede ser riesgoso, por lo que los equipos a menudo optan por utilizar datos falsos o sintéticos en su lugar. En este Radar, exploramos enfoques novedosos como datos sintéticos para pruebas y entrenamiento de modelos. Sin embargo, en muchas ocasiones, la generación procedural de bajo costo es suficiente.
dbldatagen (Generador de Datos de Databricks Labs) es una de esas herramientas; se trata de una biblioteca de Python para generar datos sintéticos dentro del entorno de Databricks, utilizada para pruebas, benchmarking, demos y muchos otros usos. dbldatagen puede generar datos sintéticos a gran escala, alcanzando hasta miles de millones de filas en cuestión de minutos, y soporta varios escenarios como múltiples tablas, change data capture y operaciones de merge/join. Maneja bien los tipos primitivos de Spark SQL, genera rangos y valores discretos, y aplica distribuciones específicas. Al crear datos sintéticos utilizando el ecosistema de Databricks, dbldatagen es una opción que vale la pena evaluar.
-
93. DeepEval
DeepEval Es un framework de evaluación de código abierto basado en Python, utilizado para evaluar el rendimiento de los LLM. Puedes usarlo para evaluar la generación aumentada por recuperación (RAG) y otros tipos de aplicaciones creadas con frameworks populares como LlamaIndex o LangChain. También sirve para establecer líneas base y benchmark al comparar diferentes modelos de acuerdo a tus necesidades. DeepEval proporciona un conjunto completo de métricas y funciones para evaluar el rendimiento de los LLM, incluida la detección de alucinaciones, la relevancia de las respuestas y la optimización de híper parámetros. Ofrece integración con pytest y, junto con sus aserciones, puedes fácilmente integrar el conjunto de pruebas en un pipeline de integración continua (CI). Si trabajas con LLM, considera probar DeepEval para mejorar tu proceso de pruebas y garantizar la fiabilidad de tus aplicaciones.
-
94. DSPy
La mayoría de las aplicaciones basadas en modelos de lenguaje hoy en día confían en plantillas de prompts ajustadas manualmente para tareas específicas. DSPy, un framework para desarrollar tales aplicaciones, toma un enfoque diferente que prescinde de la ingeniería de prompts directa. En su lugar, introduce abstracciones de más alto nivel orientadas en el flujo del programa (a través de
módulos
que se pueden poner en capas unos encima de otros), métricas que optimizar y datos con los que entrenar/probar. Entonces optimiza los prompts y/o pesos del modelo de lenguaje subyacente basándose en esas métricas que se han definido. El código resultante se parece mucho más al entrenamiento de redes neuronales con PyTorch. Encontramos que el enfoque que toma es estimulante por ser diferente y pensamos que vale la pena experimentar con él. -
95. Flutter para la Web
Flutter es conocido por su soporte multiplataforma para aplicaciones iOS y Android. Ahora, se ha expandido a más plataformas. Ya hemos evaluado Flutter para la Web : nos permite crear aplicaciones para iOS, Android y el navegador a partir de la misma base de código. No todas las aplicaciones web tienen sentido en Flutter, pero creemos que Flutter es especialmente adecuado para casos como aplicaciones web progresivas, aplicaciones de una sola página y la conversión de aplicaciones móviles Flutter existentes a la web. Flutter ya admitía WebAssembly (WASM) como target de compilación en su canal experimental, lo que significa que estaba en desarrollo activo con posibles errores y problemas de rendimiento. Las versiones más recientes lo han hecho estable. El rendimiento de las aplicaciones web Flutter compiladas con target WASM es muy superior al de su target JavaScript. El rendimiento casi nativo en diferentes plataformas es también la razón por la que muchos desarrolladores eligen inicialmente Flutter.
-
96. kotaemon
kotaemon es una herramienta y framework de código abierto basado en RAG (generación aumentada por recuperación, por sus siglas en inglés de retrieval-augmented generation) para construir aplicaciones de Q&A y documentos de bases de conocimiento. Puede entender varios tipos de documento, incluyendo formatos PDF y DOC, y provee una interfaz web basada en Gradio, la que permite a los usuarios organizar e interactuar con la base de conocimiento a través de una interfaz de chat. Incluye pipelines de RAG con un vector store y puede ser extendido con SDKs. kotaemon también cita los documentos fuente en sus respuestas, junto a vistas previas de web embebidas y un grado de relevancia. Para cualquiera que desee crear una aplicación Q&A con documentos basados en RAG, este framework personalizable es un muy buen punto de partida.
-
97. Lenis
Lenis es una librería ligera y poderosa para obtener un desplazamiento (scrolling) fluido en navegadores modernos. Habilita experiencias como sincronizar el desplazamiento con WebGL o efectos de paralaje. Es ideal para equipos que construyen páginas con interacciones que utilizan desplazamiento fluido. Nuestras desarrolladoras han visto que Lenis ofrece una experiencia transparente y fácil de usar al crear desplazamientos fluidos. De todas maneras, la librería puede tener ciertos problemas con la accesibilidad, particularmente con el desplazamiento horizontal y vertical, lo que puede confundir a usuarios con discapacidades. Aunque es atractivo visualmente, necesita una implementación adecuada para mantener la accesibilidad.
-
98. LLMLingua
LLMLingua mejora la eficiencia de los LLMs al comprimir las entradas del usuario usando un modelo de lenguaje pequeño para eliminar los tokens no esenciales con una pérdida mínima de rendimiento. Este enfoque permite a los LLMs mantener el raciocinio y aprendizaje dentro del contexto mientras procesan eficientemente entradas más largas, afrontando retos como eficiencia de costos, latencia de inferencia y gestión de contexto. LLMLingua es perfecto para optimizar el rendimiento de inferencia de los LLM, ya que es compatible con distintos LLMs, no necesita entrenamiento adicional y soporta frameworks como LLamaIndex.
-
99. Microsoft Autogen
Microsoft Autogen es un framework de código abierto que simplifica la creación y orquestación de agentes de IA, permitiendo la colaboración entre múltiples agentes para resolver tareas complejas. Soporta tanto flujos de trabajo autónomos como aquellos con intervención humana, ofreciendo compatibilidad con una variedad de modelos de lenguaje de gran tamaño (LLMs) y herramientas para la interacción entre agentes. Uno de nuestros equipos utilizó Autogen en un cliente para construir una plataforma impulsada por IA en la que cada agente representaba una habilidad específica, como la generación de código, la revisión de código o el resumen de documentación. El framework permitió al equipo crear nuevos agentes de manera fluida y consistente, definiendo el modelo y el flujo de trabajo adecuados. Utilizaron LlamaIndex para orquestar los flujos de trabajo, permitiendo a los agentes gestionar tareas como la búsqueda de productos y sugerencias de código de manera eficiente. Aunque Autogen ha mostrado ser prometedor, especialmente en entornos de producción, persisten preocupaciones sobre la escalabilidad y la gestión de la complejidad a medida que se añaden más agentes. Se necesita una evaluación adicional para determinar su viabilidad a largo plazo en la escalabilidad de sistemas basados en agentes.
-
100. Pingora
Pingora es un framework de Rust para construir servicios de red rápidos, fiables y programables. Originalmente desarrollado por Cloudflare para abordar las deficiencias de Nginx, Pingora ya está mostrando un gran potencial, ya que los nuevos proxies como River se están construyendo sobre sus cimientos. Aunque la mayoría de nosotros no nos enfrentamos al nivel de escala de Cloudflare, nos encontramos con escenarios en los que el enrutamiento flexible de la capa de aplicación es esencial para nuestros servicios de red. La arquitectura de Pingora nos permite aprovechar toda la potencia de Rust en estas situaciones sin sacrificar la seguridad ni el rendimiento.
-
101. Ragas
Ragas es un framework diseñado para evaluar el rendimiento de los pipelines de [generación aumentada por recuperación (RAG por sus siglas en inglés)], abordando el desafío de evaluar tanto los componentes de recuperación como los de generación en estos sistemas. Proporciona métricas estructuradas como fidelidad, relevancia de la respuesta y utilización del contexto, que ayudan a evaluar la efectividad de los sistemas basados en RAG. Nuestros desarrolladores lo encontraron útil para realizar evaluaciones periódicas con el fin de afinar parámetros como las recuperaciones top-k y los modelos de incrustación. Algunos equipos han integrado Ragas en pipelines que se ejecutan diariamente, siempre que cambie la plantilla de prompts o el modelo. Aunque sus métricas ofrecen información valiosa, nos preocupa que el framework no capture todas las sutilezas e interacciones complejas de los pipelines RAG, y recomendamos considerar otros frameworks de evaluación adicionales. No obstante, Ragas destaca por su capacidad de optimizar la evaluación de RAG en entornos de producción, ofreciendo valiosas mejoras basadas en datos.
-
102. Score
Muchas organizaciones que implementan sus propias plataformas internas de desarrollo tienden a crear sus propios sistemas de platform orchestration para hacer cumplir los estándares organizacionales entre los desarrolladores y sus equipos de alojamiento de plataformas. Sin embargo, las características básicas de una plataforma de despliegue pavimentada para alojar cargas de trabajo en contenedores de manera segura, consistente y conforme son similares de una organización a otra. ¿No sería genial si tuviéramos un lenguaje compartido para especificar esos requisitos? Score está mostrando cierto potencial para convertirse en un estándar en este ámbito. Es un lenguaje declarativo en formato YAML que describe cómo debe desplegarse una carga de trabajo en contenedores y qué servicios y parámetros específicos necesitará para ejecutarse. Score fue desarrollado originalmente por Humanitec como el lenguaje de configuración para su producto Platform Orchestrator, pero ahora está bajo la custodia de la Cloud Native Computing Foundation (CNCF) como un proyecto de código abierto. Con el respaldo de la CNCF, Score tiene el potencial de ser más ampliamente utilizado más allá del producto de Humanitec. Ha sido lanzado con dos implementaciones de referencia: Kubernetes y Docker Compose. Esperamos que la extensibilidad de Score llevará a tener contribuciones de la comunidad para otras plataformas. Score ciertamente tiene un parecido con la especificación Open Application Model (OAM) para Kubevela, pero está más enfocado en el despliegue de cargas de trabajo en contenedores que en la aplicación completa. También hay cierta superposición con SST, pero SST está más enfocado en el despliegue directo en una infraestructura en la nube en lugar de una plataforma interna de ingeniería. Estaremos observando con interés la evolución de Score.
-
103. shadcn
shadcn desafía el concepto tradicional de bibliotecas de componentes al ofrecer componentes reutilizables, de tipo copiar-y-pegar que se convierten en parte de tu código fuente. Este enfoque brinda a los equipos total propiedad y control, lo que permite una fácil personalización y extensión – áreas donde las librerías más convencionales y populares como MUI y Chakra UI a menudo quedan cortas. Creada con Radix UI y Tailwind CSS, shadcn se integra perfectamente en cualquier aplicación basada en React, lo que lo convierte en una buena opción para proyectos que priorizan el control y la extensibilidad. Incluye una CLI para ayudar en el proceso de copiar y pegar los componentes en el proyecto. Sus beneficios también incluyen la reducción de dependencias ocultas y evitar implementaciones estrechamente acopladas, razón por la cual shadcn está ganando terreno como una alternativa convincente para los equipos que buscan un enfoque más práctico y adaptable para el desarrollo front-end.
-
104. Slint
Slint es un framework de GUI declarativo para construir interfaces de usuario nativas para aplicaciones en Rust, C++ o JavaScript. Aunque es un framework multiplataforma de UI con características importantes como vista previa en vivo, diseño de UI responsivo, integración con VS Code y una experiencia de usuario nativa, también nos gustaría resaltar principalmente su utilidad para sistemas embebidos. Los equipos que desarrollan aplicaciones embebidas han enfrentado tradicionalmente un número limitado de opciones para el desarrollo de la UI, cada una con sus propias implicaciones. Slint ofrece el balance perfecto entre la experiencia del desarrollador y el desempeño, utilizando un lenguaje de marcado fácil de usar, similar al HTML y compilado directamente a código máquina. En tiempo de ejecución, también cuenta con un bajo consumo de recursos, lo cual es crítico para los sistemas embebidos. En resumen, nos gusta Slint porque trae prácticas comprobadas del desarrollo web y móvil al ecosistema embebido.
-
105. SST
SST es un framework para desplegar aplicaciones dentro del ambiente en la nube junto con proporcionar todos los servicios que la aplicación necesite para ejecutarse. SST no es solo una herramienta IaC; es un framework con una API en TypeScript que te permite definir el ambiente de tu aplicación, un servicio que despliega tu aplicación cuando se ejecuta un Git Push así como una consola GUI para administrar la aplicación resultante e invocar las funciones de administración de SST. Aunque SST estaba originalmente basado en AWS Cloud Formation y CDK, su última versión ha sido implementada sobre Terraform y Pulumi para que, en teoría, sea agnóstico a la nube. SST tiene soporte nativo para el despliegue de varios frameworks estandar de web, incluidos Next.js y Remix, pero también soporta aplicaciones API sin interfaz gráfica. SST parece pertenecer a una categoría propia. Si bien tiene cierta similitud con herramientas de orquestación de plataforma como Kubevela, también provee conveniencias para los desarrolladores, como un modo en vivo que envía las invocaciones de AWS Lambda a una función que se ejecuta en la máquina local del desarrollador. En este momento, SST sigue siendo una curiosidad, pero es un proyecto y una categoría de herramientas que vale la pena seguir a medida que evoluciona.
Resistir
¿No encontraste algo que esperabas ver?
Cada edición del Radar presenta noticias que reflejan lo que hemos encontrado durante los seis meses anteriores. Es posible que ya hayamos cubierto lo que busca en un Radar anterior. A veces seleccionamos cosas simplemente porque hay demasiadas de las que hablar. También es posible que falte algún dato porque el Radar refleja nuestra experiencia, no se basa en un análisis exhaustivo del mercado.