Bom dia a todos, estava passando e resolvi dar minha contribuição na thread…
Eu entendo que existem 2 erros escondidos sobre o assunto:
- O que define a utilização de uma tecnologia são os requisitos (funcionais e não-funcionais) de uma solução.
Vamos entender na pratica: Qual é o melhor carro? peugeot 408 ou uma saveiro? É claro que qualquer pessoal sem pensar ira dizer "o peugeot é o carro" !! kkkk
Mas se eu falar para vc assim…
*)Qual é o melhor carro para levar uma geladeira Brastemp a 100 Km daqui? -> SAVEIRO pq existe o espaço na carroceria. Veja que o peugeot aqui não é indicado pq aonde vc colocar a geladeira dentro do carro?
*)Qual é o melhor carro para se passear com a família de 5 pessoas? -> Peugeot pq cabem todos la dentro, super confortável, ar condicionando etc. Já na saveiron não da pq tem apenas 2 bancos na frente.
Por isso, em minha opinião, não faz sentido nenhum perguntar qual seria a tecnologia ideal para ser usado entre Java, C, Net, "Whatever" sem requisitos da solução a ser desenvolvido. Existem grandes, maravilhosos e lindos sistemas feitos em praticamente varias tecnologias.
- Não existe equivalência entre Java e C!
Java é plataforma para soluções de alto nível possuindo um grande e complexo ecossistema de tecnologias, componentes e frameworks baseados em especificações e/ou proprietários portáveis, multiplataforma e independente de fornecedores que podem ser utilizadas com inúmeras e diferentes linguagens de programações - OOP, AOP e funcional.
Ja o C é apenas uma linguagem de programação de médio nível multiparadigma (de alto nível + vários recursos de baixo nível) que contem algumas API isoladas para fazer diversas tarefas.
Alias, vale lembrar que não existe nenhuma outra plataforma no mercado com as mesmas características para ser comparado com o Java. O que pode ser feito é pegar determinados produtos e comparar com os concorrentes existentes dentro do ecossistema Java. Por exemplo:
*)Preciso fazer uma aplicação desktop client/server. Qual seria melhor usar:
Em Java teríamos as seguintes opções:
Visual=Swing, AWT, SWT.
Comunicação com SGDB=JDBC e JPA,
RAD=Eclipse VEP, NetBeans Matisse ou OpenSwing.
Distribuição=Java Web Start.
Pontos positivos são A, B, D, E etc.
Pontos negativos são X, Y , X etc…
Em Delphi teríamos as seguintes opções:
Visual=VCL, visual.NET
Comunicação com SGDB=DataSet
RAD=Borland Delphi.
Distribuição=não tem…
Pontos positivos são A, B, D, E etc…
Pontos negativos são X, Y , X etc…
Com base nisso, o responsável pelo projeto deve tomar a decisão e assim gerenciar os pontos negativos.
Vale lembrar que não existe solução melhor ou pior…sempre haverá pontos negativos a serem eternamente trabalhados.