chore: archive

This commit is contained in:
Marcius 2024-06-26 21:17:45 +01:00
parent 91cf97e449
commit 7bbf598f7f
3 changed files with 2 additions and 34 deletions

View file

@ -1,29 +0,0 @@
<! local article = opt.articles["os-problemas-da-industria-de-engenharia-de-software"] !>
<% opt.doctype %>
<html>
<head>
<title><% article.title %></title>
<% opt.header_links %>
</head>
<body>
<% opt.menu %>
<div class="header">
<h1><% article.title %></h1>
<h2><b><% article.date %></b></h2>
</div>
<div class="content">
<p>Alguns dias atrás fiz um artigo sobre <a href="https://coding-agent.me/how-to-build-a-blog-the-hard-way.html">"como fazer um site do jeito difícil"</a> onde eu explico como uso confgen para gerar o site estaticamente o que tem uma lógica parecida com SSG mesmo sendo um template generator o que levou a um debate com um amigo sobre o porque de fazer algo tão simples de um jeito difícil. Eu acho que a melhor forma de aprender é pesquisar e experimentar soluções criativas e complexas para problemas, o que a wikipedia chama de <a href="https://pt.m.wikipedia.org/wiki/Engenheiro">engenheiro</a>.</p>
<p>Isso me fez pensar sobre a quantidade de programadores que conheço que denominam-se "<b>Engenheiros</b>" mesmo sendo completamente contra experimentar soluções que sejam complexas ou prolongadas e esta é a razão para este artigo.</a>
<h2>Soluções fáceis</h2>
<p>"Escolher ferramentas lentas e não confiáveis torna-te um programador lento e pouco confiável, com um conjunto de habilidades limitado e que se deprecia rapidamente", disse Loris Cro, Vice-presidente da Fundação de software Zig. Vemos o uso de Javascript e Python aumentar cada vez mais em casos não adquados para a tarefa exatamente por programadores escolherem ferramentas fáceis e abstratas.</p>
<p><a href="https://www.electronjs.org/">Electron</a> torna possível construir aplicações desktop com Javascript mas para isso tem de conter o Chromium browser e o runtime Node.js para cada aplicação(sim, cada aplicação), o que é uma enorme redundância e uso de recursos de dispositivos. Aplicações como Discord, Vscode, Skype, Teams são construídas com electron e tem um tempo de arranque ridículo, um uso de memoria colossal, uso de bateria desnecessária, entre outros problemas, mesmo existindo várias soluções mais eficientes para construir aplicações desktop como <a href="https://www.gtk.org/">GTK</a>, <a href="https://www.qt.io/">QT</a> e a ferramenta mais interessante para mim neste momento <a href="https://github.com/zenolith-ui/zenolith">Zenolith</a>(ainda em desenvolvimento).</p>
<h2>Universidades</h2>
<p>Joel Spolsky, co-fundador e former CEO do Stack Overflow, uma vez disse "Como alguém pode aprender alguma coisa se o currículo foi cuidadosamente projectado para tornar tudo mais fácil do que já é" onde ele refere-se ao facto que muitas universidades trocaram o currículo de ensino na linguagem de programação C para Java e hoje em dia até Javascript e Python são usados para tornar ainda mais fácil o ensino.</p>
<p>Spolsky criticou recrutadores que contratam programadores com ferramentas que lêem automaticamente múltiplos currículos a procura de palavras-chave como Java, Licenciatura, Mestrado, Full-Stack... e disse "Eu nunca conheci ninguém que possa fazer Scheme, Haskell e C pointers que não conseguem captar Java em dois dias e criar melhor código Java do que pessoas com cinco anos de experiência em Java". Recrutamento nesta industria sempre foi e sempre será dos piores problemas desta industria e há tantos factos sobre isso que nem preciso de mencionar aqui por até ser conhecimento comum. O importante mencionar é que universidades fazem curriculos que sejam o que recrutadores querem até porque a taxa de empregabilidade é vital para a reputação de universidades mas só por um aluno ser empregavel não significa que será um engenheiro e muito menos fará alguma idea do que é fazer software de forma concreta e sim de forma abstrata.</p>
<p>Spolsky também mencionou que <b>40%</b> and <b>70%</b> era a percentagem de desistências em ciências da computação o que reduziu bastante com o novo sistema de ensino o que faz universidades lucrarem mais ainda com o ensino de software e "pintam" engenharia de software como uma área fácil e acessivel a qualquer pessoa. Imaginem que engenharia nuclear fosse também modificada para diminuir a quantidade de desistências o quão perigoso seria o mundo, na minha opinião, engenharia de software deveria ser vista do mesmo jeito. Todo engenheiro deve ao menos saber a um nível conceptual o que é e como funciona o sistema por traz das ferramentas que usa.</p>
<h2>Big tech</h2>
<p>Google, IBM, Facebook(Meta), Amazon, Apple, Intel, Microsoft, entre outras, fazem programas de estágios de verão onde muitas vezes não pagos ou mal pagos, estagiários são dados projetos mais difíceis que custariam muito mais caro a essas empresas. </p>
<p>"Os jogadores estabelecidos não querem jogar limpo" referiu Andrew Kelley, Presidente da Fundação de software Zig(<a href="https://ziglang.org/zsf/">ZFS</a>), sobre como empresas de tecnologia podem fazer os seus próprios produtos especiais e ignorar quaisquer padrões que dessem a chance de produção à menores empresas, ou melhor, concorrência desleal como foi o caso da Apple que com os seus cabos de dispositivos o que levou a UE forçar o standard da usb-c, mais sobre isso neste <a href="https://tecnoblog.net/noticias/europa-aprova-lei-que-torna-usb-c-padrao-em-celulares-ate-em-iphones/">artigo</a>.</p>
<p>Existem também casos comuns de empresas começarem os seus projetos de <a href="https://pt.wikipedia.org/wiki/C%C3%B3digo_aberto">código aberto</a> mas passam a ser pagos e/ou código fechado como caso de Heroku, Terraform, Redis, Elasticsearch, etc. Maior parte do software criados hoje em dia começa como o código-aberto e é desenvolvido por mão de obra gratis e muitas vezes por programadores que não têm a oportunidade conseguir carreiras na area de software por não terem o sucesso académico que torna-se cada vez mais caro de conseguir.</p>
<p>Este foi apenas um discurso retórico que muitos podem não concordar, mas na minha opinião são apenas alguns dos problemas desta industria que cada vez mais afasta-se de justa, transparente e de valorizar talento.</p>
</body>

View file

@ -1,5 +0,0 @@
return {
title = "Os problemas da industria de engenharia de software",
lang = "pt",
date = "01-06-2024",
}

View file

@ -29,5 +29,7 @@
</a>
<! end !>
</div>
<div class="projects">
</div>
</body>
</html>