Sistemas operacionais orientados a tarefas... porque não são o padrão?

Introdução

Primeiro eu acho importante separar “Orientação a aplicativos” de “Orientação a tarefas”:

Orientação a aplicativos

Num sistema orientado a apps, geralmente pra você fazer uma tarefa você precisa de 3 passos:

  1. Abrir o menu de apps
  2. Localizar o app
  3. Abrir o aplicativo
  4. Escolher a opção que vai te permitir fazer a tarefa
  5. Fazer a tarefa
  6. Salvar seu trabalho

Um app em um sistema assim até pode já abrir na tela da tarefa e salvar o seu trabalho mas dificilmente o fará em todos os principais casos, um exemplo básico, você teve uma ideia e precisa anotar ela antes que você esqueça:

  1. Você abre o menu de apps

  2. Você localiza o app de anotações

  1. Você abre o app

  1. Escolhe a opção que vai te permitir fazer a anotação

Screenshot_5

  1. Só então faz sua anotação

O que pode ser tarde demais em alguns casos…

Um app, até pode antever uma ação do usuário mas ele sempre irá ter uma ação que levará aos passos acima

Orientação a tarefas

Em um sistema orientado a tarefas, você digitaria algo como:

Fazer uma anotação

App já iniciaria nessa tela:

Ótimo não acha? Mas nem só isso, você já poderia predizer exatamente o que é pra ser anotado e o título, bastaria digitar (ou falar) algo como:

Anote “Mobilize um túneo quânticoc om fator FTL de 36,7” com o título “Como viajar mais rápido que a velocidade da luz”

E a nota seria criada automaticamente e você nem abriria o app diretamente


Desenvolvimento

Existem duas formas de fazer as coisas assim, os assistentes pessoais e o terminal, só que os dois tem limitações muito impeditivas:

O terminal…

É absurdamente literal, você precisa invocar o app, precisa seguir a ordem (ou usar flags) um comando no terminal seria parecido com:

app-de-notas --título="Como viajar mais rápido que a velocidade da luz" \ 
             --texto="Mobilize um túneo quânticoc om fator FTL de 36,7"

Os assistentes pessoais…

Por outro lado temos os assistentes pessoais, eles não são literais, eu posso usar o exemplo anterior de forma natural, mas eles só realizam tarefas básicas além de não ter uma integração a um nível tão alto com o sistema

A nível HIG…

Não seria tão complicado implementar, pelo menos no Linux porque a estrutura já existe, talvez o mais difícil em termos de código seria implementar o reconhecimento de inguagem natural, mas mesmo implementando o processsamento de linguagem natural, isso iria precisar de uma rebase completa em apps, o bijiben por exemplo não possui uma flag --new então é inviável já começar com uma anotação… o que poderia acontecer é surgir uma nova distro que se focaria nisso, obviamente essa distro seria pra quebrar paradigmas e dificilmente a curto prazo seria um competidor no mercado… mas é óbvio que isso naõ se aplica a apenas anotações, mas sim qualquer tarefa simples e específica, como fazer um gráfico, uma lista, ajustar o contraste de uma imagem…

Mas porque é tão importante?

Existem pessoas que simplesmente ficam perdidas num mundo orientado a apps, mesmo ajustando os sistemas operancionais pra que a quantidade de informações absorvidas seja menor essas pessoas podem não conseguir, mas você pode perguntar:

Ok, minha atenção é ótima porque eu preciso disso?

Simples, se um mecanismo ajuda pessoas com dificuldade em manter o foco, melhorando a produtividade delas, imagina o boost que esse workflow pode fazer em quem não tem problemas de atenção e foco?

Conclusão

Na minha opinião é algo válido, é uma pena (eu entendo os motivos técnicos) que não tenha se tornado o padrão, mas eu realmente gostaria de ver isso acontecer… o dedo coça pra começar a programar uma distro coça mas eu não acho que ficaria muito sem surtar com os possíveis ataques, mas e aí o que vcs acham?

8 Curtidas

Não sei se entendi corretamente sua proposta.

Uma vez, uma distro abriu um aplicativo de anotações ─ não se cliquei onde não devia, ou se usei um atalho que não convinha ─ e eu não queria anotar nada, naquele momento… Resultado: perdi vários minutos até descobrir como fechar aquele app, totalmente desconhecido para mim.

Esse talvez seja um motivo para as distros não tentarem adivinhar o que o usuário quer ─ afinal, existem milhões de usuários, querendo coisas diferentes.

Falando por mim, eu de certo modo me organizei para as tarefas mais frequentes. Por exemplo, criei uma “sessão” do Kate, que já abre com meia-dúzia de arquivos ─ Distro, Códigos, Conky1, Conky2, Diversos etc. ─ de modo que basta maximizar o Kate e anotar, cada coisa no arquivo próprio; ou fazer alguma alteração no Conky, e assim por diante.

Para outros textos, configurei abrir pelo KWrite, para não bagunçar o Kate com coisas demais. Basta um clique.

O Dolphin pode já abrir com várias abas, mostrando várias pastas de uso mais frequente ─ por exemplo, as que estou usando ao longo de uma semana, para determinado trabalho. ─ Em geral, basta abrir numa partição onde organizo tudo em poucas pastas (e mil subpastas, numa hierarquia sempre reorganizada). Para trabalhos mais específicos, tenho outras partições, também organizadas do mesmo modo. Encontro as coisas com facilidade.

Para arquivos de imagem, clico e abro no Gwenview, que configurei para fechar com Esc. Clique com botão direito do mouse já oferece Gimp como 2ª opção. O Gimp lembra as pastas onde salvei arquivos recentemente, e se eu trabalho com um assunto durante a semana inteira, isso facilita salvar tudo no mesmo lugar.

Abro o LibreOffice Calc já com a planilha mais usada, e ele “lembra” outras planilhas usadas recentemente.

O Menu lembra os Aplicativos Recentes, e os Documentos Recentes, o que também agiliza muitas coisas.

Tudo isso, no KDE, que adotei desde 2007 e acho muito prático, além de muito configurável.

O Dolphin, o Kate, o Chromium, cada um abre sempre no mesmo lugar, com o mesmo tamanho e formato de janela.

Faço dualboot de várias distros, ─ todas com KDE ─ e essa “organização” tem funcionado tão bem, que às vezes mal me dou conta de qual distro estou usando no momento.

Por exemplo, o Kate abre o arquivo “Distro” de cada distro, os arquivos Conky de cada diistro ─ mas o arquivo de Conexão (velocidade, IPv6 etc.) é comum a todas ─ e o arquivo de anotações do Grub só abre em 3 distros, pois as demais não se metem nesse assunto.

Mas o KDE oferece muito mais do que eu uso.

Além de várias “Áreas de trabalho”, o KDE tem outro recurso chamado “Atividades” ─ você pode criar uma atividade “Trabalho”, outra “Jogos”, e passar rapidamente de uma para outra, e tudo nelas se mantém de um dia para outro, enquanto você quiser. ─ Tentei usar há uns 4 anos, mas acabei optando por me organizar de modo mais simples e flexível, pois cada semana é uma semana. Não dá para engessar demais.

Meu caso é só 1 caso ─ e duvido que sirva para mais alguém ─ por isso acho difícil e inglório, tentar criar esquemas para tentar atender uma infinidade de casos individuais, únicos.

Nunca mexi com WM (gerenciadores de janelas), mas todo dia vemos exemplos de colegas que organizam seu próprio modo de manter o foco e aumentar a produtividade.

Talvez os desenvolvedores tenham concluído que o melhor é oferecer todos esses recursos e muitos mais ─ assim, cada um organiza como quiser.

1 Curtida

Isso é exatamente o oposto do que eu propuz, a ideia não é prever o que o usuário quer, mas permitir ao usuário dizer o que ele quer


Por exemplo, ao invés de abrir 6 arquivos com o Kate, você faria:

Abra o arquivo X

Assim você teria 0 bagunça e não precisaria procurar o arquivo

Eu também uso KDE (Embora tenha “passeado” pelo “Material Shell”) e foi justamente o atividades que me fizeram pensar sobre isso, só que aplicado a tarefas mesmos, ao invés de abrir um app, eu abriria uma área específica do app

1 Curtida

Isaac Asimov imaginou algo assim. ─ O usuário colocava as mãos em uma área (sem teclado) e, através do contato neural, o computador leria seu desejo.

Caso contrário, seria necessário indexar absolutamente tudo, para o computador adivinhar onde está o Arquivo X.

A primeira coisa que eu faço, ao instalar uma distro com KDE, é desabilitar a indexação.

Afora as 2 opções acima, basta dizer:

Abra o /PATH/Arquivo X

1 Curtida

Não sei se entendi muito bem.

Mas enfim, como eu tbm me distraio muito, comecei a pensar na possibilidade de um sistema mais fluido, pois, toda vez que eu preciso executar uma tarefa, ou ela demanda muitos passos ou quase sempre é necessário mais de um app para realizar o que é preciso e eu entro no meu ciclo distração x procrastinação.

Então comecei a pesquisar a respeito e acabei encontrado um projeto chamado Mercury OS. Não é um sistema de verdade, mas sim um conceito. Acho que tem um pouco a ver com o as suas ideias. É um “sistema” que não tem pastas, nem aplicativos. Achei bem interessante.

7 Curtidas

Muito interessante esse Mercury OS, enquanto eu lia eu acabei me empolgando e fui construindo um mockup funcional no Qt Creator de uma interface transicional entre o modelo atual e o Mercury, ficou assim, acho que pra menos de uma tarde de trabalho não ficou tão ruim:

Você digita o que quer:

E o Sistema retorna a interface, o melhor é que eu fiz a interface do “app” em lua, assim fazer mais é teoricamente fácil já que é desacoplado da interface

10 Curtidas

Se ficar funcional, coloca pra rolo!

1 Curtida

Eu abordei parte desta temática neste vídeo:


Realmente é difícil imaginar coisas que não temos muitas referências, mas tecnicamente falando seria melhor algo focado em atividade de fato.
Provavelmente o maior problema para qualquer tentativa de transição neste sentido, é que um sistema assim vai contra todo o modelo de desenvolvimento de mercado atual, que é todo focado em “Apps” (sejam locais ou em nuvem)
5 Curtidas

Falando por cima, pelo menos com o que eu li, vejo que um sistema operacional com orientação direta a fazer tarefas é realmente superior a um sistema operacional focado em apps. Mas acho que uma transição para este tipo de sistema operacional teria de ser algo bem lento, e gradual, respeitando o atual meio de se fazer um sistema operacional.

1 Curtida

Mas fazendo algumas perguntas, por exemplo, já existe algum sistema operacional do tipo? Sem conceitos, um sistema operacional mesmo.

1 Curtida

Acredito que migrar todos os aplicativos que temos hoje no meio atual de fazer sistemas operacionais para esse novo meio seria algo inviavel… Então teriamos uma mistureba entre softwares que são focados, e que não são focados nesse novo meio de sistemas operacionais, mas é certo que isso se resolveria com o tempo, então…

1 Curtida

Ainda tenho uma dúvida, porque sistemas operacionais focados em apps são o padrão?
O que levou os desenvolvedores a optarem em massa por esse tipo de sistema operacional? Falta de estrutura? Complexidade? Tempo? Compatibilidade? Comodidade do usuário final?

1 Curtida

Infelizmente não

Sim, por isso eu penso que seria necessário uma quarta plataforma e uma camada de compatibilidade pra rodar ao menos nas distros convencionais

Quando a Apple popularizou a idéia era porque o custo computacional era baixo e tornava os sistemas expansíveis além de poderem trazer uma abstração com a realidade

Imagino que com devs vc quer dizer devs de software que rodam no sistema, isso é determinado pelo HIG do sistema operacional e eu acho que uma mistura de tempo e complexidade (no sentido de época), apesar de hoje ser relativamente simples na época era bem complicado especialmente por limitação de hardware, na época que a metafora foi criada se tinha pouca RAM e CPU, processar em linguagem natural o input do usuário numa época que tinha um delay enorme entre apertar uma tecla e aparecer na tela… imagino que como começou assim, o mundo só deixou levar… aí hoje mesmo com os meios a gente esbarra com os pontos que você citou

2 Curtidas

Acho que o conceito de sistemas operacionais focados em tarefas é algo que tem um enorme potencial, principalmente na questão produtividade. Bom vendo como as empresas de tecnologia de hoje em dia estão explorando novos territórios, talvez alguma delas possa investir em alguma distro linux/bsd ou até um novo sistema operacional com esse foco.

1 Curtida

Tópico fechado a pedido do autor. :v: