Eclipse Tarde

Componentes: Tarcisio Silva Santos, Carlos Eduardo

eclipse_logo_30.gif

Introdução:

O desenvolvimento da linguagem Java vem sendo cada vez mais presente nos dias de hoje, principalmente no Brasil, onde muitos profissionais, cada vez mais, se voltam para essa maravilhosa linguagem.
Um dos maiores empecilhos para maioria das pessoas que começam a migrar seus programas para a linguagem Java é que sempre limitam a capacidade da construção de aplicativos para desktop com a linguagem por achá-la com poucos recursos em seu desenvolvimento, no que diz respeito a IDE´s existentes.
No Brasil, uma das ferramentas de desenvolvimento Java mais consagradas e usadas pelos desenvolvedores é a plataforma Eclipse.
É interessante dizer que a plataforma Eclipse não desenvolve somente na linguagem Java, embora a maioria das pessoas que a usam destinam seu desenvolvimento a essa linguagem.
Conheça a plataforma que está se tornando o modelo de IDE de desenvolvimento, consagrado por muitos como a próxima geração de IDE´s.


t_java_logo.jpg
O que é Java?
  • Uma das grandes revoluções no mundo do software aconteceu quando Java foi anunciado, em maio de 1995, pela empresa Sun Microsystems, no qual lançava naquele momento uma linguagem de programação que trabalhava em sites produzidos na World Wide Web.
  • O que chamava atenção nessa linguagem era o fato de que ela podia ser portável para outros sistemas operacionais. Além disso, sua fama cresceu rapidamente porque a Web como conhecemos hoje estava em ascensão, e Java possibilitava fazer diversas coisas, como animações, que até então não eram possíveis em páginas existentes na World Wide Web.
  • Seu tamanho também era um fator importante, pois depois de instalado uma máquina virtual em sua máquina, os arquivos Applet, como são conhecidos até hoje, eram pequenos assim como a velocidade de transmissão na época, o que facilitava a visualização desses aplicativos.
  • O tempo passou, e em um mundo em constante mutação, Java evoluiu, e deixou de ser simples “programinhas” para a Web e se transformou em uma linguagem de programação robusta e complexa.
  • O Java nos dias de hoje é utilizado por grandes bancos, pois fornece extrema segurança, é utilizada por grandes empresas que desejam trafegar uma grande quantidade de dados e necessita de estabilidade e portabilidade entre outras empresas.
  • Milhões de pessoas já aprenderam essa linguagem e estão usando em lugares como a NASA, IBM ESPN entre outros.
  • As variações de formas e sistemas criados em Java são imensos. Você encontra Java em: Servidores Web, bancos de dados relacionais, computadores de grande porte, telefones móveis, sistemas de cartão de crédito entre outros, e etc.

Conhecendo o Eclipse:

O Eclipse é uma IDE de desenvolvimento de programação, inicialmente desenvolvida pela IBM, que, segundo notícias, gastou mais de 40 milhões de dólares no seu desenvolvimento antes de transformar essa ferramenta em Open Source para um consórcio, chamado de Eclipse.org, que inicialmente incluiu a Borland, IBM, Merant, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft, e Webgain.
Outras companhias se uniram desde então e algumas também grandiosas como Hewlett Packard, Fujitsu, Oracle e Sybase. No entanto, a IBM continua encabeçando o desenvolvimento do Eclipse por sua subsidiária, Object Technologies International (OTI), com a equipe que iniciou seu desenvolvimento.
OTI é uma empresa que desenvolve ferramentas de desenvolvimento de objetos orientados, com uma história que nos leva à 1988, quando a escolha da linguagem de orientação a objetos era Smalltalk. OTI foi adquirida pela IBM em 1996, onde a IBM adquiria força em seu ambiente de desenvolvimento de orientação ao objeto chamado Visual Age.
Muitos conceitos utilizados pioneiramente em Smalltalk foram aplicados em Java, fazendo da ferramenta Visual Age for Java (VA4J) um ambiente sem igual.
Eclipse é essencialmente uma linguagem reescrita de VA4J em Java.
O Eclipse em si fornece apenas o ambiente integrado para execução dos plug-ins e uns poucos plug-ins básicos, como editor de textos ASCII, sistema de ajuda e integração ao CVS (controle de versão). Para iniciar o desenvolvimento, em qualquer linguagem que seja, devem ser instalados plug-ins adicionais.
Isso quer dizer que em si, o Eclipse não desenvolve apenas sistemas na linguagem Java, mas sim em qualquer linguagem que você queira desde que esta tenha um plug-in de desenvolvimento para ela, e se não houver, você mesmo poderá desenvolver, se quiser.

A arquitetura do Eclipse:

Além da pequena runtime, a plataforma do Eclipse consiste do Workbench, workspace, help, e um time de componentes. Outros plug-ins se ajustam ao framework básico necessário para a criação de uma aplicação usável.
Eclipse Platform arquitectura
fig2.jpg

O workspace:

O workspace é responsável por administrar os recursos do usuário que são organizados em um ou mais projetos. Cada projeto corresponde a um subdiretório do diretório de workspace do Eclipse. Cada projeto pode conter arquivos e diretórios; normalmente cada diretório corresponde a um subdiretório do diretório do projeto, mas um diretório também pode ser unido a um diretório em qualquer lugar no sistema.

O Workbench:

O Workbench é a interface gráfica do usuário do Eclipse. Além de exibir os familiares menus e caixas de ferramentas, é organizado em perspectivas que contém visões e editores. Uma das características notáveis do Workbench, diferente da maioria das aplicações Java, o look and feel é como uma aplicação nativa. Isso ocorre porque ele foi construído usando Eclipse’s Standard Widget Toolkit(SWT) e JFace, um toolkit Java, como AWT e Swing, que emula o ambiente gráfico nativo, o SWT mapeia diretamente os gráficos nativos do sistema operacional.
SWT é um dos aspectos mais controversos do Eclipse, porque SWT deve ser portado para cada plataforma que suporta o Eclipse. Isso não chega a ser um problema, porque SWT já foi portado às plataformas mais populares(incluindo Windows, Linux/Motif, Linux/GTK2, Solaris, QNX, AIX, HP-UX, e Mac OS X).
É importante salientar que o Eclipse não o força a trabalhar com o seu Toolkit, a menos que você queira fazer plug-ins, você pode continuar programando em AWT e Swing normalmente, quando se tratar de programar em Java, é claro.

Team Support:

O plug-in team support facilita o uso do controle da versão (ou configuração administrativa) do sistema para administrar os recursos no projeto do usuário e define o workflow necessário para salvar e recuperar um repositório. A Plataforma Eclipse inclui um cliente para um Sistema de Versões Simultâneas(Concurrent Versions System-CVS).

Help:

Como a própria plataforma de Eclipse, o componente de ajuda é um sistema de documentação extensível. Ferramentas podem adicionar documentação em formato HTML e, usando XML, defini-se uma estrutura de navegação. Refletindo o modo como plug-ins se conectam com outros plug-ins, ferramentas de documentação podem inserir tópicos em uma árvore de tópico preexistente.

Multiplataforma, Linguagens de Programação e Idioma:

Embora a Plataforma Eclipse seja escrita na linguagem Java e seu uso mais popular é como sendo um IDE Java, o Eclipse é neutro em linguagem de desenvolvimento. O que o torna mais atraído por desenvolvedores Java é por parte devido aos seus inúmeros plug-ins voltados para essa linguagem, mas com plug-ins adicionais, você pode programar em outras linguagens como C/C++, Cobol e até mesmo C#.
Eclipse também é neutro com respeito ao idioma. Da mesma forma que você pode dar a plataforma a capacidade de programar em outra linguagem de programação, com plug-ins você também pode alterar o idioma nativo. A IBM doou um pacote de idiomas que suporta o chinês (tradicional e simplificado), francês, alemão, italiano, japonês, coreano, português (brasileiro) e espanhol.

Conhecendo a interface do Eclipse:

Quando a plataforma Eclipse foi desenvolvida, seu time de desenvolvedores criaram novas bibliotecas de interface gráfica de usuário (GUI): SWT e JFace. Embora o Eclipse seja totalmente dependente dessas bibliotecas , nem SWT e nem JFace depende do Eclipse. Isso quer dizer que desenvolvedores podem usar essas bibliotecas livremente para criar suas próprias aplicações.

swtcompjfacefig02.JPG

Mas o que é SWT e JFace?

São bibliotecas que contém pacotes de classes Java e interfaces. Mas o que torna esses componentes tão importantes são a sua capacidade de desenvolver GUI´s. Mas não é só isso. Enquanto as bibliotecas GUI´s de Java são consideravelmente lentas, pois assumem toda a interface trabalhando diretamente com o framework Java, as bibliotecas SWT e JFace assumem a interface do sistema operacional que a rodam. Com isso, seus códigos se tornam mais rápidos para rodarem no seu sistema operacional que o está executando. É claro que por se tratar de bibliotecas diferentes, você terá que também conhecer sua sintaxe.

SWT

Quando a equipe de desenvolvedores resolveu criar o Eclipse, descobriram que as bibliotecas Swing e AWT eram inadequadas ao desenvolvimento de aplicações comerciais, por isso resolveram criar um novo toolkit para desenvolver a GUI do Eclipse. Eles chamaram esse novo toolkit de Widget Toolkit Standard (SWT). Reconhecendo que o desempenho nativo é muito importante, os desenvolvedores do Eclipse adotaram uma arquitetura semelhante à biblioteca Java AWT, originada das bibliotecas encontradas no VisualAge SmallTalk.
Todo sistema operacional contém vários componentes que compõe sua interface de usuário. Estes componentes incluem botões, janelas, menus e tudo o que você vê em sua tela de computador. A meta do SWT é dar ao programador Java acesso direto a estes componentes de forma que você possa configurar e posicionar estes componentes da forma que desejar. E o que é mais importante, é multiplataforma.
A biblioteca SWT foi liberada em 2001, junto com o Ambiente Integrado de Desenvolvimento (IDE) do Eclipse, o que significa que ele é código livre.

JFace

SWT tem muitos itens para construir uma interface de usuário, mas como você verá, o código pode ficar longo e complexo. Por isto, os desenvolvedores do Eclipse construíram uma segunda biblioteca para desenvolvimento GUI, chamada de JFace.
Essa biblioteca contém atalhos em muitas tarefas que usando o SWT consumiriam muito tempo de desenvolvimento. Mas JFace não é uma substituição a biblioteca SWT e muitos GUI´s dependerão dessas duas ferramentas. A maior eficiência do JFace está em eventos do usuário, como cliques em botões ou seleções de itens no menu. Em SWT, cada evento precisa ser recebido e controlado separadamente. JFace permite a você combinar tudo em um só evento, assim você pode se concentrar na resposta do evento, ao invés de também saber qual o componente que o chamou. Esse conceito simples, mas poderoso, torna possível que você acrescente menus de contexto, barras de ferramentas e outros componentes em suas GUI´s sem ter que digitar muito código.

Trabalhando com o Editor Visual do Eclipse:

Qualquer um que trabalhe hoje com desenvolvimento vem sempre com a mesma pergunta inicial: onde eu desenvolvo o programa de forma visual?
Isso acontece porque muitas outras ferramentas fizeram uma cultura no desenvolvimento de aplicativos visuais.
Apesar de alguns entusiastas do desenvolvimento dizerem que a parte visual “suja o código”, todos concordam com uma coisa: desenvolver aplicativos em programas de edição visual é muito mais rápido e no mundo como estamos vivendo, tempo é tudo.
No fim de 2003, a equipe de desenvolvimento do Eclipse.org liberou a primeira versão (0.5) do Eclipse Visual Editor (VE) que, inicialmente só havia suporte para o design de AWT/Swing.
Nos dias de hoje, você tem o Editor Visual que tanto desenvolve em AWT/Swing com em SWT.
Uma das características principais do VE é que tem a programação de duas formas: uma que as mudanças no plano visual refletem imediatamente no código Java gerado, e outra que, mudanças no código Java é refletido no plano visual, assim que o código fonte tenha sido salvo.

Trabalhando com layouts:

Os layouts em Java são muito importantes, pois eles determinam aparência na qual seu programa vai ter.
Os programadores de outras linguagens podem estar pensando por que a linguagem Java se preocupa tanto com gerenciadores de layout. Afinal, na maioria dos programas, um gerenciador de layout nem é uma grande coisa; primeiro, você usa um editor de diálogos para arrastar e colocar seus componentes na superfície do diálogo e depois usam-se ferramentas para alinhar, espaçar e etc.
O problema dessa metodologia é que o layout resultante precisa ser manualmente refeito caso o tamanho dos componentes mude. Se você testar, não importa o sistema operacional, existem muitos programas que lidam muito mal com isso, onde se o usuário mudar até mesmo o tamanho de uma fonte no seu sistema operacional, um simples botão mal planejado pode não exibir seu texto, porque a fonte aumenta, mas o botão não.

Trabalhando com Componentes:

Introdução aos componentes da biblioteca Swing:
No inicio da linguagem Java, uma biblioteca de classes chamada de AWT(Abstract Window Toolkit – caixa de ferramentas de janelas abstratas) para programação GUI avançada, fazendo assim desde o princípio parte do JDK (Java Development Kit).
Essa biblioteca funcionava bem em aplicações mais simples, mas infelizmente ela não atendia a criação de uma interface mais complexa, rica em elementos gráficos. O pior ocorria quando menus, barras de rolagem e campos de texto, demonstravam pequenas diferenças de comportamentos em diferentes plataformas.
Em 1997, é anunciado o Java Foundation Classes, ou JFC, que substitui (e inclui) o AWT. A parte principal do JFC é o jogo novo de componentes de interface de usuário que são muito complexos, flexíveis e portáteis. Estes componentes novos são chamados de Swing.
A JFC não inclui apenas em seus recursos apenas componentes Swing, mas também uma API de acessibilidade, uma API 2D e etc.
Obs.: O Swing não é um substituto completo do AWT, só porque simplesmente fornece uma interface de usuários mais completa e complexa. A arquitetura básica do AWT ainda permanece inalterada.
Mas o que é Swing?
O Swing é o kit de ferramentas GUI que a Sun Microsystems desenvolveu para habilitar o empreendimento de desenvolver em Java. Os programadores podem usar Swing para criar amplas aplicações de Java em uma larga escala de componentes poderosos. Além disso, você pode estender facilmente ou pode modificar estes componentes para controlar seu aparecimento e comportamento.
O nome representa a escolha da colaboração de seus desenhistas quando o projeto foi elaborado em 1996. Swing é de fato parte de uma família maior de produtos Java conhecida como Java Foundation Classes (JFC), que incorporam muitas das características da Netscape Internet Foundation Classes (IFC), como também aspectos de design da divisão IBM´s Taligent e Lighthouse Design.

Eclipse JDT

O Java Development Tools ou JDT é a implementação sobre a Eclipse Platform de uma IDE Java. Ele estende a mesma com funcionalidades de edição, compilação e depuração de código Java, além de adicionar elementos gráficos específicos, como por exemplo a perspectiva Java. O JDT é a base para qualquer plug-in relacionado à programação Java.

Eclipse SDK

O Eclipse SDK é o pacote de distribuição da IDE Java. Ela contém o JDT e o PDE, que é a ferramenta usada para a criação dos plug-ins e que está disponível para o desenvolvedor final nesse pacote.

Eclipse WTP

O Web Tools Platform complementa o JDT com recursos de construção de aplicações web e J2EE. O Web Standard Tools (WST) permite a edição de recursos web como HTML, CSS, JavaScript, XML, DTD e XSD, não sendo específico ao Java e portanto podendo ser usado para programação web em geral. Já o J2EE Standard Tools (JST) estende o WST para suportar aspectos do desenvolvimento J2EE como JSPs, EJBs e Web Services.

O compilador do JDT:

A comunidade do Eclipse desenvolveu seu próprio compilador Java que possui diversas vantagens sobre o javac original provido no JDK. Ele é muito mais rápido e possui muito mais warnings, além de ser open-source, o que significa que você não vai precisar do JDK caso queira distribuir um compilador Java com sua aplicação. Além disso a compilação é incremental, ou seja, à medida que você codifica apenas as partes modificadas são recompiladas, e também parcial, isto é, você pode compilar códigos mesmo com erros (esse código gera exceções caso seja chamado).

Esse compilador é considerado uma boa alternativa ao javac padrão, caso você precise incluir um compilador no seu projeto, devido à sua licença mais flexível além da qualidade superior.

Relação com Compiladores:

A IDE Eclipse Parece com um compilador, Pois
recebe um texto fonte como entrada e caso
esse texto não esteja corretamente escrito,
não irá gerar o texto Objeto. Ele Funciona
semelhantemente como os Analisadores dos compiladores.
A facilidade que o Eclipse trás para os desenvolvedores quando
da opções para corrigir erros e complementação de codigo isso
são ferramentas que fazem parte da analise que os compiladores
fazem.

Conclusão:

O alvo da IBM com a construção do Eclipse foi criar uma plataforma de desenvolvimento baseada em plug-ins, sendo assim se uma funcionalidade não existir na IDE qualquer desenvolvedor pode Fazer um plug-in para a mesma. Logo, o Eclipse é um contêiner de plug-ins.

Referencias:

Livro Dominando Eclipse autor: Edson Gonçalves
Sites:
[http://www.ibm.com/developerworks/java/library/os-ecjdt]
[http://www.eclipse.org]

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License