comparatilhe

O iPhone faz 10 anos: a história de uma revolução

Como costuma acontecer, a joia da Apple nasceu de um dos maiores fracassos da história da informática: Next, a empresa fundada por Steve Jobs que construía estações de trabalho baseadas em softwares futuristas demais para a época – Veja como foi

O iPhone faz 10 anos: a história de uma revolução

Sobre falências

Assim como não foi um lance de dados que causou o nascimento do Renascimento na Itália e não na Finlândia, também não foi um lance de dados que fez o iPhone originar-se na Apple. Assim como aos humanistas italianos bastava olhar para o ambiente, impregnado de classicismo, que os cercava com novos olhos, para o povo da Apple bastava pegar o que eles haviam elaborado e despejar em um novo molde. A Nokia não poderia ter criado o dispositivo dos dispositivos, que originalmente era uma empresa que fabricava botas de plástico. Tampouco poderia ser a Samsung que se especializara na produção de espaguete e depois no refino de açúcar.

Quase meio século de obsessão da Apple por interfaces de usuário, facilidade de uso, integração indissolúvel entre hardware e software, impulsionada pela visão holística de seu chefe, só poderia levar a algo tão revolucionário quanto o iPhone. Da mesma forma, a difundida herança clássica da paisagem e mentalidade italiana resultou no humanismo e no Renascimento.

É um dos muitos paradoxos que pontuam a marcha da tecnologia que o iOS, o software que alimenta o iPhone, nasceu do legado de um dos cinco maiores fracassos da história do computador: o NeXT. A NeXT foi a empresa iniciada por Steve Jobs após sua saída da Apple em 1985. Ela construiu estações de trabalho futuristas alimentadas por um software igualmente futurista, o NeXTstep. Chamado por Steve Jobs de “a verdadeira joia” da inovação NeXT, o NeXTstep estava muito à frente de seu tempo. Foi um dos maiores fracassos, é claro, mas também uma das experiências mais seminais na história do computador, perdendo apenas para a do Xerox Parc em Palo Alto. A NeXT também foi a academia onde Jobs aprendeu a meditar e corrigir seus erros. A outra grande escola de liderança foi a Pixar, onde Jobs aprendeu muito com Edwin Catmull e John Lassater.

Apple, um NeXT com um nome diferente

A história da NeXT foi contada muitas vezes e mais recentemente em grande detalhe por Walter Isaacson, o biógrafo de Steve Jobs. Basta saber que, em 1996, a tecnologia da NeXT e todos os seus funcionários foram absorvidos pela Apple após o retorno de Jobs à empresa que ele cofundou. A partir daí começou a longa marcha rumo à Apple de hoje: 1000 dólares de investimento em ações da Apple em 1995 valeriam 117 dólares hoje. Aqueles que chegaram com Jobs da NeXT para a Apple percorreram esse longo e árduo caminho semelhante ao que Xenofonte descreve na Anábase.

Mas isso é conhecido. Uma coisa, porém, é menos conhecida. A tecnologia NeXT e especialmente seu sistema operacional, NeXTstep, tem alimentado incansavelmente a tecnologia Apple por mais de 20 anos e os homens e mulheres da NeXT foram colocados nos cargos de maior responsabilidade da empresa apple. Tanto que a certa altura não havia mistério sobre a existência de uma espécie de “máfia NeXT” ou “casta NeXT”, tão importante era a influência e remuneração das pessoas que vieram dessa experiência, os NeXTonians.

Os neXtonianos

Entre os NeXTonians que se mudaram para a Apple em funções proeminentes está Avie Tevanian, o cérebro por trás da arquitetura de software da NeXT e posteriormente do Mac OS X, que permaneceu na Apple até 2006 como Diretor de Tecnologia de Software. Ele vem do NeXT Scott Forstall, que foi responsável pelo desenvolvimento do software IOS até outubro de 2010. Craig Federighi, sucessor de Tevanian e hoje responsável por toda a área de software da Apple, também é NEXToniano. Entre eles também está Budd Tribble, um dos fundadores da NeXT, a quem devemos a famosa definição de "campo de distorção da realidade" no que diz respeito à visão de Jobs. Budd voltou para a Apple em 2002 e atuou até 2015 como vice-presidente de Tecnologia de Software.

Recentemente, Scott Forstall, no Computer History Museum em Mountain View em uma reunião organizada para comemorar o décimo aniversário do iPhone, contou como o iPhone nasceu na mente de Steve Jobs e como foi criado pela equipe que ele mesmo junto com os demais gerentes que haviam sido chamados para dirigi-la. Trataremos desse testemunho em outro post. Agora vamos lidar com NeXTstep e seu legado na Apple.

De NeXTstep para Mac OS X para iOS

Que entre NeXTstep e iOS exista uma relação de filiação direta, mediada pelo Mac Os X, é algo que ultrapassa qualquer dúvida razoável. Um grande número de classes que compõem a arquitetura do sistema de desenvolvimento iOS (chamadas Cocoa e depois Swift) possuem o prefixo “NS” que significa NextStep. Mesmo antes do iOS, o NeXTstep se tornou o Mac OS X, que em 2001 foi lançado como o sistema operacional da nova geração de Macs.

A ferramenta gráfica, parte do XCode (ambiente de desenvolvimento iOS), para construir a interface do usuário de aplicativos para dispositivos iOS e combinar os diversos elementos que a compõem vem diretamente da NeXT. Ele nem mudou de nome, chama-se Interface Builder e produz um arquivo.nib (abreviação de NeXT Interface Builder).

Mesmo o "X" incluído no nome do novo sistema operacional Mac não é uma pista pequena: significa NeXT ou, talvez mais provavelmente, significa UniX, que além de constituir o núcleo do NeXTstep é também o núcleo do Mac OS X. De qualquer forma, não sabemos a origem desse "X", mas há uma relação muito próxima entre tudo isso.

O fato de Jobs querer preservar e desenvolver o legado de seus 10 anos de trabalho árduo e trabalho árduo na NeXT é indiscutível. Durante essa experiência, livre de quaisquer constrangimentos externos e com o capital fornecido por Ross Perot e Canon, ele implementou sua visão de tornar o computador o mais inteligente dos eletrodomésticos.

Unix e o micronúcleo Mach

Como o NeXTstep, o Mac OS X e o iOS são baseados no Unix, o sistema operacional portátil desenvolvido no Bell Labs e lançado em 1969. A principal característica do Unix é a capacidade de executar aplicativos de compartilhamento de tempo. O compartilhamento de tempo permite que a memória principal do computador (CPU) distribua seu tempo entre várias tarefas e vários usuários. Isso significa que se um aplicativo travar inesperadamente por qualquer motivo, esse evento não causará a falha de todo o sistema e, conseqüentemente, de outros aplicativos de tempo compartilhado.

O Unix permite facilmente multitarefa, proteção de memória e execução de programas e serviços em segundo plano, ou seja, sem controle direto do usuário. Todas as propriedades que os sistemas operacionais dos primeiros computadores pessoais não possuíam. Por exemplo, um sistema baseado em Unix pode estar tocando uma música durante a impressão, o usuário está processando uma fórmula em uma planilha e um segundo usuário remoto está baixando um arquivo pela rede a partir dos recursos desse computador.

Para desenvolver a arquitetura do sistema NeXTstep, Jobs chamou Avie Tevanian, que havia trabalhado no projeto Mach na Carnegie-Mellon University. Mach, que se tornará o kernel NeXT, foi construído em uma abordagem radical conhecida como "arquitetura micro-core", segundo a qual o sistema operacional teve que terceirizar o máximo de funções possível para melhorar sua estabilidade. Um princípio contrário ao que estava em voga na época.

Objective-C

Assim como o NeXTstep, o Mac OS X e o iOS foram desenvolvidos em Objective-C, uma linguagem de programação orientada a objetos derivada da linguagem C. Objective-C permite que desenvolvedores de aplicativos usem blocos predefinidos de código (objetos) para desenvolver certas funções de rotina, sem a necessidade de programá-los do zero. Os objetos são uma espécie de componentes pré-fabricados que podem ser montados para obter um edifício específico, como é feito com o lego.

Em uma entrevista de 1995, Jobs afirmou que a programação orientada a objetos revolucionaria a maneira como criamos software nos próximos 20 a 30 anos. E assim foi.

Alguns aplicativos usados ​​até hoje no Mac ou iPhone são a evolução do software inicialmente desenvolvido para a plataforma NeXT. Entre esses números (inicialmente Parasheet), Keynote (inicialmente Concorrência), Páginas, OmniGraffle (inicialmente Diagrama!).

O Objective-C foi criado por Brad Cox, um brilhante desenvolvedor do Palo Alto Research Center da Xerox, como uma evolução do SmallTalk, cujo grande potencial Jobs percebeu imediatamente durante sua lendária visita ao centro em 1977. Jobs obteve de Cox a licença para o uso de Objective-C na NeXT e em 1995 a Apple adquiriu a Stepstone, empresa fundada por Cox, dono da linguagem.

Estrutura do AppKit

Junto com a linguagem Objective C, a NeXT também desenvolveu um conjunto de objetos prontos para serem usados ​​no desenvolvimento de software. Esses objetos foram coletados em um framework chamado AppKit que na Apple se tornou Cocoa para OS X e em 2008 Cocoa Touch para iOS. Além de aliviar os desenvolvedores da onerosa tarefa de desenvolver partes rotineiras do software, o AppKit permite que os mais díspares aplicativos coloquem o usuário em condições de utilizar os mesmos métodos de utilização de algumas funções, aliviando o usuário de eventuais problemas de aprendizagem.

Interface Builder

Interface Builder é uma ferramenta gráfica que permite aos desenvolvedores construir uma interface de usuário arrastando e soltando os elementos (botões, caixas de texto, menus pop-up, janelas, etc.) de uma paleta que compõe uma interface gráfica. Além de apresentar um aspecto gráfico definido, esses elementos possuem todas as funções necessárias incorporadas. A paleta pode ser ampliada com novos objetos que, uma vez construídos, podem ser arrastados para dentro dela e a partir desse momento disponibilizados como os objetos nativos. As legendas dos objetos se localizam automaticamente de acordo com o idioma selecionado no software do sistema.

O Interface Builder foi construído pelo desenvolvedor francês Jean-Marie Hullot, a quem Steve Jobs chamou para trabalhar no NeXT em 1985, depois de ver uma demonstração que o convenceu de que ele tinha

colocou as mãos em um "aplicativo matador". O Interface Builder não foi integrado ao NeXTstep, mas oferecido como um aplicativo autônomo junto com o Software Development Kit. A Apple então integrou o Interface Builder ao Mac OS X e iOS. Com o Interface Builder, em um computador NeXT, Tim Berners Lee, do Cern em Genebra, desenvolveu o primeiro protótipo do WordWideWeb.

Mostrar PostScript

Enquanto todos os sistemas operacionais dos anos noventa usavam gráficos raster (ou seja, construídos com grades de pixels) para exibir texto e ícones nas telas de computador, o NeXT usava gráficos vetoriais (ou seja, pontos, linhas, curvas e polígonos) para exibir ícones, texto e ilustrações. A qualidade de uma imagem vetorial é muito superior à de uma imagem bitmap ou raster, pois consegue aproveitar a resolução máxima do dispositivo onde é visualizada. Enquanto nos gráficos raster é a resolução da imagem que determina sua qualidade de exibição.

A tecnologia utilizada pela NeXT, para obter gráficos vetoriais em vídeo, foi fornecida pela Adobe (a casa dos softwares Photoshop, Illustrator e Acrobat) por meio de uma ferramenta chamada Display Postscript. Os engenheiros da NeXT reescreveram completamente o mecanismo de ferramentas da Adobe para adequá-lo ao sistema operacional orientado a objetos.

Mac OS X e iOS agora usam uma ferramenta diferente, chamada Quartz, para exibir gráficos na tela que, no entanto, usa o mesmo conceito de gráficos vetoriais. O Quartz produz imagens vetoriais semelhantes a Postscript usando o modelo de renderização PDF. O abandono do Postscript deve-se essencialmente aos custos decorrentes da aquisição de licenças de utilização à Adobe.

Os Pacotes

O OS X e o iOS usam uma maneira de gerenciar aplicativos derivados do NeXTstep. São bundles, ou seja, um diretório que permite agrupar o código-fonte executável e todos os recursos, inclusive plug-ins, necessários para o funcionamento de uma aplicação. Todos esses arquivos residem neste pacote sem serem compilados no executável, como é o caso do Windows. O sistema operacional, em um nível baixo, vê o bundle como um conjunto de arquivos e o usuário como um simples ícone. É uma solução que simplifica muito a operação graças à estrutura hierárquica simples dos diretórios.

o gerenciador de arquivos

O Finder é o gerenciador de arquivos da Apple que se encarrega de navegar pelos discos, pastas e arquivos. Com o Mac OS X, o Finder foi completamente redesenhado no modelo do gerenciador de arquivos NeXTstep, que em sua essência é semelhante ao do Windows. Além da lista simples de arquivos ou ícones relacionados a um diretório, típico do Mac OS das origens, o Mac OS X também apresenta uma visualização de tipo hierárquico completamente análoga à do NeXTstep. Essa estrutura se desenvolve em janelas contíguas mostrando o conteúdo do diretório ou do recurso selecionado de forma a visualizar todo o caminho do recurso dentro do sistema de arquivos.

Existem muitos outros aspectos que o Mac OS X e o iOS derivaram do NeXTstep e sua experiência, verdadeiramente uma das experiências mais seminais e de aprendizado na história da tecnologia.

E então, três vezes vivas para falhas!

Comente