Hay tradiciones en la academia que duran décadas no porque sean las mejores, sino porque nadie se anima a cuestionarlas. Decidí cuestionar una.
Este año asumí como docente de Programación I en la FICCT de la UAGRM, la materia donde los estudiantes de Ingeniería Informática e Ingeniería de Sistemas se encuentran por primera vez con el paradigma de la Programación Orientada a Objetos. Y me encontré con algo que me incomodó desde el primer día: la materia se enseñaba en Pascal, o más precisamente en Delphi, el entorno orientado a objetos que deriva de él.
No es que Pascal sea un mal lenguaje. Tiene sus virtudes pedagógicas, y durante años fue una elección razonable. Pero hay que ser honesto: en 2026, Pascal no existe en el mercado laboral. No está en los proyectos de las empresas, no aparece en las ofertas de trabajo, no forma parte de ningún ecosistema tecnológico relevante. Y la razón por la que seguía usándose era, en parte, la comodidad: los docentes lo conocían bien, los apuntes ya estaban hechos, el camino estaba trazado.
¿Por qué Rust?
Podría haber elegido Python, Java o C++. Todos son opciones legítimas y mucho más transitadas. Elegí Rust porque creo que es el lenguaje más importante que un ingeniero de sistemas puede aprender hoy, y porque su forma de encarar la POO es, en sí misma, una lección de diseño de software.
Rust no tiene herencia clásica. No tiene clases en el sentido de Java o C#. En cambio, tiene structs para modelar datos, bloques impl para definir comportamiento, traits para el polimorfismo y composición como mecanismo principal de reutilización. No es una POO de manual, y eso es exactamente lo interesante: obliga a entender el paradigma de verdad, no solo a memorizar la sintaxis de una jerarquía de clases.
Cada uno de estos conceptos tiene su contraparte en cualquier otro lenguaje orientado a objetos. Pero Rust los hace visibles, explícitos, obligatorios. No podés escribir código descuidado y que compile. Eso, que al principio parece una dificultad, termina siendo la mejor parte del proceso de aprendizaje.
El desafío real no fue técnico
Preparar el material no fue lo más difícil. Lo más difícil fue convencer, o al menos invitar, a los demás docentes de la materia a dar el mismo paso. En una carrera universitaria, un cambio de lenguaje no es solo un cambio de herramienta: afecta los programas, los parciales, los apuntes, los hábitos de años. Hay resistencia, y es comprensible.
Mi postura no es que Rust sea el único camino. Mi postura es que seguir enseñando Pascal en 2026 le hace un flaco favor a los estudiantes. Que si vamos a invertir el tiempo de una materia entera en aprender a pensar en objetos, lo mejor es hacerlo en un lenguaje que también les sirva cuando salgan al mundo real. Y si ese lenguaje además les enseña a pensar mejor sobre memoria, mutabilidad y diseño, mucho mejor.
Lo que me sorprendió: los estudiantes
Esperaba resistencia. Esperaba quejas, frustración con el compilador estricto de Rust, pedidos de volver a algo más familiar. No ocurrió. La recepción fue, genuinamente, buena. Los estudiantes llegaron con curiosidad. Algunos ya habían escuchado el nombre de Rust, sabían que era el lenguaje más admirado en encuestas de desarrolladores año tras año. Eso les generó una predisposición positiva que facilitó mucho las primeras clases.
Más importante: cuando empezaron a entender cómo funciona el sistema de tipos, cómo Rust te obliga a ser explícito sobre quién puede modificar qué, empezaron a hacer preguntas más profundas que las que suelen surgir en un curso introductorio. Eso, para un docente, no tiene precio.
Recursos abiertos
Si sos docente y estás pensando en dar un paso parecido, o si sos estudiante que quiere adelantarse al curso, todo está ahí. Sin restricciones, sin formularios, sin nada que pedir.