Quanto do código original resta nos produtos de software modernos? [fechadas]

32

Muitos de vocês trabalham para grandes empresas que vendem softwares conhecidos. Fiquei me perguntando, quanto do código original (basicamente, o código que foi "v1.0") é deixado em aplicativos massivos modernos, como, por exemplo, Firefox, Photoshop, Windows, Linux, etc? Eu realmente prefiro experiências em primeira mão e histórias de guerra do mundo real.

Obrigado por satisfazer minha curiosidade.

EDITAR

Acontece que há um certo mal-entendido. O que eu busco é basicamente o seguinte: quando você culpa / faz anotações no código fonte, existem partes ou arquivos inteiros intocados desde o lançamento inicial da 1.0.

Anton Gogolev
fonte
37
Um rio desce uma montanha. A água evapora e absorve o solo. Nova água chega de outros riachos. Quando o rio chega ao mar, é o mesmo rio? Como você sabe? E se nenhuma molécula fizer a jornada inteira do topo da montanha ao mar? Se nenhuma molécula é a mesma, como podemos dizer que é o mesmo rio? E como essa pergunta tem mais significado do que a história idiota sobre o rio?
S.Lott
4
A pergunta começa bem, mas a frase "Prefiro experiências em primeira mão e histórias de guerra do mundo real". está apenas convidando uma lista de respostas dizendo "ainda temos X% do código original", em que X varia de 0 a 100.
ChrisF
10
@ Anton Gogolev: O ponto é este. Porque perguntar? Minha experiência no mundo real inclui dois produtos com 80% igual a 1,0 e 0% igual a 1,0. Essa é a minha experiência. O que você sabe agora que não sabia antes? Que problema você tem que está resolvido? Como isso te ajuda?
S.Lott 19/05
4
@ S.Lott Estou perdida aqui ... Curiosidade? Não é fascinante saber que essa coisa do Windows 7 Ultimate que alguns de nós estão executando ainda possui código que remonta ao Windows 3.1?
Anton Gogolev
6
@Anton Gogolev: "Curiosidade?" Desculpe, isso faz pouco sentido para mim. Se a resposta foi de 17%, e então? O que se segue dessa observação?
S.Lott 19/05

Respostas:

36

Mais do que você esperaria e muito mais velho do que você esperaria. Mesmo com "reescritas totais" e grandes refatores, existem muitos módulos que permanecem intocados.

Péter sugere que, por exemplo, você não encontrará o código antigo do Netscape no Firefox. O que está errado, se você pesquisar no código fonte, encontrará alguns arquivos com isenção de responsabilidade, como:

* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1994-2000 

Por exemplo, nos cabeçalhos do kernel do Linux, você pode encontrar coisas como:

include/linux/if_ppp.h: * Copyright (c) 1989 Carnegie Mellon University.
include/linux/quota.h: * Copyright (c) 1982, 1986 Regents of the University of California. 
include/linux/coda.h:          Copyright (c) 1987-1999 Carnegie Mellon University
include/linux/mc146818rtc.h: * derived from Data Sheet, Copyright Motorola 1984 (!).
include/net/slhc_vj.h: * Copyright (c) 1989 Regents of the University of California.
vartec
fonte
1
O Firefox está cheio de códigos de décadas, sério.
Kizzx2
1
Ei, ele ainda funciona (provavelmente)
Callum Rogers
1
@ Callum Rogers: Funciona, mas não bem, e é lento ... Uma pena que o Firefox tenha caído assim.
Anto
2
A MPL exige que a coisa "Desenvolvedor inicial" seja adicionada, mas isso não significa que foi quando o arquivo foi tocado pela última vez. O Firefox possui muitos códigos antigos, mas não se for lento - o código é lento o suficiente para que alguém perceba é reescrito.
Paul Biggar
3
@ código kizzx2 não enferruja ..
27

Eu não sei quanto, mas o código antigo está definitivamente lá, mas lentamente é removido. Por exemplo, no Windows 2008 ou Vista, vá para c: \ windows \ fonts usando o explorer, clique com o botão direito do mouse no painel esquerdo e escolha "instalar nova fonte". A caixa de diálogo mostrada é do Windows 3,1 dias (verifique a captura de tela). Se você vir o mesmo no Windows 7, agora é um painel de controle muito melhor como a interface do usuário.

Caixa de diálogo Instalar Novas Fontes

softveda
fonte
+100 Eu realmente encontrei isso há alguns anos atrás
Nicolai Reuschling
Sim, isso é ... msoOldStyleDialog (?), Tudo bem, ainda com suporte para programas herdados que foram concluídos e, portanto, permaneceram na 1.0.x. Como um simples seletor de arquivos. Embora neste caso seja apenas uma questão de diálogo que eles perderam durante a revisão da GUI.
Henrik Erlandsson
6

Não sei dizer qual a idade do código no trabalho. Só posso voltar quando foi colocado no Subversion, e há muita coisa que remonta tão longe.

No entanto, tenho um amigo que trabalhou no código do Microsoft Office. Alguns anos atrás, ele me disse que havia removido algumas chamadas do SaveA5World. Essa chamada tinha um propósito nos antigos Macintoshes com processadores M680? 0 e não serviu a nenhum propósito desde que a Apple foi para os Macs PowerPC no início dos anos 90.

Nas minhas observações, qualquer poderoso sistema de software em que uma empresa confia foi construído com tecnologia que ninguém mais deseja usar.

David Thornley
fonte
2

"Se eles fizeram seu trabalho extremamente bem desde o início, uma grande parte, caso contrário, uma pequena parte".

Idiomas estritos exibem essa característica. Muito pouco teve que mudar nas línguas de Nicklaus Wirth, porque elas foram planejadas com precisão. (Na verdade, isso mudou recentemente para o Delphi e mudará mais com a próxima versão de implantação universal.)

Há também um outro lado disso, é claro. Decidir que o código original é bom o suficiente, como no caso do Microsoft Windows, ou aplicativos adoráveis ​​como ACDSee, editores de texto ou o conhecido "espírito do Linux" aplicativos de linha de comando.

Embora esses aplicativos possam parecer desajeitados para quem talvez não os amasse, eles exibem uma característica bem planejada e um conjunto de recursos bem definido; mesmo que não tenham sinos e assobios, isso pode ser preferido; eles fazem o que está na lata, a compatibilidade com versões anteriores é ótima e provavelmente continuará funcionando bem no futuro.

O Photoshop teria 90% do mesmo código desde o 5.0, se você seguir o conjunto de recursos. ; P Faz? Não por que? Vendendo atualizações. Você não pode realmente fazer mais com isso hoje.

O conjunto de recursos de um gerenciador de arquivos, até o ponto em que ele deseja fazer FTP, web e nuvem, é basicamente o mesmo para qualquer plataforma por decênios. A única razão pela qual esse aplicativo ainda não está na versão 1.0 é devido a um mau planejamento, capricho, uma necessidade de atualização - e pelo menos em pequena medida o mundo está mudando em torno do aplicativo.

A resposta é que algumas gemas permanecem em 1.0 ou 1.0.x porque o desenvolvedor optou pelo conjunto de recursos, concluiu um programa sem erros e não lucra com a adição contínua de itens e a correção de bugs nos itens adicionados, ou mudou para desenvolver mais gemas.

É improvável que todo o resto permaneça próximo do código na versão 1.0. E por que você não deve reescrever o aplicativo se tem uma ótima idéia? Você deveria, é divertido codificar! :) Exceto que não foi o que ocorreu em muitos produtos de software modernos. A mudança por causa da mudança (vendas) e não motivada pelo conjunto de recursos, e em menor grau pela atualização para obedecer às plataformas em mudança, está na ordem do dia.

E nessa sopa de partes de software em constante atualização, poucas bases de código escapam de revisões. Alguns ainda mantêm o sonho de fundar e modularizar (e não lançar prematuramente), mas a grande maioria está presa no ciclo de lançamento-correção-atualização.

Henrik Erlandsson
fonte
-2

Mesmo os sistemas ostensivamente "avançados" usados ​​para jogos, como iD Tech e Unreal, ainda teriam um pouco de código 1.0.

Alan B
fonte