Delphi para Java

32 respostas
Luciano_Lopes

Olá pessoal,tudo bem?Sou novo aqui no forum e também novo no Java,alias ainda tenho minhas dúvidas em migrar para essa linguagem,ja li muito sobre Java,ja fiz alguns exercicios e vi que ela é muito boa,sou programador Delphi a algum tempo,e estou querendo aumentar meus conhecimentos sobre programação,então decidi mudar para o Java,como desenvolvo sistemas com cadastros,gráficos,relatórios,etc gostaria de saber se vale a pena mudar de linguagem ja que a IDE que uso no Java é o NetBeans 6,ela é boa mas ainda é muito no braço,ja o Delphi tem o famoso “clica e arrasta” que facilita muito na hora de desenvolver sistemas,levando em concidereção o tempo de desenvolvimento,tecnologia,segurança,etc oque vocês acham melhor na minha situação,Delphi ou Java?Desde ja obrigado pela atenção,abraços.

32 Respostas

MaiqueL

Java - sistemas de médio a grande porte.

Delphi - sistemas de pequeno porte.

K

MaiqueL:
Java - sistemas de médio a grande porte.

Delphi - sistemas de pequeno porte.

Nada a ver isso, você tem algum embasamento para dizer que Delphi é utilizado apenas para projetos pequenos? conclusão precipitada.

Agora respondendo ao rapaz, você está mudando por questão de emprego ou por questão de tecnologia/tendência? se for fazer cadastros e relatórios que já faz em Delphi que relevância faz você quer usar Java pra fazer a mesma coisa? Seus clientes estão migrando tudo pra Linux? Além do mais Java com swing além de ser torturante é muito massante escrever interfaces em Java, mesmo você usando netbeans não vai ser tão produtivo como no Delphi, se o que vai usar são estações windows, então não vejo motivo pra mudar. Se for usar web, pode ser então uma viablidade positiva, agora ficar fazendo sistemas desktop para rodar no Windows usando Java, é perda de tempo. Se for visar emprego, então é melhor estudar Java e ver o que mercado mais pede, empregos em Delphi realmente não andam em alta, mas pra desenvolvedor independente é a melhor solução para criar sistemas para clientes de qualquer porte, lembre-se, o limite é você que impõe e não a tecnologia.

MaiqueL

knowledgebr:
MaiqueL:
Java - sistemas de médio a grande porte.

Delphi - sistemas de pequeno porte.

Nada a ver isso, você tem algum embasamento para dizer que Delphi é utilizado apenas para projetos pequenos? conclusão precipitada.

Agora respondendo ao rapaz, você está mudando por questão de emprego ou por questão de tecnologia/tendência? se for fazer cadastros e relatórios que já faz em Delphi que relevância faz você quer usar Java pra fazer a mesma coisa? Seus clientes estão migrando tudo pra Linux? Além do mais Java com swing além de ser torturante é muito massante escrever interfaces em Java, mesmo você usando netbeans não vai ser tão produtivo como no Delphi, se o que vai usar são estações windows, então não vejo motivo pra mudar. Se for usar web, pode ser então uma viablidade positiva, agora ficar fazendo sistemas desktop para rodar no Windows usando Java, é perda de tempo. Se for visar emprego, então é melhor estudar Java e ver o que mercado mais pede, empregos em Delphi realmente não andam em alta, mas pra desenvolvedor independente é a melhor solução para criar sistemas para clientes de qualquer porte, lembre-se, o limite é você que impõe e não a tecnologia.

Olá knowledgebr,

Sobre Java e Delphi a minha opnião é que Delphi cai melhor que o Java em pequenos sistemas, já o Java é melhor que Delphi em sistemas mais parrudos.

concorda comigo?

obs:. Eu uso Swing em pequenos sistemas e consigo uma produtividade razuável …

K

MaiqueL:
knowledgebr:
MaiqueL:
Java - sistemas de médio a grande porte.

Delphi - sistemas de pequeno porte.

Nada a ver isso, você tem algum embasamento para dizer que Delphi é utilizado apenas para projetos pequenos? conclusão precipitada.

Agora respondendo ao rapaz, você está mudando por questão de emprego ou por questão de tecnologia/tendência? se for fazer cadastros e relatórios que já faz em Delphi que relevância faz você quer usar Java pra fazer a mesma coisa? Seus clientes estão migrando tudo pra Linux? Além do mais Java com swing além de ser torturante é muito massante escrever interfaces em Java, mesmo você usando netbeans não vai ser tão produtivo como no Delphi, se o que vai usar são estações windows, então não vejo motivo pra mudar. Se for usar web, pode ser então uma viablidade positiva, agora ficar fazendo sistemas desktop para rodar no Windows usando Java, é perda de tempo. Se for visar emprego, então é melhor estudar Java e ver o que mercado mais pede, empregos em Delphi realmente não andam em alta, mas pra desenvolvedor independente é a melhor solução para criar sistemas para clientes de qualquer porte, lembre-se, o limite é você que impõe e não a tecnologia.

Olá knowledgebr,

Sobre Java e Delphi a minha opnião é que Delphi cai melhor que o Java em pequenos sistemas, já o Java é melhor que Delphi em sistemas mais parrudos.

concorda comigo?

obs:. Eu uso Swing em pequenos sistemas e consigo uma produtividade razuável …

A questão não é concordar, a questão é porque sempre dizem que Delphi é pra sistema pequenos e Java sempre é utilizado para sistemas parrudos? não vamos comparar a questão de plataforma, sabemos que Java tem um suporte rico em vários áreas que agilizam muito os resultados finais, mas não significa que tal tecnologia é apenas utilizada por soluções pequenas e triviais, o contexto que você põe o Delphi é bem minimalista, um bom developer por exemplo com um editor de arquivos como VI e um GCC pode fazer sistemas poderosos e nem por isso seria menos eficiente que um sistema feito em Java, você poderia dizer que não é padrão ou adequado para tal finalidade por questões de tempo e custo, até aí tudo bem, mas inferior não, o mesmo se resume ao Delphi, pode-se fazer o quiser, o limite é o developer, mas com certeza Java tem a receita de bolo pra tudo.

Luciano_Lopes

knowledgebr,realmante o desenvolvimento em Java é mais lento,pois o NetBeans por exemplo não tem a cadeia de componentes que o Delphi tem,gosto da ideia de programar em Java porque ele roda em qualquer plataforma,mas como você mesmo citou,não é produtivo programar no mesmo por essa questão do tempo,acho que um sistema que demora uns 30 minutos em Delphi vai demorar 1 hora no Java (dependente do programador),o Delphi se torna rapido somente por causa dos componentes de conexão com o banco de dados,mas na hora da programação mesmo o tempo de desenvolvimento quase igual a do Java,pensei em migrar para o C++ usando o a IDE da borland que iria me trazer rapidez e eu teria uma boa tecnologia em mãos,só que não sei o porque mas o Java ta me puxando XD Existem componentes de conexão com banco de dados em Java como no Delphi?Aproveitando a pergunta,quais componentes existem para montar um sistema comercial?

Felagund

Delphi é bom para sistema de maior porte sim, mas com o tempo a manutenção dele fica complicada, aquele código macarronico é muito complicado. E com o netbeans aqui onde trabalho temos uma desenvolvimento muito agil, em 20 minutos temos uma interface pronto rodando. Lógico que temos nossos proprios compoenentes. para as nossas necessidades e isso ajuda bastante.

o SwingX para o cara da pergunta acima, é um conjunto grande de compoenentes para Swing.

[]'s

laudenpower

Concordo com o que o colega acima disse, uma vez que você tem seus componentes em java não é tão improdutivo desenvolver uma interface gráfica, porém é uma quebra de paradigma muito grande, apesar de ser OO também delphi tem um forte apelo de programação voltada a banco de dados, você fica na rotina de " coloca componentes do banco na tela, desenha a tela, roda, testa… " tipo em java você usando os design patterns adequados você consegue modularizar e desenvolver de forma muito mais produtiva, sem falar que a manutenção de um bom código java é muito mais tranquila que mexer em um sistema que tem lógica de banco, interface e negócios no mesmo lugar.

obs: Com relação a delphi ser direcionado a pequenos sistemas, eu trabalho com um sistema que foi desenvolvido em delphi e que roda em um banco público, por ai você tira o poder da ferramenta.

Luciano_Lopes

Felagund:
Delphi é bom para sistema de maior porte sim, mas com o tempo a manutenção dele fica complicada, aquele código macarronico é muito complicado. E com o netbeans aqui onde trabalho temos uma desenvolvimento muito agil, em 20 minutos temos uma interface pronto rodando. Lógico que temos nossos proprios compoenentes. para as nossas necessidades e isso ajuda bastante.

o SwingX para o cara da pergunta acima, é um conjunto grande de compoenentes para Swing.

[]'s

Pesquisei na net sobre o SwingX mas não encontrei nenhum componente que me ajudasse com a conexão com o banco,mas encontrei varios componentes que ajudam muito,principalmente na parte gráfica :slight_smile: esses componentes são gratuitos?Onde posso encontrar mais componentes para o NetBeans?

laudenpower, o delphi é bem poderoso só que ele tem seus “contra tempos”, tem coisa que acontece no Delphi que só Deus mesmo para saber oque foi que deu rsrsrsr
o Java pode ser mais trabalhoso mas pelo menos você tem 100% de controle sobre o código que esta ali,ja no Delphi você não tem esse controle.

laudenpower

Luciano_Lopes:
Felagund:
Delphi é bom para sistema de maior porte sim, mas com o tempo a manutenção dele fica complicada, aquele código macarronico é muito complicado. E com o netbeans aqui onde trabalho temos uma desenvolvimento muito agil, em 20 minutos temos uma interface pronto rodando. Lógico que temos nossos proprios compoenentes. para as nossas necessidades e isso ajuda bastante.

o SwingX para o cara da pergunta acima, é um conjunto grande de compoenentes para Swing.

[]'s

Pesquisei na net sobre o SwingX mas não encontrei nenhum componente que me ajudasse com a conexão com o banco,mas encontrei varios componentes que ajudam muito,principalmente na parte gráfica :slight_smile: esses componentes são gratuitos?Onde posso encontrar mais componentes para o NetBeans?

laudenpower, o delphi é bem poderoso só que ele tem seus “contra tempos”, tem coisa que acontece no Delphi que só Deus mesmo para saber oque foi que deu rsrsrsr
o Java pode ser mais trabalhoso mas pelo menos você tem 100% de controle sobre o código que esta ali,ja no Delphi você não tem esse controle.

O grande problema do delphi é justamente esse, você por conta dos componentes fica “cego”, pois acaba não se preocupando com o que eles fazem, mas assim nesse caso é o que se paga pela suposta “produtividade”, nesse caso java pode ser mais trabalhoso mas realmente te dá mais controle sobre a aplicação, mesmo com o uso de framework’s de persistencia (hibernate, toplink, ibatis, etc…), e quanto ao swingX se não me engano ele foi descontinuado, mas nada impede de você estender os componentes do swing e criar seus próprios métodos de acesso e manipulação de informações.

Espero ter ajudado…

Luciano_Lopes

outra duvida que tenho é na hora de destribuir o sistema,eu tenho que construir um aquivo .jar certo?como faço para ficar .exe?Para rodar a minha aplicação o cliente tem que ter o jdk instalado na maquina?

laudenpower

Java não gera .exe por que ele é interpretado e para executar o .jar o cliente não precisa ter o jdk e sim a jre, o jdk é usando apenas pelos desenvolvedores, o que acontece é que ele já vem com a jre embutida; para o cliente a única coisa que interessa para rodar a aplicação é a jre.

Espero ter ajudado…

wesleyjoliveira

Ainda assim, caso você realmente queira fazer um .EXE existem frameworks para auxiliá-lo nisso. Dê uma pesquisada no forum que você encontrará.

Luciano_Lopes

É que peguei uns exemplos de sistemas em java com extenção .jar e vi que podia modificar a aplicação,como faço p/ proteger meu sistema contra isso?

laudenpower

É que peguei uns exemplos de sistemas em java com extenção .jar e vi que podia modificar a aplicação,como faço p/ proteger meu sistema contra isso?

Você pode usar programas chamados de obfuscators, nesse caso esse programa “embaralha” teu código dificultando a leitura por outra empresa por exemplo.

Luciano_Lopes

No caso de vocês,como fazer para destribuir as suas aplicações?

laudenpower

Para ser sincero, no nosso caso a gente foi no cliente instalamos a jre, e copiamos o jar no mesmo. Tipo como era um sistema pequeno e que iria ser usado em um notebook não demos atenção a proteção de código.

Luciano_Lopes

Que tipo de sistemas você desenvolver em Java?To quase mudando 100% para Java XD

laudenpower

Usamos swing para interface, e hibernate como framework de persistencia nada mais nada ehehehehe, na verdade para interface desenvolvemos um framework estendendo os componentes do swing.

Luciano_Lopes

Esse hibernate é para desenvolvimento em desktop,ele é melhor que o NetBeans?

celso.martins

Hibernate = framework ORM. Dá uma olhada aqui.

E/T: O problema do “código macarrônico” no Delphi não é culpa da ferramenta e nem do Object Pascal. É do desenvolvedor. Se utilizarmos os princípios de projeto e os princípios da OO, teremos um projeto bem feito e fácil de manter.

E/T2: Não migre, mude, troque de linguagem, apenas acrescente.

Abraços.

laudenpower

VIxe… tipo vamos separar as coisas… É o seguinte o hibernate é um framework de persistência que serve para você realizar as operações no banco sem depender tanto de SQL, inclusive ele faz a diferença justamente na questão da produtividade pelo fato de não se escrever comandos SQL para operações CRUD por exemplo. Já o netbeans é um IDE, que dá suporte a várias linguagens inclusive, tipo nesse caso se você quer mais produtividade na hora de desenvolver interfaces para desktop por exemplo ele é o mais indicado, pois é gratuito e muito completo.
O que vale ressaltar é a diferença, o netbeans é uma ferramenta RAD e o hibernate é um framework de persistência.

Espero ter esclarecido… :slight_smile:

laudenpower

celso.martins:
Hibernate = framework ORM. Dá uma olhada aqui.

E/T: O problema do “código macarrônico” no Delphi não é culpa da ferramenta e nem do Object Pascal. É do desenvolvedor. Se utilizarmos os princípios de projeto e os princípios da OO, teremos um projeto bem feito e fácil de manter.

E/T2: Não migre, mude, troque de linguagem, apenas acrescente.

Abraços.

Tipo você poderia dar um exemplo de arquitetura em delphi que modularizaria lógica de BD, lógica de interface e lógica de negócios da mesma forma que temos em java? Pergunto isso por que fiquei 3 anos em delphi e não tive a oportunidade de ver um projeto estruturado da mesma forma que vejo hoje em java.

Espero não ter parecido incisivo apenas tenho curiosidade :slight_smile:

celso.martins

laudenpower:

Tipo você poderia dar um exemplo de arquitetura em delphi que modularizaria lógica de BD, lógica de interface e lógica de negócios da mesma forma que temos em java? Pergunto isso por que fiquei 3 anos em delphi e não tive a oportunidade de ver um projeto estruturado da mesma forma que vejo hoje em java.

Espero não ter parecido incisivo apenas tenho curiosidade :)

Sem problemas.

Cara, o Delphi é baseado no Object Pascal, que é orientado a objetos. Como você tem o conceito de objetos e classes, a implementação usando o paradigma OO depende de você. Dessa forma, você pode criar classes DAO, por exemplo, para a camada de persistência. Sem problema algum. Você pode (e deve) encapsular estado e comportamento em objetos. É só fazer TFoo = class…

Obviamente você criará os “componentes visuais” na mão, como um ADOQuery. Mas isso não chega a ser um problema, tendo em vista a legibilidade que ganha o código.

É preciso tomar cuidado, também, com o fato do Object Pascal não possuir um Garbage Collector.

Não lembro de ter visto algo parecido com interface no Object Pascal, mas classes, é fácil.

Abraços.

wesleyjoliveira

Luciano,

Vejo pela sua pergunta que algo não foi ainda entendido por você.

Vou ser bem direto pra voce entender:
1o. O Hibernate nao subistituirá o NetBeans pois fazem coisas totalmente distintas.
2o. O Hibernate cuidará da persistencia de sua aplicação. (ex. Salvar, Deletar Registros)
3o. O NetBeans e o Eclipse vai atuar como o Editor do Delphi (na maior parte das vezes sem forma visual)
4o. O Hibernate poderá ser utilizado como qualquer editor (Eclipse ou NetBeans) pois ele eh um “componente” para ajudá-lo no mapeamento OR.

Espero ter esclarecido pois vi que algumas respostas foram tão a fundo que não olharam o básico.

K

[quote=Luciano_Lopes]

Felagund:
Delphi é bom para sistema de maior porte sim, mas com o tempo a manutenção dele fica complicada, aquele código macarronico é muito complicado. E com o netbeans aqui onde trabalho temos uma desenvolvimento muito agil, em 20 minutos temos uma interface pronto rodando. Lógico que temos nossos proprios compoenentes. para as nossas necessidades e isso ajuda bastante.

o SwingX para o cara da pergunta acima, é um conjunto grande de compoenentes para Swing.

[]'s

Pesquisei na net sobre o SwingX mas não encontrei nenhum componente que me ajudasse com a conexão com o banco,mas encontrei varios componentes que ajudam muito,principalmente na parte gráfica :slight_smile: esses componentes são gratuitos?Onde posso encontrar mais componentes para o NetBeans?

laudenpower, o delphi é bem poderoso só que ele tem seus “contra tempos”, tem coisa que acontece no Delphi que só Deus mesmo para saber oque foi que deu rsrsrsr
o Java pode ser mais trabalhoso mas pelo menos você tem 100% de controle sobre o código que esta ali,ja no Delphi você não tem esse controle.

Não tem controle? você tem os fontes e pode saber muito bem o que está fazendo, o que acontece com a maioria é que só se limitou a colocar componentes e setar propriedades e executar alguns métodos, o próprio Delphi induz a isso deixando transparecer mais facilidade, mas fugindo dessa técnica você pode montar patterns em Delphi como se monta em Java, o Java não lhe dá tanta liberdade de sair da linha, por isso ele é padrão para desenvolver patterns, conheço caras com muitos anos de Delphi e poucos sabem realmente a fundo a ferramenta, você pode construir aplicações a acesso a banco de dados com velocidade 10x superior se deixar de usar componentes dataware, somente usando o componente VirtualTreeView e edits, a velocidade é rápida demais, mas em contrapartida, você terá que codificar muito mais, porém com um código realmente orientado a objetos, a demora do resultado no inicio, compensa no final, fazendo testes, controle de versão, terá um código fácil de manutenção e não aquela coisa horrenda de clickar em componente e enchertar código em eventos pra lá e pra cá, não fale que Delphi faz uma bagunça, quem bagunça é o developer, se aprendeu a programar lendo os livros do Cantu então está enrolado.

Como disse, quem é limitado é o developer e não a ferramenta, falowz.

K

laudenpower:
celso.martins:
Hibernate = framework ORM. Dá uma olhada aqui.

E/T: O problema do “código macarrônico” no Delphi não é culpa da ferramenta e nem do Object Pascal. É do desenvolvedor. Se utilizarmos os princípios de projeto e os princípios da OO, teremos um projeto bem feito e fácil de manter.

E/T2: Não migre, mude, troque de linguagem, apenas acrescente.

Abraços.

Tipo você poderia dar um exemplo de arquitetura em delphi que modularizaria lógica de BD, lógica de interface e lógica de negócios da mesma forma que temos em java? Pergunto isso por que fiquei 3 anos em delphi e não tive a oportunidade de ver um projeto estruturado da mesma forma que vejo hoje em java.

Espero não ter parecido incisivo apenas tenho curiosidade :)

Você já usou interfaces no Delphi? É Totalmente possível isso que está dizendo, aplicar um pattern lá e você terá um mvc completo, mas esqueça a questão de dataware, componentes dataware não permitem você fazer um pattern a VCL é amarrada com isto, por isso é necessário fugir, você pode criar units separadas com interfaces, e ainda melhor, se quiser fazer um servidor de aplicações pode usar o RemObjects que também é puro código e ainda pode-se compilar no Linux usando o FreePascal, um servidor de aplicações multiplataforma usando o RemObjects SDK, claro ele é pago, mas é perfeitamente possível, eu teria que codificar e lhe mostrar um exemplo mostrando a lógica sem aclopamentos como é feito por padrão no Delphi, quando o projeto é de maior porte, eu uso esse patern, coisas pequenas faço no padrão mesmo dele, mas acredite, você pode fazer isso em Delphi no que faz em Java.

celso.martins

knowledgebr:

Você já usou interfaces no Delphi? É Totalmente possível isso que está dizendo, aplicar um pattern lá e você terá um mvc completo, mas esqueça a questão de dataware, componentes dataware não permitem você fazer um pattern a VCL é amarrada com isto, por isso é necessário fugir, você pode criar units separadas com interfaces, e ainda melhor, se quiser fazer um servidor de aplicações pode usar o RemObjects que também é puro código e ainda pode-se compilar no Linux usando o FreePascal, um servidor de aplicações multiplataforma usando o RemObjects SDK, claro ele é pago, mas é perfeitamente possível, eu teria que codificar e lhe mostrar um exemplo mostrando a lógica sem aclopamentos como é feito por padrão no Delphi, quando o projeto é de maior porte, eu uso esse patern, coisas pequenas faço no padrão mesmo dele, mas acredite, você pode fazer isso em Delphi no que faz em Java.

Nunca vi, até agora, problemas em usar a vcl, com os componentes sendo criados em runtime. Como eu disse, até agora. Você (ou alguém) pode me convencer do contrário.

Usando os componentes ADO, como exemplo, não vejo problemas em criar um TADOQuery em runtime e manipula-lo de acordo com a necessidade. O acoplamento com classes da ferramenta (TADOQuery é uma classe da ferramenta) é algo bem natural. Vejo isso como o acoplamento das suas classes na camada de persistência Java com o PreparedStatement, por exemplo, numa solução com JDBC puro. Para que reinventar a roda?

Como eu disse, pode haver um motivo que eu desconheça. Se houver, eu gostaria de passar a conhecer.

E com relação a interfaces, eu realmente nunca vi nada nem parecido.

Abraços.

Luciano_Lopes

Vocês acham que é melhor eu deixar o Delphi,passar para o C++ e depois ir para o Java ou ir direito para o Java?pergunto isso porque ja vi que o Java é originado do C++,que ja sabe programar em C++ para programar em Java fica facil,ai fico sem saber que sequencia devo seguir.

celso.martins

Estude direto o Java. A sintaxe é simples. O problema é ficar confortável com todos os recursos que a plataforma te oferece. E com relação a isso, não creio que estudar C++ possa ajudar.

Abraços.

wesleyjoliveira

Concordo com o celso,

A melhor maneira de aprender é ir fazendo, dúvidas vão surgir e pessoas aqui no fórum dispostas a ajudar não faltarão.

Abraço e bem vindo ao Mundo dos Javeiros
:smiley:

Pedrosa

A sua idéia é continuar com Desktop ou partir para Web?

Dizer que Delphi é para sistemas pequenos é uma bobagem, quase todo o legado aqui do meu atual cliente é em Delphi.

Se for mudar parta logo para web, com a parte de Ajax já é possível fazer ferramentas bem semelhantes ao Desktop.

Ex:
http://www.smartbeneficios.com.br

Cadastre uma empresa e logue na area de cliente, olhe como são os cadastros:

Luciano_Lopes

Quero continuar com Desktop,espero que tenham paciencia comigo,pois tenho certeza que vou ter muitas duvidas sobre o Java :oops:
Amigos,muito obrigado pelas dicas,espero não ter incomodado tanto,abraços,vlw

Criado 4 de maio de 2009
Ultima resposta 5 de mai. de 2009
Respostas 32
Participantes 8