Iniciante em Java, peço algumas dicas

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.

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.

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

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.

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

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,

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.

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

uma pergunta de iniciante o que seria o firebird?

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ê)

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

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

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:

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

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

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.

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

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.

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,

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