« PodCast: Sua mãe migraria para Linux? | COCKPIT | PodCast: Desenvolvimento de Software - Orkut em Java!? Não se engane, o .NET vai bem, obrigado! »
Abandonando o Microsoft Visual Studio .NET
Por bill | julho 9, 2008
Lembro-me, como se fosse hoje, do dia em que ouvi falar do Visual Basic 6.
Estava na biblioteca da faculdade, ainda fascinado com um jogo da velha desenvolvido em Pascal que acabará de entregar como trabalho ao professor de algoritmos. Estava maravilhado com o que poderia fazer apenas usando código e raciocínio. Fuçando em vários livros, minha atenção foi chamada por um de capa azul: ‘Visual Basic 6 - Guia Completo’. Realmente eu não sabia o que significavam aquelas telinhas e botõezinhos, ainda não tinha sido contaminado pela excelente, pragmática e javaniamente mal falada ‘programação visual’! Peguei o livro emprestado, peguei um cd do até então, Microsoft Visual Studio 6 e levei pra casa. Estava trilhando um caminho sem volta e não sabia!
Bom… de lá pra cá, já se passaram alguns anos, não muitos, mas o bastante para trabalhar em vários projetos e aprender muitas coisas. Trabalhei algum tempo com o Visual Basic 6, mas fui encontrar minha verdadeira paixão tecnológica na Plataforma .NET. Iniciei meus estudos a 4 anos atrás com o Visual Studio .NET 2003 e o framework 1.1. Passei muito tempo do meu tempo extra da faculdade e trabalho estudando artigos e artigos que encontrava na internet. Tive momentos únicos como baixar e estudar toda a biblioteca de artigos do Macoratti, ler livros e livros de ASP.NET, realizar todas as provas do MSDN 5 Estrelas( aquilo é uma bobagem) e a cada lançamento de framework ficar ansioso por novas funções, métodos, bibliotecas e metodologias de fazer, de forma diferente, o que eu sempre fiz com o Pascal, ingênuo, inventar com código e raciocínio.
É engraçado, hoje percebo, que a verdadeira qualidade na construção de código só pode ser adquirida e empregada quando você adquire um bom grau de expertise na ferramenta que usa. E isso eu aprendi de forma empírica. Foi graças ao C#, e não ao acadêmico Java, que eu adquiri conceitos de OO e Arquitetura de Código, e mais tarde os apliquei ao VB.NET, o qual muitos ainda, pela mesma ingenuidade que sofri na época do Pascal tem receio de chamar ‘Orientado a Objetos’.
Programação WEB com o ASP.NET, Desktop com o Win32 e WPF, para dispositivos móveis no Windows Mobile, plataforma XNA para os Jogos, Robotics para Lego, tecnologias ASP.NET AJax (saudade do ATLAS), CSS, HTML, XML, XAML, JavaScript, Expressões Regulares, Framework CE, IIS, linguagens C#, VB.NET, conceitos empregados pela System.Data, programação rápida com a fantástica Class Lybrary, XML WebServices, conceitos RAD de MasterPage, WebParts, UserControls, WindowsControls, References, imports/using/extends/inherits e tantas outra palavras reservadas (SET() e GET() eu amo vocês), sinto tanta falta dos ‘namespaces’. Minhas janelas Solution Explorer, ToolBox, Server Explorer, DataSets Tipados, a integração com o SQL Server. Ai Deus.. como o BreackPoint faz falta, achava que debug passo-a-passo era uma coisa comum. Enfim… são tantos os ‘conceitos’, termos e tecnologias empregadas que é humanamente impossível conhecer e aplicar toda a plataforma .NET em sua total abrangência. A integração de tantas tecnologias em um só ambiente traz poder e principalmente necessidade de respeito a toda a tecnologia de construção de software .NET.
Bem, saudosismo e admiração a parte, há 8 meses não uso mais o Visual Studio e seus fantásticos, incríveis, estupendos recursos. Sempre quis trabalhar o tempo todo com .NET, no entanto, na empresa em que trabalho tive a necessidade de trilhar novos caminhos e assim, venho trabalhando com PHP 5, PostGreSQL 8.2 e Apache. Tecnologias open-source, famosas, amplamente adotadas e diferentes das produzidas nos laboratórios da Microsoft.
Migrar para um novo banco de dados do ponto de vista de DBA de bases modestas, como as que lido e construo na empresa, não é algo difícil. Meus bancos dificilmente ultrapassam 50 tabelas. Na verdade, para falar de SQL Server X PostgreSQL eu não sou a pessoa mais indicada, os leitores, em sua grande maioria, esperam considerações técnicas. Sinto desapontá-los, mas não sou um DBA com o peso da palavra, tenho bons conhecimentos de vários bancos de dados, mas não sou um DBA. E do ponto de vista do programador que sou… considero o PostgreSQL simplesmente fascinante, os conceitos de ’squema’ empregam muita organização nas tabelas e tenho usado esse recurso amplamente. Os variados tipos de dados e a forma como o Postgres lida com a segurança de usuários também me chamaram bastante atenção. Usaria este banco para qualquer coisa daqui pra frente, vejo a vantagem do custo especialmente atraente neste caso, visto que já desenvolvi sistemas em que precisei adotar o SQL Server 2005 Express Edition. Nunca esbarrei nas limitações dessa versão do SQL Server, mas mesmo assim, a paz de espírito existente no fato de que você tem o banco de dados com todos os recursos pelo custo zero no servidor da sua página de internet ou do seu sistema local é algo que realmente desperta apego no desenvolvedor. Gostei do PostgreSQL.
Quanto ao PHP, neste caso especial, existe uma grandiosa diferença: Eu não migrei apenas de linguagem, abandonei uma plataforma inteira de recursos integrados. Tentando executar uma equivalência com o .NET, considero muito maior a curva de aprendizagem quando é desejado empregar o PHP com um Framework, uma boa IDE, com a mesma estrutura provida para páginas ASP.NET e tantas outras características únicas do framework .NET e seus focos diferenciados para projetos console, web, desktop e móvel (evidentemente a programação Desktop com PHPGTK é muito pouco similar a construção WEB com a linguagem). Assim minha migração, o contorno dessa curva de aprendizado feito por mim foi um processo um pouco longo.
Em primeiro lugar, senti falta do framework, da class library e dos componentes. Até que eu descobrisse a ‘prototype’(http://www.prototypejs.org/) e suas funções integradas com algumas classes mineradas na WEB, tive muito trabalho. Vivi um calvário até encontrar algum similar ao DataGridView e outros componentes. Obtive como solução depois de grande procura um pequeno, freeware e construido em javascript, conjunto de componentes chamados DHTMLX Controls(http://dhtmlx.com). Tenho observado que a organização do código quase sempre se torna difícil, pois são muitos repositórios de diferentes fontes, uma colcha de retalhos que se forma na construção de cada sistema WEB. Tenho considerado essa a única sistemática de construção de aplicativos WEB com PHP, ou pelo menos, fora do ambiente do Visual Studio .NET, onde tinha tudo de forma integrada e acessível.
Ao nível de linguagem, mesmo que menos dificultoso, tive um maior trabalho na tarefa de como moldar uma estrutura orientada, MVC, com poucos arquivos e cada um destes arquivos tematizados por proposta. Como que simulando a página ASP.NET de visualização, a folha de código gerenciado(code-behind), a class library com classes prontas para utilização e toda a estrutura otimizada de código orientado que, antes, eu criava em C#. Tudo isso… tentei imitar no PHP.. o resultado foi o diagrama a seguir:
Clique sobre a imagem para visualizar melhor
Poderia explanar mais sobre as mirabolantes teorias de projeto e padrões que venho pensando pro PHP, mas mesmo assim, sinto muita falta de recursos que considero essenciais no PHP 5 para orientar objetos. Só para controle de visibilidade em classes no C# tenho pelo menos 6 palavras reservadas, no PHP não é bem assim. Sinto falta até das palavras reservadas Set e Get, facilitam e muito a construção de propriedades. Não gosto da tipagem dinâmica de dados do PHP, gosto de compilar em tempo de projeto o meu código e ver se por acaso estou atribuindo Strings a Inteiros, a compilação de código WEB do .NET é um recurso interessante frente a interpretação do PHP e ajuda a programação das IDEs para debugar e gerenciar código fonte que o mesmo seja posto a prova. Ou seja, segurança no desenvolvimento e prevenção de erros. A aplicação de alguns padrões de projeto como Façade, Factory e Adapter tem sido vantajosos nessa estrutura que adotei pra programação PHP, mas enfim.. prefiro o C# pela simples idéia de que ele foi realmente construido para aquilo. Como já disse, sempre considero muito o fator ‘paz de espírito’.. pode ser muito subjetivo para os ouvidos de alguns, mas gosto de sentir firmeza quando estou programando.. e isso por parte da ferramenta, creio que isso advenha da falta de IDE para PHP. Não se assuste com a minha expressão ‘falta de IDE’. Se você não programou dentro do Visual Studio .NET você não entenderá o que eu quis dizer. Testei várias e várias IDEs para PHP, muitas são legais, tem recursos interessantes, mas não vi nenhuma, pelo menos para mim, que se quer chegue perto do Visual Studio. Num próximo post quero escrever sobre minhas impressões a cerca de todas as IDEs que testei, mas já deixo dito que tenho usado o Dreamweaver para construção visual e o Zend Studio para construção de código executável.
Bem… são muitas as impressões no âmbito de desenvolvimento de software, espero que este post introdutório e enorme sobre este assunto não tenha cansado a mente dos leitores da nave. Com certeza quero postar mais sobre isso. Pois não só tenho gostado das ferramentas open-source para desenvolvimento como as tenho usado efetivamente.
Abraço a todos e tenham um bom fim de semana.
Tópicos: Personagens |






