Iniciante em Java, peço algumas dicas

25 respostas
titanius

Olá amigos, primeiramente quero desde já agradecer a todos que puderem de alguma forma de ajudar.

Sou programador Delphi há pelo menos uns 6 anos… e pelo que andei lendo o Java está superando ele em alguns aspectos… por este motivo que me iniciar nesta área… porém tenho algumas (várias) dúvidas, seguem elas:

  1. Qual o melhor IDE, Eclipse ou NetBeans?
  2. Pra programar pra desktop, digo, não pra página de internet, qual o melhor java, o Standard ou Enterprise?
  3. Existe a possibilidade de conexão com o Firebird 1.5? Qual seria?
  4. Pra se fazer um Form (digo, formulário) é igual ao Delphi, ou tenho que fazer os Forms todos não mão…?

Por enquanto é só isso, com as respostas destas perguntas, serão geradas outras tantas perguntas… :wink:

Desde já agradeço a todos,

[]s

Fellipe H.

25 Respostas

Dieval_Guizelini

Já passei por isso (risos) vou tentar te ajudar… mas se bem me lembro estas dúvidas são a ponta errada do iceberg :lol:

Vejamos:

  1. Os dois são bons, para o iniciante o Netbeans normalmente é melhor porque vem com tudo no pacote, ou seja você não precisa de plugs. Mas com o tempo você poderá testar o Eclipse e certamente gostará da produtividade dele. Se optar em começar direto com o Eclipse então abaixe uma versão do tipo pacotão ver (myeclipse ou eclipse calisto).

  2. Os recursos normais de uma aplicação desktop estão disponíveis no JSE, em casos especiais você poderá fazer uso de outras API, mas o JEE será utilizado para recursos avançados, mais comum na WEB.

  3. Use o driver JDBC (http://sourceforge.net/projects/firebird/)

  4. Tanto o Netbenas como o Eclipse possui bons editores visuais para “desenhar” as telas… mas para aprender o jeito certo de utilizar o java, não faça nada além disto ou seja apenas desenhe as telas…
    Fique londe dos eventos… eles são bons para os POE (Programação Orientada a Eventos) e não para POO.

Boa sorte.

titanius

Olá Dieval, porque você disse que se trata da ponta errada do iceberg? :smiley:

saoj

Compra o livro Learning Java, de preferencia em Ingles. Pode comprar o em portugues tb da editora campus.

Leia ele de cabo a rabo, sem parar. Vai demorar um mes ou mais fazendo isso.

Depois que acabar de ler o livro comece a lê-lo de novo, dessa vez fazendo os seus programinhas. Precisa programar e muito para aprender. Só dá para aprender a programar programando MUITO, nas horas vagas, etc.

Fazendo isso e programando MUITO em um ano vc está com uma excelente base.

Programação, principalmente nas linguagens de alto nível, não existe um mais esperto que o outro. Existe aquele que programou mais do que o outro. Mas tb precisa da teoria, logo compra esse livro.

Eu já li ele 3 vezes. Estou tentando arranjar tempo para ler a ultima edição.

titanius

Bem, estou procurando o livro… gostaria também, que você me falassem algum tutorial, principalmente para programação com banco de dados…

Tenho mais algumas dúvidas:

  • Um amigo meu disse que antigamente tinha a possibilidade de se reverter um codigo em java, ou seja, pegar seu “exe” e voltar pro codigo fonte, isso realmente é verdade?

  • O Driver JDBC, é um driver ODBC, isso torna lento a comunicação com o banco de dados… não existe nenhum acesso nativo pra Firebird?

  • Instalei o NetBeans, pois fiquei preocupado com que o amigo disse sobre plugins e tals… o que vem a ser esses plugins? a IDE já não é completa?

  • Quanto ao “desenhar” o Form, o amigo disse que não era pra usar do jeito que estou acostumado no delphi, em java… porque? fica pior?

Desculpe tantas perguntas, é que saindo de uma IDE como o delphi, que fazer um Form, é tão descomplicado, tá dificil começar em Java, que não achei o Form Designer… :smiley:

[]s

P

Olá Fellipe, tudo bem?

Não sei programar em Delphi (apesar de ser do suporte, ter instalado, configurado etc) mas, a julgar pelo que vejo nos anúncios de emprego, a procura por profissionais desse tipo caiu muito…

Essa escolha é muito pessoal, e eu não vou arriscar afirmar nada… Se você der uma pesquisada aqui e até mesmo em outros fóruns, verá que existem torcedores fanáticos para ambas as IDEs. Imagino que você saiba no que dá juntar torcedores “doentes” por seus respectivos times num mesmo lugar…

Posso até estar equivocado, mas o Java Enterprise (antigo J2EE e atual JEE) é só pra web. ALLguém pode me confirmar isso? :roll:

Sim, via JDBC. Existem drivers para diversos BDs, inclusive para o FB :wink:

A-ha! Sabia que você perguntaria isso… Bem, as IDEs citadas (Eclipse e NetBeans) têm suas facilidades, plugins etc. Dá pra contruir janelas, botões, combo boxes etc com uma certa facilidade, mas não espere pela mesma facilidade encontrada no Delphi/VB, pois não tem…

Essa é uma questão que eu mesmo já me perguntei: "Puxa, já que a comunidade Java é tão desenvolvida, por que as IDEs ainda não têm aquelas facilidades que o Delphi/VB tem? :roll:

ALLguém se arrisca a dizer?

Aquele abraço,

Thiago_Senna

Aplicações JEE não é uma exclusividade para aplicações web. Aplicações desktop, mobile ou até mesmo artefatos criados em outras linguagens, ao meu ver, podem tirar proveito do Java EE.

titanius

Olá pcassiano

Realmente concordo com você que a procura por profissionais pra Delhi caiu, por causa do preço - creio eu - quem tem quase 10 contos pra pagar num delphi original? Se bem que agora lançou a versão Free… vamos ver…

Realmente eu já esperava dificuldade pra programar com Forms, pois igual ao Dephi realmente é dificil… acho que é por isso que ele é o que hoje em dia…

Bem, eu baixei o NetBeans e to baixando o Eclipse, levando em conta o tamanho do arquivo, creio que o eclipse deva ter mais coisas que o NetBeans, pois ele tem seus 150MB contra 52MB do NetBeans… vixi… :roll:

Mas voltando ao assunto… quanto ao drive de conexão ao banco de dados, o JAVA só se conecta por meio de ODBC? Isso deixa meio lento a conexão não é verdade? Pois em Delphi há a conexão por meio direto…

Minha intenção e desenvolver um aplicativo comercial completo, várias Filiais, várias máquina e etc… ou seja, é mais desktop mesmo… sem browser e etc… claro que mais pra frente, pode-se ter a conexão via internet…

Tenho outra pergunta, e quanto a modulação? O java tem condições de trabalhar isso, tipo… um sistema comercial dividido em Comercial, Adminstrativo, Estoque e etc… cada um um módulo diferente, em arquivos diferentes… existe essa possibilidade em java?

Pessoal, sei que alguns amigos podem ficar meio com raiva por causa das comparações entre o java e delphi que eu faço, mas como eu trabalho em delphi, é a única coisa que tenho condições de levar em conta…

[]s

LPJava

uma pergunta de iniciante o que seria o firebird?

A

Olá…

Tem o Jbuilder também da Borland, acho que é a mais completa IDE visual para Java mas o preço, se não me engano chega a ser mais caro que o próprio Delphi.

Não creio que o JDBC deixe tão lento assim, pior que utilizando o BDE não deve ficar.

Quanto a reverter o código para o fonte é possível sim. Existem os obfuscadores que tentam impedir isso mas nunca cheguei a testar e não sei se afetam o desempenho do aplicativo, etc… Dê uma pesquisada nisso antes de entrar de cabeça no Java (Caso essa questão da reversão do código seja um fator importamte para você)

A

Um banco de dados Free, baseado no Interbase da Borland, foi criado depois que o Interbase que tb era free passou a ser comercial.

É um ótimo banco de dados para desktop

titanius

Então perai… quer dizer que qualquer código, sistema, feito em java existe a possibilidade de se reverter o código? Ué, isso é uma falha grave do java, não é? deste modo ninguem vai querer desenvolver algo grande, pra que depois ele possa ser descompilado… estranho…

Vi outra coisa… o Java em si, não é uma linguagem de programação, ou é? pois ela precisa do JAVA (Sun) pra rodar o ssitema, ou seja, é apenas um interpretador de scripts… isso faz com que ele fique muito lento, ou estou falando bobagem?

[]s

Dieval_Guizelini

Tem varias coisas que não concordo nos posts e outros que tenho que responder… então vamos lá: :lol:

Olá Dieval, porque você disse que se trata da ponta errada do iceberg?

A primeira barreira que passamos, quando saimos do Delphi (mesmo quando usamos as boas práticas de OO que o Delphi permite) para o Java, em aplicaçÕes Desktop, é parar de pensar de forma POE (Programação Orientada a Eventos) e passar a pensar em POO.
Veja um exemplo, quando queremos implementar o equivalente do evento OnChage do delphi em Java, devemos utilizar os Listener e melhor ainda se implementarmos os listener em classes separadas… no Delphi fariamos todos na mesma unit e na mesma classe T…

No Delphi, esperamos que a fila de eventos do Windows receba as ações e o gerenciador do Delphi direciona para o evento correspondente, no Java devemos implementar uma Thread que fica “monitorando” as alterações das propriedades (OnChange) ou aguardando um ação do usuário (mouse, teclado etc).

Logo, para você compreender o potencial deste modelo, você pode construir pequenas aplicações… pode ser em modo console mesmo. E pense em problemas como dos filosofos jantando… Implemente classes, heranças, propriedades, métodos… faça de tal forma que você ganhe maior conhecimentos das packages básicas do Java (lang,util,io) e depois inicie em Swing ou Swt (Eclipse). De uma olhada especialmente nas APIs de coleções, ela será de fundametal importância para qualquer tipo de aplicação futura.

Na sun tem ótimos tutoriais:
http://java.sun.com/docs/books/tutorial/

Eu recomendo também os livros:
Java: O Guia Essencial de David Flanagan e o livro “Guia completo de estudos para certificação em Java 2”. Este último, infelizmente não achei nenhuma atualização para o java 5 e ai ele deixa de lados as boas novidades da versão 5. Mas é o mais didáticos deles… de forma geral procure livros recomendados pela Sun e fuja de livros como o do Deitels.

Com relação ao JDBC, é importante compreender que existem 4 versões, apenas os drivers do tipo 1 utilizam o odbc, os demais são melhores e nas versões 3 e 4 são até mais rápido que os drivers nativos do Delphi.

veja mais em:
http://developers.sun.com/product/jdbc/drivers

Com relação ao tamanho dos arquivos… (netbeans e eclipse)
Quando baixados as versões equivalentes eles ocupam praticamente o mesmo espaço e consomem praticamente os mesmos níveris de recursos do hardware (CPU, MEMÓRIA ETC) a diferença é que, quando você baixa o netbeans do site netbeans.org você pega apenas a IDE, mas se baixar da sun, você pegará um pacote que vem com o kit de desenvolvimento da Sun (JSDK,JRE + Netbeans) e o eclipse vem com os conjuntos de compiladores alternativos da IBM. Existem vantagens e desvantagens em cada um deles… apenas o tempo lhe dirá qual é a melhor escolha.

Com relação ao JBuilder eu já dei uma olhada nele… e recomendo tranquilamente para você ficar bem longe dele… o problema é que a Borland acha que ao incluir os seus componentes datasets no JBuilder estava contribuindo para o desenvolvimento do Java… fique longe das técnicas equivalentes aos datasets… eles misturam interface com lógica de negócio com camada de persistência (banco de dados). Este sim é o pior dos caminhos…

Enquanto for ganhando experiência em java vai dando uma olhada em outras teorias que te ajudarão melhor os conceitos e técnicas de programação, tais como: padrão MVC, Design Patters (GoF) etc.

novamente… boa sorte e seja bem vindo a melhor linguagem de programação existente até o momento.

Falou.

:lol:

Dieval_Guizelini

Em primeiro lugar, qualquer código pode sofrer engenharia reversa… em segundo se você quiser realmente criar um algoritmo novo e ganhar dinheiro com a idéia e não com a venda do software ou dos serviços então procure patentiá-lo. Este não é um problema grave e hoje em dia com a filosofia do software livre estes medos tem sido drasticamente reduzidos…

O java utiliza os dois conceitos: compilação e interpretação.
O código java é compilador e transformado em bytecode. O bytecode é interpretado pelas VM. Como a SUN padronizou a especificação da VM, existe uma ou mais VM para cada SO e desta forma você compila o código uma vez e roda em qualquer plataforma.

Agora se você quer comparar a performance do java, veja uma versão do quake feita em java:
bytonic.de/html/jake2.html
e outros como o Celestia…

e não é apenas em computação gráfica que o Java da o show, em 100% java temos:
banco de dados
hsql - http://www.hsqldb.org/
apache derby - http://db.apache.org/derby/

servidores web:
tomcat ou jet

ferramentas de modelagem
Jude
argo

etc

titanius

Olá Dieval,

Infelizmente já fiquei com o pé atras com o Java, pela afirmação acima do amigo, que diz que existe a possibilidade de alguém reverter o código… pow, você tem um enorme trabalho pra desenvolver algo, pra uma pessoa ir lá e reverter seu código?! Sei lá, acabei ficando meio com medo disso…

Quando as IDEs, baixei todas possíves… NetBeans, Eclipse, JBuilder… esta ultima ainda não vi… e pelo que andei vendo o NetBeans tá mais legal pra mim… tem lá a opção de desenhar os forms e tals… mas devo confessar que senti falta dos eventos que você mencionou…

Acho que será muito, muito difícil de perder a mania de programar em POE como na maioria dos visuais atualmente…

[]s

A

Concordo plenamente, e este é um dos maiores paradigmas para quem está acostumado com IDE’s como o Delphi.

1 - Isso é ilegal e dá cadeia
2 - Se o programa for tão bom e inovador patenteie.
3 - Tenha em mente que o seu cliente não está preocupado apenas com as funções/recursos do seu software mas tb com o suporte que ele terá depois de adquirir e outros serviços agregados

Eu trabalhei e ainda trabalho com Delphi e realmente ele te leva a misturar tudo, Logica de negócio com apresentação.
Um exercício que acho interessande de se fazer para começar a se livrar desses conceitos é programar para Web onde vc não terá essas facilidades/armadilhas proporcionadas pelo Delphi.

titanius

Olá apo

Realmente… to doidinho que isto… o delhi tem suas facilidades, o que te leva a certas manias… lembra do cachimbo te leva a boca torta? é a mesma coisa… quase uma década em delphi… tenho manias que realmente será dificil de reverter, mas eu quero isso…

O problema da reversão… isso não é possivel em todas as linguagens…digo isso por causa do delphi, o máximo que você consegue é um código asm bem sujo… o cara tem que ser o ás do asm pra entender… não digo que não existe a possibilidade, mas é mais remota…

Sei que isso se trata de crime, mas como nós mesmo sabemos aqui no Brasil é complicado este assunto… não adiantaria nada eu também patentiar… depois que alguem poe a mão no código, já era…

Um amigo disse sobre o lado Free… surge mais uma pergunta, a licença do Java possibilita que eu desenvolva um sistema comercial?

[]s

jmp

engenharia reversa em software não dá cadeia, e dependendo do software não há nada no contrato que te proiba fazer isso. A questao é se o software é legal e o que voce vai fazer com as informacoes que obteve a partir do codigo que encontrou.

uma patente leva milenios para sair e custa absurdos de dinheiro.

P

Olá titanius, tudo bem?

Já levantei essa questão aqui, e o máximo que recebi foram “dicas” me orientando a disponibilizar meu programa como Open Source, para não ter esse tipo de problema… :twisted: Ninguém “arriscou” me sugerir uma linha de código sequer para proteger meu programa…

Concordo com você, não gostaria de ter um trabalho enorme de criação/codificação para depois ser pirateado :cry: Entretanto, a impressão que tenho é que os programadores Java:

  1. Não gostam/sabem programar para Desktop (por isso ninguém se preocupa com a “proteção contra a pirataria”;

  2. Não sabem nada de criptografia - assim como eu, conhecimento essencial para “proteger” um programa…

Existem livros que ensinam criptografia em Java, esse conhecimento pode ser útil… Dá uma olhada na Amazon e veja o que encontra.

Não desanime com Java! Estou há alguns meses estudando, já passei por momentos piores (de pensar em chutar o pau da barraca, vender meus livros e virar pescador…) porém a julgar pelas respostas que tenho recebido sobre algumas dúvidas que posto por aí, tá faltando gente que SAIBA Java realmente no mercado! Em se tratando de programação desktop, a coisa piora…

Uma coisa é você ter uma noção (assim como eu…), outra coisa é você saber algo mais concreto (criar uma pequena aplicação JSP por exemplo) e outra bem diferente é você saber como criar uma aplicação desktop inteira em Java, como por exemplo um ERP…

Esse tipo de programador que “faz algo de útil em Java” eu não vejo por aí… :roll: Esse “nicho” precisa ser explorado; Já que é pra “dar duro” estudando/trabalhando com informática, por que não se esforçar por algo que valha a pena (Java)? :wink:

Aquele abraço,

titanius

pcassiano

Realmente, você disse tudo, pelo que vejo na internet (olha que busquei bastante) só se vê falar em Open, Free… nada comercial… o motivo é este mesmo… acho que Java ainda não é pra Desktop, pois não se encontra nada a respeito, e pra ser Desktop, o mínimo de proteção de código tem que existir… como você falou, já pensou uma firma desenvolver um ERP, pra depois uma pessoa ir lá e pegar teus códigos fontes? isso não existe… patentear? Não funciona, principalmente no Brasil… gasta-se muito, e não protege nada… como vou saber se alguem pegou o meu código? impossível…

Ou seja, ao meu ver, e ao meu entender até o momento, Java foi feito pra internet, pois pra alguem ter a mão nos fontes, deve-se ter acesso ao servidor que está os mesmos… desktop? ainda não vi motivos que me levam a rumar este caminho… :frowning:

Posso estar errado, e espero (caso esteja) que algum amigo, me diga aqui o porque, pois realmente uma linguagem na estrutura do java, ter uma falha desta impossibilita qualquer projeto comercial…

[]s

Dieval_Guizelini

Senhores,

com relação a questão do titanius:

O Java pode ser utilizado para qualquer tipo de aplicação e qualquer tipo de empacotamento. O que você não pode é distribuir a VM da SUN junto, mas existem alternativas que podem. Outro aspecto é que existe uma grande experança para que no próximo JavaONE a SUN libere as restrições que ainda prente com relação a este aspecto.

Com relação ao registro, tenho um produto que utiliza algoritmos genéticos e modelagem especifica para escalonamento de horários. Espe produto foi registrado no INPI e tem suas “licenças” registradas em cartório, de tal forma que se a nossa empresa se sentir prejudicada ela pode recorrer na justiça pelo “mal” uso do produto.

Os cuidados que qualquer softwarehouse deve ter com seus produtos é sempre distribuir junto com o software:

  1. a cópia clara do contrato, principalmente no que diz respeito sobre a utilização de cópias;
  2. a quem está liberado o uso;
  3. quais os limites do suporte técnico;
  4. as características do produto, o que ele se compromete a fazer e quando couber, o que ele não se responsabiliza em fazer;
  5. Direitos de autoria;
  6. Utilização de seu código-fonte por terceiros, seja de forma completa ou parte sem expressa concessão dos autores;
  7. Caracterização do produto como produto intelectual;

etc

E principalmente, onde a maioria erra, no término do contrato ou de sua validade, clareza com relação a continuidade de uso do produto e os limites de alteração.

Vejam, estas questões não estão relacionados as ferramentas de desenvolvimento e sim as leis que regulamentam:

a) direitos autorais, com relação a autoria intelectual do produto;

b) industrial e de produção, aplicado a construção e distribuição;

c) de serviços, no que tange a maioria dos contratos.

O maior problema das equipe de informática está em “aceitar” algumas premissas, por exemplo:

  1. Se uma empresa te contrata para desenvolver um siftware, se ela te passa a regra de negócio e você é um funcionário, então o software é de direito inquestionável da empresa contratante.
  2. Se a empresa te contrata para desenvolver um software, se ela te passa a regra de negócio e você não é um funcionário, então os limites deverão ser estabelecidas no contrato. Embora, independente deste, ambas as partes tem direitos sobre o produto. A primeira por ter financiado e fomentado com o conhecimento especifico e a segunda por ter viabilizado e concretizado a idéia.

Ai é que está o problema, quantos de vocês construiram um software, com seu conhecimento especifico sobre o assunto (sem depender de terceiros), inovaram no uso da tecnologia, fizeram o registros e depois perderam os direitos sobre o produto? não conhece nenhum caso no Brasil que tenha ocorrido isto.

Mas vale a pena discutir para melhor compreendermos as relações empregaticias e mercadologicas envolvidas.

Com relação aos decompiladores do DELPHI eu tive acesso a pelo menos dois que faziam engenharia reversa e geravam os forms e o código-fonte (object pascal) com boa qualidade. Tanto que o nosso sistema utiliza o handProt para evitar a pirataria e dificultar a engenharia reversa.

Mas com certeza é mais dificil do que no Java.

Continuo acreditando que estas questões serão resolvidas de outras formas e que a decisão técnica deve ser na escolha mais acertada sobre qual ferramenta de desenvolvimento que “sobreviverá” aos próximos 10 anos de evolução. Das que eu conheço eu aposto no Java.

Com relação ao desenvolvimento para desktop, acho que o problema maior é que este ambiente está precisando ser reinventado, o desktop tem que incorporar alguns aspectos do padrão web, da iteratividade dos jogos… enfim, algo que poucos desenvolvedores estão procurando. Para melhor exemplificar o que eu digo eu cito o Aerith.
https://aerith.dev.java.net/

fw

jmp

Impedir usuario de piratear é quase impossível. Se o sujeito estiver motivado ele vai conseguir, desista, não importa é C, ASM, com hard lock, ou oq quer que seja, nem o WGA durou + que 2 semanas. Voce tem que ter formas é de descobrir se aconteceu e quem foi, e isso java é tão capaz de fazer quanto outras linguagens.

Uma forma interessante de evitar pirataria é agregar valor à interação do usuário com a empresa que desenvolveu, e isso não é lá muito dificil. O usuário vai piratear e vai ver que se comprar vai ter ainda mais facilidades, e acaba comprando.

No final das contas, pirataria controlada é uma forma de marketing.

[]s

titanius

Longe de mim fazer aqui apologia a outra linguagem… :wink: mas em delphi você nunca iraá conseguir um código em Delphi Language (antiga Object Pascal) o máximo que se consegue é um código assembly, muito sujo… o que dificulta e muito a pirataria…

Digo o seguinte, a questao nao eh a pirataria do sistema em si, e sim do codigo dele… você investe sei lá, 1 ano de pesquisa e desenvolvimento, pra um usuario pegar teu codigo modificar e vender!?

Posso estar falando bobagem… mas esta questão é complicada…

[]s

Ratao

Pow Galera! Vão me desculpar, mas ver esse monte de gente falando que DELPHI não perde muito para o JAVA e dizer que JAVA tem falhas por ter como reverter códigos e tals… Isso me deixou de certa forma desapontado! Entram no nosso grupo e vêm falar de superioridade do DELPHI sobre o JAVA.
Acho que esses caras deveriam olhar mais para o MERCADO MUNDIAL, para cada CELULAR em tuas mãos, MICROONDAS, SOLARIS e milhares de coisas.
Se JAVA fosse “inferior” mesmo não estaria entre as melhores linguagens existentes e com tal potencial de ser capaz de ser MULTI-PLATAFORMA e independente.
Pensem o que quiser, cada um tem uma forma de pensar e eu respeito, mas vir falar mal não galera! :smiley: :thumbdown:
O que falta realmente é CAPACITADOS como citado acima!

Abraços! Não me entendam mal hein?!

cv1

Ou seja, todo mundo pode falar o que quiser, mas so pode falar as coisas que vc concorda?

Ratao

Ou seja, todo mundo pode falar o que quiser, mas so pode falar as coisas que vc concorda?

Longe de mim isso cara! :smiley:
Acho que fui interpretado incorretamente. Todos têm o direito de falar o que quiser. So que nao entro no site do DELPHI para falar que JAVA é melhor. :smiley:
Foi isso que quis dizer! Foi mal se me entendeu errado. Cabe a cada um com certeza expor o que pensa e eu defender o que acho correto.

valeu!?

Criado 28 de setembro de 2006
Ultima resposta 3 de dez. de 2006
Respostas 25
Participantes 10