Muchos de ustedes trabajan para grandes empresas que envían software conocido. Me preguntaba, ¿qué parte del código original (básicamente, el código que era el lanzamiento "v1.0") queda en las aplicaciones masivas modernas, como, por ejemplo, Firefox, Photoshop, Windows, Linux, etc. Realmente preferiría la experiencia de primera mano y las historias de guerra del mundo real.
Gracias por satisfacer mi curiosidad.
EDITAR
Resulta que hay un cierto malentendido. Lo que busco es básicamente lo siguiente: cuando culpas / anotas el código fuente, ¿hay partes o incluso archivos enteros sin tocar desde la versión inicial 1.0.
source-code
history
Anton Gogolev
fuente
fuente
Respuestas:
Más de lo que esperabas y mucho más viejo de lo que esperabas. Incluso con "reescrituras totales" y grandes refactores hay muchos módulos que permanecen intactos.
Péter sugiere que, por ejemplo, no encontrará el viejo código Netscape en Firefox. Lo que está mal, si busca a través del código fuente encontrará bastantes archivos con descargo de responsabilidad como:
Por ejemplo, en los encabezados del kernel de Linux puede encontrar cosas como:
fuente
No sé cuánto, pero el código antiguo definitivamente está allí, pero se elimina lentamente. Por ejemplo, en Windows 2008 o Vista, vaya a c: \ windows \ fonts usando el explorador, haga clic derecho en el panel izquierdo y elija "instalar nueva fuente". El cuadro de diálogo que se muestra es de Windows 3.1 días (ver captura de pantalla). Si ve lo mismo en Windows 7, ahora es un panel de control mucho mejor como la interfaz de usuario.
fuente
No puedo decir qué edad tiene el código en el trabajo. Solo puedo volver a cuando se puso en Subversion, y hay muchas cosas que se remontan hasta ahora.
Sin embargo, tengo un amigo que ha trabajado en el código de Microsoft Office. Hace unos años, me dijo que había eliminado algunas llamadas de SaveA5World. Esa llamada tenía un propósito en los viejos Macintoshes con procesadores M680? 0, y no ha servido para nada desde que Apple acudió a los PowerPC Macs a principios de los 90.
En mis observaciones, cualquier poderoso sistema de software en el que se basa una empresa se creó con tecnología que nadie quiere usar nunca más.
fuente
"Si hicieron su trabajo extremadamente bien desde el principio, una gran parte, de lo contrario una pequeña parte".
Los idiomas estrictos muestran este rasgo. Muy poco ha tenido que cambiar en los idiomas de Nicklaus Wirth, porque fueron planeados con precisión. (Esto realmente ha cambiado últimamente para Delphi, y cambiará más con la próxima versión de implementación universal).
También hay un lado negativo de esto, por supuesto. Decidir que el código original es lo suficientemente bueno, como en el caso de Microsoft Windows, o aplicaciones encantadoras como ACDSee, editores de texto o las conocidas aplicaciones de línea de comandos "espíritu de Linux".
Aunque estas aplicaciones pueden parecer torpes para aquellos que quizás no las amaron en primer lugar, muestran un rasgo bien planificado y un conjunto de características bien definido; incluso si no tienen campanas y silbatos, eso puede ser preferible; hacen lo que está en la lata, la compatibilidad con versiones anteriores es excelente y es probable que sigan funcionando bien en el futuro.
Photoshop tendría el 90% del mismo código desde 5.0, si utiliza el conjunto de características. ; P ¿Lo hace? ¿No porque? Venta de actualizaciones. Realmente no puedes hacer más con eso hoy.
El conjunto de características de un administrador de archivos, hasta el punto en que quiere hacer FTP, web y en la nube, es en gran medida el mismo para cualquier plataforma por décadas. La única razón por la que una aplicación de este tipo todavía no está en 1.0 se debe a una mala planificación, capricho, la necesidad de actualizar, y al menos en pequeña medida, el mundo cambia alrededor de la aplicación.
La respuesta es que algunas gemas permanecen en 1.0 o 1.0.x porque el desarrollador ha decidido sobre el conjunto de características, ha completado un programa libre de errores y no se beneficia al agregar cosas sin parar y corregir los errores en las cosas agregadas, o se ha movido para desarrollar más gemas.
Es poco probable que todo lo demás se quede cerca del código en 1.0. ¿Y por qué no debería reescribir la aplicación si tiene una gran idea? ¡Deberías, es divertido codificar! :) Excepto que eso no es lo que ha sucedido en muchos productos de software modernos. El cambio por el bien del cambio (ventas) y no motivado por el conjunto de características, y en menor medida la actualización para cumplir con las plataformas cambiantes, está a la orden del día.
Y en esta sopa de piezas interactivas de actualización constante de software, pocas bases de código escapan a las revisiones. Algunos aún mantienen el sueño de las bases y la modularización (y no la liberación prematura), pero la gran mayoría está atrapada en el ciclo de lanzamiento-reparación-actualización.
fuente
Incluso los sistemas aparentemente 'de vanguardia' utilizados para juegos, como iD Tech y Unreal, aún tendrían un poco de código 1.0 en ellos.
fuente