Cuenta las líneas de código que has escrito con cloc

¿Os han pedido alguna vez que contéis las líneas de código que tiene un determinado proyecto? Para ser sincero, a mí nunca me lo han pedido. Creo que es más el valor que aporta una pieza de código por su funcionalidad y simpleza que por la cantidad de líneas. Sin embargo, tenía curiosidad por saber cuántas líneas de código tenían algunos de los proyectos en los que trabajo.

Existe una herramienta llamada clock (count lines of code) que nos permite saber cuántas líneas de código hemos escrito y que incluso nos deja excluir los saltos de línea y los comentarios.

Está disponible para Linux y Mac y se instala muy fácilmente.

Ubuntu

sudo apt install cloc

Fedora

sudo yum install cloc

Arch

sudo pacman -S cloc

Mac OS X

brew install cloc

Cómo contar las líneas de código

cloc se utiliza desde la línea de comandos y puede contar tanto las líneas de código de un único fichero como las de un directorio completo. Para utilizarlo, simplemente escribiríamos cloc seguido del nombre del archivo que queremos analizar.

Vamos a crear un archivo en bash llamado codigo-bash.sh que va a contener lo siguiente:

#!/bin/bash

# Tutorial para aprender a utilizar cloc
echo "Cómo contar las líneas de código de un proyecto"

# Nombre de la herramienta
echo "cloc"

Como véis, tiene varios comentarios y un par de comandos echo. ¿Qué resultado nos dará cloc?

cloc codigo-bash.sh
       1 text file.
       1 unique file.                              
       0 files ignored.

github.com/AlDanial/cloc v 1.74  T=0.00 s (204.3 files/s, 1429.8 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Bourne Shell                     1              2              2              3
-------------------------------------------------------------------------------

Nos diche que ha analizado un archivo que tiene dos saltos de línea, dos comentarios y tres líneas de código, ya que también cuenta la instrucción #!/bin/bash.

Analizar archivos comprimidos

Podemos analizar incluso archivos comprimidos. Vamos a añadir a un ZIP el archivo anterior y dos más: un archivo JavaScript y un archivo Python.

// archivo.js
console.log("Hola Mundo!");

/**
 * Esto es un comentario
 */

// Este es otro comentario

console.log("Deja tu comentario");
# archivo.py
print "Hola Mundo!"

# Esto es un comentario
# Este es otro comentario

print "Deja tu comentario"
cloc proyecto.zip 
       3 text files.
       3 unique files.                              
       0 files ignored.

github.com/AlDanial/cloc v 1.74  T=0.02 s (196.7 files/s, 1573.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Bourne Shell                     1              2              2              3
JavaScript                       1              3              5              2
Python                           1              2              3              2
-------------------------------------------------------------------------------
SUM:                             3              7             10              7
-------------------------------------------------------------------------------

También podéis ejecutar cloc en un directorio, sin necesidad de estar comprimido o de ser un único archivo.

Para ver más opciones, podéis hacer uso de su ayuda, que podéis leer con el comando:

cloc --help

¿Qué os ha parecido? ¿Utilizáis este tipo de herramientas?