Linguagens e Ambientes de Programação Delphi vs. Visual Basic Ricardo Pereira Nº 17505 Rui Arnaldo Costa Nº 17227 Revisto por António L. Bajuelos, Março 2003 Tópicos Evolução do Delphi Evolução do Visual Basic Delphi 2.0 vs. Visual Basic 4.0 Delphi 3.0 vs. Visual Basic 5.0 Delphi 4.0 vs. Visual Basic 6.0 Novo Delphi 5.0 Novo Visual Basic 7.0 Evolução do Delphi Modelo de Programação do Delphi Um modelo é uma colecção de padrões e de regras que nos permite descrever o comportamento de um sistema complexo sem requerer conhecimento completo do sistema. Um modelo de programação é uma colecção de regras e directrizes que descrevem as interacções entre sequência de dados e objectos: dentro de um programa, entre o programa e o sistema operacional e, entre o programa e o usuário final. Evolução do Delphi Histórico No princípio O primeiro produto comercial da Borland, lançado em 1983, era o Turbo Pascal 1.0 O Turbo Pascal para o Mac introduziu a noção de módulos de unidade compilados, que acharam o seu caminho para o mundo do DOS no Turbo Pascal 4.0 em 1987. O Turbo Pascal 5.0 viu o inicio de depuração integrada de erros. Evolução do Delphi Histórico O ínicio da POO Em 1989, o Turbo Pascal 5.5 introduziu a sintaxe e conceitos da Programação Orientada a Objectos. Em 1990, o Turbo Pascal 6.0 continha o Turbo Vision, uma arquitectura extensa de objectos para construir aplicações de DOS com interfaces de usuários com janelas e em modo de texto. Evolução do Delphi Histórico Em 1991, o Turbo Pascal para Windows (TPW) foi de encontro ao Windows 3.0 … O ano 1992 viu o lançamento do Borland Pascal 7.0, um produto enorme que incluía ferramentas para produzir aplicações de DOS, aplicações de Windows, e aplicações de modo-protegido de DOS. Evolução do Delphi Versões • • • • • Delphi 1.0 Delphi 2.0 Delphi 3.0 Delphi 4.0 Delphi 5.0 Para consulta das versões mais recentes visite o site: http://www.borland.com/delphi/ Evolução do Delphi ScreenShot Evolução do Delphi Fragmento de Programa procedure ContextMenuForFile(Folder: IShellFolder; Pidl: pItemIDList); var aContextMenu: IContextMenu; aPrgOut: Pointer; aPopup: hMenu; aCmd: Integer; t, ItemCount: integer; buf: array[0..80] of Char; begin GetCursorPos(Where); aPopup := CreatePopUpMenu; if aPopup = 0 then exit; ………………………... Evolução do Visual Basic Histórico O BASIC foi o primeiro produto a ser comercializado pela Microsoft (MS BASIC) Escrito originalmente em 1987 e unido ao Quick BASIC deu origem ao Visual BASIC (VB). A primeira versão do VB foi lançada em 1991 com a versão 1.0. Em Outubro de 1992 veio a versão 2.0. Está actualmente na versão .NET (~ versão 7.0.) Delphi 2.0 vs. Visual Basic 4.0 Delphi 2.0 Pontos Fortes • Compilador rápido • Biblioteca de classes elegante e produtiva • Ferramentas visuais • Documentação escassa • Não permite criação Pontos ActiveX Fracos • Elevado tempo de execução em bases de dados É a melhor combinação de Conclusão potência com facilidade de utilização Visual Basic 4.0 • Aprendizagem fácil, difícil de bloquear o sistema • Potentes funções de base de dados, inúmeros extras disponíveis • Ficheiros runtime de grandes dimensões: potência limitada • Desempenho fraco nas aplicações mais complexas Óptima ferramenta de utilização geral, mas usualmente não é a melhor Delphi 3.0 vs. Visual Basic 5.0 Delphi 3.0 Pontos Fortes Pontos Fracos Visual Basic 5.0 • Desenvolvimento rápido • Orientado a objectos • Rapidez na compilação • Executáveis em código nativo • Fácil para principiantes • Suporte MDB nativo para Access • Flexível e poderoso • Deficiências relativamente aos dados em formato Access: ajuda on-line medíocre • Não tem browser de classes • Ficheiros runtime grandes • Problemas de versão e disponibilização da aplicação final • Fraco tratamento de erros O melhor produto nesta Conclusão categoria Poderoso e sofisticado, mas falta-lhe a simplicidade e a fiabilidade do Visual Basic 3.0 Delphi 4.0 vs. Visual Basic 6.0 Descrição de componentes Visual Basic 6.0 Delphi 4.0 Lista de botões rádio Não Sim Lista de acções comuns Não Sim Divisor de espaços redimensionáveis (Splitter) Não Sim Barra submenu de controles (PageScroller) Não Sim Quadros de diálogo comum Sim (6) Sim (10) Internet Sim (2) Sim (26) Acesso a dados Sim (8) Sim (25) Não Sim Sim (6) Sim (23) MAPI Sim Não Série de comunicações Sim Não Informação do sistema Sim Não Aplicações multicamada DCOM/CORBA Não Sim Tomada de decisões Projecção de decisões Delphi 4.0 vs. Visual Basic 6.0 Descrição do tipo de projecto Visual Basic 6.0 Delphi 4.0 Livraria de conexão dinâmica Não Sim Controle VCL (Visual Component Library) Não Sim Aplicação DHTML Sim Não Serviço NT Não Sim Livraria ActiveX Não Sim Componente COM Não Sim Componente CORBA Não Sim http://www.microsoft.com/com/tech/com.asp Delphi 4.0 vs. Visual Basic 6.0 Interface do Ambiente Tanto o Visual Basic 6 como o Borland Delphi 4 têm ambientes de desenvolvimento baseados numa interface de última geração O Delphi tem quatro paletas de botões predefinidas, tal como o Visual Basic, mas enquanto o primeiro só tem a paleta de utilizador o segundo permite-nos criar tantas paletas novas quanto precisarmos. Visual Basic, não obstante, tem uma característica inexistente em Delphi: é possível também personalizar os menus de opções, mudar a disposição deles, adicionar e eliminar opções. Outra opção de Visual Basic com que o Delphi não conta, consiste em seleccionar o tamanho dos ícones usados nas barras de botões e outros elementos do ambiente. Delphi 4.0 vs. Visual Basic 6.0 Interface do Ambiente No caso de Delphi existe a chamada Paleta de componentes – multipágina de janela no qual se encontram mais de 170 componentes O VB tem a sua Caixa de ferramentas – é uma janela na qual só se acha os controles mais habituais, sendo necessário aceder a uma janela auxiliar toda vez que se quer um controle novo ou grupo de controles. Em Visual Basic o formulário aparece dentro de uma janela O Delphi mostra a formulário como uma janela completamente independente cujo tamanho e posição em execução será o mesmo que pode ver-se em desenho. Delphi 4.0 vs. Visual Basic 6.0 Componentes Por ser um produto de Microsoft, o Visual Basic como é lógico usa controles ActiveX, o padrão oficial da plataforma Windows. ActiveX = é o nome que a Microsoft deu a um set de "estratégicos" object-oriented programming tecnológicos e ferramentas. A tecnologia principal é o Component Object Model (COM). Por outro lado, Delphi tem uma própria chamada modelo VCL mas, em algumas ocasiões, também contempla o uso de controles ActiveX. As possibilidades de Delphi de criar servidores ou clientes de serviços na Internet ou projectar relatórios conectados a dados é muito superior às do Visual Basic. Alguns componentes de Visual Basic estão só disponíveis no módulo que está aberto. Os componentes do Delphi podem ser usados em qualquer formulário, porque estão activos. Delphi 4.0 vs. Visual Basic 6.0 Edição de código O editor de Visual Basic só pode trabalhar com um arquivo ao mesmo tempo, o que significa que teremos tantas janelas abertas quantos módulos. O editor de Delphi, pelo contrário, abre uma página nova por cada módulo que está a editar. Delphi 4.0 vs. Visual Basic 6.0 Edição de código O editor de Visual Basic tem dois menus na parte superior, um no qual é possível seleccionar um objecto, como um formulário ou um controle, e outro que é usado para seleccionar o evento. O Delphi tem uma janela, inicialmente embutida no editor de código, chamada de explorador de código. Esta janela mostra uma lista hierárquica de todos os elementos existentes no módulo actual, de classes, métodos e propriedades e até variáveis e constantes. Delphi 4.0 vs. Visual Basic 6.0 Linguagem Se há um ponto que claramente diferencia o Visual Basic do Delphi é, sem dúvida alguma, a linguagem que usam. A Linguagem usada pelo VB é BASIC (Beginner’s Allpurpose Symbolic Instruction Code), uma linguagem desenvolvida na década de sessenta por dois professores americanos, Kemeny e Kurtz, como uma versão simplificada de FORTRAN (FORmula TRANslator), que fosse mais acessível para os estudantes principiantes em computação. Delphi 4.0 vs. Visual Basic 6.0 Linguagem O Delphi usa a linguagem Pascal, desenvolvida depois do BASIC, no começo dos setenta, pelo professor Niklaus Wirth em Zurique tomando como base as linguagens ALGOL (ALGOrithms Languaje) e PL/I. O Pascal chama-se assim em memória de Blaise Pascal, considerado o inventor da primeira máquina de cálculo. Delphi 4.0 vs. Visual Basic 6.0 Linguagem O Visual Basic é uma linguagem de simples aprendizagem e, em geral, bem estruturada. A integração do Visual Basic com a tecnologia ActiveX é excelente. Para usar objectos COM simples é necessário ter as livrarias de tipos correspondentes, não existindo modo algum de criá-las desde o próprio ambiente de Visual Basic. Em Delphi há a possibilidade de definir interfaces COM directamente em Object Pascal, sem necessidade de qualquer elemento externo. Delphi 4.0 vs. Visual Basic 6.0 Depuração Em Delphi existe a possibilidade de criar pontos de paragem que agem quando se está a carregar um certo módulo ou alterar um certo facto. A modificação de valores durante a execução é possível em Delphi graças às opções Evaluate/Modify e Inspect. Em Visual Basic esta mesma tarefa realiza-se de forma simples na janela de execução. Esta janela permite executar qualquer outro código que nos interesse com algumas limitações lógicas, uma possibilidade inexistente em Delphi. Delphi 4.0 vs. Visual Basic 6.0 Depuração Outra característica exclusiva do Visual Basic, muito útil nalgumas ocasiões, é: A possibilidade de modificar o código que será executado e continuar, sem necessidade de reiniciar. Em Delphi pode modificar o código durante a depuração, mas as mudanças não têm efeito até compilar novamente e executar. Delphi 4.0 vs. Visual Basic 6.0 Acesso a dados Embora o Visual Basic ofereça diversas técnicas herdadas de versões prévias, a tecnologia preferível é a ADO (ActiveX Data Objects) e os correspondentes provedores OLE DB. O Delphi tem uma tecnologia de acesso a dados existente desde a primeira versão e que, também, é a usada por ferramentas tão famosas como o dBase ou o Paradox. Esta tecnologia, chama-se BDE (Borland Database Engine) Com o Delphi as possibilidades de conexão, acesso a tabelas, definição de consultas e edição não é menos potente que com o Visual Basic, mas é seguramente menos confortável. Delphi 4.0 vs. Visual Basic 6.0 Criação de relatórios Uma das novidades do Visual Basic é, de facto, a possibilidade de desenhar relatórios no próprio ambiente de desenvolvimento. Em Delphi os relatórios são desenhados usando os componentes Quick Reports. O Delphi conta com um número de componentes superior ao Visual Basic quando se criam relatórios. A maior especialização dos componentes de Delphi oferece uma flexibilidade maior quando se criam relatórios. Delphi 4.0 vs. Visual Basic 6.0 Aplicações Internet O Visual Basic (até a versão 6) é um ambiente realmente pobre no que concerne a possibilidades relacionadas com Internet. O Delphi está exactamente no extremo oposto ao VB Os componentes que incorporam o Delphi 4 para temas relacionados com Internet são do tipo VCL, não ActiveX, o que é uma vantagem pois é possível incorporar todos os recursos no mesmo executável ou num pacote, em vez de ter que distribuir e registar de um modo individual cada um dos componentes. Delphi 4.0 vs. Visual Basic 6.0 Integração com o sistema O Delphi tem módulos múltiplos, equivalente aos arquivos de C/C++ nos quais se encontram definidos os protótipos de praticamente toda a API do Windows. O Visual Basic não tem um mecanismo equivalente, o que significa que antes de usar uma função é necessário o Windows facilitar de antemão o protótipo que lhe corresponde. A partir do Delphi é possível usar qualquer objecto ActiveX, independentemente de ser ou não automatizável. Delphi 4.0 vs. Visual Basic 6.0 Criação e distribuição de aplicações No caso do Delphi podemos indicar se queremos que os arquivos intermédios de compilação sejam em formato DCU, habitual em Delphi, ou pelo contrário queremos arquivos OBJ com formato C/C++. No caso de Visual Basic podemos escolher entre gerar código nativo, directamente executável, ou p-code que é necessário interpretar mais tarde. Delphi 4.0 vs. Visual Basic 6.0 Criação e distribuição de aplicações A aplicação gerada por Visual Basic, com extensão EXE, poderá alojar-se em qualquer pasta do sistema do cliente. Neste caso será necessário : I. II. copiar a livraria de execução do Visual Basic para essa mesma pasta ou para a pasta de sistema do Windows. instalar e registar todos os controles ActiveX que foram usados. No caso do Delphi é bastante mais simples: I. basta gerar o arquivo EXE, que já contém tudo o necessário. O Delphi gera habitualmente um pacote de distribuição mais pequeno. Delphi 4.0 vs. Visual Basic 6.0 Características exclusivas Uma característica exclusiva de Visual possibilidade para criar aplicações DHTML Basic é a DHTML (ou Dinamic HTML) é um conjunto de tecnologias que juntas criam o dinamismo das páginas Web. Essas tecnologias são: HTML, folhas de estilo (CSS), linguagens de script (JavaScript e VBScript), layers (ou camadas) e o DOM (Document Object Model). O Visual Basic tem controles que facilitam tarefas como a obtenção de dados sobre o sistema, não existente em Delphi. Em oposição em Delphi é possível usar qualquer um dos controles de Visual Basic, basta adicioná-los à paleta de componentes O Visual Basic não pode usar os componentes de Delphi. Delphi 4.0 vs. Visual Basic 6.0 Questão de velocidade Duas ferramentas bastante diferentes na sua concepção. O Delphi usa um compilador puro com múltiplas optimizações e capaz de gerar praticamente qualquer tipo de projecto, desde um executável a uma livraria de conexão dinâmica até servidores ActiveX. O Visual Basic é uma ferramenta que usa e em grande medida depende de ActiveX. O Delphi, em geral, é várias ordens de magnitude mais rápido que Visual Basic. Delphi 4.0 vs. Visual Basic 6.0 Resumindo Visual Basic 6.0 • Linguagem mais simples que o Object Pascal; • Documentação, ajuda e ambiente mais acessíveis; • Processo de aprendizagem mais rápido; • A criação de servidores ActiveX, tanto controles como objectos automatizáveis é muito simples. Delphi 4.0 • Mais tipos de projectos; • Um número maior de tecnologias (ActiveX, VCL, objectos CORBA e aplicações Web não limitadas ao servidor IIS); • Linguagem mais estruturada e flexível; • Integração total de aplicações com o sistema. Novo Delphi 5.0 Inovações • ADO - acesso a bases de dados sem usar o BDE - muito fácil aceder a fontes de dados da Microsoft; • Novo componente visual – “moldura” (frame); • Cria aplicações em CGI, ISAPI ou NSAPI e entrega HTML dinamicamente; • Internet-Express – entrega dados a um motor de pesquisa da Internet como um pacote XML; • “attach to process” – deixa depurar um processo que já se encontra a correr; • Teamsource – controla o fluxo de trabalho e ajuda a administrar o desenvolvimento de código em paralelo; Novo Delphi 5.0 Pontos a favor: - Suporta as normas XML e HTML 4.0. - Acesso a bases de dados com tecnologia ADO - Desenvolvimento em grupo com o Teamsource. Pontos contra: - Poucas opções novas disponíveis para uma nova versão Novo Visual Basic 7.0 Alterações sintácticas - Conversão de: Variant para Object, Integer para Short, Long para Integer; - Arrays com extremos diferentes de zero; - Não são definidas propriedades por defeito. Linha de execução livre; Controle de erro estruturado; Tipo Segurança; Membros compartilhados; Inicializadores. Visual Basic vs. Delphi Fim da Apresentação