02 novembro 2006

Por que a Microsoft domina o mercado

Uma série de erros históricos dos concorrentes ajudou o Windows.

Muito do monopólio da Microsoft hoje não se deve tanto à competência dela em reconhecer tendências (e aproveitá–las, com produtos e estratégias), mas à inércia dos seus concorrentes que não raro insistem em ir contra a razão ou se atacar entre si.

Claro que a conduta da empresa não é exemplar – afinal, ela foi condenada por comportamento anti–competitivo nos EUA e na União Européia e enfrenta processo semelhante na Coréia do Sul – mas nem méritos (que ela tem de sobra) nem suas práticas comerciais questionáveis (que ela também tem de sobra) podem, isoladamente ou em conjunto, explicar a completa dominação do mercado que ela tem.

▪ A Digital Research deixou de vender o CP/M pra IBM porque a esposa de Gary Kildall não quis assinar um NDA (a lenda de que ele estava pilotando seu avião e, por isso, faltou à reunião é, provavelmente, apenas lenda). Quando a IBM passou a oferecer o CPM/86 como opção ao DOS, ele era tão mais caro que ninguém comprava.

▪ A IBM deixou a Microsoft vender o DOS para outros fabricantes de computadores. O mercado de clones (que terminou por fazer a IBM desistir de fazer PCs e vender seu negócio de desktops e notebooks para a chinesa Lenovo) nasceu assim.

▪ A mesma Digital Research fez o GEM, que foi lançado antes do Windows. No entanto, era quase impossível comprá–lo – para tê–lo você tinha que comprar um produto que viesse com ele ou comprar o kit de desenvolvimento do GEM. Quem usou Ventura Publisher, usou GEM. O GEM era uma GUI tão Mac–like que fez a Apple processá–los e, para acalmar a ira dos advogados da Apple, a Digital Research teve que deixá–lo menos usável ainda do que o Windows 1. Ninguém comprou.

▪ A Lotus demorou uma eternidade para lançar uma versão gráfica do 123, anos depois do LisaCalc no Lisa, do Multiplan no Mac e do Excel no Windows mostrarem como devia ser uma planilha em um ambiente gráfico (que não mudou quase nada desde então). Quando finalmente o fez, era uma versão para o OS/2.

▪ A Borland fez quase o mesmo com o Quatro Pro. Errou um pouco menos – a versão era para Windows 3.

▪ A mesma IBM, que ajudou a Microsoft a viabilizar seus competidores, vendia micros com OS/2 mais caro do que vendia micros com Windows.

▪ Essa mesma IBM tornou quase impossível desenvolver drivers para OS/2. O kit de desenvolvimento de drivers só apareceu, nos tempos do Warp e não vinha com um compilador – que tinha que ser comprado à parte, a peso de urânio enriquecido. Provavelmente era um compilador Microsoft. O OS/2 era lindo, rápido, não travava e nem imprimia.

▪ Qualquer um podia ter lançado um ambiente de desenvolvimento integrado depois da Apple mostrar como se faz um GUI builder no Hypercard, da NeXT no Interface Builder e do Whitewater Group, no Actor – todos com excelentes linguagens por trás. Mas a Microsoft fez para o Windows o primeiro IDE com GUI builder e uma linguagem meia–boca que qualquer programador com QI de dois dígitos aprende. Isso nos condenou a viver com o VB (e programadores com QI de dois dígitos) até hoje.

▪ A Apple sempre achou que seus computadores eram tão bons, mas tão bons, que se venderiam por si. Um Macintosh, até pouco tempo atrás, era tão mais caro em relação a um PC genérico que se tornou um símbolo de status. Por muitos anos, empresas que tivessem uma rede de PCs não tinham um jeito fácil de integrar Macs a elas. E vice–versa. Até os anos do System 7, se bem me lembro, um Mac nem mesmo podia trocar disquetes com um PC. Enquanto a Apple olhava pro jeito Microsoft de partilhar arquivos e gritava “Not Invented Here”, a Microsoft fazia o Windows NT servir arquivos para redes PC e Macintosh. E funcionava.

▪ Nenhum fornecedor de Unixes proprietários tentou competir seriamente com o Windows e com o OS/2 e os preços raramente desceram das nuvens – a licença de um revoltantemente feio ambiente gráfico CDE custava um rim e um olho. Por usuário. Quando o primeiro Unix–like livre e barato apareceu (o 386/BSD), o Unix System Labs resolveu processá–los, o que deixou o produto atolado em um lamaçal jurídico por vários anos. Durante esses anos, o Linux foi construído praticamente do zero, pois não seria “seguro” usar código do BSD nele até a ação acabar. Quando ela acabou, se descobriu que, na verdade, era o Unix da USL que usava código do BSD não–creditado – violando a licença BSD, que só pede isso (que se diga que foram eles que fizeram). Isso garantiu que o OS/2 e o Windows NT não tivessem nenhum competidor de peso em plataforma x86 por vários anos.

A dominação do mercado pela Microsoft é uns 20% mérito, 30% práticas questionáveis e 50% burrice da competição.

Referência:

Créditos: Ricardo Bánffy (Engenheiro, desenvolvedor e consultor)

Python é opção para desenvolvimento Web


Desenvolvedores web giram em torno de PHP, ASP e Java, pelas muitas vantagens que oferecem. Mas há opções como Python, que oferece qualidades e está por trás de muitos sites. Conheça algumas delas.

Hoje o que mais atrai os inúmeros novos desenvolvedores é o ambiente web. Muitos por pressão do mercado, muitos por verdadeira paixão pelos conceitos que a web representa e alguns por que só conheceram o mundo construído através de interfaces web.

O grande ensinamento é que desenvolvimento web significa, necessariamente, flexibilidade e agilidade, principalmente com relação a interfaces de usuário.

Não importa quão complexo seja o sistema ou a necessidade de integração, mas as alterações de layout, design, navegação devem ser feitas de forma rápida e ágil. É preciso entender que alterações deste tipo são essenciais para o negócio.

Sendo assim ficam claros os “porquês” da preferência da maioria dos desenvolvedores web por linguagens como ASP e PHP. Apesar de todo tipo de crítica, elas representam esta agilidade.

Obviamente existem aqueles que preferem a segurança e robustez à agilidade e escolhem, na maioria dos casos, alguma solução baseada em Java. O cenário é relativamente o mesmo há alguns anos, sendo assim podemos supor que os desenvolvedores, na média, enxerguem estas como as únicas opções “aceitas” para desenvolvimento web.

Pois é, não são.

Além de PHP, ASP e Java

Ainda em meados de 2000 começou-se a falar de um tal de Zope e de uma linguagem de programação chamada Python. De início não foram levadas a sério a opção, pois o mundo se dividia na tríade composta por PHP, soluções Microsoft e Java. Por que alguém racional se aventuraria por terras desconhecidas (ou terras pouco exploradas como Perl, Ruby e até mesmo Lisp)?

Basicamente, porque eles são inovadores. Vêem o que os outros demorarão meses ou até anos para perceber, e chegam lá primeiro. Python é uma linguagem madura, está por aí há um certo tempo (foi criada em 1991) e é utilizada em projetos web sérios.

A pergunta então é: se projetos tão importantes foram desenvolvidos em Python, como esta linguagem não é tão conhecida ou divulgada como as três opções acima?

Uma simplificação da resposta poderia ser que nenhum gorila da tecnologia financia o marketing da linguagem. Não há empresas como Microsoft, Oracle, Sun ou IBM investindo para torná-la popular. Mas, como disse, seria uma simplificação, pois PHP está aí independentemente do marketing de grandes corporações. Há uma série de fatores que poderiam explicar esta falta de popularidade de Python como linguagem de programação, mas esta discussão seria longa demais para este momento.

Por outro lado os casos de sucesso de Python (e aplicações web escritas com ela) estão aí para provar que ela é uma das melhores escolhas para desenvolvedores que buscam robustez e produtividade, com facilidade de aprendizado, disponibilidade de módulos prontos para tarefas como conexão a sistemas legados, webservices, tratamento de imagem, integração com aplicativos de produtividade e com todo tipo de aplicações que você possa imaginar (o brinquedo já vem com as pilhas no pacote!).

Mas por que Python?

Você deve estar se perguntando então “Por que que eu, desenvolvedor de (coloque aqui sua linguagem favorita), deveria conhecer e utilizar Python em projetos web?”. Alguns argumentos:

  • é fácil de aprender e muito intuitiva
  • faz você ser muito produtivo - escreva menos linhas de código e tenha tempo livre para… escrever outras linhas de código ;-)
  • dificulta que você escreva códigos obscuros, impossíveis de serem mantidos
  • é multi-plataforma. Desde Mainframes até telefones celulares suportam a linguagem
  • mais robusta e segura que outras linguagens de script (como PHP)
  • mesmo sendo robusta e segura, não é tão burocrática quanto C ou Java
  • tem código aberto
  • muito importante: você conta com diversas opções para desenvolver suas aplicações

Opções? Quais opções?

Python conta hoje com ao menos quatro boas plataformas para desenvolvimento de aplicações web. Cada uma com suas características, mod_python, Django, TurboGears e Zope são escolhas seguras para qualquer desenvolvedor.

  • Mod_python é um projeto mantido pela Apache Foundation para suporte a linguagem Python como linguagem de script ao servidor Apache (assim como o mod_php ou o mod_perl)
  • Django é um framework de alto nível para desenvolvimento web, que tem como características a agilidade para o desenvolvimento de aplicações e foco no pragmatismo (não perca tempo onde não é preciso, não reescreva o mesmo código diversas vezes)
  • TurboGears é outro framework que foca, muito, em agilidade no desenvolvimento de aplicações, utilizando-se de templates e facilidades na implementação da integração com base de dados relacionais. TurboGears vem ganhando muitos fãs nos últimos anos, principalmente entre programadores que vêm de PHP ou ASP.
  • Zope é, entre estas opções, a mais conhecida e mais madura. O Zope é um servidor de aplicações (compare-o a um JBoss ou a um TomCat) que conta com uma base de dados orientada a objetos e está no mercado há pelo menos 10 anos (8 destes como software livre). Não é o ambiente mais fácil para se começar a desenvolver, mas com poucas horas de prática você já percebe a facilidade que ele proporciona. Hoje a aplicação mais conhecida escrita em Zope é um sistema de gerenciamento de conteúdo (CMS) chamado Plone, que é adotado em portais como IDGNow!, OAB/SP, Câmara dos Deputados, Portal da Presidência, Dicionário online Veja-Larousse, Free Software Foundation, entre outros.

    Casos de Python no Brasil

    São diversos os casos de utilização de Python em portais web no Brasil, citando alguns (divididos por segmento):

  • Mídia
  • Sites institucionais:
  • Terceiro setor e Organizações:
  • Educação:
  • Comunidades:
  • Governo:

Neste momento, mais importante do que os casos de sucesso é a demanda que existe por profissionais que conheçam Python. Cidades como Brasília, São Paulo, Recife e Rio de Janeiro têm um volume maior de ofertas de emprego do que profissionais qualificados. Escolher Python, se qualificar como desenvolvedor Python é neste momento, garantia de empregabilidade.

Aprofunde

Para saber mais (em português):
[1] http://www.pythonbrasil.com.br
[2] http://www.tchezope.org
[3] http://www.oturbogears.org

Para saber mais (em inglês):
[1] http://www.python.org
[2] http://www.djangoproject.com/
[3] http://www.zope.org
[4] http://www.plone.org
[5] http://www.turbogears.org

Conclusões

Visto que os profissionais da área de informática precisam ter amplo conhecimento, pois precisam fazer a diferença, conhecer o Python não é uma má idéia. Sendo assim, fica aqui o conselho de que pelo menos leiam sobre o Python para saber o que é e como migrar para ele
caso esta se torne uma realidade.

Referências:
Texto de Érico Andrei.



24 outubro 2006

Uma abordagem prática sobre Paradigmas Orientados a Objetos
por Paulo Roberto Donatilio Rego

Criada com o propósito de modelar caraterísticas do mundo real, virtualizar um objeto e simular situações peculiares ao mesmo. Os noruegueses que criaram o Simula não imaginavam, talvez, o frisson em que está hoje em dia a forma de programar concebida por eles na década de 60. O Simula foi a primeira linguagem que se propôs a utilizar essa forma de paradigma, o Paradigma Orientado a Objeto. Esse paradigma alcançou seu conceito pleno quando foi concebida a linguagem de programação conhecida como Smalltalk em 1980.

A forma de se estruturar um objeto virtual é muito similar a forma real. se um objeto fosse um veículo, suas propiedades seriam suas cararterísticas como sua cor, o tipo de roda, a marca, o modelo, etc. Agrupado a essas características também existem uma série de Funcionalidades como andar, abrir o vidro, ligar o ar condicionado, entre outras. Essas cararterísticas são oferecidas a um objeto carro e com isso esta informação ficaria armazenada. Quando concebemos um outro objeto chamado Oficina este objeto poderia fazer uso do objeto carro, e também de outros objetos como funcionários, ferramentas, trocas, etc.

Quando pensamos em Paradigmas orientados a objetos temos que ter em mente que um objeto define uma classe, por exemplo o objeto acima citado é um carro, ou seja o carro é a classe de onde se deriva o objeto, à este objeto foram atribuídas características próprias e funcionalidades, quando isto acontece diz-se que é a programação da classe. Se comparada a linguagem imperativa essas características seriam como variáveis atribuídas a um registro. e a vantagem principal de uma LOO para uma LI é a possibilidade de um melhor reaproveitamento do código. Um objeto pode ser completamente portátil bastando apenas se declarar de onde que ele veio, daí o conceito de Herança que é quando um objeto recebe cararcterísticas (propriedades e funcionalidades) que são herdadas de um outro objeto.

Se um código é criado dentro do conceito do Paradigma Orientado a Objeto deve se levar em conta que ele deve ser o máximo de portável possível, o conceito de polimorfismo caracteriza a esta portabilidade, quando um código possui esta característica ele pode ser usado em qualquer objeto sem que exista algum tipo de conflito para a execução. Um bom exemplo, seria o procedimento Clear no Delhi que e uma linguagem híbrida que possui algumas características voltadas a objeto e esta é uma delas. quando utilizado o clear a função dele é apagar o que estiver registrado no objeto se o objeto for um Tmemo, um Tedit ou um Tquery, não importa sua função é limpar o que foi escrito neste componente.

Pensar em POO é pensar atual, hoje as linguagens derivadas deste paradigmasse encontrarm no mais alto patamar de desenvolvimento. Existem muitas pesquisas e o material é extenso. Pesquisar e interagir com esse movimento é extremamente útil para aqueles que querem se manter no mercado de desenvolvimento.



Referências:

24/10/2006 - http://www.ccuec.unicamp.br/revista/infotec/artigos/leite_rahal.html

24/10/2006 - http://www.criarweb.com/artigos/215.php?manual=11

Olà pessoal! Este blog tem o intuito de ser um momento onde idéias e assuntos serão tratados. Fiquem a vontade para opinar sobre os artigos, adicionar comentários ou mesmo enviar links interessantes! Espero que gostem! Vamos tratar de assuntos sobre o mundo tecnológico que nos cerca, e falar sempre a respeito de algo útil ou ao menos interessante para nós!

Abraços a todos que vierem e boa sorte pra gente aqui!