Site menu Alimentando a [Bb]esta
e-mail icon
Site menu

Alimentando a [Bb]esta

e-mail icon

2015.10.02

Este artigo expressa a opinião do autor na época da sua redação. Não há qualquer garantia de exatidão, ineditismo ou atualidade nos conteúdos. É proibida a cópia na íntegra. A citação de trechos é permitida mediante referência ao autor e este sítio de origem.

Há um tempo atrás falei sobre renda discricionária, ou melhor, como ela está sendo erodida por bugigangas eletrônicas rapidamente obsoletadas, cápsulas de Nespresso, modelo FaaS e gourmetização.

Como trabalho justamente na área de informática, meus sentimentos são ambivalentes.

Por um lado, sou beneficiário do estado de coisas. De quebra a nossa profissão está valorizada, porque nossos esforços agora aproveitam a todo mundo o tempo todo, no trabalho e no lazer. Quando comecei, a face mais visível do meu trabalho era fazer a impressora acertar os campos de uma nota fiscal. Um terceiro benefício é surfar esta onda de consumismo de forma subsidiada, já que os aparelhos "da moda" são justamente as nossas ferramentas de trabalho.

Por outro lado, há este sentimento incômodo de estar alimentando a besta, sem saber exatamente se é "uma besta" ou "A Besta".

Os problemas para o consumidor são largamente conhecidos. Trocar de iPhone a cada dois anos custa mais que a depreciação de um carro popular. Do lado de cá da mesa, a vida do desenvolvedor também não é um mar-de-rosas, porque a tecnologia é um alvo em movimento acelerado. Mas ainda é bem mais divertido assim do que imprimir notas fiscais...

Um aspecto razoavelmente incômodo da vida de desenvolvedor mobile — que é onde o movimento e o dinheiro estão hoje — é a obsolescência de software. Não apenas o hardware vai para o lixo; o software também precisa de atenção constante. Em parte por razões legítimas, como furos de segurança.

Costumava ser um folclore da nossa profissão, dizer que software "enferruja": um programa não utilizado por vários meses tende a quebrar e demanda conserto. É óbvio que software não enferruja, o que acontece é que o uso sob condições diferentes tende a revelar bugs novos. Um programa desenvolvido e testado num ano bissexto pode muito bem quebrar num ano não-bissexto, por exemplo.

Porém, hoje em dia, software enferruja mesmo, a olhos vistos. A cada poucos meses aparece uma atualização major de Android e iOS. Cada uma delas causa algum problema a uma parcela dos respectivos aplicativos. Muita gente deve achar que é só jogar o aplicativo na loja e colher os lucros eternamente à beira da praia. Se deixar o aplicativo largado por um tempo realmente longo, tipo 18 meses, ele nem vai mais compilar.

(Ao contrário do que os proponentes do Partido Pirata dizem, o estereótipo da propriedade intelectual que custa 1 dia de trabalho e rende 100 anos de royalties é a exceção da exceção. Quase toda produção intelectual, literária ou artística depende de algum tipo de manutenção para continuar vendendo — mas certamente bem menos que aplicativos mobile!)

Outra coisa que dá manutenção é um site Web. É, eu sei que esses dias um Mac de 1998 conseguiu abrir um site moderno com relativo sucesso, mas qualquer página não-trivial também pede manutenção constante para continuar a ser legível.

A última grande mexida no meu próprio site nem deve ter sido notada: adaptação ao mundo mobile. HTML e CSS3 fazem boa parte do trabalho mas o PHP ainda quebra um galho enorme na hora de preencher as lacunas. O que mais deu trabalho foi livrar-se das tabelas grandes. Aliás, quanto menos os leitores notaram, melhor, porque nada é mais irritante do que um site excessivamente "mobilizado" a ponto de ficar emburrecido. (E a cereja em cima do bolo de um site mobile malfeito é aquele diálogo em que o botão Fechar está fora da área visível da tela :)

Minha motivação não foi 100% nobre; eu ganho uns trocados com AdSense, e o AdSense "pune" sites que não estão conformes; e conformidade em 2015 é ser legível numa tela de celular. Enfim, faz parte do jogo e é um incentivo para manter-me minimamente proficiente em HTML/CSS... o ponto é que a simples mantença de um site, de cujo 98% das páginas servem exclusivamente a quem lê (2% referem-se a meus apps pagos) custa um monte de tempo e até algum dinheiro. Os xiitas do AdBlock deveriam pensar nisto.

Entre Android 6, iOS 9, Node.JS, Swift, site, etc. os dias andam bem ocupados. A pilha de livros que o LVR me mandou para ler e resenhar tem sido forçada a esperar quetinha dentro do armário.

Enfim, vão longe os dias em que você fazia um programa para MS-DOS ou Windows, e podia vendê-lo ou utilizá-lo por dez anos sem acrescentar um bit. Como já disse antes, tudo tem dois lados. Certamente a obsessão WinTel por compatibilidade retroativa e monocultura prejudicou desenvolvedores e usuários, e isso durou quase 30 anos, então o novo estado de coisas merece ao menos uma ou duas décadas de crédito.

Para o consumidor, a pior coisa que pode acontecer é investir num ecossistema que vai à breca, como parece que vai o Windows Phone. Aliás, deixei de oferecer meus apps para WP e Firefox OS, por absoluta falta de público. Para o desenvolvedor, acontece coisa análoga: também é terrível apostar no cavalo errado mas o custo do erro é bem mais que um celular relegado à gaveta. Perde-se todo o tempo empenhado em aprender a plataforma, e não raro o desenvolvedor apaixona-se pela ferramenta e escolhe afundar junto com ela.

Um outro sintoma da aceleração do alvo móvel (pun intended) é a profusão de novas linguagens de programação. Assim como petralhas × coxinhas, cada facção parece estar escolhendo falar um dialeto próprio. Foi a minha primeira impressão do Swift, a linguagem da Apple: sem dúvida tem sintaxe menos verbosa que Objective-C, mas é feita sob medida para o seu ecossistema. Nem mais, nem menos. Inovação pra valer, não vi. Tudo que realmente distingue das demais linguagens (ARC, protocolos, patching de classes, etc.) já havia no Objective-C. A linguagem que vale a pena é aquela que muda sua forma de pensar (Alan Perlis).

Nada contra novas linguagens; apesar do temperamento reacionário, já enjoei faz tempo da monocultura C/C++/Java (algus incluiriam Javascript na lista maldita). O difícil é saber em que cavalo apostar. Swift? Go? Rust? Dart? Node.js? Por trás de cada uma, há uma organização com sua própria agenda.

Sob este prisma, Rust é a tecnologia menos suspeita, pelo menos numa primeira aproximação, porque vem da Mozilla Foundation. Mas boa intenção não é tudo. Enquanto o Firefox OS deu uma de Lisa Simpson, abrindo app store na Venezuela e mirando em celulares de 25 dólares para os míticos pobres africanos, o Android abocanhou o mercado e os africanos foram cuidar da vida e estão à frente do resto do mundo em microcrédito e pagamentos baseados em celular.

A informática tem um quê de Velho Oeste, assim como tem algumas semelhanças com a alvorada da aeronáutica. Do Velho Oeste herdamos a figura do cowboy justiceiro (jovem, solteiro e do sexo masculino) e o charlatão itinerante que vende panacéias. A parte realmente chata desta profissão é distinguir entre panacéias e tecnologias realmente inovadoras.

Às vezes a gente acerta na mosca; meu jackpot foi ter passado ao largo do desenvolvimento para Windows 16 bits. Usei muito o Windows 3.1, então é claro que algum pobre-diabo teve de fazer software para ele, mas antes ele do que eu :) Um contato prévio com Unix mostrou que Win16 não era algo razoável.

Ainda falando dos bons tempos, início dos anos 1990, a "bullshitagem" mais comum girava em torno dos bancos de dados e suas gloriosas "linguagens de quarta geração". A epítome era usar Oracle em sistema de lojinha de shopping (banco e sistema rodando no mesmo PC!). Quando eu falei prum cara em 2003 que MySQL seria perfeitamente adequado ao sistema dele, a reação foi um misto de surpresa e incrudelidade.

Voltando ao Rust, ainda preciso implementar alguma coisa nele para "molhar os pés" mas entrevejo a inovação do tratamento seguro de ponteiros, auditado na compilação. (C++ bem utilizado também é seguro, mas não existe um flag de compilação para vedar ou segregar a parte insegura da linguagem.)

Também entrevejo as inovações do Go, e as motivações delas são claras para quem desenvolve serviços de rede — o que vale dizer que a agenda do Google para seu filhote não é algo oculto e maquiavélico. (Compare isto com a desconfiança e teorias de conspiração que sempre pairaram sobre C# e .NET.)

A médio prazo, espere dois posts curtos sobre Go e Ruby, os dois cavalinhos em que vou apostar um pet project (já tenho algo em mente, mas aceito sugestões, de repente alguém sugere algo melhor).

e-mail icon