El código y las pruebas

(4)

Escribir código sin pruebas automátizadas es como intentar usar ladrillos sin cemento.

-- Anónimo

El lenguaje de programación más popular en 2012

(18)

Según los lectores de la bitácora los lenguajes de programación más populares en 2.012 serán:

  1. Java (173 votos)
  2. PHP (107 votos)
  3. C (86 votos)
  4. C++ (47 votos)
  5. Python (37 votos)

Otros meritorios participantes han sido Visual Basic (35), C# (30), Ruby (10), COBOL (7), PL/SQL (7), Perl (6) o JavaScript (6).

Lenguaje de programación más popular

Gracias a todos los que respondisteis a la encuesta :-)

Líneas de código

(6)

Medir el progreso en el desarrollo de un programa mediante líneas de código es como medir el progreso en la construcción de un avión basándose en su peso.
-- Bill Gates

Medir SLOC

(3)

SLOCCount es un programa que sirve para medir el tamaño de un programa en SLOC (Source Lines Of Code) físicas, es decir, líneas de código fuente físicas, así como el esfuerzo de desarrollo estimado (en personas-año y personas-mes) según el modelo básico de COCOMO, tiempo estimado de desarrollo, número medio de desarrolladores estimado y el coste total estimado.

Se encuentra en los repositorios, así que instalarlo es tan sencillo como escribir en la consola:

sudo aptitude install sloccount

Se ejecuta pasándole como parámetro el directorio que contiene el código fuente, aunque hay otros parámetros útiles, como --personcost para indicar el sueldo anual de un programador, cuyo valor por defecto es de $56,286 (más de 3.000€ / 500.000 pesetas al mes).

sloccount gromlist

Y este, por último, es un informe de ejemplo a partir del código de Gromlist, mi pequeño clon de Offlinelist para Linux:

SLOC    Directory       SLOC-by-Language (Sorted)
791     usr             python=790,sh=1
46      top_dir         makefile=46
0       debian          (none)
0       locales         (none)

Totals grouped by language (dominant language first):
python:         790 (94.38%)
makefile:        46 (5.50%)
sh:               1 (0.12%)

Total Physical Source Lines of Code (SLOC)                = 837
Development Effort Estimate, Person-Years (Person-Months) = 0.17 (1.99)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 0.27 (3.25)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 0.61
Total Estimated Cost to Develop                           = $ 22,413
 (average salary = $56,286/year, overhead = 2.40).

Coloreado de sintaxis usando la consola

(1)

enscript es un programa que permite generar archivos HTML, RTF o PS con el código del archivo que le indiquemos, con coloreado de sintaxis. Para instalarlo:

sudo aptitude install enscript

Su uso es muy sencillo:

enscript --color --highlight=python --line-numbers --language=html --output=codigo.html *.py

  • --color: para que utilice coloreado de sintaxis.
  • --highlight=python: el coloreado de sintaxis se realizaría asumiendo que el código es Python (para ver los lenguajes soportados podemos escribir en la consola enscript --help-highlight). Si no se indica ningún lenguaje el programa intentará adivinar de qué clase de código se trata automágicamente.
  • --line-numbers: muestra los números de línea
  • --language=html: genera la salida en el formato especificado. Puede ser html, PostScript (por defecto) o rtf.
  • --output=codigo.html: el nombre del archivo de salida. Si especificamos el carácter - en lugar de un nombre de archivo, la salida se escribe en pantalla en lugar de a un archivo.

Otra opción (entre varias) que podemos utilizar es Pygments. Se trata de una aplicación escrita en Python de uso muy sencillo que permite añadir soporte para nuevos lenguajes fácilmente. Los formatos de archivo de salida disponibles son HTML, BBCode, RTF y Latex entre otros. Si elegimos HTML los colores se aplican usando hojas de estilo (opción -S), por lo que si el aspecto por defecto no nos convence, es sencillo de modificar.

Dado que reconoce el tipo de archivo de entrada y salida por su extensión colorear una serie de archivos es tan rápido y sencillo como escribir:

pygmentize -o codigo.html *.py

Guía de estilo Python

(6)

He traducido la Guía de estilo del código Python de Guido van Rossum, creador de Python, y Barry Warsaw, para cualquier que le interese ceñirse a las convenciones utilizadas en los módulos principales.

Podéis encontrar el enlace en la sección de Traducciones o bien acceder directamente a través del siguiente enlace: Guía de estilo Python.