O início da era da linha de comando (1999)
(web.stanford.edu)- Sistemas operacionais já pareceram código imaterial difícil de vender, mas, depois de Microsoft e Apple, viraram produtos pelos quais o público paga e escolhe, além de parte da identidade cultural
- A GUI aumentou a acessibilidade dos computadores ao envolver bytes e arquivos em metáforas como desktop, documentos e lixeira, mas, quando a metáfora esconde o funcionamento real, erros e perda de dados ficam mais opacos
- Windows e MacOS criaram um mercado gigantesco, mas sistemas operacionais fechados e monopólio de hardware contrastam com o crescimento do Unix de código aberto e do ecossistema de PCs baratos
- Linux expõe o interior do sistema com linha de comando, código-fonte aberto, banco de dados público de bugs e arquivos de configuração em ASCII, mas esse poder deixa no usuário comum uma fadiga geek (Geek fatigue)
- O BeOS ofereceu um meio-termo ao fornecer uma nova GUI junto com um terminal baseado em POSIX, mas, no mercado de sistemas operacionais, tanto quanto a tecnologia, mindshare e ecossistema de drivers determinam a sobrevivência
Como os sistemas operacionais viraram produto de massa
- Jobs e Wozniak criaram a Apple com a ideia de vender máquinas domésticas de processamento de informação, e Gates e Allen transformaram em negócio uma ideia ainda mais estranha: vender sistemas operacionais
- Um sistema operacional é uma longa sequência de 1s e 0s quase sem existência física, mas a Microsoft se tornou uma empresa que o vende em massa como a Gillette vende lâminas de barbear
- Novas versões de sistemas operacionais eram lançadas como blockbusters de cinema, e até usuários comuns passaram a entender a diferença de que softwares para Macintosh não rodavam no Windows
- O problema do monopólio de sistemas operacionais da Microsoft virou alvo de medidas antitruste do Departamento de Justiça dos EUA, e o debate PC-versus-Mac se tornou uma questão cultural a ponto de aparecer até em relações pessoais
- Na metáfora dos carros, a Microsoft aparece como uma empresa que vende desde a bicicleta chamada MS-DOS até a enorme station wagon Windows 95 e o veículo off-road Windows NT, enquanto a Apple é retratada como uma empresa que vende sedãs caros com o interior lacrado
- O BeOS seria um Batmóvel tecnologicamente avançado, e o Linux fica mais perto de um tanque distribuído de graça por voluntários
- 90% dos clientes vão à loja da Microsoft, e quase todo o restante escolhe a Apple
- O Linux gratuito é poderoso, mas as pessoas hesitam porque “não sabem fazer a manutenção de um tanque”
O custo das metáforas criadas pela linha de comando e pela GUI
- No início, usar um computador era um procedimento formal que passava por teletype, fita de papel, modem e mainframe, e a divisão de papéis era clara: humanos interpretavam significado, computadores faziam aritmética sobre bits
- A interface de linha de comando (Command Line Interface) nasceu do modo teletype de digitar uma linha e receber uma resposta, e só ganhou um nome próprio depois que a GUI apareceu
- O Macintosh popularizou a GUI em 1984 e, ao ser projetado para operar apenas com o mouse e sem linha de comando, mostrou a intenção de empurrar a CLI para a história
- A GUI usa metáforas como arquivos, documentos, janelas, desktop e lixeira para explicar estruturas de dados abstratas
- Um arquivo HTML, diferente do resultado visual de uma página web, se parece mais com um telegrama de texto que o navegador interpreta
- O navegador é comparado ao papel de Ronald Reagan narrando um jogo de beisebol a partir do conteúdo do telegrama
- As metáforas da GUI são convenientes, mas incompletas
- “document” no mundo real significa um registro fixo, mas um documento no computador pode mudar de estado antes e depois de ser salvo
- “save” é mais próximo da ação de apagar a versão anterior e substituí-la por uma nova versão com o conteúdo da janela atual
- Quando um documento desaparece por falha ou queda de energia, o usuário sofre o metaphor shear causado pelo descompasso entre a metáfora e o funcionamento real
Microsoft, Apple e a lógica econômica do open source
- A Microsoft é lida como uma empresa que lança produtos para maximizar o retorno aos acionistas, mais do que para alcançar acabamento estético ou integridade
- Mesmo que o Windows não seja bonito ou tenha falhas, a decisão faz sentido do ponto de vista da gestão se gerar mais lucro
- A hostilidade contra a Microsoft aparece como uma mistura de ressentimento por ela ser “poderosa demais” e desprezo por ela ser “cafona”
- A Apple manteve uma estratégia de monopólio de hardware e, como controlava o hardware em que o MacOS rodava, acabou com preços altos e estrutura lacrada
- Essa política pode elevar a qualidade da integração entre hardware, sistema operacional e software
- Ao mesmo tempo, também opera por uma razão financeira: a Apple depende da receita de hardware
- O Macintosh era uma máquina difícil para hackers abrirem e mexerem por dentro
- A essência de um sistema operacional está mais próxima de uma biblioteca de código usado com frequência, e sistemas operacionais fechados entram em conflito com o próprio propósito de um sistema operacional
- Como a interface e o funcionamento do OS precisam ser públicos para que programadores possam utilizá-los, mesmo que a implementação seja secreta, código com o mesmo comportamento pode ser reescrito
- O ProDOS reimplementou funções semelhantes às do MS-DOS
- No Linux, o WINE recria um ambiente para executar programas do Windows
- O Unix foi implementado separadamente por várias empresas, como Sun, Hewlett-Packard, AT&T, Silicon Graphics e IBM
- A tecnologia de sistemas operacionais tende a se tornar gratuita com o tempo, e o negócio de OS da Microsoft serviu de base para expandir o negócio de aplicativos e a organização de pesquisa, mas no longo prazo passa a ser tratado como algo que precisa ser separado
- Se a Microsoft acopla novas tecnologias, como o navegador, ao sistema operacional para defender sua participação no mercado de OS, então, quando essa participação balança, outros negócios também podem ser arrastados junto
A cultura de sistema mostrada por Linux e BeOS
- Linux é uma das várias implementações do Unix e começou quando Linus Torvalds passou a escrever, em 1991, um kernel Unix que rodasse em hardware compatível com PC usando ferramentas GNU
- As condições que tornaram o Linux possível podem ser resumidas em três eixos
- Richard Stallman e o GNU forneceram ferramentas de desenvolvimento gratuitas
- A Microsoft não atuou no negócio de hardware e fez o Windows rodar em PCs de vários fabricantes, ampliando o mercado de PCs baratos
- Linus Torvalds iniciou o kernel em cima desse hardware e dessas ferramentas
- O Unix é poderoso como uma furadeira “Hole Hawg”
- Ele executa exatamente o que se manda, mas, se o usuário não consegue prever bem o resultado, isso é perigoso
- Ferramentas pequenas podem falhar em tentativas, mas a Hole Hawg é mais perigosa porque tem força para cumprir o comando ao pé da letra
- O Linux mostra, na inicialização, longos logs e mensagens de erro em letras brancas e, mesmo com erros, consegue abandonar aquele processo e seguir em frente
- As primeiras versões do MacOS e dos sistemas da Microsoft tinham dificuldade para fazer várias coisas ao mesmo tempo e tinham recuperação de erros limitada
- Linux e outros sistemas da família Unix são fortes em processos paralelos e monitoramento de erros
- O Debian revela aos usuários problemas e processos de solução por meio de um banco de dados público de bugs
- Debian Constitution: http://www.debian.org/devel/constitution
- Debian Bugs: http://www.debian.org/Bugs
- Em janeiro de 1997, ao enviar um problema do Debian por e-mail, o autor recebeu em 24 horas cinco mensagens com soluções vindas da América do Norte, Europa e Austrália
- A experiência de tentar instalar o Windows NT 4.0 na mesma máquina levou a uma interrupção da instalação, busca inútil no Microsoft Support, processo de Pay Per Incident que não era enviado e números de telefone que não completavam a chamada
- Depois, a busca do Microsoft Support melhorou a ponto de permitir encontrar documentos mais próximos de relatórios reais de bugs
- Informações públicas sobre bugs têm o efeito de forçar a Microsoft a reconhecer a existência deles
- O BeOS era um sistema operacional redesenhado do zero para evitar o cruft acumulado no MacOS e no Windows
- A Be, Inc., fundada por Jean-Louis Gassee, criou desde o início dos anos 1990 um novo OS incompatível com os sistemas existentes
- O BeBox era uma máquina dedicada ao BeOS com processador duplo e LEDs na parte frontal
- Depois, o BeOS foi levado para Macintosh, clones de Mac e PCs Intel
- O BeOS tinha estrutura orientada a objetos, passagem de mensagens, multithreading e multiprocessing, além de oferecer linha de comando pelo aplicativo Terminal
- Como segue o POSIX, pode executar compilador GNU, linker e utilitários
- Mesmo usando o editor de texto gráfico Pe, ainda é possível contar caracteres com comandos Unix como
wc
O mindshare que move o mercado de sistemas operacionais
- No mercado de sistemas operacionais, a força da Microsoft se aproxima mais de um domínio de mindshare do que de um monopólio no sentido tradicional
- O Linux é gratuito e considerado tecnicamente superior
- O BeOS é oferecido por um preço nominal
- É diferente dos antigos monopólios que controlavam fisicamente os meios de produção ou distribuição
- A Microsoft ocupa posição elevada porque fabricantes de hardware e software precisam criar produtos compatíveis com Windows para serem levados a sério no mercado
- Como fabricantes de hardware escrevem drivers para Windows, a Microsoft não precisa produzir diretamente todos os drivers
- O Linux enfrenta isso com uma comunidade de programadores competentes que escreve drivers gratuitos
- O BeOS depende de seus próprios drivers e de alguns drivers de terceiros
- A GUI deixou de ser apenas uma interface simples de PC e virou uma meta-interface para tecnologias de consumo como VCR, celular, TV via satélite, caixa registradora, terminal bancário e Lego Mindstorms
- Quando tudo recebe uma GUI, fica mais difícil fazer pequenos utilitários como programas independentes, e as funções acabam absorvidas por pacotes gigantes como o Microsoft Office
- No Unix,
wcbasta como um pequeno programa de linha de comando, mas transformá-lo em GUI exige muito código e overhead de memória - Os recursos de Basic no Microsoft Office podem oferecer a muitos usuários uma forma de hackeabilidade
- No Unix,
- O poder do Linux cobra seu preço ao exigir arquivos de configuração, linha de comando, opções, scripts e leitura de documentação, deixando o usuário esgotado
- A página man de
findtem 11 páginas, e uma conexão PPP exige script de discagem, arquivo de opções e arquivo de segredos - Se a pessoa não anotar manualmente as mudanças de configuração, depois é difícil voltar atrás
- O sistema operacional ideal se aproxima de uma combinação entre GUI bem projetada e linha de comando disponível quando necessário
- A página man de
- Na metáfora final, a linha de comando é uma interface com liberdade e risco suficientes para criar o universo, enquanto uma GUI totalmente automatizada é uma interface que troca as escolhas da vida por um único botão
- A vida e a tecnologia são difíceis e complexas, e nenhuma interface pode mudar esse fato em si
- Se você não quer delegar suas escolhas, então o usuário precisa escolher por conta própria
2 comentários
Opiniões no Hacker News
Este ensaio de Neal Stephenson foi publicado pela primeira vez em 1999
https://en.m.wikipedia.org/wiki/In_the_Beginning...Was_the...
A parte que compara sistemas operacionais a carros — por exemplo, Windows como uma perua e Linux como um tanque — voltou a aparecer recentemente no episódio sobre a Microsoft do Acquired, onde o Vista foi comparado a um Dodge Viper, e o Windows 7 ao Toyota Camry que os usuários realmente queriam
https://slashdot.org/story/04/10/20/1518217/neal-stephenson-...
Mesmo assim, as pessoas continuam trazendo à tona um texto de 25 anos atrás para se enaltecerem por serem usuários de Linux. Algo como: “Eu uso uma Hole Hawg! Dirijo um tanque! Sou um hacker de verdade, diferente deles!”
Já o Windows virou um carro com duas telas de 27 polegadas no painel, experiência de usuário ruim e cheio de anúncios
A razão pela qual essa comparação funciona bem é que o Comet era, na prática, o modelo seguinte do Edsel, só com outra marca. A transição do Vista para o 7 foi parecida
Nem todo mundo precisava da capacidade pesada de carga de uma picape, mas, para evitar o volume e o consumo de combustível, a única opção era um Pinto com modos de falha perigosos. Depois, o Pinto desapareceu e foi substituído por um Ford Taurus, que era usável, mas sem graça e sem desempenho especial; e, por causa do projeto do transaxle, quando quebrava era preciso desmontar toda a parte dianteira para consertar
Além disso, por causa da pressão de mercado da Ford, os projetistas de infraestrutura acabaram criando estradas por onde não dava para rodar, ou lugares a que não dava para chegar, sem um desses três carros; e, se você quisesse outra coisa, ainda era ridicularizado
A grande vantagem da interface de linha de comando é permitir transmitir instruções ou formas de correção de maneira muito concisa
Se você precisa de uma correção conhecida em um sistema Linux, basta enviar o comando para copiar e colar no terminal. Mas, para uma correção conhecida em um programa gráfico, de repente a comunicação fica muito mais difícil. É preciso decidir se serão instruções em texto como “clique no menu hambúrguer e depois escolha ‘preferences’”, ou várias capturas de tela acompanhadas de explicações
Infelizmente, não sei como transmitir graficamente a ação de dar duplo clique. É um processo demorado e propenso a erros, então só vale a pena quando o app com GUI bugado é, na prática, software abandonado
Caso contrário, é bem provável que a nova versão ainda tenha o mesmo bug ou o mesmo procedimento pouco intuitivo, mas com uma GUI irreconhecível. Talvez porque algum gerente tenha lido posts demais no HN e decidido que refatoração voltada ao usuário é a coisa mais importante
https://support.microsoft.com/en-us/windows/record-steps-to-...
Dito isso, se formos expressar da forma mais clara, no estilo do fim dos anos 1990, a principal vantagem que uma GUI tinha sobre uma UI textual ou uma linha de comando era exigir menos do usuário. A diferença entre “ver e clicar” e “lembrar e digitar” parece bastante fundamental
Ainda não vi uma frase que expresse de forma tão concisa esse trade-off para UIs por voz ou UIs com LLMs
Algo como
{ select[i]@dropdown:states > click@button:submit }. O fato de ainda não termos esse tipo de sistema não significa que ele seja impossível. Basta observar que os LLMs, tão queridos pela indústria de tecnologia atual, conseguem fazer “computação visual” com base em tokens, isto é, texto, para ver que qualquer representação pode, no fim, ser codificada como textoEntão o recurso de gravação da GUI
apoderia gerar uma codificação das ações, que você enviaria por e-mail para um colega olhando para a GUIb, para ele colarSe você tentar fazer isso centrado em GUI, as ferramentas que realmente tem são apenas comandos de texto que instruem ações na GUI. No fim, é uma etapa intermediária a mais. Por exemplo, se você já está usando AppleScript, é melhor simplesmente executar diretamente o comando real que o AppleScript está tentando contornar por meio do sistema de GUI
Deve ser relido junto com o Unix Haters Handbook https://web.mit.edu/~simsong/www/ugh.pdf
Acho que o que precisamos é de um LispM recriado, uma workstation Smalltalk, ou algo na forma de um sistema operacional feito como se fosse uma única aplicação. Teria de ser um sistema em que o framework ficasse aberto ao usuário até o nível mais baixo, que permitisse programação completa pelo usuário final, fosse explorável e totalmente integrado.
Como UI, precisamos de uma linha de comando 2D, e até 3D/4D, algo mais próximo de uma DocUI que possa incluir elementos 3D e de vídeo/multimídia. Como arcabouço conceitual, há http://augmentingcognition.com/assets/Kay1977.pdf
Sobre o trecho original “Este concessionário tem mecânicos. Se a sua perua tiver um problema, você pode tirar um dia de folga, trazê-la aqui e passar algumas horas ouvindo música de elevador na sala de espera enquanto paga para consertá-la.”, vem à mente uma refutação no estilo megafone: “Se você receber um tanque de graça, voluntários vão até sua casa enquanto você dorme e o consertam de graça!”
Na prática, em algum momento as distribuições Linux ofereceram esse tipo de suporte? Provavelmente seria algo como um colaborador do projeto entrar no meu computador por ssh.
Minha impressão é que o argumento era mais próximo de: “Temos um prédio inteiro cheio de manuais técnicos explicando cada parafuso e porca do tanque, e podemos copiá-los de graça para você. Se fizer um esforço razoável para ler e memorizar tudo, poderá consertar e modificar o tanque por conta própria. Você não precisa mais depender de concessionários de carros desonestos. Se precisar de ajuda, venha ao encontro mensal da comunidade e converse com pessoas tão obcecadas por tanques quanto você. Mas só venha se for suficientemente obcecado por tanques, e só depois de ler os manuais.”
Claro, isso foi décadas atrás, e hoje a situação está muito melhor.
Também dá para ver que a SuSE ainda existe, e imaginar como a Canonical banca seus custos operacionais. É suporte pago. Suporte para Linux é um grande negócio e é o motor que mantém distribuições populares vivas.
Antigamente, se software comercial não rodasse no meu computador, eu precisava comprar uma versão nova, e patches gratuitos eram raros.
Normalmente, a reação esperada seria “fique longe da minha casa, seu esquisito!”. A menos que houvesse uma confiança considerável, eu não deixaria alguém entrar na minha casa enquanto eu estivesse dormindo.
A reação comum de verdade provavelmente era mais próxima de “como é open source, você pode consertar qualquer coisa no seu tanque por conta própria”. Se precisar de um novo módulo para conectá-lo a outro dispositivo, basta criar você mesmo, como se não fosse nada demais.
Se o navegador não lida bem com linhas longas, você pode ver assim:
wget -O - [https://web.stanford.edu/class/cs81n/command.txt](<https://web.stanford.edu/class/cs81n/command.txt>) | nroff | lessMinha parte favorita para descrever os sentimentos de usuários de Unix/Linux em relação ao Windows é a expressão Hole Hawg dos sistemas operacionais.
Este ensaio deveria ser leitura obrigatória para todos os estudantes de ciência da computação e para qualquer pessoa que queira se chamar de hacker.
Li esse texto durante a cerimônia de formatura da faculdade. Eu o escondi nas dobras da beca e li ali; foi a coisa mais apropriada que eu poderia ter feito naquele momento.
Logo em seguida mudei o rumo da minha vida e passei a me concentrar nas ideias apresentadas nesse texto. O objetivo era mover o mundo pela linha de comando, e quase consegui.
Precisamos migrar para a Command Table.
Acabei de escrever uma interface de linha de comando para LLMs quase em Bash puro[1].
Por causa do argumento deste texto, apoio o futuro dos LLMs. As pessoas conversam com LLMs como conversam com um shell de linha de comando, e tudo é baseado em texto puro. Também é a filosofia Unix. Se eu tivesse lido este texto antes de escrever o cliente CLI, acho que teria tido mais ideias.
[1]: https://github.com/simonmysun/ell
Será que este texto poderia ganhar o prêmio de texto mais repostado no HN? Em 17 anos, apareceu em média duas vezes por ano.
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
Variações de título e URL também tornam a contagem instável.
Tenho este livro em capa flexível. Acho que devo tê-lo lido antes da virada do milênio.
Como fã do BeOS, gostei especialmente da menção ao Batmóvel.
The hole hawg.. o que é isso?