El código y las pruebas
(4)
Escribir código sin pruebas automátizadas es como intentar usar ladrillos sin cemento.
-- Anónimo
Escribir código sin pruebas automátizadas es como intentar usar ladrillos sin cemento.
-- Anónimo
Según los lectores de la bitácora los lenguajes de programación más populares en 2.012 serán:
Otros meritorios participantes han sido Visual Basic (35), C# (30), Ruby (10), COBOL (7), PL/SQL (7), Perl (6) o JavaScript (6).

Gracias a todos los que respondisteis a la encuesta ![]()
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
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).
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
enscript --help-highlight). Si no se indica ningún lenguaje el programa intentará adivinar de qué clase de código se trata automágicamente.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
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.