¿Con qué lenguaje se hizo este programa? (ii)
Posted by danitxu in /usr/share/doc, tags: debtagsComo bien dedujeron la y los comentaristas del post anterior, el código fuente estaba puesto de forma especialmente incomprensible por su autor, pero el caso es que se trataba no de una aplicación corriente, sino de la edición 2004 del concurso internacional de ofuscación de código C (y es que en este mundo hay gente para todo). Compilando da algunos warnings, y el resultado era algo raro que, por encontrar algún parecido, visto de lejos o en pequeño podría asemejarse a interferencias en una TV en blanco y negro:
(grabado desde consola con el mismísimo ffmpeg)
Volviendo a la pregunta del título de este post, si un programa está paquetizado para debian existe una herramienta útil para ver en qué lenguaje está programado: debtags. El proyecto debtags pretende clasificar todos los paquetes en base a distintas categorizaciones (“Facets”) y, dentro de cada una de éstas, etiquetas. La categoría que nos interesa es:
implemented-in::XXX indica que el lenguaje de programación empleado fue el XXX
No hay que confundirla con devel::lang:YYY la cual indica que el paquete es una herramienta de desarrollo para el lenguaje YYY, ej. una librería.
Un ejercicio interesante es conocer las cifras de paquetes debian agrupados por lenguajes. Para ello, teniendo en cuenta que algunos aún no están catalogados en cuanto a su lenguaje (se muestra como TODO), en mi sistema Kubuntu 9.10 AMD64 me salen 11348 paquetes a analizar, cifra obtenida de:
debtags cat | grep implemented-in:: | wc -l
Para hacer la agrupación indicada, se consigue con estos dos comandos de bash:
L=$(debtags tagcat | grep implemented-in::|cut -f 2- -d " ")
for i in $L; do echo -n "$i: "; debtags cat | grep $i, | wc -l; done | sort -n -k2 | cut -f3- -d :
Y el resultado es:
ml: 2
ecmascript: 12
lua: 27
scheme: 40
ada: 51
pike: 56
TODO:63
haskell: 90
r: 92
tcl: 96
fortran: 98
c-sharp: 99
objc: 107
java: 144
shell: 146
ocaml: 190
ruby: 198
php: 295
lisp: 306
c++: 1116
python: 1257
perl: 1902
c: 4920
Gora C !
debtags tiene otras muchas opciones varias (man debtags), y además dispone de:
interfaces gráficos tanto para búsquedas (package-search y adept aunque éste más reducido), como para edición (debtags-edit).- interfaces web para búsquedas, visualizador de tipo cloud, etc.
Es un proyecto que también requiere personas colaboradoras. ¿Alguien se anima?



















Entries (RSS)