Introdução
Esse artigo é apenas para demonstrar uma “distro” Linux que eu venho desenvolvendo faz um bom tempo, que apesar de funcional eu não gerei nenhuma ISO (e não vou fazer isso até acabar a faculdade, que está previsto pro final do mês que vem), meu objetivo com o post é demonstrar como funcionaria um sistema orientado a tarefas epara isso primeiro eu vou definir o que seria a tal orientação a tarefas
Orientação a tarefas x Orientação a aplicativos
Primeiro é válido ressaltar que orientação a tarefas não tem a ver com ser monotarefa ou multitarefa, atualmente todos os sistemas operacionais comerciais são orientados a aplicativos, isso significa que cada tarefa não só é segmentada em diversos aplicativos como você tem um numero virtualmente ilimitado de aplicativos fazendo a mesma coisa, por exemplo, editores de textos, só no mundo Linux:
- Gedit
- Kate
- Kwrite
- Pluma
- Scratch
- Type Writer
- Quilter
- Mousepad
- Xed
- Leafpad
- Featherpad
- …
Nota: Não estou criticando, todos esses são ótimos editores de texto
E isso é especialmente complicado porque as melhorias feitas em um editor terão que ser repassadas manualmente a cada um dos outros, por exemplo:
No elementaryOS existem 3 apps que em algum grau faz sentido serem mesclados a um editor de textos, o QuickWord que é um dicionário, o Translator que é um tradutor e o Comgen que funciona como o figlet
, para mesclar esses apps teria que ser feito um patch pra cada editor acima, ou fazer apps que funcionem enviando a saida no terminal… nada pratico, alguém sempre tem que ceder.
Já em um mundo orientado a tarefas isso simplesmente não existe e tem um motivo controverso: não existe o conceito de “editor de textos” mas sim a tarefa “editar texto”, na pratica é como se existisse apenas um editor e qualquer trabalho de melhoria devesse ser feito nele, tornando assim muito simples adicionar recursos como no caso citado… assim sendo, imagino que tenha ficado simples entender o conceito de Orientação a Tarefas:
Ao invés de gastar seu tempo escolhendo como e com o que fazer a tarefa, gaste seu tempo fazendo ela, já que só tem um jeito de fazer
Mas você pode perguntar, se a Orientação é tão boa, porque não é o padrão?
E a resposta não podia ser mais complexa:
- É algo diametralmente oposto a metáfora do desktop, não da pra fazer um app pra isso, teria que ser feito toda uma plataforma operacional
- A forma mais viável de monetizar seria o modelo freemium dos jogos mobile, (o “app” seria grátis e até opensource os recursos adicionais é que seriam pagos) e isso é relativamente recente
- A concorrência da venda de recursos cresceria em progressão geométrica
- … entre outros
Enfim, é bom para os usuários, bom para desenvolvedores do sistema, mas a nível comercial é bem problemático, explicado essa questão, vamos a apresentação do sistema em si:
A tela inicial
Após fazer login, essa é a tela que o usuário vê assim que liga o PC, na parte superior temos:
Internet, Volume, Bluetooth e Bateria, a barra de ações, data e hora e o botão de desligar (até aqui nada de anormal)
Do lado esquerdo temos as ações mais comuns (Criar e Abrir, você vai entender o motivo de eles estarem aí daqui a pouco) seguido das “pastas” que o usuário mais acessaria e que só aparece se tiverem arquivos nelas (Favoritos, Recentes e Lixeira) e na parte inferior temos o uso de armazenamento
A barra de ação
Essa talvez seja a feature killer do sistema, eu passei um bom tempo desenvolvendo um shell em linguagem natural que eu iriaa usar pra outra coisa, mas vi que serviu como uma luva, é um algoritmo simples, leve, rápido que me permite escrever:
Crie um arquivo de texto chamado Demonstração módulo independente contendo a frase Olá mundo "
E ele executa a tarefa perfeitamente e ainda de modo guiado:
Criando e abrindo arquivos
Essa tela é igual para ambos (Criar e Abrir) uma lista com as opções de workspaces com módulos independentes e workspaces com múltiplos módulos (já vc vai saber o que significa cada coisa):
Nota: tela para listar os arquivos por enquanto é essa, mas futuramente eu vou implementar uma com os recursos apropriados (famoso filemanager)
Workspace (Espaço de trabalho) com um módulo independente
Workspace (Espaço de trabalho) com múltiplos módulos
Tela que permite escolher o módulo a ser adicionado
Tela que permite trocar o módulo aberto
Ela diferencia workspaces com módulos independentes e workspaces com mais de um módulo, mas não gera miniaturas, para evitar distrações visuais, economia de recursos e porque é chato gerar miniaturas no Wayland
Conclusão
Embora a base esteja pronta existe um longo caminho até que que ela seja usável e um caminho ainda maior até uma release pública, ela roda nativamente usando Wayland (compositor Weston) porém todos os prints foram feitos no Xorg (ele funciona de modo seamless nos dois) com o sistema virtualizado no VirtualBox… e foi isso, acho que não ficou faltando nada, a ideia é só mostrar como é o projeto e responder a pergunta de “como funcionaria um sistema que não é voltado para apps e sim pro usuário?”, claro que essa não é a única resposta, tem vários jeitos interessantes de responder ela, esse é a minha… até a próxima
Edit: O que acharam, está suficientemente auto sugestivo? O que mudariam?