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.
source-code
history
Anton Gogolev
fonte
fonte
Respostas:
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:
Por exemplo, nos cabeçalhos do kernel do Linux, você pode encontrar coisas como:
fonte
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.
fonte
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.
fonte
"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.
fonte
Mesmo os sistemas ostensivamente "avançados" usados para jogos, como iD Tech e Unreal, ainda teriam um pouco de código 1.0.
fonte