Herramientas
Adoptar
-
42. Bruno
Bruno es una alternativa de escritorio de código abierto para Postman e Insomnia para pruebas, desarrollo y depuración de APIs. Su objetivo es proveer colaboración, privacidad y seguridad superior con su diseño simple y sin conexión. Las colecciones se almacenan directamente en el sistema de archivos local – escritas un lenguaje de marcado de texto plano, Bru Lang – y puede ser compartido con git u otra herramienta de control de versiones que elija para colaborar. Bruno está disponible tanto en aplicación de escritorio como en herramienta CLI También ofrece una extensión oficial de VS Code, con planes para soporte de IDE adicional. Bruno se ha convertido en la opción predeterminada para varios equipos en Thoughtworks, pero también recomendamos a los equipos tener precaución al trabajar en entornos VPN y proxy, ya que las solicitudes realizadas en tales condiciones se ha informado que fallan inesperadamente.
-
43. K9s
K9s ha mejorado sus características de visualización al integrar gráficas y vistas más detalladas. Ofrece una mejor visualización de logs y métricas además ser más flexible en cómo muestra las definiciones de recursos personalizados (CRDs). Las operaciones sobre los pods han sido expandidas también y ahora incluye una mejor integración con herramientas de depuración (p. ej., kubectl debug) y soporte mejorado para ambientes multi-cluster. El soporte para CRDs ha mejorado significativamente al proveer una mejor navegación y administración de estos recursos además de una interacción más fluida con recursos personalizados. El panel de accesos directos ha sido también mejorado para hacerlo más accesible a los desarrolladores que tienen menos experiencia con kubectl. Ésta es una mejora significativa ya que al principio K9s estaba enfocada principalmente en equipos DevOps.
-
44. SOPS
SOPS es un editor de archivos encriptados que admite varios formatos de encriptación con KMS. Nuestro consejo sobre la gestión de secretos siempre ha sido mantenerlos fuera del código. No obstante, al tener que elegir entre la automatización completa (apegándonos al principio de infraestructura como código) y algunos pasos manuales (utilizando herramientas de tipo Vault) para la administración, aprovisionamiento y rotación de secretos iniciales, los equipos frecuentemente se encuentran frente un dilema. Por ejemplo, nuestros equipos utilizan SOPS para gestionar las credenciales de inicialización en el aprovisionamiento de infraestructura. Sin embargo, hay situaciones en las que es imposible eliminar secretos de los repositorios con código heredado. En esos casos, recurrimos a SOPS para encriptar secretos en archivos de texto. SOPS se integra con almacenes de claves gestionados en la nube, como AWS y GCP Key Management Service (KMS) o Azure Key Vault como fuente de las claves de encriptación. También funciona de manera multiplataforma y admite claves PGP. Muchos de nuestros equipos optan por SOPS como su primera opción para gestionar secretos en el repositorio.
-
45. Herramientas para pruebas de regresión visual
Hemos destacado las herramientas para pruebas de regresión visual antes y hemos observado sus algoritmos evolucionar desde una comparación primitiva a nivel de píxel hasta ser un sofisticado sistema de coincidencia de patrones y reconocimiento óptico de caracteres (OCR, por sus siglas en inglés). Las herramientas tempranas de regresión visual generaban muchos falsos positivos y eran útiles solo en etapas posteriores de desarrollo cuando la interfaz se volvía estable. BackstopJS prevenía este problema al configurar selectores y ventanas gráficas para identificar pruebas visuales de elementos específicos en la pantalla. Pero el machine learning ha facilitado la detección y comparación de elementos visuales de manera más precisa, a pesar de que estos se muevan o abarquen contenido dinámico. Estas herramientas de pruebas se han vuelto más útiles y están bien posicionadas para aprovechar los últimos avances en inteligencia artificial y machine learning. Varias herramientas comerciales como Applitools y Percy, ahora afirman usar IA en sus pruebas de regresión visual. Uno de nuestros equipos ha utilizado Applitools Eyes extensamente y están contentos con los resultados. Aunque las pruebas de regresión visual no son un substituto para unas pruebas funcionales end-to-end bien escritas, sí son una adición para la caja de herramientas de pruebas. Estamos promoviendo su adopción porque se han convertido en una opción predeterminada segura como elemento de una estrategia integral de pruebas de IU.
-
46. Wiz
Wiz se ha convertido en la plataforma de seguridad en la nube preferida en muchos de nuestros proyectos. Nuestros equipos valoran su capacidad para detectar riesgos y amenazas más temprano que otras herramientas similares, debido a que realiza escaneos continuos en busca de cambios. Wiz puede detectar y alertar sobre configuraciones incorrectas, vulnerabilidades y secretos filtrados, tanto en artefactos que aún no se han implementado en entornos de producción (imágenes de contenedores, código de infraestructura) como en cargas de trabajo en vivo (contenedores, máquinas virtuales y servicios en la nube). También apreciamos su potente capacidad de generación de informes tanto para equipos de desarrollo como líderes. Este análisis nos ayuda a comprender cómo una vulnerabilidad puede afectar un servicio determinado, para que podamos resolver los problemas en ese contexto.
Evaluar
-
58. Astronomer Cosmos
Astronomer Cosmos es un plugin de Airflow diseñado para proporcionar un soporte nativo a los flujos de trabajo centrales de dbt en Airflow. Con el plugin instalado, cuando se utiliza
DbtDag
para envolver un flujo de trabajo de dbt, convierte los nodos de dbt en grupos de tareas/tarea de Airflow, permitiendo que los ingenieros e ingenieras visualicen grafos de dependencias de dbt y el progreso en su ejecución directamente en la interfaz de usuario de Airflow. También da soporte para utilizar conexiones de Airflow en lugar de perfiles de dbt, reduciendo potencialmente la dispersión de configuraciones. Estamos experimentando con la herramienta por su potencial para hacer que el trabajo con dbt en Airflow sea más fluido. -
59. ColPali
ColPali es una herramienta emergente para la recuperación de documentos PDF que utiliza modelos de lenguaje visual, abordando los desafíos de construir una aplicación robusta de generación mejorada por recuperación (RAG) que pueda extraer datos de documentos multimedia que contengan imágenes, diagramas y tablas. A diferencia de los métodos tradicionales que se basan en embeddings basados en texto o técnicas de reconocimiento óptico de caracteres (OCR), ColPali procesa páginas completas en PDF, utilizando un transformador visual para crear embeddings que consideran tanto el contenido textual como visual. Este enfoque holístico permite una mejor recuperación y una mayor capacidad de razonamiento sobre por qué se recuperan ciertos documentos, mejorando significativamente el rendimiento de RAG en PDFs ricos en datos. Hemos probado ColPali con varios clientes en los que ha mostrado resultados prometedores, aunque la tecnología aún está en sus primeras etapas. Vale la pena evaluarlo, especialmente para organizaciones con datos en documentos visuales complejos.
-
60. Cursor
La carrera por desarrollar herramientas de programación asistidas por inteligencia artificial (AI) está en marcha, y la más llamativa es Cursor. Es un editor de código AI-first diseñado para mejorar la productividad de los desarrolladores mediante la integración profunda de la IA en el flujo de trabajo de codificación. Le hemos prestado atención desde anteriores evaluaciones de radares, pero está claro que la reciente mejora continua de Cursor ha marcado el comienzo de un cambio cualitativo. En nuestro caso, ha demostrado fuertes capacidades de razonamiento contextual en función del código base existente. Mientras que otras herramientas de código de IA como GitHub Copilot tienden a generar y colaborar en torno a fragmentos de código, las operaciones de edición multilínea y multiarchivo de Cursor lo hacen destacar. Al basarse en VSCode ofrece un método de interacción rápido e intuitivo que se ajusta a la lógica del desarrollador. Poderosas operaciones pueden ser completadas con
ctrl/cmd+K
yctrl/cmd+L
. Cursor está liderando una nueva ronda de competición en herramientas de programación de IA, especialmente en lo que respecta a la interacción del desarrollador y la comprensión del código base. -
61. Data Mesh Manager
Data Mesh Manager proporciona la capa de metadatos de una típica plataforma de data mesh. En particular, se centra en la definición de productos de datos y la especificación de contratos de datos usando la iniciativa OpenContract y puede integrarse en pipelines de construcción usando la DataContract CLI asociada. La aplicación también provee un catálogo de datos para descubrir y explorar productos de datos y su metadata, y permite un gobierno federado incluyendo la definición de métricas de calidad de datos y la administración de reglas de calidad de datos. Es una de las primeras herramientas nativas en este espacio lo que significa que no está solamente tratando de adaptar plataformas existentes al paradigma de data mesh.
-
62. GitButler
A pesar de su potencia y utilidad, la interfaz de línea de comandos de Git es notoriamente compleja cuando se trata de gestionar múltiples ramas y preparar commits dentro de ellas. GitButler es un cliente de Git que proporciona una interfaz gráfica que busca simplificar este proceso. Lo hace rastreando los cambios de archivos no confirmados de forma independiente a Git y luego los organiza en ramas virtuales. Se podría argumentar que esto es una solución para un problema que no debería existir en primer lugar; si haces cambios pequeños y haces push al trunk con frecuencia, no hay necesidad de múltiples ramas. Sin embargo, cuando tu flujo de trabajo incluye pull requests, la estructura de ramas puede volverse compleja, especialmente si hay un ciclo de revisión largo antes de que se pueda fusionar un pull request. Para abordar esto, GitButler también se integra con GitHub, lo que te permite agrupar selectivamente cambios en pull requests y emitirlos directamente desde la herramienta. GitButler es una entrada más en la creciente categoría de herramientas enfocadas en gestionar la complejidad inherente al proceso de pull requests.
-
63. Asistente de IA de JetBrains
El Asistente de IA de JetBrains es un asistente de codificación diseñado para integrarse sin problemas con todos los IDE de JetBrains apoyando el autocompletado de código, la generación de pruebas y la adherencia a de la guía de estilo. Desarrollado sobre modelos como OpenAI y Google Gemini, se destaca por su capacidad para garantizar un resultado consistente al recordar estilos de codificación para futuras sesiones. Nuestros desarrolladores encontraron sus capacidades de generación de pruebas particularmente útiles y notaron su habilidad para manejar resultados más largos sin problemas de estabilidad. Sin embargo, a diferencia de algunos competidores, JetBrains no aloja sus propios modelos, lo que puede no funcionar para clientes preocupados por el manejo de datos hacia terceros. Aun así, la integración de la herramienta con los IDEs de JetBrains la convierte en una opción prometedora para los equipos que exploran asistentes de codificación impulsados por IA.
-
64. Mise
Los desarrolladores que trabajan en entornos políglotas, se encuentran con frecuencia con múltiples versiones de diferentes lenguajes y herramientas. mise tiene como objetivo resolver ese problema proporcionando una herramienta que reemplaza nvm, pyenv, rbenv, rustup, entre otras, y es un reemplazo directo para asdf. Mise está escrito en Rust para tener una interacción rápida con el terminal, y a diferencia de asdf, el cual usa paquetes basados en terminal, Mise modifica la variable de entorno PATH por adelantado, lo que hace que las ejecuciones se llamen directamente. Esto es en parte porque Mise es más rápido que asdf. Para aquellos desarrolladores que ya están familiarizados con asdf, Mise proporciona la misma funcionalidad, pero con unas pocas diferencias clave. Estando escrito en Rust, es más rápido y tiene algunas características que asdf no tiene, como por ejemplo, la habilidad de instalar múltiples versiones de la misma herramienta al mismo tiempo y ser capaz de recordar comandos, incluyendo coincidencia difusa. También proporciona un ejecutor de tareas integrado, útil para cosas como linters, tests, compiladores, servidores y otras tareas que son específicas de un proyecto. Si estás un poco harta de tener que usar múltiples herramientas para administrar tu entorno de desarrollo, y de la sintaxis, algunas veces incómoda de otras herramientas, Mise definitivamente te merecerá la pena.
-
65. Mockoon
**Mockoon** es una herramienta de código abierto para la simulación de APIs. Ofrece una interfaz intuitiva, rutas personalizables y respuestas dinámicas, además de la capacidad de automatizar la creación de conjuntos de datos simulados. Mockoon es compatible con OpenAPI y te permite generar diferentes escenarios que pueden probarse localmente e integrarse en un pipeline de desarrollo. También puedes crearsimulaciones parciales (partial mocks) interceptando las solicitudes y simulando solo las llamadas que están definidas en Mockoon. Estas simulaciones parciales ayudan a emular rutas o endpoints específicos de una API, mientras que el resto de solicitudes se redirigen a servidores reales. Aunque las simulaciones parciales pueden ser útiles en ciertos escenarios, existe el riesgo de un uso excesivo, lo que podría añadir complejidad innecesaria. Aparte de esto, Mockoon sigue siendo una herramienta valiosa para configurar rápidamente APIs simuladas y mejorar y automatizar los flujos de trabajo de desarrollo.
-
66. Raycast
Raycast es un launcher freemium para macOS que te permite abrir aplicaciones rápidamente, ejecutar comandos, buscar archivos y automatizar tareas desde el teclado. Nuestros equipos valoran sus funciones predeterminadas para desarrolladores y su fácil extensibilidad, que permite interactuar con aplicaciones y servicios de terceros como VSCode, Slack, Jira y Google, entre otros muchos. Raycast está diseñada para mejorar la productividad y minimizar los cambios de contexto, lo que la convierte en una herramienta útil para quienes buscan optimizar sus tareas diarias. Los usuarios Pro tienen acceso a Raycast AI, un asistente de búsqueda especializado impulsado por inteligencia artificial.
-
67. ReadySet
ReadySet es un caché de consultas para MySQL y PostgreSQL. A diferencia de soluciones de caching que dependen de invalidación manual, ReadySet aprovecha los flujos de replicación de las bases de datos para actualizar su caché incrementalmente. A través de vistas materializadas parciales, ReadySet alcanza latencias de cola más bajas que una réplica de lectura tradicional. ReadySet es compatible con MySQL y PostgreSQL, por lo que puedes desplegarlo frente a tu base de datos para escalar horizontalmente cargas de trabajo sin requerir cambios en la aplicación.
-
68. Rspack
Muchos de nuestros equipos que trabajan en frontends basados en la web se han movido de herramientas de empaquetamiento más antiguas — como Webpack – a Vite. Un nuevo participante en este campo es Rspack, que después de 1.5 años en desarrollo ha visto su release 1.0. Diseñado como un reemplazo directo para Webpack, es compatible con los plugins y loaders del ecosistema de Webpack. Esto puede ser una ventaja por sobre Vite al momento de migrar configuraciones complejas de Webpack. La razón principal por la que nuestros equipos están migrando a nuevas herramientas como Vite y Redpack es la experiencia de desarrollo, y en particular, la velocidad. Nada rompe más el flujo de desarrollo que tener que esperar un minuto o dos antes de conseguir retroalimentación de los últimos cambios en el código. Escrita en Rust, Rspack entrega un rendimiento significativamente más rápido que Webpack, y en muchos casos, es incluso más rápido que Vite.
-
69. Semantic Router
Cuando se construyen aplicaciones basadas en LLM, es fundamental determinar la intención de un usuario antes de enrutar una petición a un agente especializado o invocar un flujo específico. Semantic Router actúa como una capa superrápida de toma de decisiones para LLMs y agentes, permitiendo un enrutamiento eficiente y fiable de las peticiones basado en el significado semántico. Al utilizar embeddings vectoriales para inferir la intención, Semantic Router reduce las llamadas innecesarias a los LLM, ofreciendo un enfoque más ágil y rentable para comprender la intención del usuario. Su potencial se extiende más allá de la inferencia de intenciones, sirviendo como bloque de construcción versátil para diversas tareas semánticas. La velocidad y flexibilidad que ofrece lo sitúan como un fuerte competidor en entornos que requieren una toma de decisiones rápida y en tiempo real sin la sobrecarga de los LLM.
-
70. Asistente de Ingeniería de Software
Uno de los temas más interesantes en este momento en el espacio GenAI es el concepto de Asistente de Ingeniería de Software. Estas herramientas de asistencia al código hacen más que simplemente ayudar a los ingenieros con fragmentos de código aquí y allá; amplifica el tamaño del problema que pueden resolver, idealmente de forma autónoma y con mínima intervención humana. La idea es que estas herramientas puedan tomar una incidencia de GitHub o un ticket de Jira y proponer un plan y cambios en el código para implementarlo, o incluso crear una revisión de código para que una persona lo revise. Si bien éste es el siguiente paso lógico para aumentar el impacto de la asistencia al código con IA, el publicitado objetivo de asistentes genéricos que puedan cubrir una amplia gama de tareas de programación es muy ambicioso, y el estado actual de las herramientas aún no lo demuestra de manera convincente. Sin embargo, podemos ver que esto funcionará más pronto que tarde para un alcance más limitado de tareas sencillas, lo que liberará tiempo de los desarrolladores para trabajar en problemas más complejos. Las herramientas que están lanzando y comercializando versiones beta de agentes incluyen GitHub Copilot Workspace, qodo flow, Agentes para jira JIRA de Tabnine o Amazon Q Developer. La referente SWE Bench enumera más herramientas en ese espacio, pero recomendamos tomar los benchmark en el espacio de la IA con cautela.
-
71. uv
Rust es muy adecuado para escribir herramientas de línea de comandos debido a su rápido rendimiento de arranque, y vemos gente reescribiendo algunas cadenas de herramientas en él. En el anterior Tech Radar mencionamos Ruff, un linter para Phyton escrito en Rust. En esta edición, evaluamos uv, una herramienta de gestión de paquetes de Python escrita en Rust. La propuesta de valor de uv es serultrarrápida y supera a otras herramientas de gestión de paquetes de Python por un amplio margen en sus benchmarks. Sin embargo, durante la evaluación para este radar, analizamos si optimizar segundos para las herramientas de compilación es realmente una mejora. En comparación con el rendimiento, lo más importante para un sistema de gestión de paquetes es el ecosistema, la madurez de la comunidad y el soporte a largo plazo. Dicho esto, el feedback del equipo del proyecto nos ha demostrado que esta mejora en el margen de la velocidad podría ser una gran ventaja para mejorar los ciclos de feedback y la experiencia general de desarrollo: tendemos a hacer que el almacenamiento en caché de la CI/CD sea muy complejo de forma manual para lograr esta pequeña mejora del rendimiento. uv simplifica la gestión de nuestro entorno Python. Teniendo en cuenta que todavía hay mucho margen de mejora en la gestión de paquetes y entornos para desarrollo en Python, creemos que uv es una opción que vale la pena evaluar.
-
72. Warp
Warp es un terminal para macOS y Linux. Divide las salidas de comandos en bloques para mejorar la legibilidad. Warp cuenta con capacidades impulsadas por IA tales como sugerencias inteligentes de comandos y procesamiento de lenguaje natural. También incluye una funcionalidad de notebooks que permite a los usuarios organizar comandos y salidas, así como agregar anotaciones y documentación. Se puede aprovechar estas funcionalidades para crear archivos README o materiales de inducción y proporcionar una manera estructurada e interactiva de presentar y gestionar flujos de trabajo en el terminal. Warp se integra fácilmente con Starship, un indicador multiplataforma flexible, lo que te permite personalizar la experiencia del terminal y extraer información sobre procesos en ejecución, la versión específica de una herramienta que estés usando, detalles de Git o el usuario actual de Git, entre otros detalles.
-
73. Zed
Después del cierre del proyecto del editor de texto Atom, sus creadores construyeron un nuevo editor llamado Zed. Escrito en Rust y optimizado para aprovechar el hardware moderno, Zed se siente rápido. Tiene todas las características que esperamos de un editor moderno: soporte para muchos lenguajes de programación, un terminal incorporado y edición multibuffer, por mencionar algunos. La codificación asistida por IA está disponible mediante la integración con varios proveedores de LLM. Como fervientes practicantes de la programación en pareja, estamos intrigados por la función de collaboration feature integrada en Zed. Los desarrolladores se encuentran a través de sus IDs de GitHub y pueden colaborar en el mismo espacio de trabajo en tiempo real. Es demasiado pronto para saber si los equipos de desarrollo pueden y quieren escapar del atractivo del ecosistema de Visual Studio Code, pero Zed es una alternativa a explorar.
Resistir
-
74. CocoaPods
CocoaPods ha sido una herramienta habitual de gestión de dependencias para proyectos en Swift y Objective-C. Sin embargo, el equipo de CocoaPods anunció que el proyecto se encuentra en modo de mantenimiento después de más de una década siendo una herramienta clave para desarrollar en iOS y macOS. Aunque la herramienta y sus recursos seguirán disponibles, no habrá más desarrollo activo. Se recomienda a los equipos de desarrollo cambiar a Swift Package Manager, que ofrece una integración nativa con Xcode y un mejor soporte a largo plazo por parte de Apple.
¿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.