Mostrando postagens com marcador sun. Mostrar todas as postagens
Mostrando postagens com marcador sun. Mostrar todas as postagens

3/31/2008

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

Então...


Vou retomar assunto com algumas características que eu não havia entrado no detalhe porque não era a hora ainda. Eu já havia dito que algumas vantagens da plataforma Java era o fato de ser orientada à objetos e ser executada em uma máquina virtual, sendo multiplataforma. Nessa época o Linux não tinha a evidência que tem hoje, por que ser multiplataforma era importante?

Como eu disse, a própria Microsoft sofria com as diferentes versões dos seus sistemas, por exemplo, o Windows 95, o 98 e o ME eram baseados no mesmo kernel e o espaço ocupado em disco foi crescendo a cada uma dessas versões: 55 MiB, 300 MiB e 400 MiB respectivamente. Não foi apenas o suporte a hardware e as melhorias da cada versão que causaram esse crescimento, também era necessário garantir que um software desenvolvido para rodar no Windows 95 fosse compatível as as demais versões. Além do kernel 9x a Microsoft também mantinha o kernel NT que sofreu do mesmo mal: o NT 3.51 ocupava 90 MiB, o NT 4.0 ocupava 110 MiB, o Windows 2000 ocupava 650 MiB, o Windows XP 1.5 GiB e o Windows Vista 15 GiB. Quando ao XP e ao Vista, o problema se repete mas vamos fazer justiça, em comparação com seus predecessores estas versões sofreram mais mudanças que as demais, fazendo que a diferença de tamanho seja mais pelas melhorias do que pela retrocompatibilidade. Mais detalhes sobre as comparações entre as versões do Windows podem ser vistas aqui.

A arquitetura da plataforma Java poderia ser uma resposta a esse problema, mas a plataforma era propriedade da Sun e a Microsoft não iria entregar o futuro do seu sistema nas mãos de um concorrente, nem a Sun iria deixar seu produto ser modificado a pela concorrência, a colisão foi inevitável. Tanto a Microsoft quando a Sun violaram um o espaço uma da outra, mas quando se trata de disputa de mercado, não é algo tão assombroso assim.

.NET Framework


A Sun queria fazer sua plataforma ser totalmente independente do sistema operacional, a Microsoft queria torná-lo mais próximo do Windows, as diferenças entre as empresas fez que a Microsoft abandonar Java. Mas fazia falta no uma boa plataforma orientada à objetos, mais segura e que pudesse disponibilizar aplicações independente de versão do Windows em que estivesse sendo executada, estas e outras características que o Visual Basic e outras linguagens que a Microsoft tinha em seu catálogo não ofereciam, ou pelo menos não completamente.

A resposta foi a criação do .NET Framework, que segundo a própria Microsoft é definido como:

A CLR (Common Language Runtime) está para o .NET Framework como a JVM esta para a plataforma Java. Do ponto de vista do desenvolvedor, para uma aplicação .NET o sistema operacional é o Framework (se a aplicação for construída apenas com bibliotecas .NET). O .NET Framework é independente de linguagem, na verdade funciona assim: ao se compilar um código, o compilador não gera um arquivo binário (que seria executado nativamente pelo S.O. instalado na máquina), o compilador converte o código (VB, C#, J#, Python, etc) em um Assembly na linguagem MSIL (Microsoft Intermediate Language) e este código é o código que é executado pela CLR.

Outra grande novidade que o framework trouxe, foi a linguagem C#. A linguagem foi criada por Anders Hejlsberg, seu objetivo é ser uma linguagem simples, ela trouxe para o universos das linguagens da Microsoft muitas funcionalidades das linguagens Java e Delphi, além de incorporar outras que a diferenciavam dessas linguagens.

Ruptura cultural ou "Miolos"!


Mesmo do ponto de vista do universo Microsoft, a tecnologia .NET é um novo paradigma. E como sempre, uma mudança cultural deste porte era óbvio que encontraria resistência, mesmo entre os desenvolvedores já acostumados com as ferramentas Microsoft. Por isso era preciso uma estratégia arrojada para ganhar as mentes dos desenvolvedores (viu, sempre os desenvolvedores).

A melhor forma e ganhar o mercado é capacitar o maior número possível de desenvolvedores, e torná-los capazes de atender a grande maioria das pequenas soluções que o comércio e as empresas em geral necessitam. Uma vez que este mercado esteja inundado de aplicações .NET tem-se uma fatia de mercado, o problema é que a Microsoft não tinha apenas a Sun como concorrente, aliás, neste mercado a tecnologia da Sun seria seria a menor das suas preocupações, a maior concorrente da Microsoft neste mercado é ela mesma, pois a grande maioria das soluções deste mercado foram desenvolvidas em Visual Basic 6 e até hoje há muitas delas em produção. Para isso a Microsoft tratou de adaptar o Visual Basic para o universo .NET e assim nasceu o Visual Basic .NET.

A pergunta é, quais as ferramentas a Microsoft dispõe para ganhar os desenvolvedores?

Vou me limitar a escrever sobre as ferramentas que eu julguei estarem na base dessa estratégia.

MSDN


O que falar sobre o portal da Microsoft para desenvolvedores? O MSDN (Microsoft Developers Network) é um portal onde profissionais que atuam com as tecnologias da Microsoft podem trocar informações, publicar artigos (desde programação passando por, metodologias, qualidade de software, carreira, segurança, é possível achar artigos sobre qualquer coisa relacionada as tecnologias Microsoft), divulgar eventos e muito mais, tanta coisa que fica difícil resumir isso em um parágrafo.

O importante é destacar que é muita documentação, as vezes até ficamos um pouco perdidos, mas o fato é que é possível encontrar uma dica para quase todos os problemas que no deparamos no dia-a-dia, é impossível para um desenvolvedor que use alguma ferramenta ou linguagem da Microsoft viver sem ter acessado pelo menos uma vez na vida o MSDN.

ASP.net


O portal www.asp.net é outra excelente fonte de informação. Voltado para o desenvolvimento de tecnologias web, este portal é rico em dicas e tutoriais, com destaque especial aos vídeos da série learnvisualstudio.net, é possivel aprender a construir um pequeno site apenas seguindo as 14 vídeo-aulas disponíveis neste portal. Indispensável.

Ferramentas Express Editions


Bom, todos sabem que a Microsoft é uma empresa tradicional que trata o software como um produto a ser vendido, contudo a sua principal ferramenta de desenvolvimento é o Visual Studio, e dada a qualidade deste produto, mais a quantidade de funcionalidades, seu preço não é nada convidativo. Mas como ganhar as mentes dos jovens desenvolvedores? Dos estudantes?

Para atender a este público a gigante de Redmond "mutilou" o Visual Studio (a partir da versão 2005) e criou uma versão grátis para cada linguagem que o produto principal tem suporte, desta forma nasceu a linha Express Edition: Visual Basic Express, Visual C# Express, Visual C++ Express, Visual Web Developer Express. Eu disse "mutilou", porque há funcionalidades presentes no Visual Studio que não estão nas ferramentas Express, mas não faça julgamentos precipitados, mesmo sem todas as funções do "pai" as ferramentas Express formam um poderoso conjunto de ferramentas para os desenvolvedores iniciantes.

Mas uma aplicação de verdade não é nada sem um banco de dados. O Microsoft SQL Server 2000 já possuía uma versão grátis reduzida que se chamava MSDE (Microsoft SQL Server Desktop Engine, e não, eu não esqueci de um S na sigla), contudo esta versão era muito limitada, sendo muito pouco utilizada. Com o lançamento da versão 2005 do seu banco de dados a Microsoft lançou SQL Server 2005 Express, apesar de ter algumas limitações quando comparada com a versão completa, esta versão possibilita o desenvolvimento de uma aplicação comercial, totalmente funcional, sem custo.

Aliás, é importante destacar que a licença de todas as ferramentas Express, pertmitem que os desenvolvedores que as utilizarem vender seus produtos e serviços, desde que não se este não desenvolva plugins, extenções ou qualquer coisa que modifique ou adicione funções as ferramentas Express.

Do que eu não falei?


Neste artigo me limitei a citar apenas as bases da estratégia da Microsoft, e com o foco nas edições 2005 dessas ferramentas. Junto com as edições 2008, a Microsoft inundou o mercado com outras ferramentas para atacar outros segmentos e outros concorrentes: Silverlight, Expression, PopFly, e tantas outras novas tecnologias. A Microsoft atua em tantas áreas que é impossivel fazer justiça em um humilde post de um blog.

E o Java?


Na próxima e última parte desde artigo volto para a Java.


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

Creative Commons License


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

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?