O que há de Novo?
  • Novo tema VIP está disponível
    Visitante, um novo tema com fundo escuro agora está disponível para aqueles que contribuíram com doações ao fórum e têm o status VIP. Veja os detalhes aqui.


O Desencanto do Software

Harold_Finch

Ei mãe, 500 pontos!
Mensagens
22.587
Reações
27.326
Pontos
654
Translated by Bruno Paulino from English

Eu tenho programado por 15 anos. Recentemente nossa industria tem perdido o cuidado com eficiência, simplicidade e excelência. Isso começou a me incomodar ao ponto de me deixar depressivo com minha própria carreira e a área de TI como um todo.

Carros modernos funcionam, digamos assim, a 98% do que é fisicamente possível com o atual design do motor. Prédios modernos utilizam apenas o material necessário para funcionar e serem adequadamente seguros para as condições que foram projetados. Todos os planos convergem para uma ótima forma/tamanho/carga e basicamente são bem parecidos.

Apenas em software é normal que um programa rode a 1% ou ate mesmo a 0.01% de sua capacidade máxima e as pessoas parecem tranquilas quanto a isso. As vezes essas mesmas pessoas se mostram orgulhosas de quanto ineficiente seu software é, ainda dizendo “porque se preocupar, computadores são rápidos pra caramba”:


@tveastman: Eu tenho um programa em Python que rodo todo dia e ele demora 1.5 segundos. Eu gastei 6 horas reescrevendo em Rust e agora ele roda em 0.006 segundos. Essa melhoria na eficiência significa que eu receberei meu tempo de volta em 41 anos e 24 dias :-)
Você provavelmente já ouviu o mantra: “O tempo do programador é mais caro que o tempo do computador”. O que isso significa é que estamos desperdiçando computadores em uma escala absurda. Você compraria um carro se ele consumisse 100 litros por 100 quilômetros? e 1000 litros por 100 quilômetros? Estamos fazendo isso com computadores o tempo todo.



Tudo é muito lento

Olhe em volta: Nosso computadores portáteis são milhares de vezes mais poderosos que os que levaram o homem a lua. Mesmo assim, algumas páginas web sofrem para manter um scroll de 60fps no mais moderno Macbook Pro. Eu consigo jogar em alta resolução, assistir videos em 4K porém não consigo rolar uma página web? Como isso é aceitável?

Google Inbox, um web app criado pelo Google, rodando no Chrome também desenvolvido pelo Google, demora 13 segundos para abrir um email de tamanho moderado.



O app também anima caixas vazias ao invés de mostrar o conteúdo do email, porque essa é a única forma de animar coisas na web com uma performance decente. Não, performance decente não significa 60fps, significa “tão rápido quanto uma página web pode ser”. Não posso esperar para ver o que a comunidade web vai dizer quando monitores 120Hz se tornarem comuns. As coisas mal conseguem rodar a 60Hz agora.

Windows 10 demora 30 minutos para atualizar. O que poderia justificar toda essa demora? Todo esse tempo é suficiente para formatar meu Disco SSD, baixar um build do zero e instalar 5 vezes seguidas.



Pavel Fatin: Digitar em um editor é um processo relativamente simples, mesmo computadores 286 eram capazes de fornecer uma experiência decente.
Editores de texto modernos possuem uma latência maior que Emacs com já 42 anos de idade. Editores de texto! o que poderia ser mais simples? Em cada tecla pressionada, tudo que você tem que fazer é atualizar pequenas regiões na tela e parece que editores modernos não conseguem fazer em 16 milissegundos. É muito, muito tempo. Jogos 3D preenchem a tela inteira com milhões de polígonos nos mesmo 16 milissegundos e ainda processa inputs, recalculam o mundo e carregam e descarregam recursos dinamicamente. Como isso é possível?

Como uma modinha global, nós não estamos desenvolvendo software mais rápidos com mais funcionalidades. Nós estamos desenvolvendo hardware mais poderosos que rodam software mais lentos com as mesmas funcionalidades. Tudo funciona muito abaixo da velocidade possível. Já se perguntou porque seu smartphone demora entre 30 e 60 segundos para inicializar? Por que não pode inicializar em 1 segundo? Não existem limitações físicas para justificar isso. Eu adoraria ver os limites serem alcançados e explorados, utilizando toda performance disponível para fazer algo significativo.

Tudo é gigaaaaante

Aplicações web poderiam rodar 10 vezes mais rápido se você simplesmente bloquear as propagandas. Google implora para que todo mundo pare de atirar no próprio pé com sua iniciativa chamada AMP (Accelerated Mobile Pages) - Uma solução tecnológica para um problema que não precisa de nem uma tecnologia, apenas um pouco de senso comum. Se removermos o desnecessário, a web se tornaria incrivelmente rápida. Quão inteligente você precisa ser para entender isso?

O sistema Android sozinho usa mais de 6GB. Apenas pense por um minuto o quanto gigante esse número é. O que tem dentro desse sistema? Filmes em HD? Creio que seja basicamente código: Kernel e drivers. Algumas Strings e recursos também, claro. Porém não pode ser tão grande assim. Quantos drivers você precisa para um smartphone?



O Windows 95 tem 30MB. Hoje temos páginas web mais pesadas que isso! Windows 10 tem 4GB, o que justifica ser 113 vezes maior? Funcionalmente, eles são basicamente o mesmo. Sim, nós temos Cortana, porém eu não acredito que isso justifique os 3970 MB a mais. De qualquer forma, o que o Windows 10 for, o Android realmente precisa ser 150% disso?


O app de teclado do Google consome 150MB. Isso é serio que um app que renderiza 30 teclas na tela é mais complexo que todo o Windows 95? Google app, que é basicamente um pacote incluindo Google Web Search, é 350MB! Google Play Services, o qual eu não uso (Eu não compro livros, música ou vídeos lá) - 300MB que apenas existem lá e que eu não posso deletar.



Depois de tudo isso, eu fico com 1GB para minhas fotos depois que instalo os apps essenciais(mídias sociais, chats, mapas, taxi, bancos e etc). E isso não incluem nem um jogos ou música! Lembra de um tempo que um Sistema Operacional com todos os dados e aplicativos cabiam em um disquete?

Seu app para tarefas é provavelmente escrito em Electron, o qual contém drivers para controle de Xbox 360, pode renderizar gráficos 3D, tocar áudio e tirar fotos com sua camera.



Uma simples aplicação de chat é visivelmente pesada, consumindo muita memória e tempo de carregamento. Sim, você tem que contar o Slack como uma aplicação que consome muitos recursos. Um chat e um simples editor de texto deveriam ser considerados as aplicações mais leves existente no mundo. Bem-vindo a 2018.

Pelo menos funciona, você pode dizer. Bom, maior não significa melhor. Maior significa que alguém perdeu o controle. Maior significa que nós não sabemos o que está acontecendo. Maior significa mais débito em complexidade, em performance e em consistência. Isso não é a norma e não deve se tornar a norma. Aplicativos gigantes deveriam ser um sinal vermelho. Deveriam significar “Fuja o mais rápido que puder”.

Tudo Apodrece

Um smartphone Android com 16GB era perfeitamente funcional 3 anos atrás. Hoje, com a versão 8.1 do Android, esses mesmos smartphones são praticamente inutilizáveis, porque cada app se tornou pelo menos 2 vezes maior sem nenhum motivo aparente. Sem nenhuma funcionalidade nova. Não são mais rápidos ou mais otimizados. Eles não parecem diferente. Eles apenas… aumentam de tamanho?

O iPhone 4S foi lançado com o iOS 5, porém mal consegue rodar o iOS 9. E não é porque o iOS 9 é muito mais superior. São praticamente a mesma coisa. Porém, o novo hardware é mais rápido, então eles fizeram o software mais lento. Não se preocupe, você agora tem novas funcionalidades como… rodar os mesmos apps com a mesma velocidade! Não consigo entender.

iOS 11 deixou de suportar apps em 32-bit. Isso significa que se desenvolvedor não estiver lançando atualizações durante o lançamento do iOS 11 ou se não quiser atualizar um app que está rodando perfeitamente, chances são grandes de você nunca mais ver esse app.


@jckarter: Um programa DOS pode rodar sem nenhuma modificação em praticamente qualquer computador feito desde os anos 80. Um app javascript provavelmente quebrará com a próxima atualização do Chrome.
Páginas web atuais provavelmente não serão compatíveis com nenhum navegador web daqui a 10 anos(Talvez até antes).

“Consome tudo que você tem apenas para se manter no lugar”. Porém, qual o sentido disso? Eu talvez goste de comprar um novo smartphone ou um novo MacBook, porém apenas para poder rodar os mesmos aplicativos que se tornaram devagar?

Eu acho que nós podemos e devemos fazer melhor que isso. Todo mundo está ocupado construindo alguma coisa agora, hoje, raramente para o amanhã. Seria muito legal se tudo isso que construímos durasse mais um pouco.

Pior é Melhor

Ninguém entende nada nesse ponto. Nem querem entender. Nós apenas jogamos coisas feitas pela metade no mercado, esperamos pelo melhor e ainda chamamos isso de “saberia da startup”.

Páginas web pedem para você atualizar se algo sair errado. Quem tem tempo para verificar o que aconteceu?



Todo aplicativo web produz constantemente erros javascript aleatórios, até mesmo em navegadores compatíveis.

A arquitetura página web/banco de dados SQL é feita baseada na premissa (assim espera-se) quem ninguém toque nos dados enquanto você olha na página renderizada.


A maioria dos aplicativos colaborativos implementam “o melhor esforço” e tem vários cenários comuns onde eles perdem dados. Já viu essa mensagem “qual versão manter?”. Eu digo, o nível ficou tão baixo que os usuários ficariam felizes se pelo menos eles tivessem uma mensagem dessas.



E no meu mundo onde um app fala “Eu vou destruir parte de seu trabalho, no entanto você pode escolher que parte perder” isso não é okay.
Linux mata processos por padrão. E ainda assim é o sistema operacional para servidores mais popular.

Todo dispositivo que tenho, falha muitas vezes de um forma ou de outra. Meu monitor Dell precisa de um hard reset de tempos em tempos só porque tem software rodando lá. Airdrop? Você é um sortudo se ele detectar seu dispositivo. Bluetooth? A especificação é tão complexa que a grande parte dos dispositivos não se comunicam entre si e resets periódicos são a melhor forma de consertar.



E eu não estou nem considerando IoT(Internet Of Things). Tudo funciona tão mal que eu não sei nem o que acrescentar aqui.

Eu quero ser orgulhoso do meu trabalho. Quero entregar coisas funcionando, sólidas e estáveis. Para isso, nós precisamos entender o que estamos construindo, de ponta a ponta, e isso é impossível de fazer em sistemas gigantes com engenharia desnecessária.

A bagunça é a mesma na programação


Apenas parece que ninguém está interessado em construir coisas de qualidade, rápidas, eficiente, duradouras. Mesmo quando soluções eficientes tem funcionado por décadas, nós ainda esbarramos nos mesmos problemas: Gerenciamento de pacotes, sistemas de build, compiladores, design de linguagens, IDEs.

Sistemas de build não são mais confiáveis e geralmente precisamos excluir tudo, apesar de toda a informação para invalidação existir lá. Nada nos impede de fazer com que o processo de build seja confiável, previsível e 100% reproduzível. Apenas ninguém pensa que é importante. NPM está na situação de “as vezes funciona” tem alguns anos já.


@przemyslawdabek: Para mim, rm -rf node_modules é um comando indispensável no meu workflow durante desenvolvimento de aplicações Node.js e Javascript.
E tempo de compilação? Ninguém pensa que o compilador funciona por minutos ou até por horas é um problema. O que acontece com “A hora do programador é mais importante”? Quase todos os compiladores, pré e pós-processadores, adicionam muito mais tempo em seu processo de build sem nem uma justificativa.



Você pode esperar que programadores geralmente tomam decisões racionais, ainda assim, as vezes eles fazem totalmente o contrário. Por exemplo, escolhendo usar Hadoop, mesmo quando é mais devagar que rodar a mesma tarefa em um único desktop.

Machine Learning e “AI” transformaram software em “achismos” no tempo em que computadores não são nem confiáveis o suficiente.


@rakhim: Quando um app ou serviço é descrito como “Feito com AI” ou “Baseado em ML”, eu leio “imprevisivo, não confiável e impossível de entender seu comportamento”. Eu tento evitar “AI” porque eu quero que computadores façam exatamente o oposto: “previsível, confiável e que eu possa entender”.
Nós colocamos uma máquina virtual dentro do Linux, e depois colocamos o Docker dentro de máquinas virtuais, simplesmente porque ninguém foi capaz de limpar a bagunça da maioria dos programas, linguagens e o ambiente que isso produz. Nós cobrimos a bagunça com um pano, apenas para não ter que lidar com isso.

“Único binário” ainda é a maior jogada de marketing da linguagem Go, por exemplo. Sem bagunça == sucesso.



E as dependências? Desenvolvedores geralmente adicionam “pacotes completos” para resolver os mais simples dos problemas sem considerar os custos. E essas dependências trazem outras dependências. Você termina com uma árvore que se parece com algo como uma história de terror(gigante e cheia de conflitos) e uma comédia (Não tem motivo para incluí-las, más mesmo assim nós adicionamos).



Programas não podem funcionar por anos sem reiniciar de tempos em tempos. As vezes alguns dias é pedir muito. Coisas aleatórias acontecem e ninguém sabe o porque.

O que é pior, ninguém tem tempo para parar e descobrir o que está acontecendo. Por que se preocupar se você pode comprar a solução? Rode outra instância AWS, reinicie o processo, destrua e restaure o banco de dados. Escreva um watchdog que reiniciará o aplicativo quebrado a cada 20 minutos. Inclua os mesmos recursos várias vezes, gere o zip e envie. Mova rápido e não conserte.

Isso não é engenharia. É Apenas preguiça de programar. Engenharia é entender performance, estrutura e os limites do que você está construindo, profundamente. Combinar coisas escritas de qualquer forma com mais coisas escritas de qualquer forma vai totalmente contra esse princípio. Para progredir, nós precisamos entender o que e porque estamos fazendo.

Nós estamos presos com isso

Então tudo é apenas uma montanha de coisas feitas pela metade por cima de outras coisas escritas de qualquer forma que mal funcionam. E isso fica só crescendo e aumentando a complexidade, diminuindo qualquer chance para mudança.


Para ter um ecossistema saudável, você precisa voltar e revisitar. Você precisa, ocasionalmente, jogar coisas fora e substituir por coisas melhores.



Mas quem tem tempo para isso? Nós não temos visto novos Kernels de sistemas operacionais em 25 anos. São simplesmente muito complexos para simplesmente serem reescritos agora. Navegadores são tão cheios de casos isolados que ninguém nem se atreve a escrever uma engine de layout do zero.

A definição de hoje para progresso é jogar mais lenha na fogueira:

@sahrizv: 2014 - Nós precisamos adaptar #microservices para resolver todos os problemas com monolitos. 2016 - Nós precisamos adotar #docker para resolver todos os nossos problemas com microservices 2018 - Nós precisamos adotar #kubernetes para resolver nossos problemas com docker
Ou reinventar a roda:

@dr_c0d3: 2000: Escrever centenas de linhas de XML para “declarativamente” configurar servlets e EJBs. 2018 - Escrever centenas de linhas de YAML para “declarativamente” configurar seus microservices. Pelo menos XML possuía schemas…
Nós estamos presos com o que temos e ninguém virá nos salvar.

Business não ligam


Bem como os usuários. Eles apenas aprenderam a usar o que nós construímos. Nós (engenheiros) falamos que todo app Android precisa de 350MB? Okay, eles viverão com isso. Nós falamos que não podemos entregar uma rolagem fluida? Okay, eles viverão com um smartphone lento. Nós falamos “Se não funcionar, reset”? Eles irão resetar. Afinal de contas, eles não tem escolha.

Também não existe competição. Todo mundo está construindo algum produto lento, gigante e não confiável. Pulos em qualidade que acontecem raramente trazem uma vantagem competitiva (iPhone/iOS vs outros smartphones, Chrome vs outros navegadores) que força todo mundo a se reagrupar, porém não por muito tempo.

Isso mostra que é a nossa missão como engenheiros de mostrar ao mundo o que é possível com os computadores atuais em termos de performance, confiabilidade, qualidade e usabilidade. Se nós nos preocuparmos, as pessoas irão aprender. E não existem outras pessoas, a não ser nós mesmos, para mostrá-los que isso é possível. Se apenas nos preocuparmos.

Nem tudo está perdido

Existem alguns pontos de esperança indicando que melhorar coisas state-of-the-art não é impossível.

O trabalho que Martin Thompson vem fazendo (LMAX Disruptor, SBE, Aeron) é de se admirar. simples e eficiente.

Xi editor por Ralph Levien parece ser construído com os princípios corretos em mente.

Jonathan Blow tem uma linguagem que ele mesmo desenvolveu para o seu game que compila 500k linhas por segundo em seu laptop. Isso é uma compilação fria, sem cache intermediário e sem build incrementais.

Você não precisa ser um gênio para escrever programas rápidos. Não existe mágica. A única coisa necessária é não escrever seus programas sobre uma pilha de lixo que são muitas dessas ferramentas modernas.

Manifesto para um mundo melhor

Eu quero ver o progresso. Eu quero mudança. Eu quero ver state-of-the-art em engenharia de software melhorar e não só ficar parado no tempo. Eu não quero reinventar a mesma coisa toda vez, geralmente maior e menos performática. Eu quero algo que eu possa acreditar, um propósito válido. Um futuro melhor do que temos hoje e eu quero uma comunidade de engenheiros que compartilham dessa visão.

O que temos hoje não é progresso. Nós mal atingimos os objetivos de negócio usando ferramentas pobres. Nós estamos travados no mesmo local e ninguém quer se mover. Não é nem um lugar legal, é gigante e ineficiente. Nós simplesmente nos acostumamos.


Então eu quero falar em voz alta: Onde estamos hoje é estúpido. Como engenheiros, nós podemos e devemos fazer melhor. Nós podemos ter melhores ferramentas, nós podemos construir apps melhores, mais rápidos, mais previsíveis, mais confiáveis, usando menos recursos(milhares de vezes menos!). Nós precisamos entender profundamente o que estamos fazendo e o porque. Nós precisamos entregar: Segurança, previsibilidade e a melhor qualidade possível. Nós podemos e devemos ter orgulho de nosso trabalho. Não apenas “dar o que temos”.

Eu espero que não esteja sozinho nisso. Eu espero que tenha pessoas ai fora que queiram fazer a mesma coisa. Eu ficaria muito feliz se, pelo menos, nós começarmos a discutir sobre como a situação atual na indústria de software é ruim e depois talvez descobrir como sair desse estado.

https://tonsky.me/blog/disenchantment/pt/
 


Passo's

Ei mãe, 500 pontos!
Mensagens
27.171
Reações
23.671
Pontos
724
Tava começando a levar a sério, quando ai vejo analogias horríveis como windows 95 vs android 9 em armazenamento.
Afirmar que windows leva 30min update num ssd e dizer que instala 5x do zero sistema no tempo.
Comparar atualização de pixels de uma engine de jogo win32 com velocidade de exibição de um word da vida, não sabe como caralhos uma api funciona.

Pelamor

O escritor tem ideias corretas e bons pontos, agora viajou 400% na farofa em vários analogias e parei de ler nisso.
Conhecimento 0 de arquitetura de computadores ou sequer pelo menos o básico de risc/cisc.



Nego desenvolve UI front-end e acha que virou um cientista computacional, pé muito longe da alçada.
Ele acha que é a única pessoa que teve aula de interface humano computador na universidade, só que o mundo gira muito mais profundamente que as linguagens de nível alto dele.
 

milkflame

Bam-bam-bam
Mensagens
3.119
Reações
5.788
Pontos
303
Mais um havard soviet(melhor expressão que escutei em um bom tempo) da lacrosfera, "state of art". O mercado (sim, ele mesmo o dono das ações humanas) não tem condição de trabalhar só com Rust da vida agora (tempo é dinheiro), Rust que é maravilhoso diga se de passagem, mas nem vaga tem direito, os times de Rust/Go estão começando a surgir agora dentro das empresas e fazendo coisas pequenas, e o maluco tá ansioso porque descobriu um brinquedinho novo e melhor.

Mercado quer é dinheiro, e por mim tá tudo bem, eu trabalho por dinheiro, sou bem honesto comigo mesmo, 1s de load nenhum usuário liga e percebe, esse pessoal se perde no bom senso de escovar bits a onde o serviço não é critico.

As empresas estão se afundando de dinheiro fazendo merda segundo ele, ele que tá certo? kkkk

Tem que trazer a insulina pro cara sair da bolha universitária, essa raiva toda no coração pra curar a AIDS uahuaha

Pra mim o cara só precisa amadurecer, ele pode ter razão que a qualidade não é a melhor, só que o mundo não gira em torno disso, um dia ele cresce, eu mesmo olho direto por vaga Rust, e nem existe jobs atualmente no BR estou esperando pegar alguma tração pra estudar.

Tecnologia melhor sempre vai ter só que é nicho, a massificação do melhor pra todos é um sonho digno de Stalin.
 
Ultima Edição:

Gacrux

Usuário exemplar
VIP
Mensagens
22.557
Reações
48.508
Pontos
669
A abundância de recursos leva os programadores a ignorar a otimização.

Tu acha que alguém hoje em dia se dá o trabalho de aprender por exemplo, a fazer operações bit a bit (bitwise) em C? Na época que memória RAM era cara e ciclos de CPU eram preciosos, isso era obrigatório. OpenGL por exemplo utilizava muito isso, o que o deixava extremamente complexo, esse foi um dos motivos dos desenvolvedores terem preferido DirectX.

Hoje tudo vem de fábrica com 8Gb ou 16GB de RAM, desenvolvem um software usando uma API que já foi desenvolvida sob outra API, é uma bola de neve sem fim que para imprimir um Hello World consome no mínimo uns 64MB de RAM.

Sobre os aplicativos do Google consumindo absurdos de memória RAM, isso tem uma explicação: telemetria. Minerar dados do usuário consome muita memória RAM, ciclos da CPU e consequentemente bateria.
 
Ultima Edição:

EgonRunner

Bam-bam-bam
Mensagens
9.062
Reações
17.449
Pontos
353
levou 15 anos para perceber o óbvio.
já faz tempo que nenhum programador/fornecedor está mais preocupado em otimizar sistema, cpu e memória.
qualidade então nem se fala, tudo que importa é "delivery".

e pro cliente, vale a solução mais barata.
sai mais barato adicionar disco, pente de memória ou jvm do que gastar horas pagando por um código mais eficiente na aplicação.
 

mig29gsxr

Ei mãe, 500 pontos!
Mensagens
17.432
Reações
19.746
Pontos
694
Eu acho que tudo poderia ser mais simples, só que a vontade de ganhar dinheiro e as necessidades dos seres humanos são infinitas. Esse cara quer tudo na mão dele e ainda reclama que os sistemas quebram a todo momento, são lerdos, mas não quer abrir mão de nada. Se estivéssemos usando mIRC para chat, email e sms tava ótimo, mas a galera quer experiências visuais, quer apertar um botão e resolver tudo, e tudo isso demanda esforço, gera trabalho e custos. Claro que tem muito SW porco por aí, mas cada vez mais tem usuário fresco pra caralho que quer interfaces e efeitos visuais sem a menor necessidade.
 


AlexandreFaustini

Bam-bam-bam
Mensagens
2.319
Reações
3.160
Pontos
294
Eu, pelo menos, sempre procuro os programas mais leves possíveis pra rodar aquilo que quero fazer. Um tempo atrás fiz até um tópico nesta pegada:
 

Illidan

Bam-bam-bam
Mensagens
9.312
Reações
17.838
Pontos
409
Nenhum programador virgula.
Eu sempre me baseio em três pontos para desenvolver meus softwares: velocidade, recursos locais e tempo.
Eu concordo com ele em que muitos desenvolvedores não procuram mais otimizar seus produtos, mas isso é para quem tem recurso, na maioria dos casos, jogos. Sem contar que isso não é preguiça, é puro dinheiro.
Eles gastam menos tempo desenvolvendo, e o consumidor gasta mais dinheiro comprando máquinas mais parrudas. A roda gira para quase todo mundo. Só olhar os absurdos que os jogos com padrão de geração passada estão pedindo hoje.
 

return null

Supra-sumo
VIP
Mensagens
859
Reações
1.299
Pontos
174
Tem algumas analogias bem estranhas ai né.

Otimização faz parte do processo de desenvolvimento, assim como testes, qa e debug, porém está totalmente associada a experiência do desenvolvedor, é algo que requer experiência e isso só vem com muita prática. Um programador com experiência vai saber por onde começar ou o que usar para evitar problemas no futuro, para quem não tem experiência é na tentativa, erro e feedback (vital), aceite o feedback e tente otimizar onde existe menor tolerância por parte dos requisitos ou usuário. Maturidade do time conta muito nisso e ter essa abertura para entender quais são as demandas do design e possíveis gaps na elaboração é algo fundamental, vale muito incorporar a prática de profile no projeto, assim o mapeamento do que é preciso otimizar fica muito mais visível.

Outros pontos do texto dele, envolve outras questões, principalmente domínio, já que é ele que vai ditar quais são as prioridades do projeto e generalizar nesse caso é bem complicado (o autor do texto generalizou em muitos exemplos), além de outros aspectos como se existe ou não integração/ comunicação com outros sistemas, qual arquitetura faz mais sentido, quais design patterns serão levados em consideração, de que tipo de hardware estamos falando.
 
Ultima Edição:

AlexandreFaustini

Bam-bam-bam
Mensagens
2.319
Reações
3.160
Pontos
294
Eu, pelo menos, sempre procuro os programas mais leves possíveis pra rodar aquilo que quero fazer. Um tempo atrás fiz até um tópico nesta pegada:
Me auto quotando, esqueci de um negócio. Eu acho foda ter um pc mais potente e determinado programa demorar mais pra fazer alguma atividade que eu deleguei que um pc mais antigo, com outro programa. O que eu ainda caço é algum pacote office realmente leve, pra usos básicos. 90% do tempo não preciso de algo com suporte pra macros e mil-coisas mais. Fora um navegador web sem esse tanto de coisa que faz o navegador querer ser um OS por si só (e isso carregando sempre a cada aba). Pena que o Opera clássico morreu anos atrás. Desta lista que eu botei ai, tem mtos e mtos programas que fazem a mesma coisa que suas alternativas mais famosas/queridinhas, com uma fraçao do consumo de recursos.
Seu app para tarefas é provavelmente escrito em Electron, o qual contém drivers para controle de Xbox 360, pode renderizar gráficos 3D, tocar áudio e tirar fotos com sua camera.
Essa modinha de programas electron é de cair o cú da bunda pra mim.
 

Harold_Finch

Ei mãe, 500 pontos!
Mensagens
22.587
Reações
27.326
Pontos
654
Me auto quotando, esqueci de um negócio. Eu acho foda ter um pc mais potente e determinado programa demorar mais pra fazer alguma atividade que eu deleguei que um pc mais antigo, com outro programa. O que eu ainda caço é algum pacote office realmente leve, pra usos básicos. 90% do tempo não preciso de algo com suporte pra macros e mil-coisas mais. Fora um navegador web sem esse tanto de coisa que faz o navegador querer ser um OS por si só (e isso carregando sempre a cada aba). Pena que o Opera clássico morreu anos atrás. Desta lista que eu botei ai, tem mtos e mtos programas que fazem a mesma coisa que suas alternativas mais famosas/queridinhas, com uma fraçao do consumo de recursos.

Essa modinha de programas electron é de cair o cú da bunda pra mim.
No meu trabalho querem que a gente use o Teams para comunicação. Eu me recuso, não abro aquela coisa terrivelmente pesada.
O VS Code ainda se salva pelas possibilidades que ele oferece, mas estou quase querendo trocar pelo Sublime Text.
O Excel é outro que parece que só piora a performance.
 

Metal God

Ei mãe, 500 pontos!
Mensagens
30.762
Reações
22.873
Pontos
944
Mas se a rapaziada caprichar demais nos programas, não vai haver motivo pra comprar pc novo, mais memória, trocar de telefone... Não pode melhorar demais.
:kbeca
 

return null

Supra-sumo
VIP
Mensagens
859
Reações
1.299
Pontos
174
No meu trabalho querem que a gente use o Teams para comunicação. Eu me recuso, não abro aquela coisa terrivelmente pesada.
O VS Code ainda se salva pelas possibilidades que ele oferece, mas estou quase querendo trocar pelo Sublime Text.
O Excel é outro que parece que só piora a performance.
Mais leve que o Slack é. :P
 

Sephirothrx7

Bam-bam-bam
Mensagens
11.993
Reações
1.742
Pontos
419
Achei bem forçado. O exemplo do app de teclado ter 150 MB. Ele só esqueceu que não é apenas teclado, existe um ou mais dicionários, uma engine para prever próximas palavras, recursos de tradução de voz, busca por Gif e por aí vai.
Sobre as linguagens, Rust e C são rápidos? Claro que são, mas são linguagens de sistema. Não são práticas no dia a dia com sistemas que evoluem e mudam o tempo todo. É pra isso que usamos linguagens de aplicação como Ruby, Java, . NET, etc. Trocamos agilidade por performance. Elas abstraem o sistema operacional com uma API estável, usam GC pra que não tenhamos que nos preocupar com liberar memória no meio do código com regra de negócio.

Enviado de meu POCOPHONE F1 usando o Tapatalk
 

mendingo_26

Ei mãe, 500 pontos!
Mensagens
16.655
Reações
59.470
Pontos
554
Sobre o android pior que é verdade sobre a obsolência rápida descrita no artigo do OP, exemplo, peguei a uns 5 anos o celular top (lmeses de pois de lançado) que era o Positvo Octa X800, inclusive foi o primeiro oficialmente a chegar no Brasil com o processador Octa / android 5.1 lollipop, o bixim era uma maravilha e rodava tudo rápido e prático. Com 1GB de memória RAM + 8GB de memória interna não tinha aplicativo que enchesse a memória interna, hoje com apenas 5 aplicativos básicos fora do sistema operacional o coitado do celular peida para rodar com tranquilidade qualquer programa
 

TanebadoX

Saudosista
VIP
Mensagens
15.655
Reações
8.396
Pontos
484
Sobre o android pior que é verdade sobre a obsolência rápida descrita no artigo do OP, exemplo, peguei a uns 5 anos o celular top (lmeses de pois de lançado) que era o Positvo Octa X800, inclusive foi o primeiro oficialmente a chegar no Brasil com o processador Octa / android 5.1 lollipop, o bixim era uma maravilha e rodava tudo rápido e prático. Com 1GB de memória RAM + 8GB de memória interna não tinha aplicativo que enchesse a memória interna, hoje com apenas 5 aplicativos básicos fora do sistema operacional o coitado do celular peida para rodar com tranquilidade qualquer programa
Android é MUITO mal otimizado. Eu adoro o sistema mas atualmente tá inviável, celulares com mais RAM que meu computador pra rodar coisas básicas, é um absurdo. Nesse ponto o iOS da de 10 a 0. Deixei de usar Android tem uns 2 anos e não sinto muita vontade de voltar pro sistema, talvez só pelo valor dos iPhones que é absurdo. Deveria entrar algum concorrente de peso aí ou um celular bom com Linux puro e mais aplicativos com interface adaptada para telas menores de toque.
 

AriltonJA

O Arauto da Luz
VIP
Mensagens
2.243
Reações
2.347
Pontos
304
Eu também trabalho na área. A regra em geral é: Se o hardware aguenta, não tem porque gastar recursos otimizando. Tem alguns projetos na certeira que de fato requerem muita otimização, vestíveis/embarcados principalmente. O custo dessa otimização em geral é repassado pro cliente obviamente. Não são nem os programadores que não querem otimizar. Digo isso porque a galera aqui se diverte tirando leite de pedra. Em geral é o cliente que não acha necessário pagar por isso.

Isso existe na industria tem bastante tempo e com o crescimento de empresas adotando agile, só ficou mais evidente. Não quer dizer que a coisa seja mal feita. O código é bem organizado dentro dos padrões e é bem documentado. A coisa é que ninguém vai investir dinheiro no que não precisa investir.

Se você for abrir uma empresa e trabalhar dessa forma, ou vai quebrar rapidinho ou então vai atender um nicho bem pequeno do mercado que ainda precisa de otimização de software.

A época de se trabalhar com registradores, escovar byte e fazer magica pra software rodar já passou tem muito tempo.
 
Ultima Edição:

ganondorfan

Veterano
Mensagens
417
Reações
797
Pontos
113
Eu discordo demais desse texto, também sou da área.

O software tem de se adequar ao propósito dele e, na maioria dos casos modernos, pelo que percebo é de fato a entrega de produto, regra de negócio sólida e funcionando. Não tem sentido nenhum "escovar bytes" de todo e qualquer projeto. Cada qual deve ter o seu próprio tamanho e noção de acomodação enquanto produto.

Em sistemas que desempenho é o foco, o time vai focar nessa feature, não há dúvidas.
Tempo é dinheiro, tempo é limitado, vida é limitada, as coisas evoluem e os produtos se acomodam no hardware para o qual foram projetados. Não há nada de novo aí, sobretudo as coisas não mudarão porque alguns devs são xiitas a ponto de achar que toda e qualquer peça de software deva ser obrigatoriamente um state of art para ser considerada boa de verdade.
 

Harold_Finch

Ei mãe, 500 pontos!
Mensagens
22.587
Reações
27.326
Pontos
654
Eu acho que já sei qual é o problema:

O desenvolvedor tem uma máquina com Core i9, 64 GB de RAM, uma RTX 2080Ti, 4 TB de SSD NVMe e pra ele, o sistema roda liso.

Aí o usuário vai rodar em um Pentium Dual Core, 4 GB de RAM, GPU onboard e um HD de 500 GB.

Eu não sou um desenvolvedor pleno, apenas faço umas simplificações no meu trabalho. Minha equipe criou um sisteminha em PHP só para agilizar os processos, porque o sistema original é uma bosta. Aí eu vejo que muita coisa dá pra otimizar por questões de vontade e de conhecimento.

Por exemplo, uma consulta a um banco de dados enorme. Eu quebro a consulta em várias views, tento normalizar e no fim das contas, o usuário pega um dado mastigadinho e instantâneo.

Eu não gosto de ficar esperando muito tempo para consultar coisas, então eu estou sempre otimizando essas coisas. Ajuda também a minha máquina ser bem fraquinha, um core i3 3220, 4GB de RAM, 500 de HD mecânico, o que me faz ter a visão real da máquina.

Eu também trabalho na área. A regra em geral é: Se o hardware aguenta, não tem porque gastar recursos otimizando. Tem alguns projetos na certeira que de fato requerem muita otimização, vestíveis/embarcados principalmente. O custo dessa otimização em geral é repassado pro cliente obviamente. Não são nem os programadores que não querem otimizar. Digo isso porque a galera aqui se diverte tirando leite de pedra. Em geral é o cliente que não acha necessário pagar por isso.

Isso existe na industria tem bastante tempo e com o crescimento de empresas adotando agile, só ficou mais evidente. Não quer dizer que a coisa seja mal feita. O código é bem organizado dentro dos padrões e é bem documentado. A coisa é que ninguém vai investir dinheiro no que não precisa investir.

Se você for abrir uma empresa e trabalhar dessa forma, ou vai quebrar rapidinho ou então vai atender um nicho bem pequeno do mercado que ainda precisa de otimização de software.

A época de se trabalhar com registradores, escovar byte e fazer magica pra software rodar já passou tem muito tempo.
Eu discordo demais desse texto, também sou da área.

O software tem de se adequar ao propósito dele e, na maioria dos casos modernos, pelo que percebo é de fato a entrega de produto, regra de negócio sólida e funcionando. Não tem sentido nenhum "escovar bytes" de todo e qualquer projeto. Cada qual deve ter o seu próprio tamanho e noção de acomodação enquanto produto.

Em sistemas que desempenho é o foco, o time vai focar nessa feature, não há dúvidas.
Tempo é dinheiro, tempo é limitado, vida é limitada, as coisas evoluem e os produtos se acomodam no hardware para o qual foram projetados. Não há nada de novo aí, sobretudo as coisas não mudarão porque alguns devs são xiitas a ponto de achar que toda e qualquer peça de software deva ser obrigatoriamente um state of art para ser considerada boa de verdade.
Eu acho que a ideia nem é sobre escovar bits. Eu acho que ele quer demonstrar que algumas coisas parece que pioraram, ficaram mais lentos e não necessariamente melhores ou com mais recursos.

Um exemplo que consigo pensar é no Gmail, que era rapidinho. Depois mudaram a interface com todo uma animação boba e outros frufrus. Não ganhei nenhuma funcionalidade a mais, mas o email ficou lento, chatinho de abrir. Aí eu fui ver umas outras opções como o Protonmail que criptografa os emails e ele abre rapidão.

Achei bem forçado. O exemplo do app de teclado ter 150 MB. Ele só esqueceu que não é apenas teclado, existe um ou mais dicionários, uma engine para prever próximas palavras, recursos de tradução de voz, busca por Gif e por aí vai.
Sobre as linguagens, Rust e C são rápidos? Claro que são, mas são linguagens de sistema. Não são práticas no dia a dia com sistemas que evoluem e mudam o tempo todo. É pra isso que usamos linguagens de aplicação como Ruby, Java, . NET, etc. Trocamos agilidade por performance. Elas abstraem o sistema operacional com uma API estável, usam GC pra que não tenhamos que nos preocupar com liberar memória no meio do código com regra de negócio.

Enviado de meu POCOPHONE F1 usando o Tapatalk
Ruby, Java, .NET são bem performáticas e multiplataformas.

O que eu vejo é uma adoção de apps em javascript que são fáceis de desenvolver, mas tem a performance prejudicada e dada a quantidade de dependências, deve ser um lixo de manter. Por isso ao invés de criar e melhorar um software, eles simplesmente jogam fora e criam outro.

Alías, essa é outra coisa, você já tinha vários softwares funcionais criados e muitos foram abandonados porque surgiu uma nova linguagem na esquina e os novos desenvolvedores são hipsters demais e querem usar isso e reinventar a roda.
 

Sephirothrx7

Bam-bam-bam
Mensagens
11.993
Reações
1.742
Pontos
419
Eu acho que já sei qual é o problema:

O desenvolvedor tem uma máquina com Core i9, 64 GB de RAM, uma RTX 2080Ti, 4 TB de SSD NVMe e pra ele, o sistema roda liso.

Aí o usuário vai rodar em um Pentium Dual Core, 4 GB de RAM, GPU onboard e um HD de 500 GB.

Eu não sou um desenvolvedor pleno, apenas faço umas simplificações no meu trabalho. Minha equipe criou um sisteminha em PHP só para agilizar os processos, porque o sistema original é uma bosta. Aí eu vejo que muita coisa dá pra otimizar por questões de vontade e de conhecimento.

Por exemplo, uma consulta a um banco de dados enorme. Eu quebro a consulta em várias views, tento normalizar e no fim das contas, o usuário pega um dado mastigadinho e instantâneo.

Eu não gosto de ficar esperando muito tempo para consultar coisas, então eu estou sempre otimizando essas coisas. Ajuda também a minha máquina ser bem fraquinha, um core i3 3220, 4GB de RAM, 500 de HD mecânico, o que me faz ter a visão real da máquina.




Eu acho que a ideia nem é sobre escovar bits. Eu acho que ele quer demonstrar que algumas coisas parece que pioraram, ficaram mais lentos e não necessariamente melhores ou com mais recursos.

Um exemplo que consigo pensar é no Gmail, que era rapidinho. Depois mudaram a interface com todo uma animação boba e outros frufrus. Não ganhei nenhuma funcionalidade a mais, mas o email ficou lento, chatinho de abrir. Aí eu fui ver umas outras opções como o Protonmail que criptografa os emails e ele abre rapidão.



Ruby, Java, .NET são bem performáticas e multiplataformas.

O que eu vejo é uma adoção de apps em javascript que são fáceis de desenvolver, mas tem a performance prejudicada e dada a quantidade de dependências, deve ser um lixo de manter. Por isso ao invés de criar e melhorar um software, eles simplesmente jogam fora e criam outro.

Alías, essa é outra coisa, você já tinha vários softwares funcionais criados e muitos foram abandonados porque surgiu uma nova linguagem na esquina e os novos desenvolvedores são hipsters demais e querem usar isso e reinventar a roda.
Meu exemplo do Ruby, Java, . NET é que são linguagens de escrever aplicação. Java e . NET são mais performáticas do que Ruby, ainda mais que Ruby é interpretada, mas nenhuma delas vão ser tão rapidas quando C ou Rust.

Enviado de meu POCOPHONE F1 usando o Tapatalk
 

mendingo_26

Ei mãe, 500 pontos!
Mensagens
16.655
Reações
59.470
Pontos
554
Android é MUITO mal otimizado. Eu adoro o sistema mas atualmente tá inviável, celulares com mais RAM que meu computador pra rodar coisas básicas, é um absurdo. Nesse ponto o iOS da de 10 a 0. Deixei de usar Android tem uns 2 anos e não sinto muita vontade de voltar pro sistema, talvez só pelo valor dos iPhones que é absurdo. Deveria entrar algum concorrente de peso aí ou um celular bom com Linux puro e mais aplicativos com interface adaptada para telas menores de toque.
Se a imbecil da Microsoft não fosse tapada, comia com sal e areia o sistema android, eu usei o Lumia 920 e o Windows Phone rolava lisinho com uma porrada de aplicativos a mais que o android, tive ele por 4 meses antes de ser assaltado e me lembro até hoje das 4 vezes que reiniciei por travar por completo o sistema, nem usava o aplicativo para tirar arquivos inúteis. Enquanto isso no android toda a semana tenho que reiniciar o sistema porque algum app buga e não funciona, sem falar que para o sistema rodar liso é obrigatório o uso de algum app de limpeza, seja de memória cache ou de arquivos inuteis que vão ocupando o espaço interno
 

Harold_Finch

Ei mãe, 500 pontos!
Mensagens
22.587
Reações
27.326
Pontos
654
Se a imbecil da Microsoft não fosse tapada, comia com sal e areia o sistema android, eu usei o Lumia 920 e o Windows Phone rolava lisinho com uma porrada de aplicativos a mais que o android, tive ele por 4 meses antes de ser assaltado e me lembro até hoje das 4 vezes que reiniciei por travar por completo o sistema, nem usava o aplicativo para tirar arquivos inúteis. Enquanto isso no android toda a semana tenho que reiniciar o sistema porque algum app buga e não funciona, sem falar que para o sistema rodar liso é obrigatório o uso de algum app de limpeza, seja de memória cache ou de arquivos inuteis que vão ocupando o espaço interno
Pior que a Microsoft largou a mão do sistema justamente quando estavam começando a normalizar as coisas, inclusive com o surgimento de vários frameworks multiplataforma.

A Microsoft atual está ganhando muito dinheiro, usando ferramentas já prontas de outros e vendendo software a rodo. Porém me parece que eles estão perdendo um pouco o lado inovador deles. Apesar de todos os problemas que isso criou, não dá pra negar que a Microsoft antiga era criativa no sentido de trazer novas tecnologias.
 

TanebadoX

Saudosista
VIP
Mensagens
15.655
Reações
8.396
Pontos
484
Se a imbecil da Microsoft não fosse tapada, comia com sal e areia o sistema android, eu usei o Lumia 920 e o Windows Phone rolava lisinho com uma porrada de aplicativos a mais que o android, tive ele por 4 meses antes de ser assaltado e me lembro até hoje das 4 vezes que reiniciei por travar por completo o sistema, nem usava o aplicativo para tirar arquivos inúteis. Enquanto isso no android toda a semana tenho que reiniciar o sistema porque algum app buga e não funciona, sem falar que para o sistema rodar liso é obrigatório o uso de algum app de limpeza, seja de memória cache ou de arquivos inuteis que vão ocupando o espaço interno
É uma pena mesmo, usei Windows phone uns 2 anos, primeiro com o 520 depois com o 920, nada a reclamar na época, era super fluido e bonito... m$ moscou demais, era só insistir um pouco e manter os preços competitivos no começo que ia ganhar tração
 

Omega Frost

Ei mãe, 500 pontos!
Mensagens
20.361
Reações
27.400
Pontos
709
Bom, trabalho com computação de alto desempenho, então achei boa parte desse artigo um monte de porcaria.

Sim, existem pessoas preocupadas com otimização. Se o ecossistema de desenvolvimento do cara não otimiza então não desotimize os otimizadores.

De novo, se sistemas de build não são confiáveis no mundo do cara (provavelmente JS), então se limite àquilo e não generalize.

Tempo de compilação? Nós pensamos, atualmente nosso software demora uns bons minutos pra compilar pra garantir que tenha um kernel de computação ótimo em cada uma das arquiteturas nas quais o software vai rodar por centenas de horas-máquina por mês. Se a gente usar otimização guiada por profiling então o tempo de compilação vai lá em cima... mas ainda acho que vale o sacrifício, assim como o boilerplate de pré-processing que a gente desenvolveu pra poupar outras DEZENAS de horas por mês de debugging por causa de um trabalho repetitivo que uma máquina podia ter feito sem erros enquanto um programador vai fazer no Ctrl+C + Ctrl+V e errar.

"Árvore de dependências" também significa trazer um software que deve ter sido testado. Porque reinventar a roda em computação é fácil, quero ver garantir qualidade do código.

Por último o docker não serve para limpar, serve pra garantir escalabilidade, manutenção, reprodutibilidade e segurança na hora de lidar com serviços. Graças a ele a gente consegue usar um software velho pra kct, mas que é necessário para um grupo de pessoas do time. em um sistema novo.
 

Preg

Prodígio da preguiça
VIP
Mensagens
2.763
Reações
7.474
Pontos
303
Hj o nível de abstração é tão alto que é muito difícil fazer algo realmente otimizado, e pelo visto o maluco é front-end, front-end é gambiarra pura devido a isto.

Abçs.
 

The Watcher

Bam-bam-bam
Mensagens
9.944
Reações
2.746
Pontos
444
A meu ver o que o cara está dizendo é que apesar da diferença gritante de poder de hardware hoje em dia, os aplicativos estão ficando mais lentos e menos eficientes, coisa que eu concordo.

Aqui tenho um dual boot de Windows 7 e Windows 10. A velocidade e estabilidade do Windows 7 é uma coisa linda de ver, estou realmente tentando ao máximo prolongar a vida dele mesmo após o fim do suporte oficial.

já o Windows 10, apesar das firulas visuais e algumas funções legais, é muito mais lento e ineficiente e olha que tenho um hardware bem decente (i5 6400 + 16GB ddr4 2733mhz + Radeon RX460 4GB DDR5).

Essa é uma tendência muito ruim nos softwares, que de é acumular recursos e "funções" que são desnecessárias para a esmagadora maioria dos usuários e que no geral envolvem alguma telemetria, geralmente invasiva (vide o escândalo da Avast agora).



Sobre os aplicativos do Google consumindo absurdos de memória RAM, isso tem uma explicação: telemetria. Minerar dados do usuário consome muita memória RAM, ciclos da CPU e consequentemente bateria.


Isso que eu ia dizer. E isso inclui a Microsoft também. O Pacote Office tem muita telemetria e o Windows 10 (principalmente, também). Isso aumenta o tempo de loading, processamento e a chance de erros.
 

dragonreborn

Supra-sumo
Mensagens
654
Reações
1.758
Pontos
168
o grande problema que eu vejo não é o fato das empresas estarem deixando de priorizar a qualidade, é que elas estão literalmente jogando a qualidade no lixo.
 

color kid

Supra-sumo
Mensagens
567
Reações
1.716
Pontos
183
Nem é questão de não otimizar. Os programadores que se utilizam de bons processos, em geral, otimizam o software.

Se eu tenho uma suíte de testes unitários/funcionais, consigo mockar um BD de testes e ver se há gargalo ali. Consigo ver se existe como diminuir o tamanho dos meus recursos no front end (pré/pós processadores css) para loading mais rápido das páginas, etc. Se o cara não faz isso ele é fraco nos aspectos técnicos.

Agora, daí a ir escovar bit tem uma diferença gigante. A questão é que REALMENTE tempo de máquina é muito mais barato e o mundo é movido por forças econômicas. Não adianta abandonar meu Java e ir me matar para programar em C se não há necessidade disso. Custo de manutenção do ciclo de vida do projeto é muito superior ao custo de desenvolvimento. Sistemas onde há real necessidade de otimização são otimizados. Pode ter certeza que o software de controle de tráfego aéreo é literalmente o mais eficiente que poderia ser. Seu aplicativo de notas não precisa disso.
 
Ultima Edição:

Macaco Louco

Bam-bam-bam
Mensagens
1.381
Reações
1.054
Pontos
208
Quem escreveu esqueceu que existem diversos detalhes que podem tornar o processo mais rápido ou lento. Por exemplo: ele diz que a atualização de um SO é mais lenta que a instalação. Isso acontece pois em uma atualização não basta reescrever trechos de código, também é necessário validar as alterações verificando se nenhum arquivo foi corrompido. Além disso, o acesso à memória é desestruturado, pois precisa alterar arquivos que podem estar em trilhas/setores distantes, tornando o processo lento, diferente da instalação, que é um processo bem mais linear.

Outro exemplo é do Chrome, que cria novos processos a cada nova aba aberta. O motivo para isso é evitar que uma aba trave todas as outras. No passado um único site podia quebrar o navegador, já hoje quebra somente a aba. Sem contar que isolando uma aba de outra você aumenta a segurança.

Vale lembrar que no passado as aplicações eram mais simples também. Um editor de planilha não fazia tanta coisa. Hoje um editor de planilha é quase um banco de dados. Tudo isso requer código, que requer memória e processamento.


Enviado do meu iPhone usando Tapatalk
 
Topo