Por qué programar en Spanglish es una mala idea

Es muy común, en los comienzos de la carrera profesional, la adopción de malas prácticas.

En este sentido los desarrolladores de habla hispana tienen una ligera desventaja respecto de aquellos angloparlantes: para los segundos palabras como if, for o while tienen sentido por sí mismas.

Los primeros en cambio requieren un esfuerzo extra para hacer la traducción, por pequeño que sea.

El hecho de que no contar con el inglés como lengua materna lleva muchas veces a plasmar las ideas utilizando el vocabulario que resulta natural.

Sin embargo, las palabras reservadas del lenguaje utilizado, en este caso PHP, están tomadas del inglés.

Es por eso que es muy común encontrar construcciones como esta en el código producido por programadores latinos:

if (!empty($usuariosRegistrados)) {
  ...
}

Este código no tendrá problemas en ser ejecutado, sin embargo, encierra varios inconvenientes no siempre detectables a simple vista.

Aumento de la carga cognitiva

Este tipo de estructuras fuerza al cerebro a hacer un esfuerzo de traducción (sea de Español a Inglés o viceversa) que, por pequeño que sea, afecta el rendimiento.

De alguna forma es similar a la diferencia entre:

$verbose = $input->getOption('verbose');

if ( $verbose ) {
    $output->writeln('Importing from: '. $filename);
}

$f = fopen( $filename, 'r' );
$doctrine = $this->getContainer()->get('doctrine');
$em = $doctrine->getEntityManager();

$processed = $newAccounts = $newAgents = $changedAgents = $skipped = 0;
$limit = $input->getOption('limit');
if ( $limit && $verbose ) {
    $output->writeln('Processing maximum '.$limit.' accounts');
}

Y:

$verbose = $input->getOption('verbose');if ( $verbose ) {    $output->writeln('Importing from: '. $filename);}$f = fopen( $filename, 'r' );$doctrine = $this->getContainer()->get('doctrine');
$em = $doctrine->getEntityManager();
$processed = $newAccounts = $newAgents = $changedAgents = $skipped = 0;$limit = $input->getOption('limit');if ( $limit && $verbose ) {    $output->writeln('Processing maximum '.$limit.' accounts');}

Dificultad para la colaboración internacional

Este punto se hace evidente cuando se requiere que desarrolladores que no hablan Español tengan una participación activa en el proyecto.

Comprender código escrito por otras personas (O por nosotros mismos habiendo pasado un tiempo considerable) resulta difícil. Si a esa complejidad se le suma la falta de significado de los identificadores, la tarea se volverá realmente ardua, cuando no directamente imposible.

Basta pensar en un código como:

if (!empty($a) && $bxbhg > 50 ) {
  ...
}

Independientemente de la experiencia y conocimientos que se tengan sobre PHP, trabajar sobre este código no será sencillo, mucho menos placentero.

Imposibilidad de aprovechar el potencial de herramientas

Los entornos de desarrollo (IDEs) modernos, los frameworks y demás herramientas a menudo incorporan caractetísticas de generación de código en forma automática.

Por ejemplo, un framework de testing automatizado como phpUnit puede generar sus resultados de esta forma:

PHPUnit 9.5.10 by Sebastian Bergmann and contributors.

..                                                                  2 / 2 (100%)

Time: 00:00.009, Memory: 6.00 MB

OK (2 tests, 2 assertions)    

O de esta:

PHPUnit 9.5.10 by Sebastian Bergmann and contributors.

Calculator
 ✔ Add adds

Time: 00:00.004, Memory: 6.00 MB

OK (2 tests, 2 assertions)

Según los parámetros pasados en la invocación del ejecutable.

Claro que, para que esto tenga sentido, el nombre del método a ser probado debe tener algún significado como frase escrita en inglés.

En este caso sería:

<?php

declare(strict_types=1);

use PHPUnit\Framework\TestCase;

final class CalculatorTest extends TestCase
{
        public function testAddAdds()
        {
                $sut = new Calculator();
                $this->assertEquals(8, $sut->add(5, 3));
        }
}

Entonces… ¿es necesario aprender inglés?

La respuesta depende en gran medida de los objetivos profesionales.

Para quien aspire a integrar equipos de desarrollo compuestos por profesionales de diversas nacionalidades, no dominar el inglés puede convertirse en un limitante importante.

Claro que un buen nivel de inglés no es suficiente para competir globalmente pero es un buen comienzo.

mchojrin

Por mchojrin

Ayudo a desarrolladores PHP a acceder mercados y clientes más sofisticados y exigentes

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.