Pirobits
  

Mi stack de tecnologías para 2024 (IA, front, back)

alberto avatar Alberto Sola · 3/4/2024 · 5 min

En este posts quiero hablar de mi stack de tecnologías con las que empiezo usando en 2024. Antes de comenzar a hablar de las tecnologías que utilizo, voy a empezar por reflexionar sobre este tema:

  • Las diferentes tecnologías son herramientas para solucionar problemas. En muchas ocasiones existen opciones que te permiten validar una hipótesis o crear un producto de forma rápida, sin código, etc. Empieza siempre por aquí, por algo simple y rápido.
  • Las tecnologías a veces se convierten en modas en este sector. Cada cierto tiempo sale una tecnología nueva que proclama ser mejor o más rápida. Puedes probarla y valorar tú mismo qué te aporta. En mi caso suelo evitar todo este tipo de tendencias.

Como dice mi padre, "todos los caminos conducen a Roma". ¿Qué quiero decir con esto? Que cualquier tecnología te va a permitir solucionar el problema, por lo que al final lo mejor es que elijas la que más se adapte a tus necesidades y dentro de esto, empieza por la más sencilla o con la que te sientas más cómodo.

Ahora sí, te cuento las herramientas con las que más suelo trabajar.

Mi stack para 2024

En general, elijo tecnologías que me permiten iterar rápido, que sean eficientes y dentro de esto elijo aquellas con las que me siento cómodo. Siempre estoy abierto a probar y aprender lenguajes, frameworks o herramientas que puedan ayudarme.

Python: mi navaja suiza para scripts e IA

Este es uno de mis lenguajes favoritos, además fue con el que empecé en el mundo de la programación cuando tenía 11 años. Tiene una comunidad muy grande, muchos paquetes ya creados... además te permite crear código muy rápido, los LLMs como GPT o Gemini crean código Python de bastante buena calidad, y además tienes módulos para trabajar con los diferentes modelos de HuggingFace.

Para mi es genial por su simpleza, la rapidez con la que desarrolla y la gran cantidad de opciones que te permite.

ChatGPT: Revolucionando la IA

ChatGPT ha sido mi última incorporación a mi "set de herramientas", es un imprescindible en mi día a día para realizar todo tipo de tareas y ayudarme a ir más rápido. Es impresionante cómo puedes utilizarlo para aprender conceptos, automatizar procesos o incluso para desarrollar pequeños programas. También estoy muy expectante con la nueva versión de Gemini. Para generación de imágenes siempre he utilizado Dall-E, aunque estos días estoy explorando otras opciones como StableDiffusion.

NextJS: Mi elección para el front-end

He probado todo tipo de herramientas para el front, desde generadores de estáticos como Hugo, hasta sistemas de plantillas con javascript simple. Aunque son herramientas muy interesantes que tienen su caso de uso, al final me quedo con NextJS y React. Posiblemente no sean las más simples y tienen ciertos problemas que me enfadan cuando tengo que inventarme algún workaround, pero he aprendido a vivir con ello y en general me permiten avanzar muy rápido. Además me gusta mucho el camino actual de las nuevas versiones que tienen soporte para React Server Componentes, esto da para un post que haré pronto.

Node.js: Potencia en el back-end

Node.js sigue siendo mi caballo de batalla para el back-end. La capacidad de usar JavaScript (o typescript) tanto en el frontend como en el backend simplifica el desarrollo. Además Node es asincrónico por naturaleza y su sistema de eventos lo hace ideal para peticiones concurrentes con gran I/O y bajo uso de CPU. Como todo, tiene su desventaja cuando tienes que escalarlo (usando pm2 o docker) o para tareas CPU intensivas.

Go y Rust: Mis ases en la manga

Para tareas que requieren un alto rendimiento y seguridad, Go y Rust son mis ases en la manga. Go es increíblemente eficiente para construir sistemas concurrentes, mientras que Rust ofrece garantías de seguridad de memoria sin sacrificar velocidad. Ambos tienen una curva de aprendizaje pronunciada, siendo Rust bastante más complicado que Go, pero los beneficios valen la pena cuando de verdad los necesitas.

MySQL: Robustez en almacenamiento de datos

Para la gestión de bases de datos, siempre he utilizado MySQL, tanto gestionado por ti mismo como opciones como PlanetScale o RDS en AWS son mi "go to". Aunque he experimentado con PostgreSQL en múltiples ocasiones e incluso he utilizado NoSQL (MongoDB), MySQL sigue siendo mi opción por defecto para la mayoría de los proyectos.

Recuerda que siempre puedes empezar por usar una hoja de éxcel.

Cloud y serverless vs. VPS tradicionales: Una elección personal

Aunque la arquitectura serverless tiene sus ventajas, personalmente prefiero la simplicidad y el control que me ofrece un VPS clásico. Mantener un servidor puede parecer ser más laborioso, pero luego te das cuenta que es mucho más simple y barato. Es un tema que me gustaría profundizar más adelante.

Para tareas específicas, sin embargo, las colas y los trabajos asíncronos en sistemas serverless pueden ser útiles en ocasiones. Aquí AWS Lambda + SQS o Cloudflare Workers son opciones que me gustan, pero luego en la práctica he desplegado muy pocos proyectos reales ahí.

Espero que este recorrido por mi stack tecnológico favorito para 2024 te haya resultado interesante. ¿Qué tecnologías estás usando este año? ¿Te gustaría que profundice alguna otra parte?

Si te ha resultado útil este artículo agradecería si te suscribes a mi newsletter. Recibirás contenido exclusivo de calidad y también me ayudarás enormemente. Cada suscripción apoya el trabajo que realizo y me permite conocer mejor los temas que te interesan, de forma que puedo mejorar los conocimientos que comparto contigo.


Posts recientes