domingo, 26 de julho de 2009

Vantagens e Desvantagens JAVA

Quais são as vantagens de se usar a Linguagem de Programação Java e quais são as suas desvantagens também. Vamos começar citando os contras, logo depois citaremos os prós!

Desvantagens:

A pré-compilação exige tempo, o que faz com que programas Java demorem um tempo significativamente maior para começarem a funcionar. Isso não é um grande problema para programas que rodam em servidores. No entanto isso pode ser bastante indesejável para computadores pessoais.

O padrão Java tem uma especificação rígida de como devem funcionar os tipos numéricos. Essa especificação não condiz com a implementação de pontos flutuantes na maioria dos processadores o que faz com que o Java seja significativamente mais lento para aplicações que utilizem bastante processamento numérico quando comparado a outras linguagens.

Os bytecodes produzidos pelos compiladores Java podem ser usados num processo de engenharia reversa para a recuperação do programa-fonte original. Esta é uma característica que atinge em menor grau todas as linguagens compiladas.

Lembrando que as desvantagens de Java em relação à performance não significam que suas aplicações sejam lentas ao ponto de não serem viáveis para utilização em desktops. Java hoje já possui um desempenho próximo do C++. A grande diferença na performance das aplicações escritas em Java em relação as outras linguagens pré-compiladas se dá no “Start” da aplicação, quando ocorre a geração dos bytecodes.

Entretanto Java não suporta herança múltipla de implementação e nem aritmética de ponteiros, que são aceitos em C++, isso tem um pequeno e importante impacto na produtividade do programador.

Vantagens:

A tecnologia Java é Free, o custo quase totalmente zero, como já foi explicado anteriormente, os editores e ambientes de produção também são gratuitos (NetBeans, Eclipse, Jcreator, entre outros.) e ainda tem a gratuidade dos Servidores de Aplicação (TomCat, Jboss, Jetty e outros.).

A Linguagem é Orientada a Objetos (OO), segue o paradigma OO, o que a torna uma ferramenta extremamente poderosa. E é também Multi-Threaded, o que significa dizer que ela suporta processamento paralelo múltiplo.

Possui portabilidade, onde o mesmo código Java roda em diversas plataformas sem a necessidade de alteração de código e as aplicações podem ser facilmente migradas entre servidores. Tornado desnecessário ficar preso a somente um fabricante.

Java é padronizada e mantida pela JCP (Java Community Process)‏. A JCP é mantida por diversas empresas: Sun, Oracle, IBM, Novell, Xerox.

Pelo fato de Java ser OO, é possível fazer reuso de código já produzido.

E o suporte dado a Tecnologia Java é satisfatório, pois a comunidade Java, hoje, é a mais extensa. Existem inúmeros JUGs (Java User Groups), que promovem eventos, disponibilizam material, artigos, revistas especializadas e fórum de discussoões.

E ainda é possível graças a otimizações como a compilação especulativa, que aproveita o tempo ocioso do processador para pré-compilar bytecode para código nativo. Outros mecanismos ainda mais elaborados como o HotSpot da Sun, que guarda informações disponíveis somente em tempo de execução para otimizar o funcionamento da JVM, isso possibilita que a JVM vá “aprendendo” e melhorando seu desempenho. Isto é uma realidade tão presente que hoje é fácil encontrar programas corporativos e de missão crítica usando tecnologia Java. No Brasil, por exemplo, a maioria dos Bancos utiliza a tecnologia Java para construir seus home banks, que são acessados por milhares de usuários diariamente. Grandes sites como o eBay utilizam Java para garantir alta performance. E a cada ano Java tem se tornado mais rápido, na medida em que se evolui o compilador dinâmico.

Como resultado da diferença entre vantagens e desvantagens, é possível dizer que as vantagens são muito maiores, por tanto, o uso da Tecnologia Java continuará crescendo estromboticamente por todo mundo.

Textos originais retirados de:http://blogetilico.wordpress.com/2007/03/20/java-conceitos-basicos-primeira-parte e www.inpe.br/twiki/bin/viewfile/Competencia/SunInpe?rev=1;filename=Aula-01-Leonardo%5B1%5D.ppt

quinta-feira, 2 de julho de 2009

Princípios da Oracle

Princípios da empresa orientada pelas informações
Ao seguir estes três princípios, a Oracle economizou mais de 1 bilhão de dólares em custos operacionais – até agora. Com estes princípios, que estão incorporados ao projeto do nosso software, coordenamos e agilizamos todos os nossos processos de negócios em todo o mundo.

Simplifique
Acelere a disponibilidade de informações com sistemas integrados e um único banco de dados.
A melhor maneira de simplificar os sistemas de TI – e as operações de negócios – é consolidar as informações. As empresas precisam saber como está sua cadeia de suprimentos, a velocidade com que o estoque gira, o que os concorrentes estão fazendo e em que direção seguem os mercados. Agora. Não no próximo trimestre. Elas precisam de acesso instantâneo a informações precisas e consolidadas para cumprir as exigências legais e regulamentares de responsabilidade e gestão do desempenho corporativo. Para obter essa visão completa de seus clientes e negócios, as empresas precisam simplificar. Todos os sistemas precisam estar conectados e todos os aplicativos de negócios devem compartilhar um único banco de dados de clientes, produtos, informações de serviços e muito mais.
A Oracle Information Architecture consolida todas as informações organizacionais em um único banco de dados para a obtenção de uma visão clara e precisa de cada cliente, cada produto e serviço, cada transação. Uma parte essencial do Oracle Information Architecture é o Oracle Data Hub, que sincroniza dados de produtos de terceiros e de software Oracle em uma definição comum para a empresa inteira – ou seja, uma única fonte de dados.
E no data center, o Oracle Enterprise Manager fornece uma visão global dos sistemas da empresa e permite que seus funcionários entrem em qualquer nível de detalhe que for necessário. As empresas podem centralizar seus aplicativos e informações em menos data centers, melhorando a eficiência e alcançando uma economia significativa.
Agora as empresas podem obter informações—sobre seus negócios e seus sistemas – sob demanda e saber que são precisas e atualizadas. Simples.

Padronize
Reduza os custos e os ciclos de manutenção com componentes abertos e facilmente disponíveis.
Uma infra-estrutura de informação pode se conectar a todos os aspectos de uma empresa – do atendimento ao cliente e a manufatura aos recursos humanos e contas a pagar. A compatibilidade de todos os componentes de TI é fundamental, pois permite que as organizações compartilhem dados entre seus sistemas, no front e no back office.
A padronização de servidores, software e armazenamento baixa significativamente os custos de implementação, manutenção, atualização e treinamento. Por exemplo, processadores Intel ou AMD de baixo custo oferecem os benefícios dos processadores proprietários por uma fração dos custos tradicionais de hardware. O Linux e o Microsoft Windows são sistemas operacionais econômicos e preparados para uso empresarial.
O Oracle Information Architecture é composto por tecnologias integradas e baseadas em padrões para infra-estrutura e aplicativos. O uso de componentes abertos e prontamente disponíveis tanto quanto possível reduz custos, agiliza o gerenciamento e a manutenção, e aumenta a capacidade de adaptação. Além disso, com sistemas e aplicativos padronizados, fica mais fácil agilizar e reproduzir o treinamento, reduzindo ainda mais os custos.

Automatize
Melhore a eficiência operacional com tecnologia e melhores práticas.
O que distingue os aplicativos da Era da Informação dos modelos anteriores é um nível muito superior de automação. A cada lançamento de cada produto, a Oracle oferece mais automação para assegurar que os clientes possam se concentrar no que é crítico para seus negócios em vez do que é crítico para manter seu software funcionando.
O software Oracle inclui recursos de gerenciamento que eliminam muitas das dores de cabeça operacionais do dia-a-dia associadas à manutenção de data centers complexos. O Oracle Enterprise Manager permite aos clientes gerenciar todo o seu software Oracle a partir de um único console. Instalação de software, aplicação de correções, upgrades, balanceamento de carga de trabalho, segurança e muito mais podem ser feitos de forma centralizada. Ou seja, as organizações podem gerenciar toda a sua infra-estrutura como um grande sistema de computação. É possível manter até o maior data center de grid com apenas um ou poucos administradores.
O Oracle E-Business Suite é um conjunto de aplicativos projetados para trabalharem juntos. Os aplicativos da Oracle suportam os fluxos de negócios de ponta a ponta e permitem que as organizações operem todos os seus negócios com um único repositório de dados global. A suíte oferece processos configuráveis e automatizados que se baseiam no fluxo de informações através de vínculos naturais entre as atividades e os objetivos. Um fluxo de negócios pré-integrado, como o das compras ao pagamento, é mais rápido de ser implementado, atinge o ROI mais rápido e baixa os custos gerais de gerenciamento e manutenção associados à implementação de aplicativos individuais. E ao configurar o fluxo em vez de personalizar o aplicativo, os clientes se beneficiam com a redução dos custos de manutenção e atualização do software.

Conclusão
Acreditamos que nossos clientes extraiam mais de suas informações ao usar o software e os serviços da Oracle, aplicando esses princípios. Muitos já melhoraram sua capacidade de usar a informação e a TI como ativos estratégicos e já são capazes de compartilhar dados e processos, medir resultados para aprimoramento contínuo, alinhar suas equipes e oferecer uma única fonte de dados para todos os seus integrantes.

terça-feira, 16 de junho de 2009

Delphi

O Delphi é um outro ambiente integrado de desenvolvimento antigamente produzido pela Borlando, atualmente quem o produz é a Embarcadero. Sua linguagem é o Object Pascal, a mesma utilizada pelo Turbo Pascal.


Inicialmente foi desenhado para a plataforma Windows, posteriormente ganhou uma versão também para Linux lançada em 2001, chamada de Kylix com as mesmas funcionalidades, este por sua vez possui o desenvolvimento descontinuado. Atualmente vem sendo desenvolvido um projeto chamado Lazarus, sendo que este possui uma interface muito semelhante ao Delphi, porém o Lazarus tem a vantagem de ser multiplataforma, ou seja, roda tanto no windows quanto no Linux.

Uma curiosidade sobre o Delphi, é que seu nome foi inspirado na cidade de Delfos, único local da Grécia onde era possivel consultar o Óráculo de Delfos. Seu nome se deve ao fato de os desenvolvedores buscar uma ferramenta que permitisse acesso ao banco de dados Oracle. Devido a esse fato surgiu o trocadilho "a única maneira de acessar o oráculo é usando Delphi".
Muito utilizado no desenvolvimento de aplicações desktop, aplicações multicamadas e cliente/servidor. Além de ser compatível com os mais conhecidos banco de dados do mercado.
O Delphi foi o primeiro a ser descrito como um ambiente de Desenvolvimento Rápido de Aplicações (RAD). Em 2003, a versão Delphi 8 incluiu suporte para desenvolvimentos de aplicações .NET.

Em 2004, agora com a versão correspondente a 9, além de trazer as funcionalidades das suas versões anteriores, integrou ao ambiente de desenvolvimento a possibilidade de se desenvolver utilizando o ambiente do Delphi, C++ Builder ou c#. Na versão correspondente ao 10, o gerenciador de memória utilizado pelo Delphi foi substituído, toenando os aplicativos compilados em Delphi mais rápidos. Essa é a versão mais rápida do Delphi.

As principais diferenças entre o Delphi/Kylix e outras ferramentas de desenvolvimento são: a programação visual, programação orientada a eventos, as paletas VCL e CLX, forte ênfase na conectividade com diversos bancos de dados e um grande número de componentes produzidos por terceiros, muitos deles disponíveis na internet e grande parte deles com o código fonte disponível. Algumas vantagens do Delphi são: a existência de uma grande quantidade de componentes prontos em sua biblioteca, facilidade de uso e aprendizado e desenvolvimento rápido.

Algumas particularidades do Delphi são:
  • O visual, o usuário pode criar seu programa com a interface da maneira que desejar utilizando os componentes disponíveis na barra de ferramenta;
  • A Linguagem Orientada a Objetos trazida pela linguagem Object Pascal, que traz os conceitos de classe, herança e polimorfismo;
  • Orientação a Eventos, onde cada elemento de uma interface é capaz de capturar e associar ações a uma série de eventos;
  • Compilação, que é a geração de códigos em uma linguagem que a máquina entenda e que possa executar os aplicativos.
A seguir temos um exemplo de uma simples aplicação em Delphi passo a passo:
  • 1° Inicie o Delphi.
  • 2° No formulário que apareceu na tela, coloque um botão(Tbutton).

Nota: para colocar um botão, basta clicar sobre ele na paleta Standard e depois clicar no formulário, caso queira requintar seu aplicativo, altere suas propriedades.

  • 3° Clique duas vezes sobre o botão que apareceu.
  • 4° Deverá aparecer o seguinte código na sua tela:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
  • 5° Verifique que estamos programando o evento onclick do botão, ou seja o que programarmos irá acontecer quando o usuário clicar no botão.
  • 6° Vamos utilizar a procedure ShowMessage() da unit Dialogs, ela é responsável por mostrar uma mensagem na tela.
  • 7° Entre o begin e o end do evento digite:

ShowMessage('Olá Mundo');

  • 8° O código final deverá ficar assim:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Olá Mundo');
end;
  • 9° Clique no botão verde da barra de ferramentas (uma seta para a direta) ou tecle F9.
  • 10° pronto, seu primeiro programa em Delphi esta rodando.

quinta-feira, 7 de maio de 2009

Oracle migra para Linux!


:. Oracle terminando a migração para Linux

Em outubro, a Oracle migrou para Linux 5000 mil programadores, que estavam envolvidos com o Oracle Applications. Agora, começou a migração dos programadores envolvidos com o gerenciador de banco de dados propriamente dito. A previsão é de que até o final do ano o Linux seja a plataforma de desenvolvimento principal da empresa. De acordo com um dos diretores da Oracle, a migração está sendo feita porque o Linux é mais barato e mais rápido.

E nessa história de migrar para Linux, a Oracle não está sozinha. A Dell também andou mudando alguns de seus servidores internos para o Red Hat, e a Novell também andou trocando o sistema anterior para o seu SUSE Linux.

A Oracle, porém, é pioneira em matéria de grandes migrações. No início dos anos 90, ela migrou do Digital Equipment's VMS para o Solaris. Agora, ela está saindo do sistema da Sun e passando a usar diferentes versões do Red Hat e do SUSE. Segundo o diretor da Oracle, a empresa não optou por usar Windows porque os programas escritos para ele não são portáveis para outras plataformas.

http://news.com.com/2100-7344_3-5220881.html

http://developers.slashdot.org/developers/04/05/27/0117254.shtml?tid=106&tid=185&tid=190

segunda-feira, 27 de abril de 2009

Adaptive Server Enterprise (ASE)

Propriedade da Corporação Sybase, a ASE é um emblemático produto da classe empresarial do modelo relacional de banco de dados. É predominantemente utilizado na plataforma Unix, mas também está disponível para Windows.

História
Originalmente criado em 1987 para plataformas Unix, produto da Sybase Corporation primária no sistema de gestão de banco de dados relacional, foi inicialmente comercializado sob o nome de Sybase SQL Server. Em 1988 o SQL Server OS/2 foi co-desenvolvido pela Sybase, Microssoft e Ashton-Tate. Por demonstrar grande interesse, tornou-se parceiro parceiro da portabilidade do SQL Server para o Windows NT.
Em 1993 o acordo licenciado do desenvolvimento entre a Microssoft e a Sybase terminou culminando na separação das empresas e as mesmas continuaram a desenvolver suas respectivas versões do software.
Em 1995, a Sybase liberou o SQL Server 11.0. Começando com a versão 11.5, lançada em 1996, a Sybase teve de modificar-se para diferenciar o seu produto a partir do Microsoft SQL Server, terminando assim por renomeá-lo para Adaptive Server Enterprise.
A Sybase prevê nativas interfaces de programação de baixo nível para o seu banco de dados que utiliza um protocolo chamado Tabular Data Stream. Antes da versão 10, o DBLIB (Database Library) foi utilizado. A Versão 10 e as seguintes fizeram utilização da CTLIB (Client Library).
Em 1998, a ASE 11.9.2 foi produzido com suporte para linha de nível de bloqueio e melhorado no desempenho SMP. ASE12.0 foi lançada em 1999 para fornecer suporte ao Java, alta disponibilidade e distribuição de gestão de operação.
Em 2001, o ASE 12.5 foi liberado fornecendo recursos como alocação dinâmica de memória com suporte para XML e SSL entre outros.
Em Setembro de 2005, a Sybase liberou a ASE 15. Ele inclui uma reescrita otimizada de query que é suporto para aumentar o desempenho durante o otimizador tradicional e suporte para particionamento de tabelas e linhas em um banco de dados entre os diferentes dispositivos de discos para reduzir a contençao e aumentar a velocidade na qual os dados podem ser acessados, além de "colunas virtuais" que são computadas apenas quando necessário.
Outras alterações que não o fazem diferente da versão inicial mas que são esperadas em breve, é o apoio para a coluna de nível de criptografia, bem como a capacidade de montar um banco de dados como um "banco virtual" e extrair apenas as informações necessárias.

Curiosidade
O número da versão foi pulado para 15 a partir de 12, porque o número 13 é considerado sem sorte na Europa, Estados Unidos e outros países ocidentais e o número 14 é considerado azar na China.

Estrutura
Uma típica instalação so ASE inclui um "dataserver" que acolhe várias bases de dados. Alguns desres são "sistemas" de dados que armazenam apenas meta-dara usa paea manter o sistema operacional. Os outros são "usuários" de dados que armazenam no formulário de pedido de tabelas e procedimentos armazenados.Os usuários podem acessar os dados usando um login e senha. Uma vez conectado a um Sybase dataserver e o usuário tenha acesso a base de dados e tabelas as permissões são controladas pela definição.

quinta-feira, 2 de abril de 2009

Introdução - J2SE


O J2SE (Java 2 Standard Edition) é o ambiente de desenvolvimento mais utilizado. Isso porque seu uso é voltado a computadores pessoais e servidores, onde há bem mais necessidade de aplicações. Além disso, pode-se dizer que essa é a plataforma principal, já que, de uma forma ou de outra, o J2ME e o J2EE tem sua base aqui. Pode-se dizer também que esses ambientes de desenvolvimento são versões aprimoradas do J2SE para as aplicações especificas a que se propõem.


Por ser a plataforma mais abrangente do Java, o J2SE é a mais indicada para quem quer aprender a linguagem.

Introdução – J2ME ou Mobile Java


O que é J2ME ™ Platform?

J2ME é uma extensão da linguagem de programação JAVA, e é utilizada para desenvolver aplicações em pequenos dispositivos, celulares, palmtops, televisores, smart cards, pagers, entre outros dispositivos de dimensões reduzidas.

Como a linguagem Java já era conhecida e a adaptação ao J2ME não é complicada, logo surgiram diversos tipos de aplicativos para tais dispositivos, como jogos e agendas eletrônicas . As empresas saíram ganhando com isso porque, desde que seus dispositivos tenham uma JMV (Java Virtual Machine - Máquina Virtual Java), é possível, com poucas modificações, implementar os aplicativos em qualquer aparelho, sendo que o único limite é a capacidade do hardware.

A plataforma Java2 Micro Edition contém configurações e bibliotecas trabalhadas especialmente para a atuação em dispositivos portáteis. Assim, o desenvolvedor tem maior facilidade para lidar com as limitações de processamento e memória. Um exemplo disso é a configuração chamada CLDC (Connected Limited Device Configuration), destinada a dispositivos com recursos de hardware bastante limitados, como processadores de 16 bits e memórias com 512 KB de capacidade. Essa configuração contém uma JVM e um conjunto básico de bibliotecas que permite o funcionamento da aplicação Java em dispositivos com tais características.

A imagem a seguir mostra um jogo em Java que roda em dois dispositivos móveis diferentes (tirada do site http://www.msmobile.com/):


Os principais componentes da Plataforma J2ME são o CDC (Connected Device Configurations - Configurações para dispositivos conectados), o CLDC (Connected Limited Device Configurations -Configurações para dispositivos com conexão limitada), o MIDP (Mobile Information Device Profiles - Perfis de informações de dispositivos móveis), além de muitas outras ferramentas e tecnologias que levam as soluções Java aos mercados de consumo e de dispositivos integrados.

As tecnologias J2ME contêm um JRE (Java Runtime Environment) altamente otimizado, especialmente desenvolvido para o mercado de grande consumo. Essas tecnologias abrangem uma ampla gama de produtos muito pequenos e habilitam programas utilitários úteis, de segurança e conectividade em smart cards, conversores de sinal digital (set-top boxes) e outros aparelhos de pequeno porte.



Finalizando

Como pode ser visto, a tecnologia Java é bastante abrangente e permite o desenvolvimento de soluções para uma infinidade de aplicações. São tantos recursos, que até mesmo desenvolvedores experientes podem se confundir em um determinado momento. Felizmente, a comunidade Java é organizada e não é difícil encontrar auxílio em sites ou fóruns especializados. Caso queira conhecer um pouco mais sobre essas tecnologias, visite o site oficial: java.sun.com.


retirado:http://www.infowester.com/versoesjava.php; http://www.java.com/pt_BR/download/faq/whatis_j2me.xml

IBM: Internacional Business Machines

História da IBM

A IBM surge no final do século XIX, a partir da necessidade de criar uma solução para agilizar a contagem dos dados para o censo de 1890. Então, o estatístico Herman Hollerith concebeu diversas máquinas elétricas para a soma e contagem de dados, os quais eram representados sob a forma de perfurações adequadamente distribuídas em fita de papel. Através dessas perfurações, estabeleciam-se circuitos elétricos e os dados que elas representavam podiam, então, ser computados de forma uma rápida e automaticamente.Em 1896, Hollerith criou a Tabulating Machine Company e introduziu inovações em sua descoberta. Assim, a fita de papel foi substituída por cartões, que viriam a ser o elemento básico das máquinas IBM de processamento de dados de algumas décadas atrás. Hoje, os sistemas eletrônicos de processamento de dados têm fundamental importância nas atividades de exploração espacial, produção e aproveitamento de energia nuclear e em inúmeros outros campos da ciência e da indústria. As atividades da IBM World Trade Corporation se estendem hoje por mais de 150 países. As fábricas e laboratórios da IBM funcionam em 15 diferentes países.


Idéias da IBM

Nos negócios de hoje, enxergamos oportunidades no dia-a-dia de trabalho que antes nem sequer sonhávamos e enfrentamos desafios que podem facilmente destruir uma empresa. Por isso, as empresas de hoje precisam de um parceiro com uma visão clara do território a ser conquistado. Um parceiro que ajude sua empresa a se diferenciar da concorrência. Que entenda e saiba como criar e manter a inovação que faz a diferença. Compreenda um pouco mais sobre o ponto de vista da IBM. Leia, escute e mantenha-se informado com estas Idéias da IBM.

Política IBM de meio ambiente

A IBM está comprometida com a liderança ambiental em todas as suas atividades de negócio. A IBM tem, há muito tempo, políticas corporativas sobre ambientes de trabalho seguros e saudáveis, sobre proteção ao meio ambiente e sobre conservação de energia e recursos naturais, que foram formalizadas em 1967, 1971 e 1974 respectivamente. Elas têm servido a contento ao meio ambiente e aos nossos negócios ao longo dos anos, e constitui a base para os seguintes objetivos da política corporativa:
       •Prover ambiente de trabalho seguro e saudável, e assegurar que os funcionários sejam devidamente treinados e que tenham equipamentos de segurança e emergência apropriados;
      •Conservar os recursos naturais, reutilizando e reciclando materiais e adquirindo materiais reciclados;
       •Desenvolver, produzir e comercializar produtos seguros em suas finalidades, eficientes no uso de energia, seguros ao meio ambiente e que possam ser reutilizados, reciclados ou dispostos com segurança;
      •Utilizar processos de desenvolvimento e manufatura que não afetem adversamente o meio ambiente, incluindo desenvolvimento e melhoria de operações e tecnologias para minimizar resíduos, prevenir a poluição do ar, água e outros recursos, minimizar os riscos e saúde e segurança, e descarte de resíduo de maneira segura e responsável;
       •Conduzir rigorosas auditorias e auto-avaliações de cumprimento da IBM em relação a esta política, medir o progresso do desempenho ambiental da IBM, e reportar periodicamente ao Comitê de Diretores;

quarta-feira, 25 de março de 2009

Ferramentas de Multilinguagens. Apresento-lhes o Framework.



Antes de apresentar o ambiente .net ("dot net"), farei uma sucinta, mas interessante explicação sobre os frameworks e como eles são importantes para a programação na web atual.


Qual é o problema?

  • Programar é difícil
  • Onde está a maior dificuldade?
    • "Interface design and functional factoring constitute the key intelectual content of software and is far more difficult to create or re-create than code" (Peter Deutsch)
  • Mas nossos programadores são mortais
    • "It shouldn't take a good programmer to build a good program"
  • Solução: Temos que fornecer formas de re-uso que vão além de código: re-uso de análise, design, código.
    • Framework orientado a objeto

O que é um Framework?

  • Um framework captura a funcionalidade comum a várias aplicações
  • As aplicações devem ter algo razoavelmente grande em comum: pertencem a um mesmo domínio de problema

frame1.gif (6254 bytes)

  • Há várias definições de frameworks (ver aqui)
  • A definição que usamos foca quatro características principais de um framework (Orientado a Objeto):
    • "Um framework provê uma solução para uma família de problemas semelhantes, ...
      Usando um conjunto de classes e interfaces que mostra como decompor a família de problemas, ...
      E como objetos dessas classes colaboram para cumprir suas responsabilidades, ...
      O conjunto de classes deve ser flexível e extensível para permitir a construção de várias aplicações com pouco esforço, especificando apenas as particularidades de cada aplicação"
  • Observe que um framework é uma aplicação quase completa, mas com pedaços faltando
    • Ao receber um framework, seu trabalho consiste em prover os pedaços que são específicos para sua aplicação
    • As técnicas básicas são Template Method e Composição

Diferenças entre um Framework e uma Biblioteca de Classes OO

  • Numa biblioteca de classes, cada classe é única e independente das outras
    • Num framework, as dependências/colaborações estão embutidas (wired-in interconnections)
    • Com biblioteca, as aplicações criam as colaborações

frame2.gif (4546 bytes)

  • Vê-se portanto que um framework impõe um modelo de colaboração (o resultado da análise e design) ao qual você deve se adaptar
    • Já que a comunicação entre objetos já está definida, o projetista de aplicações não precisa saber quando chamar cada método: é o framework que faz isso
  • Não se pode embutir conhecimento do domínio (análise + design) numa biblioteca de classes
  • O framework é usado de acordo com o Hollywood Principle ("Don't call us, we'll call you")
    • É o framework que chama o código da aplicação (que trata das particularidades dessa aplicação)
    • Framework = Upside-down library

frame3.gif (6625 bytes)

  • Exemplo do Hollywood Principle
    • Modelo de eventos em Java/AWT
    • AWT é um framework
    • No código abaixo, mouseClicked() e mousePressed() são chamados pelo framework (AWT)
public class MeuMouseListener implements MouseListener {
public void mouseClicked(MouseEvent event) {
...
}
public void mousePressed(MouseEvent event) {
...
}
...
}
...
MeuMouseListener mouseListener = new MeuMouseListener();
JButton meuBotão = new JButton("clique aqui");
// O seguinte método estabelece a interação entre o objeto
// meuBotão e o objeto mouseListener
meuBotão.addMouseListener(mouseListener);
  • A diferença entre um framework e uma biblioteca de classes não é binária

frame4.gif (5985 bytes)

Diferenças entre Frameworks e Design Patterns

  • Aparentemente, os dois consistem de classes, interfaces e colaborações prontas
  • As diferenças são:
    • Design patterns são mais abstratos do que frameworks
      • Um framework inclui código, um design pattern não (só um exemplo do uso de um pattern)
      • Devido à presença de código, um framework pode ser estudado a nível de código, executado, e reusado diretamente
    • Design patterns são elementos arquiteturais menores do que frameworks
      • Um framework típico contém vários design patterns mas o contrário nunca ocorre
      • Exemplo: Design patterns são frequentemente usados para documentar frameworks
    • Design patterns são menos especializados do que frameworks
      • Frameworks sempre têm um domínio de aplicação particular enquanto design patterns não ditam uma arquitetura de aplicação particular

Características Básicas de Frameworks

  • Um framework deve ser reusável
    • É o propósito final!
    • Para ser reusável, deve primeiro ser usável
      • Bem documentado
      • Fácil de usar
  • Deve ser extensível
    • O framework contém funcionalidade abstrata (sem implementação) que deve ser completada
  • Deve ser de uso seguro
    • O desenvolvedor de aplicações não pode destruir o framework
  • Deve ser eficiente
    • Devido a seu uso em muitas situações, algumas das quais poderão necessitar de eficiência
  • Deve ser completo
    • Para endereçar o domínio do problema pretendido


terça-feira, 24 de março de 2009

Borland e sua história

História da Empresa
Três cidadãos dinamarqueses, Niels Jensen, Ole Henriksen e Mogens Glad fundaram a Borland Ltd. em Agosto de 1981 com o intuito de desenvolver produtos para a CP/M. No entanto, a resposta dos produtos da empresa CP/M-82 apresentada em São Francisco revelou que uma empresa U.S. seria necessária para atingir o mercado americano. Conheceram então Philippe Kahn que acabara moveram a Silicon Valley e que tinha sido um dos principais desenvolvedores do Micral. Os três dinamarqueses tinham embarcado, num primeiro momento com sucesso, na primeira comercialização do software a partir da Dinamarca, depois na Irlanda antes de correr em alguns desafios no momento em que eles encontraram Philippe Kahn. A parceria parece ter beneficiado todos os envolvidos. Philippe Kahn foi, em todos os momentos presidente da Borland Inc. desde a sua criação em 1983 até sua saída, em 1995. Os principais acionistas na incorporação da Borland foram Niels Jensen, Ole Henriksen, Mogens Glad e Philippe Kahn.

A Borland lançou com sucesso, uma série de produtos que incluíram Sidekick, Turbo Pascal, SuperKey e Lightning, todos desenvolvidos na Dinamarca.

A Borland desenvolveu uma série de bem-sucedidos ferramentas de desenvolvimento de softwares. Seu primeiro produto foi Turbo Pascal, utilizando o compilador desenvolvido por Anders Hejlsberg.

Em 1987 Borland comprou Wizard Systems e incorporou porções do Wizard C em tecnologia Turbo C. Bob Jarvis, o autor do Assistente Borland C tornou-se um empregado. Turbo C foi lançado em 18 de Maio de 1987, e um número estimado de 100.000 exemplares foram transferidos para o primeiro mês de sua liberação. Esta aparentemente conduziu uma cunha entre a Borland, Niels Jensen e os outros membros da sua equipa que tinha vindo trabalhar sobre compiladores. Foi alcançado um acordo e eles criaram uma empresa chamada TopSpeed. Lançaram um compilador que se tornou TopSpeed Modula-2, que existe até hoje, como a tecnologia subjacente do Clarion 4GL, uma ferramenta do Windows development.

Em setembro de 1987 a Borland comprou Ansa-Software, incluindo os seus Paradox (versão 2.0) como instrumento de gestão de dados.

Em setembro de 1991 a Borland comprou o Ashton-Tate, elevando o dBase InterBase e bases de dados para a casa, todas as ações em uma transação. A concorrência foi acirrada com a Microsoft. A Microsoft lançou o concorrente de dados Microsoft Access e comprou o clone dBase FoxPro em 1992, a subcotação dos preços da Borland. Durante o início de 1990 da implementação da Borland C e C + + da Microsoft. A Borland sobreviveu como uma empresa, mas já não tinha o domínio do software, uma vez que já o tivera. Ele passou por uma profunda transição de produtos, de financiamento e de pessoal, agora é uma empresa muito diferente da que desafiou um Microsoft e Lotus, no início de 1990.

Em meados de 1992 a empresa passa por uma nova crise, a Borland foi perdendo força financeira de projetar a sua comercialização e movimentação de recursos internos para outros produtos. Em 1993 começam a ocorrer demissões para que a empresa se mantivesse. Uma mudança nas condições de mercado também contribuiu para a queda da Borland de destaque.
A separação da empresa com Kahn amigável, o mesmo permaneceu junto com a Borland até 7 de novembro de 1996.

Produtos da Borland:
• Borland CaliberRM
• Borland Caliber DefineIT
• Borland Gauntlet
• Borland StarTeam
• Borland Tempo
• Borland Together for Eclipse
• Borland SilkTest
• Borland SilkPerformer
• Borland SilkCentral Test Manager
• Borland VisiBroker
• Borland AppServer
• Borland Enterprise Studio, for C++, Mobile and Java
• Borland Enterprise Server

Ferramentas de Programação:
• Brief (text editor)
• Borland C++
• C++BuilderX
• C# Builder
• CodeWright
• IntraBuilder
• Kylix
• Object Vision
• Turbo Assembler
• Turbo BASIC
• Turbo C
• Turbo C++
• Turbo Debugger
• Turbo Modula-2
• Turbo Pascal
• Turbo Profiler
• Turbo Prolog

Utilitários:
• SideKick
• SideKick Plus
• SuperKey
• Turbo Lightning

Aplicações:
• Reflex
• dBase
• Paradox
• Quattro
• Quattro Pro
• Sprint

sábado, 21 de março de 2009

O que é Oracle ?

Oracle é uma potente ferramenta cliente/servidor para a gestão de Bases de Dados. Explicamos a ferramenta e as ajudas que oferece ao desenvolvedor.

Oracle é basicamente uma ferramenta cliente/servidor para a gestão de Bases de Dados. É um produto vendido a nível mundial, embora a grande potência que tem e seu elevado preço fazem com que só se veja em empresas muito grandes e multinacionais, por norma geral. No desenvolvimento de páginas web acontece o mesmo: como é um sistema muito caro não está tão espalhado como outras bases de dados, por exemplo, Access, MySQL, SQL Server, etc.

Vamos agora centrarmos no que é Oracle exatamente e como funciona a programação sobre este. Oracle como antes foi mencionado se baseia na tecnologia cliente/servidor, portanto, para sua utilização primeiro, seria necessário instalar a ferramenta servidor (Oracle 8i) e posteriormente poderíamos atacar à base de dados desde outras máquinas com ferramentas de desenvolvimento como Oracle Designer e Oracle Developer, que são as ferramentas básicas de programação sobre Oracle.

Para desenvolver em Oracle utilizamos PL/SQL uma linguagem de 5ª geração, bastante potente para tratar e gerenciar a base de dados, também por norma geral costuma-se utilizar SQL ao criar um formulário.

É possível logicamente atacar a base de dados através do SQL plus incorporado no pacote de programas Oracle para poder realizar consultas, utilizando a linguagem SQL.

O Developer é uma ferramenta que nos permite criar formulários em local, ou seja, mediante esta ferramenta nós podemos criar formulários, compilá-los e executá-los, mas se quisermos que os outros trabalhem sobre este formulário deveremos copiá-lo regularmente em uma pasta compartida para todos, de modo que, quando quiserem realizar uma mudança, deverão copiar de tal pasta e logo voltar a subir à pasta. Este sistema como podemos observar é bastante complicado e pouco confiável, pois é normal que as versões percam e se insistam com freqüência. A principal vantagem desta ferramenta é que é bastante intuitiva e dispõem de um modo que nos permite compor o formulário, tal e como o faríamos em Visual Basic ou em Visual C.

Os problemas anteriores estão totalmente resolvidos com Designer que é uma ferramenta que se conecta à base de dados e portanto, criamos os formulários nela, desta maneira todo mundo se conecta mediante Designer à aplicação que contem todos os formulários e não há problemas de diferentes versões, isto é muito útil e perfeito para evitar massacrar o trabalho de outros. Mas, o principal e mais notável problema é a falta de um meio visual para desenhar o formulário, ou seja, nos aparece uma estrutura como de árvore na qual inserimos um formulário, e ao mesmo tempo dentro deste inserimos blocos ou módulos que são as estruturas que conterão os elementos dos formulários, que podem estar baseados em tabelas ou não.

Portanto, se quisermos fazer formulários para praticar ou para provar o que é isto de Oracle, recomenda-se que se use Developer, pois é muito mais fácil e intuitivo à princípio.

quarta-feira, 18 de março de 2009

Sybase

HISTÓRIA:

A Sybase foi fundada em 1984 nos EUA, ela desenvolve produtos e serviços multi-plataforma em três áreas-chave: ‘Gestão da Informação’, ‘Desenvolvimento & Integração’ e ‘Mobilidade & RFID’. A Sybase está presente em Portugal desde 1996 e é constituída por uma equipe jovem e dinâmica cujo principal objetivo é conseguir que os seus clientes obtenham o valor máximo dos activos de dados, com a melhor performance e o mais baixo custo em TI.

A empresa tem como actividades principais a consultoria, o desenvolvimento de software e infra-estruturas empresariais e a formação.

  • 95 das empresas Fortune 100 utilizam Sybase
  • 50.000 clientes empresariais em todo o mundo
  • 95% de taxa de retenção de clientes
  • Crescimento e lucros contínuos
  • 4.000 colaboradores em 60 países

A Sybase continua a construir relações profundas de parceria e colaboração com líderes da indústria. Podemos citar alguns como: HP, Intel, IBM, Microsoft, SAP e Sun.

Empenhado na filosofia de que as parcerias devem ser mutuamente benéficas, o Business Solutions Alliance Program da Sybase liga os parceiros aos recursos de que necessitam para poderem maximizar a relação, incluindo produtos, ferramentas, formação e acesso ao marketing e ao suporte técnico e de negócio.

PRODUTOS:

A oferta de Produtos e Soluções disponibilizadas pela Sybase no mercado português permite às empresas garantirem o acesso e gestão de informação preciosa e de valor para o seu negócio de modo simples, intuitivo, seguro e em qualquer lugar, através de qualquer dispositivo móvel.

Neste sentido a oferta da Sybase reparte-se da seguinte forma:

Essa foi apenas uma leve introdução do que é a Sybase e como ela atua. Espero poder trazer mais informações dessas e de outras IDEs para vocês.

Até breve!

terça-feira, 17 de março de 2009

Entenda um pouco sobre JAVA



Vamos começar com um pouco de história!



Tudo começou no início dos anos 90, mais precisamente em 1991, com a criação do Green Project, na Sun Microsystems. Nele trabalhavam James Gosling, Mike Sheridan e Patrik Naughton. O objetivo do projeto era antecipar e planejar a “próxima onda” do mundo digital, pois eles acreditavam que em algum momento haveria a convergência dos computadores com os eletrodomésticos. Em 1992 um grupo de pesquisadore surgiu com uma demonstração funcional da idéia inicial. O protótipo se chamava “StarSeven”, um controle remoto com uma interface gráfica touchscreen. Um pouco mais na frente foi criado, para StarSeven, um mascote, hoje amplamente conhecido no mundo Java, o Duke. Ele era responsável em ser um guia virtual para ajudar e ensinar o usuário a utilizar o equipamento. Logo depois, James Gosling especificou uma nova linguagem de programação para o StarSeven e a batizou de “Oak”. O próximo passo era encontrar um mercado para o StarSeven, mas infelizmente a idéia inovadora não foi vista com bons olhos pelas empresas de TV a cabo daquela época. A idéia que o StarSeven tentava vender, hoje já é realidade em programas interativos e também na TV digital. A idéia certa, na época errada. Entretanto, aconteceu em 1994 o estouro da Internet e rapidamente uma grande rede interativa estava se estabelecendo. Era este tipo de rede interativa que a equipe do StarSeven estava tentando vender para as empresas de TV a cabo. E, da noite para o dia, não era mais necessário construir a infra-estrutura para a rede, ela simplesmente estava lá. Gosling foi incumbido de adaptar o Oak para a Internet e em janeiro 1995 foi lançada uma nova versão do Oak que foi rebatizada para JAVA. A linguagem de programação Java tinha sido projetada para se mover por meio das redes de dispositivos heterogêneos, redes como a Internet. Agora aplicações poderiam ser executadas dentro dos browsers nos Applets Java e tudo seria disponibilizado pela Internet instantaneamente. Foi o estático HTML dos browsers que promoveu a rápida disseminação da dinâmica tecnologia Java. A velocidade dos acontecimentos seguintes foi assustadora, o número de usuários cresceu rapidamente, grandes fornecedores de tecnologia, como a IBM anunciaram suporte para a tecnologia Java.James%20Gosling


Desde seu lançamento, em maio de 1995, a linguagem Java foi adotada mais rapidamente do que qualquer outra linguagem de programação na história da computação. Em 2004 JAVA atingiu a marca de 3 milhões de desenvolvedores em todo mundo, e ainda continuou crescendo e hoje é uma referência no mercado de desenvolvimento de software como uma das linguagens programação mais usadas, que serve para qualquer tipo de aplicação. Você sabia que seu cartão de crédito pode ter um JavaCard?



Em 1997 a Sun Microsystems tentou submeter a linguagem a padronização pelos orgãos ISO/IEC e ECMA, mas acabou desistindo. Java ainda é um standard de fato, que é controlada através da JCP (Java Comunity Process). Em 13 de Novembro de 2006, a Sun lançou a maior parte do Java como Software Livre sob os termos da GNU General Public License (GPL). Em 8 de Maio de 2007 a Sun finalizou o processo, tornando praticamente todo o código Java como software de código aberto, menos uma pequena porção da qual a Sun não possui copyright.



A plataforma de desenvolvimento JAVA possui várias extensões, sendo as principais: Java 2 Enterprise Edition (J2EE); Java 2 Mobile Edition (J2ME) e Java 2 Standard Edition (J2SE)







  • Java 2 Micro Edition (J2ME) - a plataforma Java voltada para pequenos dipositivos, como telefones celulares, agendas eletrônicas, televisores, aparelhos eletrônicos em geral.

  • Java 2 Standard Edition (J2SE) - a plataforma voltada para aplicações cliente. Essa é a plataforma que será encontrada nos browsers web e instalada nos sistemas operacionais que já incluírem a plataforma Java.

  • Java 2 Enterprise Edition (J2EE) - essa é a plataforma Java para desenvolvimento e execussão de aplicações servidoras. Possui todo o suporte para desenvolver aplicações robustas e escaláveis, para suportar grandes números de usuários. Os servidores de aplicação implementam essa plataforma.


Vale lembrar que JAVA permite o uso de qualquer sistema operacional, seja ele Windows, Unix ou Linux, ou mesmo plataforma Mainframe.


Conclusão


A tecnologia JAVA vem evoluindo com muita velocidade, e nem sempre é fácil de acompanhar as mudanças. Isso muitas vezes acaba se refletindo em uma grande quantidade de produtos e ainda numa maior variedade de versões.


Bem, eu procurie com esse post clariar um pouco as idéias sobre JAVA, é claro que essa não é nem a ponta do Iceberg, pois o assunto é muitíssimo extenso, mas já é um começo!


Qualquer dúvida, pode perguntar, e se eu não souber responder, a gente aprende junto!!!

Introdução - J2EE

Java2EE vem do inglês Java 2 Enterprise Edition, que em português significa Java Edição Empresarial.

O J2EE (Java2 Enterprise Edition) é a plataforma Java voltada para redes, internet, intranets e afins. Assim, ela contém bibliotecas especialmente desenvolvidas para o acesso a servidores, sistemas de e-mail, banco de dados, etc. Por essas características, o J2EE foi desenvolvido para suportar uma grande quantidade de usuários simultâneos. É uma tecnologia que torna possível projetar, desenvolver, empacotar e implantar aplicações empresariais baseadas em componentes. A plataforma é voltada para aplicações de modelos multi-camadas distribuídos com a possibilidade de reutilização de componentes, transferência de dados feita em XML, constituir modelos de segurança unificados e um flexível controle transacional. A plataforma J2EE é considerada um padrão de desenvolvimento, já que os fornecedores de software que a utilizam devem seguir determinadas regras para que possam declarar seus produtos como compatíveis com Java EE. Este tipo de plataforma contém bibliotecas desenvolvidas para o acesso a base de dados, RPC, CORBA, etc.. Devido a essas características ela é utilizada principalmente para o desenvolvimento de aplicações corporativas.

A plataforma J2EE contém uma série de especificações, cada uma com funcionalidades distintas. Entre elas, tem-se:

  • JDBC (Java Database Connectivity), utilizado no acesso a banco de dados;
  • Servlets, para o desenvolvimento de aplicações Web, isto é, esse recurso "estende" o funcionamento dos servidores Web, permitindo a geração de conteúdo dinâmico nos sites. Ele contém uma API que abstrai e disponibiliza os recursos do servidor Web de maneira simplificada para o programador.
  • JSP (Java Server Pages), um tipo de servidor Web. Grossamente falando, servidores Web são as aplicações que permitem você acessar um site na internet, é uma especialização do servlet que permite que o conteúdo dinâmico seja facilmente desenvolvido.
  • JTA (Java Transaction API), é uma API que padroniza o tratamento de transações dentro de uma aplicação Java.
  • EJBs (Enterprise Java Beans), utilizados no desenvolvimento de componentes de software. Eles permitem que o programador se concentre nas necessidades do negócio do cliente, enquanto questões de infra-estrutura, segurança, disponibilidade e escalabilidade são responsabilidade do servidor de aplicações.
  • JCA (Java Connector Architecture), é uma API que padroniza a ligação a aplicações legadas.
  • JPA (Java Persistence API), é uma API que padroniza o acesso a banco de dados através de mapeamento Objeto/Relacional dos Enterprise Java Beans.

( API: vem do inglês Application Programming Interface, que em português significa Interface de Programação de Aplicativos, é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por programas aplicativos -- isto é: programas que não querem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.

De modo geral, a API é composta por uma série de funções acessíveis somente por programação, e que permitem utilizar características do software menos evidentes ao utilizador tradicional.

Por exemplo, um sistema operacional possui uma grande quantidade de funções na API, que permitem ao programador criar janelas, acessar arquivos, criptografar dados, etc. Ou então programas de desenho geométrico que possuem uma API específica para criar automaticamente entidades de acordo com padrões definidos pelo utilizador.

No caso de sistemas operacionais, a API costuma ser dissociada de tarefas mais essenciais, como manipulação de blocos de memória e acesso a dispositivos. Estas tarefas são atributos do Kernel ou núcleo do sistema, e raramente são programáveis.

Mais recentemente o uso de APIs tem se generalizado nos plug-ins, acessórios que complementam a funcionalidade de um programa. Os autores do programa principal fornecem uma API específica para que outros autores criem plug-ins, estendendo as funcionalidades do programa para os utilizadores comuns. )

Texto original obtido em: "http://pt.wikipedia.org/wiki/Java_EE" "http://pt.wikipedia.org/wiki/API"

terça-feira, 10 de março de 2009

IDEs - Introdução.

Ambiente de desenvolvimento integrado
Origem: Wikipédia, a enciclopédia livre.

IDE, do inglês Integrated Development Environment ou Ambiente Integrado de Desenvolvimento, é um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo.

Geralmente os IDEs facilitam a técnica de RAD (de Rapid Application Development, ou "Desenvolvimento Rápido de Aplicativos"), que visa a maior produtividade dos desenvolvedores.

As características e ferramentas mais comuns encontradas nos IDEs são:

* Editor - edita o código-fonte do programa escrito na(s) linguagem(ns) suportada(s) pela IDE;

* Compilador (compiler) - compila o código-fonte do programa, editado em uma linguagem específica e a transforma em linguagem de máquina;

* Linker - liga (linka) os vários "pedaços" de código-fonte, compilados em linguagem de máquina, em um programa executável que pode ser executado em um computador ou outro dispositivo computacional.

* Depurador (debugger) - auxilia no processo de encontrar e corrigir erros (bugs) no código-fonte do programa, na tentativa de aprimorar a qualidade de software;

* Modelagem (modelling) - criação do modelo de classes, objetos, interfaces, associações e interações dos artefatos envolvidos no software com o objetivo de solucionar as necessidades-alvo do software final.

* Geração de código - característica mais explorada em ferramentas CASE, a geração de código também é encontrada em IDEs, contudo com um escopo mais direcionado a templates de código comumente utilizados para solucionar problemas rotineiros. Todavia, em conjunto com ferramentas de modelagem, a geração pode gerar todo ou praticamente todo o código-fonte do programa com base no modelo proposto, tornando muito mais rápido o processo de desenvolvimento e distribuição do software;

* Distribuição (deploy) - auxilia no processo de criação do instalador do software, ou outra forma de distribuição do mesmo, seja discos ou via internet.

* Testes Automatizados (automated tests) - realiza testes no software de forma automatizada, com base em scripts ou programas de testes previamente especificados, gerando um relatório dos mesmos, assim auxiliando na análise do impacto das alterações no código-fonte. Ferramentas deste tipo mais comuns no mercado são chamadas robôs de testes.

* Refatoração (refactoring) - consiste na melhoria constante do código-fonte do software, seja na construção de código mais otimizado, mais limpo e/ou com melhor entendimento pelos envolvidos no desenvolvimento do software. A refatoração, em conjunto com os testes automatizados, é uma poderosa ferramenta no processo de erradicação de "bugs", tendo em vista que os testes "garantem" o mesmo comportamento externo do software ou da característica sendo reconstruída.

Exemplos

* HB++ (Handheld-Basic) - Desenvolve projetos PalmOS Palm OS;
* Boa Constructor - Gera código Python;
* Delphi - Trabalha originalmente com a linguagem Object Pascal/Pascal, agregando na suite Delphi Studio 2005, a linguagem C# e a extensão da Object Pascal para .NET;
* Eclipse - Gera código Java (através de plugins, o Eclipse suporta muitas outras linguagens como Python e C/C++);
* Netbeans - Gera código Java.
* BlueJ - Gera código Java.
* Visual Basic - Gera código Basic;
* Visual Studio .NET - Gera código para Framework .NET, suportando linguagens Visual Basic .NET, C#, C++, e J#.
* SharpDevelop - Gera código C#.
* MonoDevelop - Baseado no SharpDevelop, para ambiente Unix
* DEV-C++, Code::Blocks - Geram código para C e C++
* Anjuta - Gera código para C e C++
* Anubis - Gera código PHP-GTK;
* WOL - Gera código pascal (também é biblioteca)
* Xcode - Gera código Objective-C