Unix faz 40 anos: o passado, o presente e o futuro de um sistema operacional revolucionário é uma leitura fascinante.
Há quarenta anos, neste verão, um programador se sentou e, em um mês, criou o que se tornaria um dos mais importantes softwares já criados.
![]()
Em agosto de 1969, Ken Thompson (na foto à esquerda), programador da Bell Laboratories, subsidiária da AT&T, viu na partida de um mês de sua esposa e filho pequeno uma oportunidade de colocar em prática suas ideias para um novo sistema operacional. Ele escreveu a primeira versão do Unix em linguagem assembly para um minicomputador PDP-7 da Digital Equipment Corp. (DEC), gastando uma semana com o sistema operacional, um shell, um editor e um assembler.
O artigo é acompanhado por um gráfico da wikipedia, ilustrando a linhagem da família Unix.
Para mim, Unix se tornou sinônimo de Linuxe o movimento de código aberto em geral. Os últimos *nixes em pé são os seguintes:
Código aberto | Fonte mista/compartilhada | Fonte fechada |
Minix |
Mac OS X |
AIX |
Eu não sabia que havia tantas variantes de Unix de código fechado ainda sobrevivendo na natureza. Também é estranho como o OS X nos faz completar o círculo com os Unics originais e o licenciamento BSD. Se ele é solitário na coluna “Fechado”, imagine a angústia existencial de ser o único fornecedor na coluna “Código misto/compartilhado”. (NB: Acho que a categoria minúscula que a Apple ocupa atualmente representa o futuro do software comercial, mas esse é um tópico para outra postagem no blog).
Sou desenvolvedor de Windows desde o início dos anos 90, mas com o tempo, desenvolvi uma atitude relutante em relação ao respeito para Unix. Acho que Michael Feathers resumiu melhor:
Há algo profundo no desenvolvimento de software que nem todo mundo entende, mas que o pessoal do Bell Labs entendia. É a corrente subjacente do “estilo New Jersey”, “pior é melhor” e “a filosofia Unix”, e não é apenas uma característica do software da Bell Labs. O senhor vê isso na especificação original da Ethernet, em que a colisão de pacotes era considerada normal… e o mesmo tipo de ideia está profundamente presente no protocolo da Internet. É uma consciência profunda da ramificação do projeto. uma disposição para viver com um pouco menos para evitar uma bagunça maior e uma disposição para ver a elegância no real em vez de na visão.
Acho que isso é profunda e profundamente verdadeiro em tudo em que já trabalhei como programador e, na medida em que o Unix reflete essas filosofias, ele está inegavelmente no caminho certo. Ao contrário de Rich Skrenta, Eu não cresci como desenvolvedor Unixportanto, cheguei tarde a essa apreciação. A opinião de Joel Spolsky sobre a divisão Unix/Windows, depois de ler A arte da programação UNIX, é este:
Quais são as diferenças culturais entre os programadores de Unix e Windows? Há muitos detalhes e sutilezas, mas a maior parte se resume a uma coisa: a cultura Unix valoriza o código que é útil para outros programadores, enquanto a cultura Windows valoriza o código que é útil para não programadores. É claro que isso é uma grande simplificação, mas, na verdade, essa é a grande diferença: estamos programando para programadores ou para usuários finais? Todo o resto é comentário.
Portanto, de um lado, o senhor tem centenas de aplicativos de linha de comando, criados em estilos extremamente diferentes, com milhares de parâmetros arcanos de linha de comando, que podem ser combinados de forma flexível para realizar praticamente qualquer coisa. E, do outro lado, o senhor tem o registro do Windows e MFC.
Às vezes, o senhor simplesmente não pode vencer.
Então, sim, sou fã do Unix. E também sou fã do Windows. Acho que vale a pena estudar o que ambos estão fazendo de certo e de errado, porque, como programador, sou fã de qualquer coisa que o funciona.