MakeWare Java versão 4.0.3 – (IDE de programação brasileira para a linguagem Java)

Mais uma IDE de programação para a linguagem Java, agora em português, com menos de 3Mb e feita por um brasileiro 🙂 . O único defeito é que é para Windows 😦 . Seguem as informações abaixo. Informação retirada do site JavaFree.org.

Para quem nunca ouviu falar do MakeWare Java, o MakeWare Java é uma ferramenta de programação que eu desenvolvi para o desenvolvimento de aplicações usando a linguagem Java. Você pode fazer várias tipos de aplicações com essa ferramenta: Aplicações para console, aplicações gráficas com formulários (como no Delphi), aplicações baseadas em sistemas distribuídos, Applets Java,Aplicações para Banco de Dados e até aplicações para celulares, com o J2ME.

No MakeWare Java você possui sete tipos diferentes de projetos, são eles:

– Projeto Java Simples : Neste tipo de projeto você pode trabalhar com o essencial do Java: classes, interfaces e pacotes. E você pode Criar:

– aplicações baseadas em console e,
– aplicações gráficas utilizando componentes Swing

– Projeto Java RMI: Neste tipo de projeto, você cria um modelo pronto de sistema distrbuído Java utilizando RMI (Remote Method Invacation). Nele você vai especificar o cliente, servidor e interface remota. Para que você tenha um exemplo do seu funcionamento, retire os comentários existentes nos cliente, servidor e interface.

– Projeto Java Corba: Neste tipo de projeto, você cria um modelo pronto de sistema distrbuído Java utilizando Corba (Common Object Request Broker Architecture). Nele você vai especificar o cliente, servidor e interface (IDL). Para que você tenha um exemplo do seu funcionamento, retire os comentários existentes nos cliente, servidor e interface.

– Projeto Java Applet: Neste tipo de projeto você cria aplicações applets em Java, onde toda a execução será exebida no seu browser.

– Projeto Java Socket: Neste tipo de projeto, você cria um modelo pronto para trabalhar com Sockets. Nele você vai especificar o cliente e servidor. Para que você tenha um exemplo do seu funcionamento, simplesmente execute o projeto, não é preciso descomentar nada. O Projeto Java Socket já possui agora um help.

– Projetos Java BD: Neste projeto é criado um modelo pronto que faz a utilização de mecanismos de banco de dados fornecidos pela linguagem Java, o JDBC (Java DataBase Connectivity). Também nesse projeto podemos fazer uso e criar uma fonte de dados ODBC (Open DataBase Connectivity), que funciona como um “alias” para o nosso banco de dados. No momento, o projeto Java BD só cria fotne de dados voltados para banco de dados Accesss.

– Projeto Java Mobile: Este é um tipo de projeto voltado para o desenvolvimento de aplicações Java para dispositivos móveis (J2ME). Para usar esse projeto, é necessário ter instalado o o Wireless Tool Kit da Sun(de preferência na versão 2.5.2 (versão atual)) voltado para dispositivos do tipo CLDC (Connected Limited Device Configuration). Para fazer o download deste prgrama, clique aqui. A instalação do Wireless Tool Kit NÃO É OBRIGATÓRIA, caso você não esteja interessado em desenvolver aplicações para dispositivos móveis, não precisa informar o diretório.

Observações sobre o Projeto Java Mobile : Quando você cria um projeto Java Mobile, é criada também uma pasta com o mesmo nome do projeto, quando você mudar o projeto para um outro local, leve essa pasta junto.

O MakeWare Java oferece diversos recursos que facilitam a vida do programador, como um analisar dinânico de erros de código, mostrando em tempo de projeto onde se encontram os erros daquele e , dependendo do erro, ele te da uma sugestão para você corrigir aquele erro.

O MareWare Java ainda oferece alguns utilitários que ajudam o usuário no desenvolvimento de suas aplicações, são eles: Você conta com um utilitário que realiza consultas SQL em um determinado banco de dados Access, caso vá trabalhar com banco de dados em Java. Você também conta com um utiliário que cria, de modo fácil, arquivos JAR (Java Archive). Um arquivo JAR é como se fosse um arquivo ZIP que contém todas as classes e entre outros arquivos que constituem uma aplicação Java.

O MakeWare Java faz tudo isso com apenas 2,88MB.

Pré-requisitos:

Para o MakeWare Java, é preciso que você tenha instalado o JDK, de preferência da versão 5.0 em diante.

Se por acaso você deseja criar aplicações para celulares , é preciso que você tenha instalado o Wireless Tool Kit, versão 2.5.2.

Para fazer seu download, visitem:

http://makeware.orgfree.com/mkjava.php

Revista Programar – Setembro de 2009

Está disponível para leitura a revista Programar, edição Setembro de 2009. A revista de origem portuguesa (de Portugal) tem como principais tópicos:

  • A construção de diagramas de blocos e suas especificações;
  • Acesso de Banco de Dados remotos a partir do Windows Mobile 6;
  • Uma primeira parte de uma série de matérias sobre a linguagem de programação Lua;
  • Sistema de templates T4.

A revista tem uma periodicidade de 2 meses, portanto sai nos meses ímpares do ano.

Faça o download agora e aprecie as reportagens!

Se o Linux é tão melhor que o Windows e é de graça, por que a maioria dos usuários ainda usa Windows?

Retirado do Viva o Linux. Muito bom! Escrito de forma clara e informal, é de fácil entendimento. Confesso que eu já usei algumas frases deste artigo (“O Windows é uma porcaria, o sistema trava o tempo todo e é cheio de vírus”, “O Linux é Open Source”, “O Linux é de graça”…rsrs…e quem não usa?). Abaixo conteúdo na íntegra:

Conversando com um novo usuário e indicando os benefícios do uso do Linux, ele me fez a seguinte pergunta: “Se o Linux é muito melhor que o Windows e é de graça, porque ele não é o mais utilizado?”. Eis minha resposta em forma de artigo.

Por: Renato Félix de Almeida
Vocês já tentaram fazer um usuário parar de usar Windows e passar para o Linux? Quais argumentos usaram?

1. O Windows é uma porcaria, o sistema trava o tempo todo e é cheio de vírus.

2. A Microsoft é mercenária, só quer saber do seu dinheiro.

3. O Linux é Open Source.

4. No Windows tudo é copiado de outros sistemas.

5. O Linux é de graça.

Mas agora o que você responderia para o usuário se ele te perguntasse:

“Se o Linux é tão melhor que o Windows e é de graça, por que a maioria dos usuários ainda usa Windows?”

Fico pensando qual seria uma resposta, pelo menos aceitável, para essa pergunta.

Acho que antes de dar a resposta, temos que acabar com alguns mitos.

1. O Windows é uma porcaria. Acho que aí está o grande problema, o Windows não é uma porcaria, é um ótimo sistema, muito fácil de usar e atende plenamente a maioria dos usuários. Ou vocês acham que o Bill Gates paga uma fortuna para uma equipe enorme de desenvolvedores, formados nas melhores universidades mundo a fora, para fazer uma porcaria?

2. A Microsoft é mercenária, só quer o seu dinheiro. Tudo bem, a Fiat também é mercenária, você não vai conseguir um carro sem pagar. O dono do boteco ali na esquina também é mercenário, o cara não vai ficar te dando cerveja de graça…

3 Linux é Open Source. Mas pelo fato de ser Open Source não significa que é melhor. Na verdade, tirando exceções (que confirmam a regra) os melhores programas ainda são proprietários.

4. Se grande parte do Windows é copiado de outros sistemas (o que realmente é), será que o Linux também não é?

5. O Linux é de graça. Essa parece até piada, o Windows pirata que 90% dos usuários domésticos usam também é.

Acho que temos que criar novas propostas para o sistema, mais claras e menos fanáticas. Ficam minhas sugestões:

1. O Linux é um ótimo sistema, provavelmente com a maior equipe de desenvolvedores no mundo. O sistema é atualizado numa velocidade incrível, qualquer falha que venha surgir é corrigida imediatamente e a atualização é também muito simples (basta dar um apt-get ou equivalentes).

2. O sistema é baseado no UNIX, priorizando segurança e desempenho.

3. O sistema é desenvolvido por apaixonados, pessoas que programam porque gostam. Fazer o que gosta com certeza torna o resultado final muito melhor.

4. Já existem aplicativos de qualidade, livres ou não, para a maioria das tarefas necessárias para um usuário comum no Linux.

5. Uma instalação do Linux normalmente dura muito tempo sem problemas. O Linux bem instalado funciona anos a fio sem formatação.

Uma coisa é importante: acho que além de falar das coisas boas do sistema, você deve citar também para o possível novo usuário do Linux as deficiências, que na minha opinião são:

1. Você não tem suporte técnico. Se por ventura ocorrer algum problema, você não terá um telefone para ligar ou um e-mail da mesma forma que os programas pagos tem (apesar de não adiantar muito). Mas existe na internet uma vasta documentação, e com um pouco de paciência e atenção a maioria dos problemas podem ser resolvidos com uma simples pesquisa no Google.

2. Você não tem nenhuma garantia. Se você instalar o Linux na sua empresa e o sistema parar de funcionar (o que é muito improvável), não terá a quem reclamar.

3. Pelo fato do concorrente (Windows) ser muito mais utilizado, é provável que em qualquer empresa que você for trabalhar o sistema utilizado será o Windows, tornando necessário saber utilizar os dois sistemas.

4. É possível que algumas coisas no seu computador não funcionem, alguns hardwares mais exóticos, placas de captura, scanners etc.

5. Será mais difícil encontrar técnico especializado para dar manutenção se necessário.

Acho que essa seria uma colocação mais sincera para o usuário. E a partir daí deixa o cara tomar suas decisões. Tentar impor o sistema para o usuário poderia gerar uma falsa expectativa e uma possível frustração.

Agora acho que está na hora de dar a resposta (minha resposta) para a pergunta que não quer calar:

“- Se o Linux é tão melhor que o Windows e é de graça, por que a maioria dos usuários ainda usa Windows?”

1. Trocar de sistema operacional não é tão simples como, por exemplo, trocar de carro. Todos os carros funcionam da mesma forma, ou de forma muito semelhante. No sistema operacional existem conceitos que são muito diferentes e, que a princípio, assustam um usuário menos experiente.

2. Comodismo. O ser humano é muito acomodado e por natureza não gosta de mudanças. Se o negócio está funcionando, para quê mudar?

3. O conceito equivocado que o Linux é um sistema difícil. É verdade que já foi um sistema difícil, mas hoje é tão simples quanto o Windows.

4. A falta de padronização e a quantidade de distribuições existentes do Linux que acabam por confundir o usuário.

5. O Windows já está bem implantando na mente dos usuários. Parabéns para a equipe de Marketing da Microsoft.

6. Os fanáticos pelo Linux, que na minha opinião são a maior praga que existe! Pessoas que se mostram como super usuários com QI acima do normal e que até desdenham de um novo usuário Linux. O problema é que a maioria das pessoas assim nunca escreveu uma linha de código, nunca configurou um simples servidor de arquivos. Vem com essa pose de superiores, seres de outro planeta, quando na verdade não conseguem sequer resolver uma simples dúvida de um novo usuário e por isso o tratam com desprezo.

Bom, fica aí a minha resposta para a pergunta…

Java vs .NET – Parte 2

Achei esta discussão pertinente de ser publicada aqui no blog. Para quem acompanhou a parte 1, aí vai a parte 2. Paulo Krieser mais uma vez expõe os fatos de forma clara, e dá explicações, complementando os comentários presentes no primeiro post, feito por leitores. Abaixo o texto na íntegra e retirado do Java Free. Boa leitura!

Acalorados comentaristas: esta coluna é para vocês, que contribuem para que nosso espaço fique melhor e possa nos fornecer cada vez mais informações preciosas. A idéia da coluna é justamente essa: participação.

Em um primeiro momento quero esclarecer que a idéia desta série de artigos é realizar comparações entre tecnologias da forma mais imparcial possível, para que o tomador de decisão possa escolher quais tecnologias utilizar em seus projetos.

Não existe uma tecnologia que seja melhor do que as outras: devemos sempre ter os objetivos em mente. Algumas se sobressaem em um fator, outras em outros fatores. Por isso a escolha de diversos itens de avaliação, como explicado na minha coluna Fatores para a Escolha de uma Linguagem de Programação.

Respondendo ao comentário do Vanderlei, que solicita o estudo realizado para a formulação dos gráficos que aparecem nas colunas. Conforme explicado em minha coluna Escolhendo a Linguagem: Java vs PHP, as notas atribuídas no gráfico são aproximações realizadas através de conhecimentos empíricos, da experiência que temos com projetos e através de pesquisas na internet.

A idéia não é se ter uma nota exata, e sim apenas um parâmetro de comparação indicando qual a melhor linguagem para determinado fator. Caso a informação contida no gráfico não lhe seja útil desta maneira empírica, fique à vontade para não utilizá-la.

Agora respondendo ao André Luiz Lehmann e ao Daniel: a idéia é comparar tecnologias. Talvez o melhor título para a coluna seja Escolhendo Tecnologias, mas eu não quis me deter a este preciosismo. A comparação é totalmente cabível sim, pois em muitos projetos que realizamos surgiu a dúvida: devemos fazer em Java ou .NET?

É a esta pergunta que queremos responder. Agora, mesmo sendo tecnicamente correto utilizar JEE vs .NET, ASP .NET vs Java ou JSP vs ASP, isto não desqualifica o artigo, devido ao propósito comparativo dele. Eu posso não ter utilizado as siglas com a precisão máxima, mas a comparação entre as tecnologias é totalmente cabível para um gestor tomar a decisão.

Jair: boa colocação, porém discordo em um ponto: o que percebemos no mercado é que o .NET acaba sendo mais rápido para desenvolver, mesmo o Java possuindo estas IDEs que você mencionou. Em uma grande parte dos casos, quem trabalha com .NET trabalha com o Visual Studio (versão paga), aproveitando suas funcionalidades RAD ao máximo. Já quem trabalha com Java normalmente não usa o IntelliJ, por exemplo.

Gabriel: não esqueci o Mono, ele está citado no terceiro parágrafo.

Agradeço ao Rogério Moraes de Carvalho pelo grande post, que demonstra uma certa consistência, embora apresente parcialidade. Concordo plenamente que a defesa não pode ser por paixão por determinada tecnologia, e sim por métodos objetivos.

Conforme comentei ao André Luiz Lehmann e ao Daniel, e vou comentar novamente, a idéia não é se conter aos preciosismos e discussões filosóficas se ASP é uma linguagem de programação ou se é apenas uma tecnologia, e sim realizar a comparação entre as possíveis tecnologias (ou plataformas) que podemos utilizar em um projeto.

Em um ponto Rogério, concordo com você: fui tendencioso em apenas este ponto, onde digo que nada na Microsoft é open source. Este ponto está enfático demais, porém não deixa de salientar a iniciativa monopolística da Microsoft. Todos sabemos que a Microsoft já sofreu processos em relação a isto.

Além disto, cometi um erro ao escrever Win32: eu quis dizer “plataforma Microsoft”. Obrigado Rogério pela correção.

Suportar diversas linguagens diferentes realmente pode causar mais caos e diminuir o quesito manutenabilidade. Por que temos padrões de projeto, melhores práticas e restringimos os desenvolvedores a utilizar o framework do projeto? Isto enrijece a estrutura, porém traz ordem. Este é o objetivo de se utilizar um padrão.

Claro que podemos utilizar apenas uma linguagem na plataforma .NET, porém ela permite utilizar várias, o que aumenta o RISCO de se aumentar a entropia do sistema. Utilizando um padrão fechado, com apenas uma linguagem e um framework, restringimos esta hipótese e diminuimos o risco de causar caos.

Em relação ao comentário do Rogério sobre conteúdo disponível, o que acontece é o seguinte: a plataforma JEE (às vezes a chamo simplesmente Java para fins de simplificação) possui muito mais tempo de mercado do que o .NET e mais programadores utilizando.

É mais utilizada em universidades, e devido a estes fatores o conteúdo na internet é maior do que o conteúdo disponível sobre as tecnologias Microsoft, o que facilita a curva de aprendizado. E veja que coloquei “a principal fonte de conteúdo é o MSDN”, e não a única fonte de conteúdo.

Conforme comentei em todas as colunas desta série, não sou apaixonado por nenhuma tecnologia específica. Minha intenção é fazer uma análise imparcial e objetiva, sem tendências, o que me faz discordar com a opinião do Rogério, que diz que fui “extremamente tendencioso”. Esta é uma opinião pessoal dele, que respeito, mas discordo impreterivelmente. O artigo possui embasamento técnico, teórico e empírico através da experiência que temos com o desenvolvimento de projetos. Queremos ser produtivos e atender ao máximo as demandas dos clientes, independente da tecnologia utilizada. O objetivo não é provar que algo é melhor, e sim atender bem aos clientes de acordo com os requisitos levantados.

Espero que esta série de artigos esteja ajudando a desenvolvedores, arquitetos e tomadores de decisão a conhecerem outras tecnologias e a fazerem suas melhores escolhas, pois este é o intuito do artigo.

Windows e a tela azul da morte

Vendo hoje o blog da Vanessa Nunes lembrei dos tempos em que “encarava” as telas azuis no uso do Windows (Win98, WinXP…), cada uma trazendo um desafio diferente. Velhos tempos…

Mas, será que são tão velhos assim? Acho que o assunto ainda é atual (WinVista por exemplo)…

Abaixo um vídeo que o “Tio Bill” quer esquecer:

E indico também, para os curiosos do assunto, as 12 “melhores aparições” de telas azul.

Java vs .NET

Uma “eterna” discussão. Mais uma vez prevalece a máxima: qual a melhor? A que melhor se adequa a sua realidade. Um post bem escrito e esclarecedor. Merece leitura. Retirado do site JavaFree.org.

Escrito por Paulo Krieser:

Prosseguindo com a sequência de colunas sobre as comparações entre linguagens de programação, neste artigo vamos comparar o Java ao .NET.

Antes que sigam as críticas, cabe esclarecer que o .NET não é uma linguagem, e sim uma plataforma da Microsoft que permite a utilização de diversas linguagens, como C#, Visual Basic, J# e ASP. Vamos focar então a comparação na construção de aplicações web, utilizando J2EE e o framework ASP NET da Microsoft, que é onde as duas linguagens mais competem.

Comecemos pela questão das licenças de uso, que influenciam diretamente no TCO (para referência aos fatores sendo comparados, consultar na minha coluna Fatores para Escolha da Linguagem de Programação). Apesar da Sun deter a marca Java, a mesma tornou a linguagem open source, permitindo aos usuários efetuar alterações convenientes. Para a plataforma .NET, existem algumas iniciativas free, como os projetos Mono e DotGNU. Porém, para se aproveitar todo o potencial da plataforma, é praticamente necessário se adquirir o servidor Microsoft juntamente com o ambiente de desenvolvimento Visual Studio. Sem estas ferramentas, além de não se aproveitar tudo o que se tem, a velocidade de desenvolvimento fica fortemente prejudicada. Além disto, nada na Microsoft é open source.

No item escalabilidade, as implementações das duas plataformas provêem mecanismos de balanceamento de carga, permitindo habilitar um cluster de máquinas para servir às cargas dos usuários que forem aumentando ao longo do tempo. A grande diferença entre o J2EE e o .NET é que desde que o .NET suporta apenas Win32, um número maior de máquinas se faz necessário, comparando ao J2EE, devido às limitações dos processadores.

Em um fator de extrema importância, como velocidade de desenvolvimento, o .NET leva grande vantagem. A sua IDE proprietária, o Visual Studio, é baseado em RAD (Rapid Application Development), aumentando a agilidade na construção de aplicações. O Visual Studio .NET inclui várias ferramentas interessantes em termos de produtividade, como por exemplo o Web Forms. Estima-se que um projeto criado do zero, leve-se de 10% a 20% menos tempo para entrar em produção quando desenvolvido em .NET.

O Microsoft .NET oferece independência de linguagem, permitindo os componentes serem escritos em VB.NET, C# e J#, por exemplo. Para fazer isto funcionar, o código-fonte nestas diferentes linguagens é traduzido para um código intermediário (análogo aos bytecodes do Java) chamado Microsoft Intermediate Language, abreviado IL. O Common Language Runtime (CLR), análogo ao JRE (Java Runtime Enviroment) do Java, interpreta o IL e traduz em código de máquina.

Com um conjunto de linguagens rodando sobre a plataforma .NET, os desenvolvedores diminuem a habilidade de compartilhar as melhores práticas, diminuindo a assertividade do compartilhamento de informações. Assim, especula-se que um conjunto de linguagens rodando em CLR pode levar a uma combinação de código espaguete que fica difícil de manter. Com a liberdade para se utilizar diversas linguagens, a aplicação torna-se mais complexa, necessitando de experts em diferentes linguagens, o que também faz aumentar o TCO e a entropia do sistema.

As duas tecnologias apresentam uma curva de aprendizado parecida, com a diferença de que o Java possui mais material para aprendizado na internet do que o .NET, que é proprietário e a principal fonte de conteúdo é o MSDN.

Analisando o último quesito, portabilidade, praticamente não há o que comparar. Como já dito na coluna anterior, o Java segue o princípio write once, run anywhere, permitindo executar as aplicações na virtual machine em praticamente qualquer ambiente. O .NET roda apenas no Windows, no seu hardware suportado, e no ambiente .NET. Há algumas implementações adicionais do .NET que rodam em outras plataformas, porém que não permitem o uso de todo o potencial do framework.

Concluindo a análise, a plataforma J2EE, possuindo uma interoperabilidade melhor, permite mais facilmente integrações com o legado através de web services e JCA (Java Connector Architecture) e uma maior facilidade de portabilidade, podendo rodar em qualquer sistema operacional. A grande vantagem do .NET é a sua incrível ferramenta de desenvolvimento, que incrementa bastante a velocidade na construção de aplicações. Porém, esta vantagem apresenta o custo das licenças de uso e de se ter uma plataforma proprietária e fechada, seguindo a iniciativa monopolística da Microsoft.

Para a escolha de qual tecnologia utilizar, deve-se analisar o que já se tem de legado e os skills da equipe que irá trabalhar no projeto, aproveitando os conhecimentos já existentes nas linguagens.

Dica – Editores de texto tem recursos de programação

Neste meu aprendizado (que posso afirmar que está em fase inicial) da plataforma Java estou tendo muito mais contato com ferramentas de edição de texto (vi, gedit, kate) do que IDE’s (Eclipse, NetBeans, JDeveloper). Isso está sendo muito mais produtivo, pois os erros aparecem com mais facilidade. É fundamental errar, pois o aprendizado com os próprios erros faz com que seja maior a assimilação do conteúdo estudado. Visando o incentivo para fazer as coisas na “mão” (em produção você não vai ter um Eclipse e suas facilidades para usar…) eu passo alguns links de ferramentas “simples” e que auxiliam nas mais diversas linguagens de programação:

1. Para usuários Linux:

2. Para usuários Windows:

Espero que tenham gostado da dica passada. Programar na “mão” é uma ótima dica para os que estão ingressando no mundo da programação.