
Olá, meu nome é Michael Kapelko. Desenvolvo software profissionalmente há mais de 10 anos. Eu desenvolvo jogos e ferramentas de desenvolvimento de jogos no meu tempo livre.
Este artigo descreve meu primeiro aplicativo durável para PCs de mesa: gerador de site estático PSKOV.
Durabilidade
Um aplicativo durável é um aplicativo que funciona sem uma única alteração nos sistemas operacionais lançados nos anos 2010-2030. Em outras palavras, um aplicativo durável tem compatibilidade com versões anteriores de 10 anos e tem estabilidade para funcionar por 10 anos. Na verdade, o PSKOV é executado mesmo no Windows 2000, portanto, o PSKOV tem compatibilidade com versões anteriores de 19 anos.
Do lado técnico, PSKOV é um único arquivo HTML com layout (HTML), estilos (CSS) e código (JavaScript) compactados. O PSKOV é executado estritamente dentro de um navegador da web sem se conectar a nenhum servidor.
Essa implementação fornece ao PSKOV os seguintes recursos:
- pode ser copiado sem restrições
- pode ser hospedado em qualquer lugar
- pode ser executado localmente
- pode operar sem internet
Não posso garantir estabilidade por 10 anos, porque não posso controlar o futuro. No entanto, o histórico da evolução de HTML, CSS e JavaScript nos diz que essas tecnologias são desenvolvidas com a máxima compatibilidade com versões anteriores. Primeiro, os novos recursos JavaScript deixam os mais antigos ainda funcionando. Segundo, os desenvolvedores de navegadores estão interessados em fazer com que seus navegadores funcionem com o maior número possível de sites. Por exemplo, a tag <center> , que foi declarada obsoleta em 2014, ainda funciona conforme o esperado 5 anos desde, em 2019.
Ao mesmo tempo, cada aplicativo de navegador da Web possui uma restrição séria chamada sandbox, um nome enganoso para uma gaiola. A gaiola impede o acesso ao sistema de arquivos local dos usuários e a quase qualquer recurso da Internet sem a permissão explícita do proprietário (CORS). Como resultado, o aplicativo só pode se comunicar com os usuários por meio de um servidor distinto ou oferecendo arquivos para download manualmente. Fazer o download de arquivos um por um ou como um arquivo é inconveniente, é por isso que hoje em dia a abordagem orientada a servidor reina no mundo. Vou abordar os problemas dessa abordagem em um momento.
Para liberar o PSKOV da gaiola, foi criado o LFSA , um pequeno script Python que precisa ser executado manualmente enquanto o PSKOV está em execução. O LFSA permite que o PSKOV acesse o sistema de arquivos local do usuário. O Python foi selecionado porque o Linux e o macOS têm o Python instalado por padrão, e os usuários podem instalar facilmente o Python no Windows (até o Windows 2000).
Histórico
PSKOV foi usado com sucesso para criar os seguintes sites pequenos:
Agora vamos ver por que o PSKOV foi criado como um aplicativo durável para navegadores da web.
Razão # 1: coletar e manter o conhecimento de forma acessível
Eu venho criando ferramentas convenientes de desenvolvimento de jogos há vários anos. Até o momento, o conhecimento coletado era representado por aplicativos nativos para PCs de mesa, artigos educacionais para tecnologias relacionadas e vídeos de demonstração . Tais formas do conhecimento coletado estão basicamente mortas:
- poucos baixariam um aplicativo desconhecido
- poucos assistem a alguns vídeos
- menos ainda leria alguns artigos
De muitas maneiras, essa morte se deve à inacessibilidade: é preciso fazer um esforço desconhecido para alcançar um resultado desconhecido. Dificilmente alguém teria interesse nisso. Um aplicativo de navegador da Web, potencialmente acessível em qualquer lugar, é um negócio totalmente diferente: você só precisa fazer um esforço conhecido, clicar em um link para obter um resultado desconhecido. A história da condução de revoluções no Twitter prova que quase qualquer um pode abrir um link e "gostar" da mudança de um "regime sangrento".
Razão # 2: regra pelas pessoas
Atualmente, qualquer atividade na Internet é realizada por meio de serviços que quase sempre pertencem a alguma empresa: mensagens , mapas , pesquisa , música , código fonte etc. Essa usurpação de energia leva ao desligamento de serviços que suas empresas proprietárias consideram não rentáveis. Eles geralmente fazem isso sem nenhum consentimento dos usuários que trouxeram vida a esses serviços em primeiro lugar.
Outras vezes, as empresas simplesmente impedem que navegadores concorrentes acessem seus serviços, como foi recentemente o caso da versão web do Skype . Felizmente, existem pessoas que não concordam com essa política. Graças a eles, as ferramentas de desbloqueio aparecem.
Quanto a mim, considero essa maneira de lidar com as coisas como inadequada. No entanto, os negócios selvagens não são os únicos culpados aqui; usuários comuns, todos nós também somos culpados. Você pode argumentar que os usuários não têm escolha, que alguém (governo, alienígenas, sublinhe o que você gosta) tornou esse mundo injusto. Algumas pessoas até culpam o governo / estrangeiros diretamente e acreditam que sem eles a vida seria incrível. No entanto, a história humana nos conta uma história diferente : " o estado não é uma horda inimiga que ocupou a sociedade, mas aquilo que cresce e espelha a sociedade ".
Como parte do povo, decidi começar por mim mesmo e usar meu poder para o melhor: criar aplicativos de que preciso para torná-los utilizáveis e acessíveis a todos em qualquer lugar. PSKOV é a primeira tentativa, que já superou minhas expectativas. Claro, o PSKOV tem limitações como LFSA e HTTP não criptografado; há muito o que fazer para aumentar a acessibilidade do PSKOV, no entanto, estou pronto para ousar alguém: a versão atual do PSKOV continuará funcionando por 10 anos, sem manutenção.
É isso que descreve o meu primeiro aplicativo durável para PCs de mesa: gerador de site estático PSKOV.