Translate this page now :



»Programação
»Programação.NET
»Banco de Dados
»Webdesign
»Office
» Certificações Microsoft 4
»Treinamentos4
»Programação 4
»Webdesign«
»Office & User Tips«
»Grupos de Usuários
»Células Acadêmicas«
intcontpiada : 118
O melhor teclado da microsoft
 
 
Faça um pequeno teste com 10 questões de VB
.:.
Teste seus conhecimentos em Visual Basic, SQL Server e ASP 3.0 com nossas provas on-line
.:.
Aprimore seus conhecimentos em programação com nosso treinamento on-line de lógica de programação
.:.
Veja nosso calendário de treinamentos
Gostou da Página?
Então

para um amigo!

Google
 
Pesquisar Dicas:

 






A Evolução e as Viradas da Tecnologia


A velocidade da evolução tecnologica da área de informática é realmente espantosa quando comparada com outras ciências. É normal que um profissional em qualquer ciência tenha que estar sempre se atualizando, mas na área de informática o rítimo destas atualizações é normalmente assustador. O rítimo das atualizações anda tão assustador que muitos profissionais se decepcionam com a área, acreditando que não está ocorrendo evolução mas sim um movimento ciclico sem nenhuma evolução.

Para não nos impressionarmos com um aparente movimento ciclico da tecnologia e com o alucinante rítimo de aprendizado imposto pelos fabricantes aos profissionais de informática devemos analisar a evolução tecnologica com uma visão um pouquinho mais ampla, olhando um período de tempo um pouquinho maior. Vamos tentar fazer isso.

Tinhamos terminais burros acessando mainframes. Os terminais não eram capazes de fazer nada, tudo tinha que ser feito no mainframe. Mas tudo com o MainFrame sempre foi complexo. Os especialistas no assunto se fechavam em grandes laboratórios de vidro se isolando das necessidades e problemas da empresa.

A decepção pela dificuldade de obter resultados do mainframe através dos homens de jaleco branco trouxe a difusão dos micros pessoais de mesa com capacidade de processamento. Aos poucos foi sendo dada preferencia a resolver pequenos problemas no próprio micro desktop, pela rapidez com que isso era possível, sem burocracia. As aplicações no desktop ficaram cada vez maiores e mais complexas. Então, neste ponto, tinhamos levado o processamento do mainframe para o desktop.

Com o aumento da complexidade começaram a surgir as pequenas redes locais e, consequentemente servidores de rede. Agora tinhamos não apenas os homens de jaleco cuidando dos mainframes mas os homens de jaleco cuidando dos servidores de rede, em geral servidores de arquivos e dados, centralizando informações que eram acessadas por inúmeros micros.

E isso não foi um movimento ciclico ? - perguntariam alguns. Afinal levamos o processamento para o client e depois acabamos levando o processamento novamente para o servidor.

Mas não podemos analisar de uma forma simplista assim. Esse "movimento evolutivo" deu a impressão de ser ciclico mas na verdade houve uma evolução. O processamento deixou de ser realizado todo no servidor, ganhamos micros inteligentes e a opção de escolher onde o processamento seria realizado. Isso foi, sem dúvida, uma evolução.

De fato, o servidor passou a funcionar como servidor de arquivos, centralizando documentos e informações, enquanto o processamento inteligente era sempre realizado no client.

Mas essa evolução trouxe alguns problemas, dois principais :

- Houve um excessivo tráfego de rede, pois com o processamento no client os dados tinham que ser transmitidos para o client para poderem ser processados lá.

- A instalação da aplicação máquina por máquina tornou-se complexa e já que a inteligencia de processamento encontrava-se no client essa necessidade era muito frequente.

Eis então que surgiram os servidores de banco de dados. Surgiram levando mais processamento para o lado do servidor, dando mais uma vez a aparencia de movimento ciclico, mas resolvendo os problemas que os micros desktop haviam trazido :

- Com parte do processamento no servidor o tráfego de rede foi reduzido, pois deixou de ser necessário que todos os dados fossem transmitidos pela rede para a máquina client.

- Com parte da inteligência no servidor a manutenção da aplicação ficou mais simples, reduzindo consideravelmente o volume de reinstalações necessárias.

Mas isso não era exatamente o que tinhamos antes com o mainframe ? Não acabamos voltando ao mesmo lugar ? - perguntariam os mais desatentos.

Claro que não ! Neste ponto ganhamos a opção de decidir o que desejávamos que fosse processado no servidor e o que deveria ser processado no client. Poderiamos sempre optar por levar ao servidor regras de negócio sistemicas ligadas as aplicações da empresa, mas para as excessões tinhamos word, excel, access, enfim, todo um poder de processamento em mãos do usuário.

Assim sendo, houve sim um aprendizado e uma evolução. A repulsa contra a experiência negativa com os mainframes nos levou a um excesso de "clientização", ou seja, levamos coisas demais para o client. Aprendemos então que isso não deveria ser feito e refizemos a seleção do que deveria ficar no client e o que deveria ficar no servidor.

Os observadores com certeza já notaram que neste ponto estamos falando do desenvolvimento client/server, com suas stored procedures, triggers, enfim, toda sua inteligencia de negócio mantida junto ao servidor de dados. Em paralelo ao surgimento do client/server outras evoluções estavam ocorrendo.

O desenvolvimento de software, que havia iniciado de forma linear, com seus montes de GOTO que tornavam o código totalmente ilegível, havia evoluido, passando pelo desenvolvimento modular, estruturado e enfim chegou na orientação a objetos. Lembro que em 1990, com meus 13 anos, fiquei fascinado ao descobrir as técnicas de orientação a objeto, achei-as fantásticas e as aplicava em experiências que fazia com Pascal 6 para DOS. Isso mesmo, o Pascal 6 para DOS já era orientado a objeto, coisa que acho que muitos não devem lembrar. Como provavelmente também não devem lembrar que a orientação a objetos trouxe junto com ela o desenvolvimento visual e isso aconteceu antes do Windows. O Visual Basic 1.0 era para ambiente DOS, desenvolvimento de forma visual para telas de texto (para os saudosistas, ele pode ser downloadeado em http://www.bufaloinfo.com.br).

Mas o desenvolvimento client/server (que inclui técnicas até hoje desconhecidas de muitos desenvolvedores) ainda estava longe de ser o ideal. Veja :

- Gerenciar regras de negócio em stored procedures é algo complexo por deixar negócio vinculado as regras de acesso a dados, em especial vinculado a um banco específico e dificultar a reutilização de código.

- O excesso de processamento de negócio no banco causa uma sobrecarga no servidor que guarda o banco de dados.

- O problema das instalações do client não foi eliminado, foi apenas minimizado.

Duas tecnologias começaram a ser aplicadas em paralelo : a web, que vinha causando uma verdadeira revolução mundial e a tecnologia de terminais. Isso mesmo, a tecnologia de terminais, tal como o terminal server.

Ambas as tecnologias trouxeram o mesmo tipo de revolta, o mesmo tipo de exclamação aos programadores : "Voltamos novamente ao tempo dos terminais burros!". Desta vez até mesmo a presença da opção de uso não era por si só capaz de explicar o retorno de uma tecnologia como os serviços de terminais.

Tive a sorte de ler um excelente artigo sobre esse tema justamente quando toda a revolta se voltava contra o terminal services. Infelizmente não lembro do autor para poder cita-lo, mas vou reproduzir um pouco do que o artigo dizia. Ele lembrava-se de épocas em que programava para MainFrame. Durante a construção do código, as vezes se arrependia de algo que tinha feito, então bastava pegar o telefone, ligar para os homens de jaleco na grande sala de vidro e pedir "Poderiam por favor voltar o backup de meu código de 20 minutos atrás ?" e lá estava o código.

Quando descemos o processamento para o client perdemos toda essa capacidade de suporte. Formatações, reinstalações, perdas de arquivos, virus, particionamentos, tudo isso se tornou rotina para usuários de micro. Não deveria. Foi um retrocesso. Então a tecnologia de terminais retornou para mais uma vez balancear as coisas. Nos manter com poder de processamento no client, que ainda podemos opcionalmente utilizar enquanto que ganhamos todo o gerenciamento do pessoal de jaleco branco quando utilizamos aplicações importantes da empresa.

Assim sendo, mais uma vez essa ida e volta entre servidor e client mais uma vez gerou sim uma evolução, mais uma evolução de nossa ciência.

Mas não foi a tecnologia de terminais que predominou, como hoje nos é óbvio. Foi a Web que predominou. Uma grande evolução tecnológica, essa inegável, correto ?

Nem tanto. Dada a inovação, a comunicação, todos ficaram tão maravilhados com as possibilidades abertas pela Web e qualquer crítico da web passou a ser de imediato apedrejado. Então vamos nos expor e que atirem as pedras aqueles que não concordarem.

Tá certo que a Web, na forma de rede, nos trouxe capacidades de comunicação e troca de informações fantásticas. Nos trouxe acesso a informações de forma fantástica. Mas será a web realmente o ambiente ideal para desenvolvimento de software ?

Como ambiente de desenvolvimento de software a web trouxe possibilidades fantásticas, que antes não haviamos conseguido obter. Veja :

- Uma total centralização e reutilização das regras de negócio. Isso não foi obtido pela web por si só, mas pela aplicação do desenvolvimento em camadas com a web, produzindo regras de negócio em componentes reutilizáveis. A famosa arquitetura Windows DNA.

- Uma total eliminação dos custos de deployment, pois tudo que era necessário para acessar a aplicação já estava lá : o browser.

E isso além de uma consequencia adicional muito agradável :

- Uma alta integração de rede permitindo a aplicação ser acessada de qualquer lugar, a qualquer hora.

Mas se existem todos estes pontos positivos, onde está o problema ?

- As misturas de linguagens e tecnologias de desenvolvimento para Web poderiam ser comparadas a metodologia de desenvolvimento modular, mas piores, pois temos uma mistura de linguagens produzindo um código "macarrão" nunca antes visto (não por mim)

- Por mais próximo que se possa chegar, o desenvolvimento web não tem os mesmos recursos que o desenvolvimento Windows, tal como drag e drop e pequenos detalhes assim.

- O tempo de desenvolvimento e manutenção aumentou consideravelmente

Desta forma, plagiando um grande nome da tecnologia nacional, "Estamos gastando mais para produzir aplicações piores!".

Na falta de opções melhores simplesmente aceitou-se essa perda no desenvolvimento, para em troca ganhar-se na distribuição do software e na alta integração dele com a web.

Então algumas coisas com relação a nova arquitetura web ficam óbvias :

- Devolvemos, sim, o processamento ao servidor

- Com isso ganhamos em distribuição e comunicação

- Perdemos em qualidade de desenvolvimento

Mais uma vez uma ida e vinda entre servidor e client gerou uma evolução mas ainda deixa claro que seria necessário evoluir mais para que tenhamos um bom ambiente de desenvolvimento de aplicações.

Neste momento surgiram duas novas e revolucionárias opções para o desenvolvimento de software : O desenvolvimento com ASP.NET e o desenvolvimento de Smart Clients.

Então, agora que chegamos ao cenário atual, vamos ver o que cada tecnologia nos tem a oferecer :

ASP.NET ...............................................................................................................................

  • Pontos Fortes

O ASP.NET trouxe para o desenvolvimento web um desenvolvimento de alto nível, largando as misturas de linguagens e os códigos "macarrão", trazendo para o ASP.NET uma grande capacidade em termos de produção e manutenção de código.

Finalmente temos o desenvolvimento orientado a objetos para Web.

  • Pontos Fracos

O ASP.NET, assim como o ASP, continua só tratando do desenvolvimento no lado do servidor. O desenvolvimento da interface gráfica do client ainda precisa de uso de código javascript, DHTML, enfim, muita codificação que, perto do desenvolvimento com ASP.NET, poderiamos classificar como sendo de "baixo nível"

  • Pontos Alternativos

A cada necessidade de código JavaScript para desenvolvimento no client pode-se optar por ao invés de simplesmente desenvolve-lo criar um custom web control. Os custom web controls tornam o desenvolvimento do javascript um desenvolvimento de alto nível, até chegar a um ponto em que os custom web controls disponíveis façam com que seja dispensável o uso de javascript, mantendo o desenvolvimento em alto nível.


Smart Clients
...............................................................................................................................

  • Pontos Fortes

Os smart client são uma grande novidade no framework .NET . Trazem a possibilidade de distribuirmos aplicações windows via HTTP. Com uma simples chamada a um executável do .NET através do browser o executável é downloadeado e executado na máquina client, iniciando ai uma instalação sobre demanda de cada parte da aplicação conforme a execução dela.

Com esse novo recurso ganhamos toda a possibilidade de excelente distribuição que a web proporciona associada a riqueza de interface e simplicidade de desenvolvimento da interface Windows.

  • Pontos Fracos

Os smart clients exigem a presença do framework .NET na máquina do usuário, o que dimuinui sua funcionalidade através da web.

  • Pontos Alternativos

O framework .NET tem sido distribuido com as novas versões do windows, em algum tempo podemos esperar te-lo instalado na grande maioria dos computadores pessoais

Agora que vimos a evolução tecnologica até o momento atual e espero ter dado a vocês uma boa visão de que o movimento evolutivo não está ciclico, mas sim ganhando novas características e experiências a cada ciclo, deixem-me ligar um pouco minha bola de cristal. Desta forma daqui a alguns anos vocês poderão pegar este meu artigo e rir um pouco das previsões que tentarei realizar aqui.

Haverá um fim para este movimento ciclico ?

Há muito tempo atrás (sou péssimo com datas, liguem não), creio que foi em meio a 1a ou a 2a guerra mundial, um funcionário de um escritório de patentes se dirigiu ao seu superior para entrar para a história com uma frase da qual rimos até hoje : "Gostaria de fechar o escritório de patentes, pois tudo o que havia para ser inventado já o foi".

Desencorajador para aqueles que estão desesperados com o rítimo de aprendizado necessário? Bem, tentemos outro ponto de vista.

Observem o Office. O office evoluiu. Evoluiu. Chegamos a um ponto em que é inegável a afirmação de que nós normalmente utilizamos apenas 10% da capacidade do Office. Está cada vez mais difícil convencer uma empresa de que ela precisa fazer upgrade de sua versão do office e que terá ganhos com isso. Neste ponto receberei as primeiras pedradas. "Mas o office 2003 está ai cheio de novidades !". Realmente. Novidades referentes a integração em rede, compartilhamento de documentos (sharepoint) e outras coisas do gênero, porque no trabalho desktop não se tem mais para onde ir.

Vamos pegar um exemplo menos complicado (acho). A orientação a objetos. Aprendi OO aos 13 anos de idade e hoje aos 26 anos, continuo usando OO e continua sendo o top em termos de metodologia de desenvolvimento. Pode ter evoluido uma coisinha aqui, outra ali, pode ainda evoluir um pouquinho aqui ou ali, mas chegou realmente ao seu top em termos tecnologicos.

Tenho a opinião que toda tecnologia pode chegar a seu "top" e quando isso acontece desvia-se para outro foco. Por exemplo, quando o desktop chegou a seu "top", desviou-se para a integração com rede e Web. Quando a Web chegar a seu "top", irá se desviar para a mobilidade. E assim por diante.

Sendo que estes "tops" ficam cada vez mais superficiais. Por que alguem que escreve cartas precisaria de uma gigantesca integração com a Web ? Por que todas as empresas precisarias de Palms e mobilidade para seus funcionários ? São questões que abrem grandes debates, mas espero ter conseguido expor esse ponto de vista.

ASP.NET x SmartClients ou ASP.NET + SmartClients
...............................................................................................................................

E ai, para onde vamos agora ?

Bem, como citei lá em cima, falta muito para que o ASP.NET seja capaz de fazer um desenvolvimento client de alto nível. Isso vai impedir a adoção do ASP.NET ? Claro que não ! Não houve perda, só ganho ! Não ganhamos tanto quanto gostariamos, mas houve um gigantesco ganho em termos de produtividade no desenvolvimento para a Web.

O que teremos agora é uma enxurrada de empresas surgindo como produtoras de componentes proprietários para suprir a brecha que foi inicialmente deixada pelo ASP.NET com relação do desenvolvimento para o client. E não estou usando minha bola de cristal para dizer isso não, essas empresas já existem e estão espalhadas aos montes pela web (visitem o endereço http://www.infragistics.com/expense/Default.aspx) e maravilhem-se com as novas possibilidades).

Agora sim, ligando a bola de cristal : Infelizmente esse tipo de empresa tem vida curta. A Microsoft, assim como todos, tem o costume de se inspirar com a experiência dos outros e agregar novas funcionalidades a seus produtos. Vi isso várias vezes com relação ao SO : Empresas ganhando dinheiro com pequenos utilitários perdiam seu filão na versão seguinte, quando aquela funcionalidade era incluida no SO. Creio já ter visto a MS matar produtos dela mesma com essa inclusão de funcionalidades no SO... Assim sendo em umas 3 ou 4 versões do VS teremos componentes poderosissimos para o desenvolvimento client com ASP.NET... A única possibilidade que vejo de sobrevivencia destas empresas é se associando a MS, entregando o produto junto com o VS, tal como o Crystal Reports, por exemplo.

E quanto aos SmartClients ? Em minha opinião quem já tinha se acostumado com o sofrimento do desenvolvimento web vai preferir migrar para o ASP.NET do que mudar de tecnologia, passando ao SmartClient. Adicione-se a isso a dificuldade de distribuição via web, devido a falta do framework tem todas as máquinas (e acho que isso demorará a ser resolvido), acredito que o smartclient só conseguirá pegar uma pequena fatia do mercado. Irá capturar em especial as empresas que ainda não haviam entrado no desenvolvimento web e irão preferir migrar suas aplicações client/server para o formato smartClient e ganhar com a capacidade de distribuição.

Como disse, estou vendo tudo isso em minha bola de cristal. Coloquem ai na agenda de vocês para relerem este texto daqui a uns 3 anos e darem boas risadas.

Evolução Afinal
...............................................................................................................................

Que atire a primeira câmera digital aqueles que não acham que poder tirar fotos, transferi-las para o notebook, inseri-las em um album na web e enviar um e-mail convidando aquela tia do interior para ver as fotos antes mesmo de ter terminado o passeio não seja uma gigantesca evolução tecnologica.

A evolução ocorreu de forma surpreendente que estão ai as editoras, produtoras de cinema e gravadoras sem saber como delinear seus negócios para o novo milênio e tentando, a todo custo e de forma totalmente ineficaz, freiar a evolução.

Só espero que não fiquemos para trás nessa história. Quando assisti ao evento sobre .NET Mobile realizado pelo Linha de Código (www.linhadecodigo.com.br), tive a certeza de que estava vendo ali o futuro. O futuro da tecnologia se tornando realidade. Mais do que nunca entendi a frase que a MS vem pregando : "Informação a qualquer hora, em qualquer lugar". Mas uma pequena lembrança me veio a mente. Alguns dias antes havia lido uma reportagem sobre a inauguração de um shopping, o primeiro shopping de um pequeno país (infelizmente não lembro qual) e que tinha a primeira escada rolante do país.

Os moradores do local iam ao shopping apenas para ficar subindo e descendo na escada rolante, deslumbrados com tamanha novidade tecnologica.

Tendo em vista que um palm hoje custa em torno de R$ 4.000,00, fiquei com a triste constatação de que daqui há alguns anos talvez sejamos nós, deslumbrados com nossa primeira "escada rolante" enquanto outros estarão lendo a notícia de nosso deslumbramento nos jornais.

Dennes Torres

Dennes Torres possui as certificações MCAD,MCSD,MCSE e MCDBA, é diretor da Búfalo Informática (www.bufaloinfo.com.br), empresa de treinamento do Rio de Janeiro e é líder do grupo de usuários DevASPNet (www.devaspnet.com.br), grupo de usuários .NET do Rio de Janeiro.





Quer saber mais?
Faça um curso na Búfalo Informática, Treinamento e Consultoria e
Prepare-se para o Mercado!
Veja o que a Búfalo tem para você.

� Búfalo Informática, Treinamento e Consultoria - Rua Álvaro Alvim, 37 Sala 920 - Cinelândia - Rio de Janeiro / RJ
Tel.: (21)2262-1368 (21) 9240-5134 (21) 9240-7281 e-Mail:
contato@bufaloinfo.com.br