Hace 10 años | Por fisico a dailyinfographic.com
Publicado hace 10 años por fisico a dailyinfographic.com

Infografía que muestra el tamaño relativo de diversos programas en líneas de código

Comentarios

e

#4 #28 Estaba pensando yo un poco por ahí... ¿líneas de qué tipo de código? Porque no es lo mismo una línea de ensamblador que una de C++, la de C++ puede implicar muchísimas líneas de ensamblador en sí. Y si nos ponemos tiquismiquis, el ensamblador puede depender bastante según el hardware... (Es irse un poco a los extremos, pero deberían realizarse las medidas con un mismo lenguaje, ¿no?)

r

Mirror, biatches http://imgur.com/c05vog0

D

#14 Tiene razón, a los programadores más viejos nos enseñaban a programar pensando en la máquina, no en el programador, optimizando y apurando recursos al máximo. Hoy día, como ilustran #28 #22 #18, se programa pensando en uno mismo. Los fabricantes de hardware encantados con eso.

f

#32 tampoco es buena medida medir el compilado,
¿ que medimos en facebook ? las lineas que han escrito que han echo la aplicación web o las ¿lineas que corre en la CPU del servidor? ¿o las que corre sobre el S.O. de este?

sigue siendo complejo en medir si estas en una maquina como un servidor web LAMP donde las lineas PHP se están interpretando continuamente, la verdad no se sabe como medir ese programa, incluso dependiendo la versión puede ser mas eficiente o ser mas productivo no es lo mismo correr en php5 que en php4 incluso una versión distinta de apache también puede cambiar

además si medimos su ejecución nos podemos morir ya que los S.O son software destinados a iniciar pero no acabar (solo si el usuario lo manda)

medir programas por su lineas de código sigue siendo un poco abstracto, y admiro a las persona que intenta medirlo con impetud se que no es una tarea fácil ya que la escritura de un programa no se refleja el coste real del programador para escribirlo

es como medir el coste de hacer un verso, si no estas inspirado puede cortaste horrores..

D

#37 Pero si yo no he dicho nada de eso, solo he hecho alusión a una cosa errónea que habías dicho. Pero aprovecho para hablar de las líneas de código. El número de líneas de código es una métrica como otra cualquiera. Te puede servir o no. Yo cuando me introduzco en un proyecto heredado me ayuda a saber cuánto voy a tener que leerme y el potencial de problemas que puedo tener.

D

#37 El compilador al optimizar tira muchas líneas (por ejemplo de bucles) a la basura.

Artok

Y cómo será el software de un coche para tener más líneas que facebook, Macos Tiger y windows juntos

c

#6 Otra razón para no comprar un coche de gama alta.
#50 No sé a qué se refiere con líneas de código en un binario. En los binarios no hay ensamblador.

r

#54 Los coches de gama baja tienen los mismos sistemas electrónicos sin tanta redundancia ni control (hablo por hablar porque no tengo ni idea)

e

#6 Una pregunta ,de donde sacas la cifra de "cientos"?

v

#59 Primero de todo, perdon por el negativo que te he dado sin querer

Digo cientos de microcontroladores y procesadores porque los coches de gama alta hacen un uso extensivo del Drive-by-wire, es decir, todo conectado mediante buses de comunicaciones sin elementos mecánicos: Microcontroladores en los elevalunas electricos, en todas las cerraduras, en cada pinza de freno, en los pedales y volante, en los mandos de la consola, en el cambio de marcha , direccion asistida, etc...
Además se utilizan buses de comunucaciones para disminuir el numero de cables y el coste y peso del cobre de estos: esto significa más microcontroladores en los intermitentes, luces, limpiaparabrisas, etc..
Añadimos a esto la complejidad de un motor con ECU, sistema de diagnóstico, sensores de aceite, de presion de aceite, de gases de escape, de presion en los neumáticos, de presion sobre los asientos, etc..
Y no nos olvidemos de los sistemas multimedia (radio, pantallas de video en asientos traseros, GPS, alarmas con localizador) y del ESP, aparcamiento automático, climatizador y demás.

F

#6 No me he enterado de nada , pero muy bonito todo, oye

LeDYoM

#1 Asi: if (
a
>
b
)

Artok

#21 Todo programado en HTML?

D

¿Lo del coche es real??

D

Curioso, el Windows 7 tiene menos lineas de código que el Windows XP y ambos menos que el Vista lol

No me parece muy acertado el gráfico, puesto que faltan productos, sale el VS2012 (que incluye metro) y no el 2010 sin el??

Trigonometrico

#7 como que el Vista ocupaba más de 10 Gigas en la partición de recuperación de un portátil. Vaya estafa a los consumidores.

D

No son los mismo 1.000 lineas en Clojure que 1.000 lineas en C.

La complejidad de un programa se tiene que medir por horas/hombre.

ccguy

#25 Eso presupone que todos los programadores son iguales, así que es una mala unidad de medida desde el minuto 1.

D

#29 Es una media, un buen programador puede completar una tarea de 4 hombres/hora en una y uno novato puede tardar 10.

Como con todo, a medida que aumentan los números se acerca a una normalidad, así que un programa desarrollado por 1000 personas se puede medir mucho más fácilmente en hombres/hora que uno desarrollado por 2 personas entre los cuales puede haber mucha varianza.

F

#35 Te recomiendo el libro "The Mythical Man-Month". http://en.wikipedia.org/wiki/The_Mythical_Man-Month

D

#39 Que un programa se pueda medir en 1000 horas/hombre, no significa que se puede realizar en la mitad de tiempo con el doble de hombres, como bromea el libro que tú dices. Es una forma de estimar la complejidad del programa.

RocK
fisico

Acabo de notar que falta meneame

crafton

#5 Ya lo he curioseado gracias a ti, jeje. 123861 Total.

Más detalles aquí.
https://gist.github.com/aabril/7344650

(Aunquegallirgallir nos podrá dar aún más detalles).

Trublux

El número de líneas de código que tiene un programa es un dato que no sirve para nada.

Tao-Pai-Pai

Sorprende que el sofware libre es incapaz de proporcionar programas demasiado complejos. Solo veo a Debian 5.0 donde mucho programador sin criterio mete mano y se crean millones de lineas muertas o con simples comentarios.

delawen

#10 Sorprende que el sofware libre es incapaz de proporcionar programas demasiado complejos.

¿Y para qué quieres un código complejo si puedes conseguir la misma funcionalidad con un código más limpio y corto?

NapalMe

A ver, no es lo mismo programar en Java que en ensamblador, una línea de uno son cientos de otro.

D

Yo tengo uno de 15000 líneas. Impresiona lo que sale en esa página web...

D

Lo que no dice es que la mitad de la líneas de Windows son comentarios. El código fuente es básicamente este:

while !(2 + 2 = 5) do # esto es un comentario
# esto otro
y así hasta varios millones de líneas

{troll">

nomada_isleño

#31 ¿Trolleado por@Professor? Que va, es una eminencia multidisciplinar bien conocida por estos lares, con todo respeto escucho sus opiniones aunque a veces no las comparta...

o

Resulta que, por ejemplo:

-Chrome tiene más código que Linux 2.6
-FireFox más que NT 3.5
-Mozilla más que Android
-Symbian más que Windows 2000

No me lo creo

D

#43 Créetelo, Symbian es una gran castaña y probablemente lo es por eso. Deberían haberlo reescrito en algún momento, pero se habrían dedicado a añadir mierda para tapar mierda hasta acabar con lo que finalmente quedó.

D

#43 es facil de creer. Nada tiene que ver el tamaño del codigo fuente con el código compilado, ni con lo grande o pequeño que te parezca el resultado final.

Influyen muchos factores en el ratio de tamaño código/ejecutable.

- El lenguaje utilizado, cuanto más bajo sea el nivel del lenguaje *, más pequeño será el código.
- Lo optimizado que esté el compilador o intérprete de ejecución que use.
- Normalmente, cuanto más sofisticados son los comandos en el codigo fuente, mayor será el número de operaciones que tenga que realizar.
- Aquí se habla de líneas de código, pero no habla de comentarios. Si se tienen en cuenta, cuanto mejor comentado esté, más lineas tendrá.

Y sobre todo: No confundir tamaño con calidad. Quizá sea algún caso en el que hay mucho más código del necesario. A mayor calidad, menor tamaño.

* el nivel bajo está más cerca del lenguaje máquina que el alto, no tiene que ver con calidad o jerarquía.

D

¿Y al que se ha encargado de contar las líneas de todos esos programas le han dado acceso a todo el código?

noexisto

Experto:
" Toyota’s electronic throttle control system (ETCS) source code is of unreasonable quality.
Toyota’s source code is defective and contains bugs, including bugs that can cause unintended acceleration (UA) "
Juer

a

¿Cuántas líneas de código tendrá Red Tube?

Y yo que pensé que cuando trabajaba en un banco y teníamos alrededor de 10 millones de lineas de código era mucho trabajo

KomidaParaZebras

Siempre me he preguntado cuantas líneas de código tiene el GTA. A parte claro de mapas, textura, etc, que ahí es donde debe estar el gran meollo. Lo digo porque no me hago una idea de si es inmenso o sólo normal...

D

¿Un Chevrolet Volt tiene la décima parte de código que un coche de lujo?

Pues, o bien el código del Volt está muy optimizado, o bien un motor eléctrico es mucho más fácil de gestionar a nivel de software que uno convencional.

p

#15 No es ningún secreto. Los motores eléctricos son más sencillos que los de explosión desde cualquier punto de vista: mecánica, número de piezas, mantenimiento, complejidad, control...

superplinio

Pero que pedazo de monstruo es el healthcare.gov... ahora empiezo a entender por qué les está dando tantos problemas

JaviAledo

Curioso que win xp y win 7 tienen las mismas líneas mientras que el vista tiene muchas más... para ser peor.

LeDYoM

Ottia, la caja de comentarios de puede expandir.

zeioth

Depende de la complejidad de lo que estes programando, hay veces que no te queda otra que tener un sistema enorme. Pero por norma general, a mas lineas, peor calidad del codigo.

NapalMe

En vez de número de líneas, deberían mirar los números de caracteres, se invertirían las gráficas lol

D

Windows Vista tiene más código que el Gran Colisionador de Hadrones....

D

Reported size of healthcare.gov website

50,000,000,000

Thanks Obama!

c

Pues no me creo que un coche por muy avanzado que sea vaya a tener más código que un avión actual

D

Como curiosidad... pues bueno. Pero el número de líneas de código realmente no sirve como métrica ni de funcionalidad, ni de calidad, ni de nada.

Boleteria

Sinceramente, no me creo está gráfica.

Muy vistosa e impactante, pero no me la creo.

20 millones de líneas de código me parece una monstruosidad. ¿Cuantos años de trabajo y personas hacen falta para hacer esa cifra? ¿Es posible mantener y tener conocimiento completo de una aplicación con tantos millones de líneas?

O una de dos, o las empresas han mentido al facilitar el número de líneas de código por aquello de tenerla más grande para parecer mejores, o usan aplicaciones de código auto-generado a mansalva (¡terror!), o el que ha hecho la gráfica nos la está metiendo doblada.


editado:
Por curiosidad he buscado en Internet sobre el número de líneas de Facebook y un ingeniero interno contesta esto:

"The Android codebase is over 4 million and the main site without the backend code is 62 million.

Clarification: The new count includes the entire git repository: data, binaries, third-party and all. Thanks to Adam Hupp for pointing this out to me. The number is from running git ls-files | xargs cat | wc -l."


No entiendo como funciona GIT pero, ¿Están contando como líneas de código los binarios ya compilados con todo el chorro de instrucciones en ensamblador que estos contienen?

D

¿Qué hostias pasa con healtcare.gov? ¿250 millones? ¿Va en serio?

#50 Puedes auditar el kernel de linux para ver si tiene tantos millones o no... Que no lo creas no significa que no sea verdad.

a

Las medidas de lineas de código en general no son muy útiles, sólo cuando se quiere comparar dos productos software de una manera muy burda, da una idea aproximada de la complejidad y poco más, pero evidentemente no es lo mismo una app iphone de 20k lineas que un sistema operativo de varios millones.

Es algo así como comparar la complejidad de dos obras arquitectónicas mirandolas desde fuera, por ejemplo cualquiera puede advertir la diferencia de complejidad entre el empire state building y una caseta de perro, aunque compararlos sólo por su aspecto exterior sea muy inexacto da una idea de que no es lo mismo una cosa que la otra.

Por su naturaleza intangible no es tan facil diferenciar con el software, estas medidas sirven para eso, para tener una vista de pajaro exterior de un sistema y hacerse una diea muy inexacta pero mejor que nada de su complejidad.

#50 Pues hombre creetelo que no son tantas lineas, nosotros somos un equipo pequeñito, unos 6 programadores, y entre lo que nos dejarón de legacy y lo que hemos escrito nosotros tendremos unas 300k lineas de código en algo menos de 2 años. Y evidentemente nadie las conoce todas de memoria, por eso es tan importante escribir no sólo software que funcione sino software que sea mantenible. En cualquier sistema medio serio es fundamental seguir unas buenas practicas, y aún así no es sencillo, lo normal es que el software termine ahogado en su propia complejidad y cuando no se puede más alguien opte por tirarlo a la basura y reescribirlo todo de cero.... y pasado un tiempo vuelta a empezar.

Y sobre lo de facebook, la cuenta es sobre código fuente no sobre instrucciones en código compilado, claro que si incluye librerías de terceros enseguida se dispará la cuenta.De todos modos, facebook es un sistema terriblemente complejo con cientos de desarrolladores y muchos años detrás. Mirate la cuenta de github de facebook (https://github.com/facebook) con proyectos bastante gordos como hip hop, cassandra o tornado. Y esto es sólo las partes de su sistema que han liberado como open-source.

i

#50 No pueden ser tan garrulos para meter cosas compiladas, se refiere a imagenes y cosas asi. Tampoco deberia incluir librerias de 3os, lo normal seria que usaran un gestor de dependencias como ivy o maven. Aunque de como se montan mega proyectos en php no tengo ni guarra. Me parece que esa cifra es muy exagerada.

D

Los programadores que miden en lineas de código su trabajo, ni son programadores,son putos picacódigos o mecanógrafos.

Es como los notarios, que cobran por folio.

El código hecho por un buen programador es super reducido,denso,e inexplicable al primer vistazo.

El codigo hecho por uno de estos tipos baratos de las cárnicas es largo,comentado y altamente ineficaz.

memmaker650

#14 Precisamente un buen código tiene que estar bien comentado pero no por ello debe ser largo o ineficaz. Es posible que lo que salga de las carnicas si que lo sea pero la mayor parte de las veces es por falta de tiempo o por querer cobrar dos veces, una para solucionar el bug y otra para refactorizar el código cuando ya es todo un amasigo de correcciones.

a

#14 Exacto, además si lo imprimes y lo miras desde lejos aparece ASCII art satánico.

c

#14 Menuda chorrada. "Inexplicable al primer vistazo"? Signo de mal programador. El código, por ejemplo, Python de un buen programador será más legible seguramente que el de un programador de C que se ha pasado a Python sin conocer realmente el lenguaje.

g

#22
#23

Estáis siendo troleados, amigos

nomada_isleño

#14 El código debe ser autoexplicativo y mantenible, rutinas o métodos donde no haya que hacer scroll down (como por ejemplo encontrarse 1000 lineas "vomitadas" una detrás de otra es horrible). Divide and Win + Reusability. Lo de inexplicable y denso al primer vistazo no lo veo como un atributo positivo... Si el código esta bien estructurado y cada rutina hace una única función, viendo las sucesivas llamadas con sus flujos de entrada y salida incluso te evita tener que bajar un nivel para ver el contenido de la rutina o método, de esta manera hasta sin comentarios se lee de una manera cómoda.

D

#14 Our design of this introductory computer-science subject reflects two major concerns. First, we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute. [...]
Structure and Interpretation of Computer Programs.

Pero efectivamente. El buen codigo puede ser ilegible para un programador no avanzado, y el mal codigo puede comentar las cosas mas ridiculas.

ktzar

#14 Y la gente que opina sin tener ni pajolera idea es... te dejo que lo describas tú.

Un buen programador hace código que se lee de de más abstracción a menos, que se entiende sin necesidad de comentarios en cada bloque. Con funciones pequeñas y bien nombradas, con tests organizados y descriptivos.

Cualquier programador que haga algo ilegible es un mal programador, puesto que no sabe trabajar en equipo.