Maiko, precisava mesmo parar para responder essa dúvida de 2006? Evite ressuscitar tópicos muito antigos. Faça isso só se fizer muito sentido.
Em 2001, a Borland começou a perder o rumo do Delphi, quando tentou se aventurar em multiplataforma com o Kylix. O produto teve péssima repercussão, principalmente por ser cheio de bugs.
A MS, principal concorrente, também “socorreu” a empresa, e iniciou um joint venture marcado pela estagnação do produto e pelo abandono da comunidade (foi nessa época que abandonei ele também).
O Delphi foi abandonado de vez pela Borland em 2003, culminando com a separação para a CodeGear em 2006. Em 2006, quando a tecgirl escreveu esse post, até talvez fizesse sequer sentido perguntar entre Java e Delphi.
Você não encontra práticas de desenvolvimento modernas, tais como ORMs ou frameworks, para Delphi atualmente. Mesmo os fóruns já estão bastante desaquecidos, muitos projetos estão parados.
Hoje em dia, o Delphi é restrito para aplicações de legado. Mesmo que na sua região existam sistemas legados para serem mantidos, é bom conhecer outra linguagem para não assinar seu suicídio profissional.
Quanto aos argumentos do Maiko, concordo com ele apenas no item 2. Mesmo usando JNA ou JNI, como o Macoy citou, é uma dor de cabeça enorme acessar recursos externos pelo Java. Sem falar que você poderá dar adeus ao multiplataforma.
Quanto ao fato de ser compilada, o Maiko deveria se informar sobre compilação just in time. O único problema do java nesse sentido não é performance, mas sim o fato de ser fácil (pra não dizer facilimo) descompilar o código fonte.
Quanto aos bancos de dados. Acho que houve uma confusão aí. O java não usa drivers “de terceiros”. Usa drivers dos próprios fabricantes do banco, e não tem ninguém melhor do que o próprio fabricante para escrever o driver.
Se o Delphi acessa “nativo”, é porque ou esses mesmos fabricantes empacotaram seus drivers junto com o CD do Delphi, ou no pior caso, pq a CodeGear escreveu esses drivers.
Nesse caso, os “terceiros” seriam a própria CodeGear, pois ela não é fabricante do banco. E não sei se fabricantes, ou a própria codegear, ainda produzem drivers para os bancos mais novos.
Agora, hoje em dia, se fosse escolher entre Java e Delphi para desktop, eu pensaria mesmo numa terceira alternativa, como o C# ou QT.
Nenhuma das linguagens tem se mostrado a mais adequada.