Tudo é incrível em software, mas todo mundo está infeliz



Há uma posição típica que pode ser encontrada em Habré e não apenas: "embora o hardware seja melhor ao longo dos anos, a humanidade reduziu o efeito a nada escrevendo softwares piores".

Como, há mais núcleos nos processadores, mas fica mais lento do que nunca. Elétron e Slack são criaturas das trevas que vieram nos roubar felicidade e memória. Os aplicativos móveis se tornaram mais vorazes do que os sistemas operacionais mais antigos. E nos sistemas operacionais em si realmente não há progresso, mas por algum motivo eles continuam aumentando de tamanho. Se foi quando as pessoas souberam encaixar o sistema operacional em um disquete!

Eu direi diretamente: quando vejo tais declarações, elas me bombardeiam. Na minha opinião, eles perdem vários fatores importantes. E, no final, a situação se assemelha ao discurso clássico de Louis X Kay " Tudo é incrível e ninguém está feliz"": Tudo foi surpreendentemente bom, e as pessoas estão sentadas e reclamando.

Portanto, decidi descrever esses fatores perdidos. Como o texto acabou sendo duro, quero enfatizar que minha opinião é puramente pessoal (embora eu me refira às conferências da empresa em que trabalho).

Seletividade de memória


Sabe-se que há um efeito nostálgico "antes, a grama era mais verde e a música era melhor". Mas, na minha opinião, para muitos esse efeito assume proporções assustadoras, quando as sensações divergem dramaticamente da realidade.

Estou falando de afirmações como esta: "Quase tudo no computador parece mais lento do que em 1983". A julgar pelos milhares de curtidas, essa não é uma opinião isolada, mas massiva.


Minha primeira reação: "Bem, como foi a transmissão de vídeo em 4K em 1983?" Ou seja, para começar, lembremos que a maioria dos aplicativos de computador de hoje eram impossíveis anteriormente, inclusive por causa da velocidade. Uma vez que um filme (nem mesmo em 4K, mas em 1080p) precisaria ser baixado por meses e, em seguida, o computador não poderia reproduzi-lo com 24 FPS. E como então comparar a velocidade atual com uma que seria tão proibitivamente baixa que nem sequer existisse?

Segunda reação: sim, algumas coisas que foram movidas da linha de comando para a GUI podem levar mais tempo lá. Estou pronto para acreditar que o Word em 2020 começa mais lentamente do que o editor de console vi em 1983 (não posso comparar pessoalmente: foi a primeira vez que estive no meu computador nos anos 90). Mas se isso é tão importante para você, você também pode usar a linha de comando para muitas "tarefas dos anos 80" em 2020. Estou escrevendo este texto agora no vim - um ótimo editor que o ecossistema de plug-ins ajuda a acompanhar os tempos. Fica ótimo na retina moderna iMac: as cartas ficaram muito claras e ainda funcionam instantaneamente. Qual é o problema?

Mas a coisa mais importante não está nas duas coisas nomeadas. Mais importante é o seguinte: na minha opinião, começamos a esquecer o quanto os computadores diminuíam a velocidade. Quando algo começa a desacelerar com mais força, notamos imediatamente - mas quando algo se torna mais rápido ou mais fácil, tomamos como garantido e esquecemos o passado.

Para todas as pessoas que escrevem “tudo costumava ser mais rápido”, tenho uma pergunta: você se lembra, por exemplo, disso?


Eu admito honestamente: eu mesmo não me lembro disso. Quando desligo o computador hoje, não penso no fato de que fiquei sentado há vinte anos entre pressionar um botão no SO e pressionar um botão na unidade de sistema. Eu tinha como certo que agora não é tão necessário e esqueci o que era diferente.

Com o tempo em que o computador foi iniciado, também ocorreram grandes mudanças. Agora me sento no aimak, pressiono uma tecla e, depois de um segundo, está pronto para funcionar (graças ao SSD e ao modo de suspensão). Quando, na infância, eu esperava o Windows inicializar a partir do disco rígido, dificilmente acreditaria que viveria para ver isso.

"Quando em uma carta há centenas de fotos, ela se abre muito devagar, às vezes até dez segundos!" Entendo que isso pode ser irritante - mas ouça, em 2000, para checar o correio, gostei das atualizações do modem por um minuto, depois esperei até que a página principal do correio fosse carregada lentamente e a própria carta também não foi carregada imediatamente - e não estava. sem imagens, apenas texto. Hoje, isso abriria sem demora. Talvez você não precise martelar em mil fotos um meio de comunicação que foi inventado para outro? E antes de declarar “tudo deu errado”, vamos pensar: quanto tempo uma carta com tantas fotos seria aberta em 2000?

Ou aqui está outra lembrança perdida no tempo, como lágrimas na chuva. Essa piada era popular nos anos 2000: "Um computador lento é quando você conhece os nomes de todos os desenvolvedores do Photoshop". Para aqueles a quem isso não significa nada: o Photoshop em espiral era muito popular na Rússia e, a cada vez que era lançado, os russos tinham que olhar por um longo tempo:


Ah, percebi agora que conheço uma dessas pessoas - Sean Parent falou em nosso lugar C ++ Rússia

Agora compare. Hoje eles brincam "uma vez que foram necessários dois kilobytes de memória para lançar um homem na lua, e agora você precisa de dois gigabytes para lançar o Slack". Parece ruim, mas você percebe a diferença? Independentemente da quantidade de RAM Slack consumida, os usuários não encontram a situação "você pode tomar um chá no início do programa". Tudo ficou melhor, mas não percebemos.

Ou aqui está um artefato histórico revelador: a série Masyanya "Download" (2002). Os heróis estão muito preocupados com a desconexão, na qual é necessário fazer o download do arquivo novamente.


Observe: o arquivo que eles estão baixando pesa 591 kilobytes. Os personagens estão preocupados com a necessidade de recarregar meio megabyte. Este é o estado real das coisas em 2002.

Para comparação, um novo exemplo da vida. Eu tive um pequeno problema técnico no meu Mac. No Stack Overflow, encontrei o conselho “para instalar o Xcode e aceitar seus termos de uso”. Minha reação: é estranho fazer o download de um IDE de 8 gigabytes por um único clique, mas se ajudar, por que não.

Ou seja, o tamanho dos programas aumentou ao longo dos anos (na época em que Masyan, do “IDE de 8 gigabytes”, mexia com os cabelos), mas ficou muito mais fácil baixá-los e nossa vida se tornou muito melhor.

Bem, o último exemplo desta parte é sobre "aplicativos móveis inchados". Posts ofendidos como "Às vezes" escrevem sobre isso.Os tamanhos de aplicativos estão fora de controle ":" desde quando o LinkedIn começou a ocupar 275 megabytes no telefone?! " Em 2018, foi possível ler a reclamação "depois de instalar os aplicativos, eu só tinha gigabytes para fotos".

Não vou mentir, esses 275 megabytes do LinkedIn também estão causando perguntas para mim. Mas eu lembro como em 2010, em Habré, eles escreveram que o Alfa-Bank tinha um aplicativo móvel. Ele pesava 30 megabytes - hoje esse tamanho não teria levantado nenhuma dúvida. E então, nos comentários, eles escreveram:



Você sabe por quê? Naqueles dias, um usuário russo podia andar, por exemplo, com o HTC Hero. Vejamos suas características: "armazenamento - 512 MB, 165 para aplicativos". 165 megabytes no total para todos os aplicativos instalados! Em tais circunstâncias, tive que escolher constantemente quais eram mais importantes e quais você poderia viver sem. E para instalar um de 30 megabytes, seria necessário demolir vários outros ao mesmo tempo. Foi uma dor.

E se pudéssemos voltar para 2010, abordar as pessoas que estão sofrendo com essa dor e dizer a frase a partir de 2018: "depois de instalar aplicativos, só tenho gigabytes para as fotos restantes", acho que seríamos derrotados. Essas palavras não soariam uma queixa, mas uma zombaria e jactância.

E mesmo a partir de 2018, quando essa reclamação apareceu, a situação conseguiu melhorar: agora o orçamento do Xiaomi Mi A3 na versão básica está equipado com 64 gigabytes, portanto, após a instalação dos aplicativos, obviamente haverá muito mais do que um grátis.

Sim, os aplicativos cresceram significativamente em 10 anos. Mas o volume de espaço ao mesmo tempo aumentou centenas. Ou seja, a vida se tornou dez vezes melhor.

E você se lembra o que era usar um smartphone em 2010 e quantas dores diferentes “tudo diminui a velocidade” lá?

  • Uma pequena quantidade de RAM significava que o aplicativo precisava constantemente executar do zero e não mudar imediatamente para um já em execução.
  • E os processadores de baixa potência os lançaram muito lentamente do zero.
  • Não quero me lembrar da velocidade da Internet móvel.
  • , USB 2.0 .

Usar um smartphone parecia uma expectativa constante: não importa o que você queira fazer, isso inclui períodos de "em pé e burro". Se você estiver na rua e precisar de um mapa, fique parado e espere primeiro até que o aplicativo seja iniciado e, em seguida, aguarde quando o mapa nele for carregado. E você paga significativamente pelo tráfego consumido ao mesmo tempo.

Comparado a isso, todos agora vivemos em condições celestiais, mas ao mesmo tempo estamos reclamando ativamente. Parece "problemas do primeiro mundo" - algo como "Eu quero ler o twitter deitado, segurando o telefone no meu rosto, mas você pode acidentalmente soltar isso em si mesmo". Bem, simpatizo, mas dizer em tal situação "tudo piorou" parece desrespeito ao passado e ao presente.

: « » . , , . .



«»


Há outra situação típica. As pessoas dizem que "o software está se tornando cada vez mais inchado e lento, embora para o usuário quase nada mude para melhor" - e ao mesmo tempo eles não estão completamente cientes do que realmente está acontecendo lá.

Como um pequeno exemplo ilustrativo. Em 2018, houve um texto sensacional de Nikita Prokopov sobre "software mimado" e, entre outras coisas, havia as palavras "serviços do Google Play que não uso (não compro livros, músicas ou vídeos) - 300 MB que ficam aqui e que não pode ser removido ".

Ao ler isso, quero estar cheio de raiva justa, sim. Mas há uma ressalva: na verdade, o Google Play Services não é sobre "comprar livros". Inclui muitas APIs diferentes e, conforme relatadoWikipedia, "Todos os principais serviços Android são controlados pelo Google Play Services". Isto é, com toda a probabilidade, Nikita está usando ativamente este software, sem saber por si próprio - é só que o Google deu a ele um nome confuso.

Meu objetivo aqui não é criticar um post específico, mas mostrar uma abordagem geral: geralmente declaramos “os aplicativos aumentaram / desaceleraram sem um bom motivo”, sem entender completamente esses motivos. Eles adicionaram algo ao aplicativo, seus desenvolvedores têm informações detalhadas sobre o que exatamente e por quê, mas não o temos - mas, por algum motivo, nos consideramos mais competentes do que eles nesse assunto.

Mas por dentro há muito do que não é óbvio do lado de fora. Tomemos como exemplo os editores de texto: parece que as pessoas os tornam imemorial desde tempos imemoriais no hardware mais fraco, tudo ficou claro com eles por um longo tempo e não há nada para desacelerar ", o que poderia ser mais fácil". Portanto, do lado de fora, fica assim: se algo não der certo instantaneamente, esses desenvolvedores tortos esquecerão como a humanidade já é qualificada. Mas se você se aprofundar no assunto (publicamos de alguma maneira um habrapost sobre isso), muitas nuances não-óbvias serão reveladas - e as palavras "o que poderia ser mais simples" deixam de parecer convincentes.

Ou mais uma coisa. As notícias sobre sistemas operacionais móveis frequentemente provocam essa reação: “Nos últimos oito anos, nada de útil foi feito lá. A cada ano, com um barulho, eles lançam uma nova versão que pesa mais que a anterior, mas pelas diferenças, vejo apenas novos emojis. No caixão, eu vi esses emojis, retornei a versão antiga, foi melhor. "



Ouça, bem, parece que todos os especialistas em TI sabem por experiência: você pode gastar muita energia na refatoração justificada do back-end, e o usuário nem perceberá isso, mas poderá alterar alguns ícones na interface em meia hora, e discussões acaloradas começarão entre os usuários. Ou seja, sabemos que “fora” apenas algumas mudanças são perceptíveis, e geralmente não são as mais importantes. Por que, então, não percebemos que, se nós próprios notamos emojis na nova versão do sistema operacional, isso fala mais sobre nós do que sobre o sistema operacional?

Tomemos, por exemplo, o Project Treble do Android 8.0. Sabe-se que o Android tem um grande problema: enquanto os iPhones são facilmente atualizados para novas versões do sistema operacional, os telefones Android geralmente ficam para sempre com a versão pré-instalada, porque seus fabricantes não querem brincar. E o Google iniciou uma alteração em larga escala de toda a arquitetura para simplificar a vida dos fabricantes e estimular atualizações. E embora a Treble não tenha resolvido completamente o problema, as estatísticas mostram uma melhoria notável. Ou seja, para lidar com um problema urgente, o Google investiu muito trabalho (refatorar um colosso desses não é uma coisa boa para você andar na janela), e a situação foi parcialmente melhorada. Na minha opinião, a empresa só precisa lidar com problemas doloridos, eles fizeram tudo certo.

Agora me diga: se você não é um desenvolvedor de dispositivos móveis, já ouviu falar sobre isso? Quando você pegou um telefone com Android 8.0 ou superior, isso afetou sua opinião sobre a nova versão? É improvável, porque nos primeiros meses de uso do telefone, isso não aparece para o usuário. Você só pode perceber depois de um tempo em que a nova versão do Android será lançada. E somente se o fabricante do telefone estiver entre aqueles que a Treble conseguiu atualizar os dispositivos. E mesmo nesse caso, o usuário pode não perceber que a atualização é devido ao Google e ainda diz "nada de útil foi feito por oito anos".

E essa situação é típica - a “parte subaquática do iceberg” é geralmente grande. Quando o Android introduziu a Bateria Adaptativa (definição “inteligente”, que aplicativos podem ter uma bateria em segundo plano), você mediu se o consumo de energia do seu telefone mudou? Quando o Google Play Protect em segundo plano cuida da sua segurança, você lembra que não era antes? Quando você adicionou suporte ao codec de vídeo AV1, achou que o futuro desse codec é muito provável e esse suporte é útil? Ou você simplesmente pega o telefone e os emojis são impressionantes, mas o suporte ao AV1 não é impressionante?

Após o lançamento deste post, apareceu um tópico maravilhoso delanyesse software aumenta em grande parte devido ao manuseio de situações raras. E então o que acontece: para 1% dos casos em que essas situações surgem, tudo ficou muito melhor - mas 99% das pessoas que não encontram essas raras situações não conseguem avaliar adequadamente as mudanças.



E daí resulta que, quando juramos em massa todas as “aplicações inchadas e inibidoras”, em muitos casos havia razões objetivas para isso. Em algum lugar, durante o horário de trabalho, as pessoas pesavam cuidadosamente todos os prós e contras, discutiam entre si e chegavam à conclusão de que os profissionais superam. E então chegamos, não temos idéia do que estava na balança, não vamos gastar tempo em estudos cuidadosos, apenas vemos o tamanho alterado - e fazemos uma conclusão confiante de que "tudo deu errado".

A conclusão geral: algumas das afirmações sobre "software sem sentido" são causadas por mal-entendidos. E fazer tais declarações sem um estudo aprofundado das causas não é a estratégia mais sensata.



Atenção ao desempenho


Declarações sobre “software estragado” soam como se os desenvolvedores economizassem poder de computação, mas agora todos queriam cuspir na otimização. Por exemplo, é importante que funcione - e que os requisitos de ferro sejam altos, para que a lei de Moore de alguma forma estrague tudo. Se o código for executado lentamente, ele consome memória como se estivesse em si e ocupa muito espaço - e assim continua, ninguém se preocupará com isso e melhorará alguma coisa.

Ouça, isso simplesmente não é verdade. Como um exemplo separado: o Facebook Messenger foi reescrito recentemente, e é relatado que a produtividade dobrou e o tamanho diminuiu quatro vezes. E para as palavras acima, que o aplicativo do LinkedIn pesa 275 megabytes - verifiquei agora e vi as palavras “195,4 MB” na App Store, parece que eles também conseguiram reduzi-lo uma vez e meia. Ou seja, ambas as empresas pensaram claramente sobre o consumo de recursos e alocaram muito trabalho para reduzi-los, o que poderia ser gasto em "cortar recursos".

E como trabalho com conferências para desenvolvedores e interajo com muitos deles (e de diferentes pilhas), posso ver com quais tópicos eles se preocupam. Sobre o que ouvem relatórios, sobre o que falam e escrevem postagens.

E a produtividade é exatamente um desses tópicos. Pelos nomes dos relatórios como "Otimizando o tempo de inicialização dos aplicativos iOS"pode ser visto: os desenvolvedores estão dispostos a gastar 60 minutos para ouvir milissegundos.

Eles falam sobre desempenho em todos os lugares - mesmo no mundo JavaScript ( "desempenho JavaScript através da luneta" ), pelo menos no desenvolvimento móvel ( "Como encaixar um milhão de estrelas em um iPhone" ). Mas acima de tudo, eles dizem no back-end. Acho que isso ocorre porque os usuários compram smartphones para si mesmos, mas, no back-end, a empresa paga pelo poder da computação, então há uma poderosa motivação financeira para otimizar.

Recentemente, fiz um experimento simples: abri o programa da nossa conferência em Java JPointe analisou quantas descrições de desempenho havia sobre desempenho. Mais tarde, por causa do coronavírus, adiamos a conferência para junho, para que o programa possa mudar, mas os resultados são indicativos em qualquer caso. Eles são:

  • "Esta palestra será sobre ajuste de desempenho do produtor".
  • “Considere os métodos de otimização de E / S de arquivo”
  • "Talvez para um dos módulos você queira mais desempenho do que possa extrair do Java?"
  • “Que otimização relacionada ao ponto seguro a HotSpot JVM faz?” O que os desenvolvedores devem se lembrar para evitar pausas indesejadas? ”
  • “Projeto Valhalla, tipos em linha e tudo ao seu redor, do modelo de software ao desempenho”
  • "Otimize o desempenho da consulta, a taxa de transferência e o consumo de memória"
  • "O relatório é dedicado a uma análise detalhada de como o processo de gravação no banco de dados Apache Cassandra ocorre em termos de desempenho".

Escute, se eu conduzisse esse experimento como um jogo de bebida, no final eu estaria bêbado. A olho nu, você pode ver: os desenvolvedores de Java se preocupam com a forma como eles fazem o código não apenas funcionar, mas também rápido.

Além disso: muitas vezes até os excita demais! De pessoas que estão intimamente envolvidas no desempenho, ouvi várias vezes que é fácil exagerar. Por exemplo, para um leve aumento de produtividade, as pessoas usam algum tipo de hacks sujos, que no final criam mais problemas do que resolvem. Bem, sobre isso na bela palestra de Alexey Shipilev na JPoint 2017, fizemos a descriptografia para Habr .



Resumindo: enquanto a Internet lamenta "os desenvolvedores eram preguiçosos e pararam completamente de pensar nos freios", na realidade, muitos desenvolvedores pensam mais sobre eles do que o necessário .



Significado e conveniência


E agora, na minha opinião, a tese mais importante.

Sim, os aplicativos ao longo do tempo exigem mais e mais recursos, às vezes por ordens de magnitude. Sim, começamos a arrastar muito mais para nossos projetos, mesmo quando há algo que não é muito necessário, em vez de gastar tempo isolando o "estritamente necessário". É verdade.

Mas acredito que aplicativos crescidos não tornam os desenvolvedores de hoje inaptos. Além disso, o oposto é verdadeiro: os

desenvolvedores seriam tolos se os aplicativos NÃO tivessem crescido.

Imagine um mundo em que o hardware esteja se desenvolvendo ativamente e a abordagem para o desenvolvimento de software permaneça a mesma. Os programas ainda cabiam no volume do disquete, embora ninguém tivesse usado o próprio disquete. Em nome do desempenho, quase tudo seria escrito em C ++. Todos os desenvolvedores constantemente desciam para níveis baixos e conheciam todos os lugares onde alguns bytes podem ser extraídos. Não há "agora instalaremos cinco bibliotecas para esta tarefa", apenas soluções que foram cuidadosamente verificadas para um projeto específico, nas quais não há linha extra. Em geral, um feriado de otimização e uma abordagem cuidadosa dos recursos. Tudo isso agora é lamentado como uma "habilidade perdida".

Você sabe que impressão essa foto me causa? Uma família numerosa foi forçada a morar em uma pequena sala, então ela aprendeu a colocar as coisas com precisão milimétrica e dominou a arte secreta de criar camas de cinco andares. E então ela se mudou para um espaçoso apartamento de vários cômodos - mas, por hábito, levou apenas um quarto para lá, deixando todos os outros vazios. As pessoas ainda estão sentadas nas cabeças umas das outras.

Pergunta: Você acha que isso é loucura? Se era possível dar a todos muito espaço, por que salvá-lo? Quem melhorou com o artesanato antigo das camas de cinco andares, se ao mesmo tempo não havia lugar para convidar alguém para visitá-lo? É hora de dominar a nova habilidade de escolher uma cama king size?

O mesmo acontece com o software. Se em uma época em que até os smartphones com orçamento limitado tiverem 64 gigabytes cada, experimentaremos o "tempo de execução Kotlin aumentará nosso aplicativo em megabytes", então nos transformaremos nessa família. Relaxe, um lugar para isso é necessário para que algo esteja nele. Se desperdiçado, não faz ninguém melhor. Se houver muito espaço e, por algum motivo, for necessário um piano, você poderá configurá-lo com segurança sem se preocupar com centímetros quadrados.

Slack - este é o piano. Ok, ele consome muita memória, mas você já ouviu pessoas de fora da área de TI reclamarem dele como costumavam reclamar do Photoshop? De acordo com meus sentimentos, os usuários comuns já têm espaço suficiente para que esse "piano" não os impeça de "passear pela sala". Sim, você pode substituí-lo por um piano e economizar espaço. Mas se você mora em um palácio, e ao longo dos anos a área do palácio se torna ainda maior, então por quê?

Na minha opinião, por causa do Slack, são mais experientes as pessoas de TI que precisam de RAM para outras tarefas difíceis. Mas as pessoas de TI são uma história diferente: desenvolvendo uma metáfora de apartamento, são pessoas cuja oficina é feita a partir de um apartamento. Bem, sim, não importa qual palácio você ofereça, todos os quartos serão ocupados com algo muito importante. E então o piano pode interferir, porque você pode colocar um torno. Mas a maioria das pessoas no mundo vive diferente, não precisa de tornos em casa e já existem recursos suficientes para o seu estilo de vida.

E em tal situação, é febril evitar tudo o que consome memória, quando já existe muito - é como nos gerenciadores de tarefas móveis, onde os usuários batem nos aplicativos em execução para "limpar a RAM". Muitas vezes, os criadores de plataformas móveis disseram: “Parem, loucos. O próprio sistema matará aplicativos se não houver memória suficiente e por que eles deveriam ser pregados antes? Qual é o sentido de comprar um smartphone com uma grande quantidade de RAM e mantê-lo vazio e não usar o que pagou? ”


Parece otimizado. Você quer morar aqui?

E também me lembro da história com o "erro de 2000". Alguém de especialistas em TI de meados do século XX na velhice lembrou: “Estávamos entre os que deram à luz. Em seguida, salvamos todos os bytes. E quando surgiu a idéia de que você pode manter o ano em dois números, não em quatro, nos sentimos muito inteligentes. Nós salvamos dois bytes em vários lugares! E somente no final do século as consequências ficaram claras. ”

Sim, naquela época gravar o ano em dois dígitos provavelmente parecia uma decisão razoável. E incorpora diretamente todos os defensores de uma abordagem "cuidadosa". Foi aqui que eles realmente chegaram ao limite de cuidar de recursos.

Porém, muitos anos depois, outras pessoas tiveram que gastar muitos recursos para descobrir as consequências dessa decisão e evitar problemas.

E agora, quando os dois bytes salvos não ajudarem mais ninguém, e as consequências negativas forem conhecidas, seria muito estranho manter o ano assim.

Então: muito do que eu quero cantar hoje como "uma razoável conservação de recursos" no futuro será parecido com a mesma "economia de fósforos", que gastou mais recursos do que economizou. Por exemplo, porque o tempo do desenvolvedor também é um recurso mais valioso e geralmente não é incluído nos cálculos aqui. Se você foi além do alinhamento de dados e seu aplicativo se tornou um pouco menor e mais rápido, mas você passou uma semana nisso, o que poderia ter sido um recurso útil, você tornou o usuário melhor ou pior?

, « , , ». .

— . , , .

, - ( ), . .




Antecipo a objeção nos comentários: "Mas a tarefa X começou a ser realizada muito mais lentamente para mim do que há 13 anos, devolva-me meu 2007".

Não me interpretem mal: não estou tentando dizer que não existem tais tarefas. Existem . E o uso excessivo de dependências acontece. E bloatware acontece. Quando ouço que há edição de vídeo no Photoshop, experimento o mesmo "porquê" como você. Quando li que criar qualquer aplicativo com create-react-app significa imediatamente 4304 diretórios com 28678 arquivos, também tenho uma dúvida sobre se fomos a outro lugar. Existem muitos problemas reais que merecem ser discutidos.

Minha única alegação é que, em conexão com esses problemas, existe um tipo de seita radical que acredita no fim do mundo devido ao crescimento do software. Eles reescrevem a história nesta seita ("costumava trabalhar mais rápido!"), Entendem mal o que está acontecendo ("por que o Windows cresceu tanto ao longo dos anos, nada mudou realmente lá")? ") E vamos ao extremo" vamos salvar todos os bytes, mesmo que isso torne os usuários piores. " Não vamos fazer isso.

Minhas objeções à posição radical, é claro, também se mostraram um tanto radicais (exatamente na direção oposta). Você também pode encontrar falhas neles, e eles também podem ser chamados de seita. Mas o objetivo deste post não é fazer com que todas as minhas palavras sejam consideradas a verdade suprema. Seu objetivo é tornar as pessoas menos envolvidas em seitas.

A principal conclusão é chata e banal, mas não menos correta: tudo depende da situação específica. A otimização não é um mal absoluto e não é um bem absoluto. Eles podem ajudar e prejudicar. Há situações em que as otimizações claramente valem a pena e situações em que elas claramente não valem a pena. E há situações intermediárias em que pessoas diferentes consideram "vale a pena ou não" de maneiras diferentes, e nenhuma delas estará mais certa, e isso é normal.

E se alguém, inclusive eu, lhe disser o contrário - este é um sectário, persiga-o no pescoço.

All Articles