Trece lenguajes, una carrera.
En veinticuatro años he enviado proyectos reales en trece lenguajes de programación — C, C++, C#, Python, Java, JavaScript, SQL, PHP, Swift, Kotlin, VB.NET, Assembly, MATLAB. Sigo usando casi todos. Esto es lo que cada uno me enseñó, y por qué no suelto los que ya no están de moda.

Atakan Özalan
Cofundador & lead de ingeniería, GOGOGO LLC

Cuando le digo a la gente que envié trabajo en producción en trece lenguajes, la reacción es "¿por qué?" o "eso no cuenta, la mayoría ya no importa". Las dos están mal. Los lenguajes siguen importando — no porque escriba Assembly todos los días, sino porque lo que cada uno me enseñó aparece hoy en cómo escribo el runtime multi-agente de GOGOGO LLC.
Esta es la lista honesta, los años, y la única cosa que cada uno dejó permanente en cómo pienso.
Los trece, en orden cronológico aproximado
C — primaria, fascinación
C fue el primer lenguaje que se sintió como una herramienta y no un juguete. Layout de memoria, aritmética de punteros, la diferencia entre stack y heap. Sigo escribiendo código multi-agente con intuiciones C-shape sobre vida y propiedad. Cuando un script de Python tiene un leak por closure lo noto en un minuto porque C me enseñó a sentirlo.
C++ — secundaria, expansión
C++ me enseñó composición. Templates, polimorfismo, RAII. También me enseñó cuándo no usar toda la caja. Casi todo el C++ del que estoy orgulloso parece C más simple, con una o dos abstracciones en los puntos que realmente se pagan solas. Ese hábito viajó — nuestro runtime está lleno de decisiones de no generalizar.
C# — laboratorio universitario turco, era Windows
C# fue mi fase Windows. WinForms, ASP.NET, el debugger de Visual Studio. Aprendí cómo el buen tooling cambia la cultura de ingeniería. Las hints de análisis estático, el ir-a-definición de un click, las excepciones estructuradas — todo suma a código menos ansioso. Le empujo al equipo a invertir en tooling cuando un workflow tiene fricción, ese instinto vino de C#.
Python — uni y después para siempre
Python es el lenguaje que más uso hoy. Runtime multi-agente, pipelines de retrieval, harnesses de evaluación, ETL de datos, scripts que escribo los martes y boto los miércoles. El regalo más grande de Python fue enseñarme la forma de lo difícil de tipar en runtime — que es exactamente por qué hoy escribo las rutas críticas del runtime con contratos estrictos y esquemas pydantic aunque no esté obligado.
Java — uni, disciplina server-side
Java me enseñó qué significa enterprise. Interfaces verbosas, contenedores de inyección de dependencias, la forma en que un equipo grande codifica sus acuerdos en el lenguaje mismo. No amo Java pero respeto lo que hace por equipos de cincuenta. Algunas decisiones de interfaz del backend de GoPeople tienen forma Java: bordes explícitos, sin sorpresas.
JavaScript / TypeScript — finales de los 2010, full-stack
JavaScript me enseñó a convivir con herramientas imperfectas y enviar igual. TypeScript lo redimió. La mayoría de gogogollc.com y los UIs de producto hoy son TS. El regalo más grande: tipos como documentación que no se desincroniza. Lo usamos agresivo a lo largo de la superficie multi-agente — contratos de agentes, schemas de tools, payloads de mensajes — todo tipado de punta a punta.
SQL — todos los años desde entonces
SQL no es un lenguaje del que la gente alardee. Es del que apuesto la empresa. La capa analítica de cada producto es una consulta SQL que leo en quince segundos. SQL me enseñó que el modelo de datos es el producto, en una forma en que la capa de aplicación a menudo no lo es. No tenemos una abstracción ORM-única en GOGOGO; el SQL crudo sigue corriendo por la arquitectura en los lugares que más importan.
PHP — era Turkcell BiP, 2015
PHP fue la era de los bots de mensajería — flujos AIML para BiP Messenger, Facebook Messenger, Telegram. Envié rápido, envié feo, los bots corrieron años. PHP me enseñó a tomar en serio la fricción del deploy. Cualquier cosa que tenga que hacer dos veces para enviar, la automatizo.
Swift — 2019, marketplace AR sobre Google Glass 2
Swift fue mi capítulo mobile — marketplace AR enviado sobre Google Glass 2, después apps iOS. El regalo de Swift fue diseño de lenguaje con opinión — el tipo Optional, semántica value vs reference por default, la disciplina de dejar que el compilador te diga qué es posible y qué no. Lo prestamos hoy en cómo diseñamos el estado de agentes en el runtime.
Kotlin — era Android
Kotlin fue la válvula de escape de Android desde Java. Smart casts, null-safety, extension functions. Kotlin me enseñó que se puede rescatar un lenguaje estancado con un rediseño cuidadoso — que es lo que hicimos internamente cuando reemplazamos el runtime de 2024 con la reescritura de 2025. Misma idea: mantén lo que funciona, arregla lo que no, no rompas a los callers.
VB.NET — era freelance de principios de los 2010
Sí, VB.NET. Algunos clientes PyME a los que les hice freelance a principios de los 2010 vivían sobre Windows + Office + Access; envié trabajo real en VB.NET. La lección fue dura: encuentra a los clientes donde viven, en el lenguaje que habla su stack. La mayoría de las ventas de IA enterprise hoy se reducen a la misma lección. El stack lindo no es el punto; el mundo existente del cliente es.
Assembly — uni, intermitente
Assembly fue solo uni. No voy a escribir x86 de nuevo por voluntad propia. Pero el modelo mental — registros, ciclos de instrucción, qué realmente pasa debajo de una abstracción alta — es permanente. Cuando hoy miro un gráfico de costo de inferencia GPU para Goddo, estoy pensando en algo cercano a ciclos de Assembly.
MATLAB — escuela de ingeniería, optimización
MATLAB fue la fase de optimización / procesamiento de señales / teoría de control. No glamoroso; hace años que no lo abro. Pero MATLAB es donde primero escribí loops numéricos sobre datos reales y los pensé como matemática. Ese hábito es la única razón por la que puedo leer un diagrama de atención de un transformer sin pestañear.
Qué significa para el runtime
El runtime multi-agente de GOGOGO — lo que corre debajo de los cuatro productos — tiene partes de cada uno de estos lenguajes horneadas en su filosofía de diseño. Intuiciones C-shape de vida en cómo gestionamos el estado de agentes y lo desarmamos limpiamente. La disciplina C++ de "no sobre-generalizar" en cómo resistimos construir abstracciones de agente hasta que el tercer caso de uso lo exige. Disciplina de tooling C# en cuán agresivo invertimos en visualización de traces y UI de replay. Introspección runtime de Python en cómo cada paso de agente se refleja, se traza, se reproduce. Disciplina de fronteras Java en cómo las superficies de producto hablan con el runtime — contratos tipados, handoffs explícitos. Tipos punta-a-punta de TypeScript en cómo los mismos contratos de agente están tipados desde runtime hasta API hasta frontend. Pensamiento de datos SQL-shape en cómo modelamos el log de eventos de agente como una línea de tiempo consultable.
Por qué no suelto los pasados de moda
La mayoría de los ingenieros en 2026 envían en tres a cinco lenguajes. El sweet spot actual es Python + TypeScript + SQL + tal vez Go o Rust. Lo entiendo. Yo también hago la mayoría de mi propio trabajo ahí. Pero soltar los lenguajes viejos de la lista de cosas que puedo leer sería un error — porque los sistemas legacy con los que integramos en sitios de clientes siguen corriendo en ellos.
El año pasado onboardeamos a un cliente cuyo ERP todavía es VB.NET. La integración me tomó un domingo porque pude leer su código sin traducción. Si hubiera soltado ese lenguaje, el deal habría muerto esperando a un contractor.
“Los lenguajes de programación no son moda. Cada uno es una forma permanente de ver software que ya no se des-ve. El costo de mantener trece en tu cabeza son unas pocas horas al año de lectura de refresco. El costo de perder uno es un deal de cliente.”
Lo que le diría a un ingeniero más joven
Elige los lenguajes que matchean con el trabajo que tienes adelante, no el que desearías que existiera. Envía algo real en cada uno. Después seguilos leyendo cuando dejes de escribirlos. La biblioteca de intuiciones permanentes que construís es lo que te hace valioso en tus cuarentas, no qué lenguajes usaste para tu primer compilador.
Si querés discutir cualquier cosa de esta lista, soy fácil de encontrar. atakanozalan.com o ezagor si preferís el handle.