La versión original de este post se puede encontrar en DEV Community (inglés).

Hay una tendencia generalizada en tecnología de discutir sobre lenguajes específicos de programación abiertamente con desprecio. ¿Quién no ha oído gente quejarse de lo estúpido que es PHP, cuán retrógrados son los programadores de Java, y lo criminalmente miopes que son los usuarios de C++?

Nada me enoja más que este vigilantismo abierto, este bullying activo. Hablar mal de la gente no es una crítica técnica válida: su único objetivo es posicionarse a uno mismo como parte de un grupo élite. Es descaradamente excluyente.

Hablar de tecnología debería ser un diálogo movido por la compasión y el respeto. No esforzarse por comprender por qué la gente tomó una decisión particular, qué restricciones las llevaron a ellas, y más importante, qué podés aprender de ellos. Tomando prestada una expresión de un amigo, estás siendo arrogantemente ignorante.

Críticas instintivas consideradas dañinas

Gatekeeping es el acto de negarle a la gente el acceso a recursos a los que vos tenés acceso. Cuando te burlás de un lenguaje de programación, acusándolo de incorrecto o dañino, estás encasillando a sus usuarios como estúpidos o incapaces; estás implicando que no merecen trabajar en tecnología y deberían dedicarse a otra cosa.

Esos dichos muestran una falta de empatía: todos comienzan como novatos e intentan hacer lo mejor de lo que saben – vos ciertamente lo hiciste, no hace mucho. Una persona aprendiendo a programar a una edad temprana en su computadora personal, con padres dedicados a la ingeniería, y luego yendo a una prestigiosa universidad es tan merecedor de ser un programador como alguien que fue a un boot camp a los 35 y que luego vende temas de WordPress. Esperar que este último sepa de tipos dependientes porque el primero tuvo la oportunidad de trabajar a ese nivel de abstracción es miope, al menos; privilegiada y arrogante en el peor de los casos.

PHP es uno de mis lenguajes favoritos, no solo porque me metí en la programación web en los días del PHP2, sino por lo empoderador que es para los novatos. Cuando escribís PHP, siempre tenés un sitio corriendo – el lenguaje alimenta y sostiene tu motivación. Pelearse con pip, armar un ambiente remoto en WSL y tener que aprender vim son razones por las que la gente abandona o siente que no pertenecen.

Con la adopción generalizada de Wordpress, podés, en muy poco tiempo, convertirte en un desarrollador profesional: armando sitios para comercios locales, vendiendo temas y extensiones (plugins) en su mercado, o empezando a trabajar en una de las muchas consultoras y mercados freelance. Es difícil dimensionar cuán transformativo puede ser esto para comunidades marginalizadas y gente de países fuera de Europa occidental y los Estados Unidos. PHP y freelance.com me permitieron pasar de ganar menos que el salario mínimo a poder ganarme el alquiler en una tarde.

PHP cambió cantidades enormes más de vidas que Haskell.

El gatekeeping es el verdadero pecado tecnológico

Menospreciar y rechazar PHP, Java, Wordpress, Javascript y otros lenguajes y frameworks habitualmente criticados es una demostración de una mente cerrada; de ignorancia voluntaria.

La gente escribe código tratando de trabajar en la mejor de sus capacidades. Toman decisiones de acuerdo a sus conocimientos, el estado actual de la industria, las restricciones del problema que están tratando de solucionar, las presiones del mercado, y sus vidas personales. Visto a través de estos lentes y cuán exitosas son estas tecnologías, se nota cuán capaces y decididos son sus usuarios.

La única razón válida para criticar públicamente una decisión es si hace daño a la gente a propósito o cuando fue tomada por alguien que sabía que había una mejor opción pero eligió no tomarla por beneficio personal. Usualmente elegía arquitecturas que creía que no eran perfectas: presión por falta de tiempo; para ayudar a un colega a crecer haciendo que tome sus propias decisiones; para poder contratar gente de una comunidad más amplia y diversa.

Rechazar llanamente un lenguaje de programación te hace un tecnologista más pobre. Te cierra a comunidades enormes, vibrantes y diversas. La falta de humildad hace que te pierdas de la creatividad de usuarios comprometidos y prácticos. No podrías experimentar la calidad de sus herramientas y cuán buena puede ser su documentación e introducción. Una herramienta con 200.000 usuarios y 500 contribuyentes se convertirá rápidamente en algo mejor que una mantenida por 3 personas del área académica. Los novatos que reciben pull requests en sus proyectos en la primera semana rápidamente mejoran sus capacidades de ingeniería de software.

Ser desdeñoso muestra que te falta el gran contexto de lo que significa ser un programador: construir productos, convertir conceptos en realidad, y trabajar e interactuar con otros. Un programador es mucho más que un monito que escribe código y que se define exclusivamente por su elección de tecnologías.

Hablando mal de estos lenguajes y frameworks populares, no solo estás impidiendo que la gente se convierta en mejores profesionales; de que tengan acceso a conocimientos y recursos que vos tenés – estás frenando activamente tu crecimiento personal.

Te mantenés en la ignorancia por tu arrogancia.

En lugar de criticar, involucrate y compartí

Por supuesto, las críticas válidas son esenciales y saludables. Mientras que todo es una cuestión de decisión y compromiso, algunas opciones son mejores que otras; algunas decisiones son errores obvios (en retrospectiva). Aprender nuevos lenguajes y formas de trabajar es el camino esencial hacia el crecimiento.

Las críticas son valiosas cuando todos participan de buena fe, con respeto mútuo. Uno debería criticar puntos técnicos concretos – la crítica no debería estar apuntada a las personas y el por qué tomaron una decisión particular. Los contribuyentes principales de lenguajes como C, Haskell, Typescript y PHP tienen conversaciones cándidas, profundas y respetuosas. Saben que cada uno viene de un entorno diferente, adhieren a las decisiones de los otros y saben que pueden aprender de ellos.

En lugar de hablar mal de un lenguaje y sus usuarios, considerá cómo vos y tus interlocutores pueden enriquecer sus vidas. Todos amamos programar, trabajar en tecnología, y aprender. Si comprendemos que cada uno tiene su propio viaje, habilidades, motivaciones, éxitos, y complicaciones, todos podemos tomar mejores decisiones en el futuro.

Voy a recordar por siempre el día en que alguien en el IRC alabó mi tonto sitio en PHP y me dijo que disfrutaría de leer “Estructura e Interpretacion de Programas Informáticos” de Abelson y Sussman, lo que transformó mi carrera. De haberme dicho que era un idiota, que PHP era una porquería, y que debería estar avergonzado por haber escrito inyecciones SQL (SQL injections) tan obvias, tal vez no habría llegado hasta donde estoy hoy.

Conclusión

La próxima vez que sientas la necesidad de criticar algo o a alguien, respirá y reflexioná para ver de dónde surge eso: ¿te querés sentir superior, o realmente querés ayudar a alguien?

Todos deberíamos aspirar a hacer a la tecnología más receptiva – la mejor manera de hacerlo es afrontar cada situación con humildad, compasión, empatía y amor por la tecnología y sus comunidades.

Si creés que sabés más que el resto, entonces actuá acorde.