RSS
 

Archive for julho, 2009

Google Chrome OS

08 jul

Antes de tudo quero deixar claro que sou um grande admirador da empresa Google e de muitos de seus produtos. Digamos que dentre tudo o que eles sabem o que mais me impressiona é a forma como planejam seus produtos e a forma como cresceram organizadamente e com planejamento focado em crescimento. O simples fato de que são os maiores e conseguem lidar com boa parte do tráfego de toda a Internet sem grandes problemas é prova disto.

Recentemente o Google anunciou o lançamento do Google Chrome OS. Como era de se esperar o hype foi absurdamente exagerado para esta notícia.

Algumas pessoas chegam ao ridículo de falar que este sistema operacional vai dominar o mundo ou vai matar o Windows ou o Linux, ou o [coloque aqui o sistema operacional que lhe vem à mente]. Para abafar um pouco a poeira ou levantar um pouco mais, aqui vão algumas indagações minhas a respeito:

Agora vai minha parcela de suposições a respeito do Google Chrome OS:
Será um sistema operacional baseado no Linux, com quase nenhum aplicativo instalado além do próprio navegador Google Chrome com alguns plugins como o próprio Google Gears.

O Google e a Internet

O Google é uma empresa de Internet e ela nunca deixará de ser isso. O máximo que ela pode fazer é tentar mudar o rumo da computação para que tudo fique nas nuvens, ou seja, na Internet. Se ela lançar algum produto que não tenha nenhuma relação com a Internet, estará deixando de ser o Google. Esta informação é um pré-requisito importante para entender o restante do texto.

Sistemas Operacionais

Me arrisco a dizer que os computadores sempre precisarão de um Sistema Operacional cheio de drivers (estáveis ou não) e de programas que rodem em código nativo da CPU. Por outro lado, mudar este modelo não é impossível, mas é comercialmente inviável. Uma solução para isto seria alguma empresa criar uma CPU que execute diretamente o bytecode de uma máquina virtual conhecida, como a JVM, e que consiga gerenciar a memória internamente. Porém os interesses comerciais certamente atrapalhariam esta evolução.

Mas qual a vantagem de se padronizar isso? A principal delas é a padronização, ou seja, praticamente acabar com o termo “multiplataforma” pois sendo assim tudo (o que é compilado em bytecode) deveria rodar em qualquer processador. Não sei se os benefícios disto seriam tão bons ao ponto de compensar os problemas que teríamos com a falta de inovação no setor de processadores. Deixando as utopias de lado, isto não é viável num mundo capitalista.

Navegadores

Com a evolução dos navegadores, puxada principalmente pelo Mozilla Firefox, a World Wide Web deixou de ser apenas um conglomerado de páginas de hipertexto, applets Java e JavaScript lento, e passou a ser uma plataforma de computação viável para aqueles aplicativos que estávamos acostumados a instalar em nossos computadores.

Hoje temos o Firefox, Safari, Chrome e Opera. Todos estes com os melhores e mais modernos recursos para possibilitar a evolução desta nova plataforma. Se a Internet fosse dominada por eles a vida de quem desenvolve para a Web seria muito mais agradável. No entanto existe uma pedra no sapato de todos que se chama Microsoft Internet Explorer. Esse software atrasado, retrógrado, que deturpa todo e qualquer padrão da Internet (leia-se: W3C, RFC, etc) – que sozinho pode ser o responsável por aumentar consideravelmente o prazo no desenvolvimento de projetos web em uma porcentagem considerável – infelizmente ainda é o navegador predominante pelo simples fato de que vêm junto com o Microsoft Windows.

A estratégia

Aí é onde entra a estratégia da Google para acabar com este legado de sites que só funcionam em Internet Explorer e deste browser que está empatando a evolução da plataforma. Além das campanhas contra o IE e do exército de navegadores competitivos, criar um sistema operacional livre do IE é a meta de algumas empresas além do Google, mas até o momento nenhuma iniciativa conseguiu desestituir este império ultrapassado. É só uma questão de tempo…

Plataforma?

Eu não pretendo entrar em detalhes sobre os benefícios das aplicações na “nuvem” ou das aplicações “online” ou chame como quiser, principalmente porque a maioria dos benefícios são possíveis sem a necessidade de um navegador como plataforma para tal. Minha indagação aqui é que estão colocando cada vez mais “responsabilidade” em cima dos navegadores e eles têm limites. É como se estivessem virando o estômago do avesso sendo a parte de fora o sistema operacional e a parte de dentro os aplicativos e navegadores.

Os navegadores até conseguem fazer isto, mas às custas de que? Cada vez necessitamos de mais processador, mais memória, só para conseguir fazer o que o coitado do Sistema Operacional já fazia antes.

A seguir uma comparação bem básica de um sistema tradicional com a tal da plataforma web, temos isto:

Arquitetura Tradicional

Arquitetura Tradicional

Arquitetura com Plataforma Web

Arquitetura com Plataforma Web

Hardware é toda parafernália eletrônica que constitui seu computador.

Kernel é o coração do sistema operacional. Muito basicamente ele é o grande maestro que controla o hardware e junto com os drivers e firmwares controla as peculiaridades de cada fabricante e modelo de componente.

Firmware é o software que acompanha o hardware. Podemos incluir aí as BIOSes, EFI, OpenFirmware, etc.

Shells são as interfaces primárias dos sistemas operacionais. Podemos incluir aí os tradicionais shells de linha de comando do Unix/Linux (bash, csh, etc) e os mais populares Windows Explorer e o Finder do Mac OS X.

Aplicativos de Sistema são os programinhas que acompanham o sistema operacional e que servem para alguma coisa mas que não são requisitos para que o sistema funcione.

Aplicativos são os softwares aplicados que normalmente não acompanham o sistema operacional. São os tais programas que as pessoas utilizam quando estão trabalhando e fazendo algo “útil” no computador. Podemos incluir aí os editores de texto, compiladores, planilhas eletrônicas, etc.

A grande diferença entre as duas arquiteturas é que na primeira os aplicativos são nativos, ou seja, são feitos para serem executados dentro de seus sistemas operacionais específicos, e na segunda os aplicativos são feitos para serem executados dentro dos navegadores, quase que independente do que tem abaixo do navegador, ou seja, o sistema operacional.

Sendo assim, não acham que as pessoas que desenvolvem os navegadores não precisam ser tão bons quanto as pessoas que desenvolvem os sistemas operacionais? Será isto é uma realidade hoje? Eu posso estar enganado, mas algo me diz que não (leia-se conhecimento tácito).

Privacidade

Minha principal preocupação a respeito desta nova plataforma é a privacidade. À medida que as pessoas e empresas tornarem os aplicativos web parte do seu dia-a-dia a empresa responsável pelo aplicativo web deterá todas as informações ali colocadas e poderá fazer o que bem entender com elas.

Em um mundo computacional cheio de big brothers qual será a moeda? Quem controlar a informação poderá controlar o mundo. E onde ficam as políticas antitrust?

Conclusão

Como mais um profissional da área eu estou bastante curioso a respeito deste sistema. Não posso dizer o mesmo por pessoas que são apenas usuários de computadores. O que isto vai mudar para elas? Tirem suas próprias conclusões e façam seus comentários… ;-)