Estilo de programación

Ernesto Hernandez-Novich emhn at telcel.net.ve
Fri Apr 27 09:38:17 CDT 2001


Larry Wall, el autor de Perl, es fundamentalmente un especialista en
lingüística antes que un especialista en lenguajes de programación. Esto,
aunque suene contradictorio, ha sido muy beneficioso porque la sintaxis
de Perl ha sido definida para que se asemeje al lenguaje natural. Es por
eso que existen variadas "formas comunes" (idioms en inglés) que son
sumamente concisas y que le dan claridad a los programas si uno los
interpreta en lenguaje natural. Siempre me ha parecido una excelente idea
aprender y preferir estas formas comunes antes que las tradicionales que
uno adopta de otros lenguajes.

Programar de forma _concisa_, evitando la _redundancia_ y aumentando la
_claridad_ son señal de profesionalismo (y de flojera, por supuesto :-). Perl
es el lenguaje ideal para lograrlo, como lo muestran algunos ejemplos.

- En lugar de escribir

  if ($i == 0) { ... }       o        if (! <expresion>) { ... }

  es mucho más conciso y natural escribir

  unless ($i) { ... }        o        unless (<expresion>) { ... }

- Aquellos que tienen una fuerte tendencia C/C++ escriben

  for (my $j = 0; $j <= 10; $j++) { ... }

  siendo que en Perl es mucho más conciso y elegante escribir

  for my $j (0..10) { ... }

- Código como

  if ($debug) {
    <una-sola-instruccion>
  }

  ocupa más espacio e interfiere con el contexto. Es mucho mejor escribir

  <una-sola-instruccion> if ($debug);

  (que, de paso, lo pueden combinar con el primer tip de usar unless en los
   casos apropiados).

- En lugar de escribir cosas como

  $resultado = <alguna-operacion>
  if (! $resultado ) {
    <una-sola-instruccion>
  }

  queda mejor escribir

  <alguna-operacion> or <una-sola-instruccion>

  que es el típico idioma para cosas como

  open(X,"archivo") or die "archivo no existe"

  El 'or' puede sustituirse por '||' que es equivalente.

Programas más cortos, claros y eficientes derivan de utilizar Perl "como si
fuera inglés" para expresar las soluciones a los problemas que se intenta
resolver.
-- 
Ernesto Hernández-Novich - Running Linux 2.4.2 i686 - Unix: Live free or die!
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/E d+(++) s+: a C+++$ UBLAVHIOSC*++++$ P++++$ L+++$ E- W+ N++ o K++ w--- O-
M- V PS+ PE Y+ PGP>++ t+ 5 X+ R* tv+ b++ DI+++$ D++ G++ e++ h r++ y+
-----END GEEK CODE BLOCK-----

------------------------------------------------------------------------
Enviar e-mail a <majordomo at pm.org> colocando en el cuerpo:
"UNSUBSCRIBE caracas-pm-list" para desuscribirse.
"INFO caracas-pm-list" para conocer las reglas de etiqueta.
------------------------------------------------------------------------



More information about the caracas-pm mailing list