Linux em 25 anos: IEEE Spectrum entrevista Linus Torvalds
O criador do Kernel Linux fala sobre o seu passado, presente e futuro
Linus Torvalds criou o núcleo original do sistema operacional Linux
em 1991 como um estudante de ciência da computação na Universidade de
Helsinki, na Finlândia. Linux cresceu rapidamente em um sistema
operacional completo que agora pode ser encontrado correndo smartphones,
servidores e todos os tipos de gadgets. Nesta entrevista por e-mail,
Torvalds reflete no último quarto de século e que os próximos 25 anos
poderia trazer.
Stephen Cass: Você é um
programador muito mais experiente agora contra 25 anos atrás. O que é
uma coisa que você sabe agora que você deseja que seu eu mais jovem
deveria saber?
Linus Torvalds: Na verdade, eu credito o
fato de que eu não sabia o que diabos eu estava me preparando, é uma
grande parte do sucesso do Linux. Se eu soubesse o que sei hoje, quando
eu comecei, eu nunca teria tido a ousadia de começar a escrever o meu
próprio sistema operacional: Você precisa de uma certa quantidade de
ingenuidade; pensar que você pode fazê-lo. Eu realmente acho que foi
necessário para o projeto começar e ter sucesso. A falta de
entendimento sobre o eventual âmbito do projeto ajudou, assim o fez
entrar nele sem um monte de noções preconcebidas de onde ele deveria ir.
O fato de que eu realmente não sabia onde ele iria acabar significava
que eu era talvez mais aberto a sugestões externas e influência do que
eu teria sido se eu tivesse uma boa idéia do que eu queria realizar. Que
a abertura às influências externas que eu acho que fez muito mais
fácil, e muito mais interessante, para que outros possam participar do
projeto. As pessoas não tem que assinar a visão de outra pessoa, mas
poderia juntar-se com a sua própria visão de onde as coisas devem ir. Eu
acho que ajudou a motivar muita gente.
S.C.: Existe uma decisão técnica anterior, feita durante o desenvolvimento
do Linux que agora você gostaria que tivesse ido de uma maneira diferente?
L.T.: A coisa sobre decisões técnicas ruim é que você sempre pode
desfazê-las. Sim, ele pode ser muito frustrante, e, obviamente, há todo o
tempo e esforço desperdiçado, mas, ao mesmo tempo, mesmo que geralmente
não é realmente desperdiçado no final. Houve algum motivo você tomou um
rumo errado, e percebendo que era errado ensinou-lhe algo. Eu não estou
dizendo que é realmente uma coisa boa, é obviamente melhor fazer
sempre a decisão certa de cada vez, mas ao mesmo tempo não estou
particularmente preocupado fazer uma escolha. Eu prefiro tomar uma
decisão que acaba por ser errado mais tarde sobre possíveis
alternativas para muito tempo.
Tivemos uma situação notoriamente ruim no subsistema de memória
virtual do Linux em 2001 ou algo assim. Era uma dor enorme, e havia discordância
violenta sobre qual direção tomar, e tivemos grandes problemas com
certas configurações de memória. Grandes amostras do sistema foi
totalmente arrancado no meio do que era suposto ser um período
"estável", e as pessoas não estavam felizes.
Mas olhando para trás, tudo deu certo no final. Foi doloroso como o
inferno na época, e que teria sido muito mais agradável se não tive
que fazer esse tipo de grande mudança já meados o desenvolvimento, mas não
foi catastrófico.
S.C.: Como Linux cresceu rapidamente, o que foi a transição de um esforço só, para um esforço conjunto a nível pessoal?
L.T.: Não há, realmente eram duas transições notáveis para mim: Uma
bastante cedo (1992), que foi quando eu comecei a tomar os patches de
outros desenvolvedores sem sempre reescrevê-los eu mesmo. E um muito
mais tarde, quando [aplicar todos os patches] estava começando a ser
um grande ponto de dor, e eu tive que aprender a realmente confiar todas as várias manutenções dos subdesenvolvedores.
O primeiro passo foi muito mais fácil,
uma vez que aproximadamente os primeiros seis meses de programação do
kernel Linux tinha sido um exercício inteiramente sozinho, quando as
pessoas começaram a enviar-me remendos eu não estava realmente
utilizando-os apenas para aplicá-las. Então, o que aconteceu é que eu iria
olhar para o patch para ver o que a pessoa estava apontando para, em
seguida, gostaria apenas de fazer isso sozinha, às vezes de forma muito
semelhante, por vezes, de uma forma totalmente diferente.
Mas que
rapidamente tornou-se insustentável. Depois de um relativamente curto
tempo, comecei a confiar apenas certas pessoas o suficiente para que em
vez de escrever a minha própria versão da sua ideia, eu tinha acabado de
aplicar o seu patch. Eu ainda acabei fazendo mudanças frequentemente, e
ao longo dos anos eu tenho realmente feito uma boa leitura e edição de patches
para o ponto onde eu poderia muito bem fazer isso sozinho. E esse
modelo funcionou muito bem durante muitos anos.
Mas exatamente
porque o modelo de "aplicar patches de outras pessoas" funcionou tão bem
por anos, e eu fiquei muito acostumado com isso, foi muito mais
dolorosa para mudar. Por volta de 2000, tivemos um crescimento enorme no
desenvolvimento do kernel (nesse ponto o Linux estava começando a ser um
jogador comercial perceptível). As pessoas realmente começaram a
reclamar sobre o meu trabalho ser um obstáculo para o desenvolvimento, e
reclamando que "Linus não escala." Mas não tínhamos boas ferramentas
para lidar com gerenciamento de origem.
Isso tudo acabou por
conduzir à adoção de BitKeeper como uma ferramenta de manutenção do
código fonte. As pessoas se lembram BitKeeper pelo bafafá do licenciamento alguns anos mais tarde, mas foi definitivamente a
ferramenta certa para o trabalho, e ele me ensinou (e pelo menos partes
da comunidade do kernel) sobre como controle de origem poderia
funcionar, e como poderíamos trabalhar juntos com um modelo de
desenvolvimento mais distribuída onde eu não era o ponto de
sincronização solitário.
Claro, o que eu aprendi sobre como
fazer a gestão de código-controle distribuído é como Git surgiu em 2005.
E Git tem, obviamente, tornar-se uma das grandes histórias de sucesso
no controle de origem, mas levou um monte de tempo ensinar aos outros sobre as
vantagens ao controle de origem distribuída. A dor que o kernel passou
em torno de 2000 foi, finalmente, uma lição grande, mas foi sem dúvida
doloroso.
S.C.: Existem outros projetos, com
controle de fonte distribuído, que estão lhe dando uma coceira que você
gostaria de riscar?
L.T.: Não. E eu realmente
espero que não haverá qualquer. Todos os meus grandes projetos têm vindo
de "Maldição, ninguém fez isso por mim" em alguns momentos. Na verdade eu sou
muito mais feliz quando alguém resolve um problema para mim, para que eu
não tenho que gastar muito esforço fazê-lo eu mesmo. Eu prefiro sentar
em uma praia, bebendo alguma bebida frou-frou com um guarda-chuva, que
ter que resolver meus próprios problemas.
Ok, eu estou mentindo.
Eu ficaria entediado depois de alguns dias. Eu estou realmente feliz que
eu tenho Linux porque é ainda interessante e intelectualmente
estimulante. Mas, ao mesmo tempo que definitivamente é verdade que
iniciar novos projetos é um esforço muito frustrante.
S.C.: Por que você acha Linux nunca se tornou uma presença significativa em desktops tradicionais?
L.T.: Hey, ainda estamos trabalhando nisso. E eu acho que Chromebooks estão
realmente fazendo razoavelmente bem o papel, mesmo que seja um ambiente de
trabalho bastante limitado, e não o modelo de estação de trabalho Linux
completo tradicional.
Quanto ao porquê de o ambiente de trabalho é
uma porta mais duro de roer, existem várias razões, mas uma das grandes é
simplesmente inércia do usuário. O desktop é simplesmente único no mundo
da computação na medida em que é ao mesmo tempo muito pessoal, você
interagir com ele toda vez intimamente, a cada dia se você trabalha com
computadores, mas também complicado de maneiras que muitos outros ambientes
de computação não são.
Olhe para o seu smartphone. Isso também é
uma peça bastante íntimo da tecnologia de computação, e que as pessoas
ficam muito ligado (é onde o Linux, graças ao Android, está fazendo difundido muito bem). O ambiente de trabalho é em muitos aspectos mais complexo,
com muito mais bagagem legado. É um mercado difícil de entrar. Ainda
mais do que com um telefone celular, as pessoas realmente têm um certo
conjunto de aplicações e fluxos de trabalho que eles são usados,
e a maioria das pessoas nunca vai instalar um sistema operativo
diferente do que veio pré-instalado com a máquina, o número de pessoas que fazem isso é muito baixo.
Ao
mesmo tempo, eu acho que é um mercado importante, mesmo se em algum
grau toda a "área de trabalho de uso geral" parece estar a
desvanecer-se, com mais especializado e, portanto, mais simples,
plataformas assumindo muitas tarefas- smartphones, tablets e Chromebooks
todos sendo exemplos de coisas que não são realmente concebido para ser
ambientes de uso geral de pleno direito.
S.C.: O maior uso de Linux surpreendeu você?
L.T.: Atualmente? Não muito, desde que eu acho que o Linux tornou-se quase
o ambiente padrão para prototipagem de novo hardware ou serviços. Se você
tiver algum dispositivo estranho, especializada ou se você estiver
criando uma nova infra-estrutura de Internet ou qualquer outra coisa,
estou quase surpreso quando ele não é executado Linux.
Mas as
"excêntricas" áreas de uso costumava me surpreender, quando eu ainda
pensava em Linux como um sistema operacional de servidor e estação de
trabalho. Alguns dos primeiros conferências comerciais do Linux quando
as pessoas começaram mostrando coisas como bombas de gás ou frigoríficos
que corriam Linux - Eu fui supreendido. Quando o primeiro TiVo saiu, o fato de
que ele estava correndo Linux foi tão interessante como a coisa toda ",
você poder rebobinar TV ao vivo" foi sem palavras.
S.C.: Qual é o maior desafio que enfrentam atualmente no Linux?
L.T.: O kernel está realmente fazendo muito bem. As pessoas continuam a se
preocupar com as coisas ficando muito complicado para as pessoas a
entender e corrigir erros. É, certamente, uma preocupação compreensível. Mas, ao mesmo tempo, temos um monte de pessoas inteligentes envolvidas.
O fato de que o sistema tem crescido tão grandes e complicadas e muitas
pessoas dependem dele obrigou-nos a ter um monte de processos no lugar.
Ele pode ser muito desafiador para ficar grande e ter aceite as
alterações invasivas, então eu não diria que é um grande lugar feliz,
mas acho que o desenvolvimento do kernel está funcionando. Muitos outros
projetos de código aberto matariam para ter os tipos de recursos que
temos.
Dito isto, um desafio contínuo que sempre tivemos no kernel
é a multiplicidade de hardware lá fora. Apoiamos um monte de hardware
diferente, quase certamente mais do que qualquer outro sistema
operacional lá fora, mas há um novo hardware que sai diariamente. A área
incorporada, em particular, tende a ter prazos de hardware, plataforma de
desenvolvimento que são frequentemente muito curta (você pode muito bem
virar-se e criar uma nova plataforma de telefonia na China em um mês ou
dois), e tentando trabalhar juntos nesse tipo de ambiente é difícil. A
boa notícia é que um monte de fabricantes de hardware estão ajudando.
Isso não costumava ser verdade.
S.C.: A atual tendência técnica te deixa entusiasmado? Há algo que te gera desânimo?
L.T.: Eu sempre fui interessado em um novo hardware core, particularmente
CPUs. É por isso que eu comecei a fazer o meu próprio sistema
operacional, em primeiro lugar, e eu ainda estou animado para ver novas
plataformas. Claro que, na maioria das vezes é bastante pequenos ajustes
no hardware existente (e eu acredito muito que essa é a forma como o
desenvolvimento técnico deve acontecer), mas ainda é o tipo de coisa que
eu tenho tentado acompanhar.
Em uma imagem maior, mas não uma
área que eu, pessoalmente, vá me envolver é com Inteligência Artificial (AI); é muito interessante ver
como AI está finalmente começando a realmente acontecer. AI costumava
ser um daquelas coisas "que é duas décadas de distância" de acontecer, e que iria
ficar duas décadas à frente sempre. E eu fiquei muito impressionado com todos
os modelos baseados em regras que as pessoas costumavam fazer.
Agora,
finalmente, redes neurais estão começando a realmente entrar em seu
próprio país. Acho isso muito interessante. Não é uma área que eu
trabalho, e não é realmente algo que eu prevejo a trabalhar, mas ainda é
emocionante. E ao contrário dos LISP e linguagem Prolog abordagens
loucas, as redes neurais recorrentes sabemos trabalhar da natureza. E
não, eu não estou desanimado com o fato de que a verdadeira AI pode
finalmente começar a acontecer, como claramente algumas pessoas são. De
modo nenhum.
S.C.: Você acha que o Linux ainda
estará sob desenvolvimento ativo em seu 50º aniversário? Qual é o sonho
para o que esse sistema operacional seria semelhante?
L.T.: Eu não sou um grande visionário. Eu sou um engenheiro minusioso, muito minusioso, e eu tento manter meus olhos firmemente no chão. Vou deixar para outros fazerem grandes previsões sobre onde estaremos em 5, 10 ou 25
anos, eu acho que vai fazer muito bem, contanto que manter o controle de
todos os pequenos detalhes do dia-a-dia, e tentar fazer o melhor que
pudermos.
Pode ser mais interessante se o mundo estava prestes
a grandes revoluções e como as coisas ficaria radicalmente diferente de 25
anos a partir de agora. Mas muitas das questões básicas com sistemas
operacionais são as mesmas hoje como eram na década de sessenta, quando
as pessoas começaram a ter sistemas operacionais reais, muito antes do
Linux. Eu suspeito que temos visto muito mais mudanças na forma como
computadores de trabalho nos últimos 50 anos do que nós estamos
necessariamente vamos ver no futuro. Hardware pessoal, como
desenvolvedores de software, simplesmente têm aprendido o que funciona
e o que não funciona.
Claro, redes neurais, eticetera, vai mudar o
mundo, mas parte do ponto com eles, é que você não vai "programa-los". Eles
aprendem. Eles são nebulosos. Eu posso praticamente garantir que eles
não vão substituir o modelo de computação tradicional para isso mesmo.
As pessoas vão querer máquinas mais inteligentes, mas as pessoas também
vão querer máquinas que fazem exatamente o que eles disseram. Assim, o
nosso estilo atual da computação "old-fashioned" não vai desaparecer;
ele só vai ser aumentada.
Veja a entrevista original em inglês aqui.
Fonte: IEEE Spectrum
Comentários
Postar um comentário