3/16/2008

Desenvolvedor, a Microsoft e a Sun querem seus miolos! - Parte 1

Durante a minha caminhada diária, do meu trabalho até a estação de trem eu tive um insight. A Microsoft e a Sun Microsystems querem os nossos cérebros. Não estou dizendo que estas empresas são administradas por zumbis (muito pelo contrário!), quero expor meu ponto de vista das estratégias de ambas para divulgação ou evangelização (não gosto muito deste termo, mas é o que as próprias empresas usam) das suas plataforma de desenvolvimento de software.

A princípio era um texto único, mas eu me empolguei e começou a ficar muito grande então eu vou quebrá-lo em partes. Outra coisa importante de se destacar, todo este histórico que eu estou montando tem como fonte a Wikipedia, não posso me garantir que esteja tudo 100% correto, mas garanto que tento não ser tendencioso e estou procurando me ater aos fatos em si.

E o PC ganha o mundo


Vamos começar com a Microsoft, sem entrar na discussão do é melhor ou pior, vou manter o foco nos fatos. Posso dizer que a dupla PC e MS-DOS tornou os computadores acessíveis a população. Foi nesta época que surgiram os aplicativos de escritório: editores de texto, planilhas eletrônicas e pequenos bancos de dados. Estes aplicativos mudaram a forma de trabalhar da maioria dos escritórios do mundo todo. Meu primeiro contato um PC foi aos 13 anos de idade, lembro que fiz um curso onde aprendi a usar o WordStar, Lotus 123 e DBase III Plus, editor de texto, planilha eletrônica e bancos de dados respectivamente.

Obviamente o avô do Access (DBase), assim como o neto, não era adequado para gerir um negócio mais complexo como uma imobiliária, consultório médico, ou um comércio, foi para suprir essa demanda que surgiram os desenvolvedores "caseiros" (entre aspas para fazer justiça ao trabalhos desses profissionais que criaram o mercado que nos dá emprego hoje). Nessa época as linguagens mais populares eram o Clipper e Turbo Pascal, criado pela Borland. Quando chegou o Windows, esse mercado já existia e demorou um tempo até que a maioria das aplicações migrasse para o Windows, mas quando o shell gráfico da Microsoft virou sistema operacional a história mudou.

Posso dizer que parte da popularidade do Windows está ligada a evolução das IDE (Integrated Development Environment) principalmente Delphi e Visual Basic. Estas IDE possibilitaram aos "pequenos" desenvolvedores inundarem o mercado com soluções para comércio, escritórios, entre outros tipos de negócios, por considerarem as linguagens Basic e Pascal mais fáceis do que C ou C++.

A princípio esse mérito era mais do Delphi que do Visual Basic, mas na 6ª versão da IDE da Microsoft realmente se passou ser mais popular, a ter uma base instalada respeitável e mais desenvolvedores. Sendo assim, na disputa entre Borland/Delphi contra Microsoft/Visual Basic, a Microsoft saiu vitoriosa.

Agora vou dar um tempo em Microsoft, mas guarde uma informação do último parágrafo:
"...mais desenvolvedores..."

E o desenvolvedor disse: "Escreva uma vez. Execute em qualquer lugar."


Em 1991, na Sun Microsystems, nasceu o projeto Green Project com o propósito de ser o ambiente que integrasse todos os eletrodomésticos de uma casa, video-cassete , aparelho de som, geladeira, e etc. Para controlar esse ambiente James Gosling criou a linguagem Oak, uma linguagem orientada a objetos e para demonstrar essa tecnologia desenvolveram um protótipo de TV interativa chamado *7 (StarSeven). O problema era que esta tecnologia na época era impossível e o protótipo não passou disso, de um protótipo (hoje quem tem Sky, Net Digital, e até o novo padrão de TV Digital brasileiro prevê interatividade).

Pouco depois a Internet se popularizou e a interatividade imaginada para a televisão,ainda impossível na TV, passou a ser possível nos navegadores. Então James Gosling foi incumbido de adaptar a linguagem Oak a este ambiente e ela foi rebatizada de Java. No início a tecnologia Java era usada apenas para criar applets que eram inseridos nas páginas html que eram estaticas e o máximo de interatividade eram os hyperlinks. Os applets fizeram tanto sucesso que a linguagem Java se tornou extremamente popular.

Mas a grande diferença entre a linguagem Java e as demais era a JVM (Java Virtual Machine). Lembra que Java era um projeto para integrar diversos dispositivos eletrônicos? Então, para que isso fosse possível ela foi projeta para que seus aplicativos fossem executados em uma máquina virtual e esta máquina virtual é quem faria a verdadeira interação com esse equipamento ou sistema operacional do equipamento onde o software devesse funcionar. Assim, um software Java pode virtualmente ser executado em "qualquer" equipamento/sistema operacional deste que este tenha uma JVM instalada (daí o slogan da Sun: "Write once. Run everywhere." ou Escreva uma vez. Execute em qualquer lugar.).

Da Internet para as corporações


A princípio, no mundo dos desktops essa qualidade multiplataforma do Java não era essencial, mas no mundo corporativo fazia falta (a princípio, porque hoje em dia, com Linux, MacOS, BSD, entre outros SO faz falta).

Imaginem uma empresa com 30 computadores que tinham um software funcionando em DOS em cada computador, essa empresa cresceu e comprou mais 10 computadores só que estes vieram com Windows 95, o software até funcionava, mas com um ambiente bonitinho cheio de janelas e ter que usar uma janela de DOS era muito feio, imaginem... As empresas procuraram os desenvolvedores (sempre eles) pediram para criar versões dos seus softwares em janelas. Aí essa empresa comprou mais 30 licensas do Windows 95 (porque pirataria é crime) e tudo mundo ficou feliz.

Com essa nova interface acrescida das novas tecnologias de rede que haviam surgido e da produtividade da empresa que cresceu, ela resolveu comprar mais 20 computadores. O problema e foi que esses computadores vieram com o Windows NT e as empresas chamaram os desenvolvedores (olha eles de novo) para ajustar o que era necessário e como sempre eles resolveram o problema, mas dessa vez trocar as outras licenças por licenças do Windows NT ficou tão caro que não deu verba suficiente, então o trabalho dos desenvolvedores para fazer o software rodar nos dois sistemas foi muito maior. Depois vieram tantas versões do Windows e a disputa desse mercado entre o Delphi e o Visual Basic fizeram estes IDE evoluirem tanto, uma versão atrás da outra, que a possibilidade de um software multiplataforma começou a chamar a atenção. De quem? Dos desenvolvedores é claro (tá, dos clientes também afinal estas atualizações não eram de graça).

Empresas que desenvolviam soluções para o mundo corporativo começaram a oferecer soluções em Java, dessa necessidade surgiu uma variação do Java: o JEE ou Java Enterprise Edition. O JEE tinha todas as funcionalidades do Java tradicional, que foi rebatizado de Java SE (de Standard Edition) e mais algumas funcionalidades que eram necessárias ao mundo corporativo.

Quando mundos colidem


Como na grande saga dos quadrinhos da editora DC Comics, Crise nas infinitas terras, o bicho pegou quando estes mundos colidiram.

Rapidamente a plataforma Java (note, não estou mais me referindo a Java como liguagem aqui, como plataforma de desenvolvimento) se tornou muito popular no mercado corporativo e a Microsoft que nunca dormiu no ponto (e não dorme até hoje, a interoperabilidade recém anunciada é prova disso, mas depois eu comento minha opinião sobre isso) e resolveu criar sua própria versão da JVM a MSJVM.

No começo a Sun não se importou, afinal era o maior fornecedor de sistemas operacionais do mundo dando suporte a sua tecnologia, mas conforme a plataforma Java ia crescendo ela foi ficando cada vez mais independente do sistema operacional e isso para a Microsoft não era bom negócio. Nesta época os ambientes de desenvolvimento da Microsoft não eram integrados como o Visual Studio é atualmente e para cada linguagem que a Microsoft suportava havia um IDE diferente, o IDE da Microsoft para Java se chamava Microsoft Visual J++, essa IDE era totalmente integrada a API do Windows e esse pequeno diferencial fazia com quem softwares Java desenvolvidos com J++ não eram compatíveis com a JVM da Sun e por isso não eram multiplataforma. Um dos pontos que a Microsoft defendia era que a JVM da Sun não tinha um suporte decente para desenhar interfaces, e olha que ela tinha razão (na época, "muita hora nessa calma").

Esta e outras divergências deram origem a uma batalha judicial entre as duas empresas, com processos de ambos os lados. O resultado foi um acordo bilionário entre as empresas. A Microsoft descontinuou sua JVM e o Windows XP foi vendido sem suporte a nativo a plataforma Java, hoje o Visual Studio até suporta a linguagem Java com o nome de J#, mas o software não é executado em uma máquina virtual Java, mas no .Net Framework.

Continua...


Bom... vou parar por aqui, mas na próxima parte vou começar falando do .Net Framework, que na minha opinião foi além de um soco no estômago da Sun Microsystems, uma evolução natural para as ferramentas de desenvolvimento da Microsoft. Calma! Calma! Não se exaltem desenvolvedores Java. Eu disse "soco no estômago" e não "golpe final", porque também vou falar sobre das respostas da Sun ao sucesso do .Net Framework.

Até o próximo post, eu dou minha palavra não demoro.



Esta obra está licenciada sob uma Licença Creative Commons.

Creative Commons License



Interessado em aprender mais sobre o Ubuntu em português?