Java e C#, deixa eu ver se entendi bem

31 respostas
W

Estava lendo sobre delegação de métodos, e vi as comparações de Java com C#, e a história que a microsoft adicionou delegação no J++, deu briga com a Sun, a Microsoft perdeu na justiça, e lançou seu próprio “Java com delegate” e chamou de DotNet.
Se o que eu entendi está correto, então C# é um Java turbinado, e a única vantagem da tecnologia Java é por ser OpenSource?

Não é a intensão, mas to achando que esse tópico vai gerar muita controvesa… :slight_smile:

31 Respostas

T

Não e não.

A

Na verdade eles tiraram toda a portabilidade da linguagem, criaram uma máquina virtual que só rodava no windows e saíram distribuindo…

Foi aí que surgiu a briga…alguns processos rolaram…

Eu lembro que a microsoft tinha um site só para java na época www.microsoft.com/java ou algo assim, e eles realmente investiam na tecnologia…só que só pensando na plataforma deles…

depois ainda eles sacanearam mais ainda, pois na primeira versão do windows xp a máquina virtual não vinha instalada, tirando todo o suporte java do windows…

mais alguns processos rolaram

e a história é mais ou menos essa

nunca ouvi falar em delegação de métodos

sobre o C# turbinado eu deixo outros responderem hehe

J

Delegates são ponteiros de funções gerenciados pela máquina virtual. Sobre c#, hoje ele é iso e não depende do dotnet(pode ver pelo mono). C# é uma linguagem interessante porque se torna fácil utilizar recursos de gerenciamento de memória automático, e em contrapartida, não, sendo possível utilizar ponteiros. Usando mono, como vm, é possível ter uma aplicação 100% portável em uma vasta gama de sistemas operacionais.

M

O problema do mono a meu ver é que a Microsoft não vai liberar sua biblioteca de classes (.Net Framework) para que seja utilizada em uma plataforma Open Source. :wink:

J

Com certeza não. Mas no c#, a única coisa proprietária é winforms. A system é toda iso. E para toolkit gráfico prefiro o gtk mesmo, que é muito bom.

K

Como o mundo da voltas.

Eu me lembro de DUAS coisas em 1996/97:

A Microsoft dizendo que “a melhor linguagem para se desenvolver para a plataforma Windows é o Java”

e o Eric Schmidt, hoje CEO do Google, que era CEO da Novell dizendo que o Netware seria feito em Java, e que estava apostando a empresa nisto.

J

Esse povo anda pra onde a maré leva realmente. Mas o lance do c# foi justamente concorrer com o java. Pra mim fica ótimo, prq as duas brigando vão crescendo.

T

Em termos de linguagem, até agora só vi crescimento do outro lado :roll:

J

outra desvantagem do C# é a sua api que é bem pior que a do Java

J

Api não é linguagem gente. Só estou falando das características da c#. O mono tem crescido, tanto é que o gnome tem ele embutido.

R

Discordo o core do C# é bem melhor em comparação com Java

L

Uma vantagem de se usar C#, o mono na verdade é poder, por exemplo, escrever hoje jogos para Wii e IPhone. Da última vez que eu verifiquei ainda não existia
nenhuma oferta semelhante com Java.

Jogo pra Wii feito com mono/Unity3D: http://tirania.org/blog/archive/2009/Jan-06.html
Jogos (quase 40) pra IPhone feito com mono/Unity3D: http://tirania.org/blog/archive/2009/Jan-07.html

O

O .Net tem o j# q se não me engano era o j++…

T

O J# é uma versão do Java 1.1.4 meio capada mas rodando sob CLR, e com alguns pacotes do Java 1.2 (por exemplo, as classes da Java Collections Framework). (Ela não tem, por exemplo, JNI ou RNI).

Não se usa nem WFC (que é a biblioteca gráfica do J++) nem AWT ou Swing, mas Windows Forms mesmo.

O J# não é o J++ nem é muito compatível com ele. Programas que rodavam perfeitamente em J++ (applets que rodam na JVM da Microsoft) nem conseguem ser compilados no J#, nem rodam na JVM da Microsoft.

O J# foi descontinuado e não está disponível no Visual Studio 2008.

R

Ok, C# evolui mais rápido que Java. A lista de features que apareceram primeiro em C# é bastante longa. Mas isso não faz de C# uma linguagem necessariamente melhor.

Nem todos os recursos funcionam da forma que os idealizadores da linguagem imaginam. Às vezes eles geram mais complexidade sem tornar a linguagem mais poderosa. Às vezes a interação entre partes diferentes de uma linguagem gera um resultado não-intuitivo. Sem falar que, quanto maior a sua linguagem, mais detalhes você tem que memorizar.

Os comitês que controlam o Java são bastante cautelosos. (alguns diriam reacionários) Eles têm prioridades diferentes que a Microsoft, como garantir que cada novo recurso adicione o máximo de valor e o mínimo de incompatibilidade.

B

Um dos objetivos principais do Java era a portabilidade… Seria contra o “DNA” da microsoft apoiar uma tecnologia de desenvolvimento que pudesse rodar tão facilmente em outras plataformas (Unix, Linux, Mac), quanto em Windows - isso enfraqueceria a plataforma.

O Antigo J++ foi uma tentativa de fazer um Java “quase” compatível e assim, enfraquecer a tecnologia. Por isso a Sun brigou ferozmente com a MS por 10 anos (e acabou ganhando um “cala-boca” de 1 bi de dolares).

M

Quando a Microsoft submeteu o C# ao W3c, o fez no intuito de torná-lo um padrão para desenvolvimento de software. Porém, não esperava que parte da comunidade Open Source fosse adotá-lo. :wink:

M

"

O

Ta na hora de surgir uma linguagem nova.

R

Surgiram várias. Veja Groovy, Scala e Clojure para conhecer alguns exemplos.

M

"

W

Tem varias coisas novas por ai, mas na real nao sao tao comuns no mercado. Ainda estou esperando uma plataforma de desenvolvimento boa, profissional e que sera realmente utilizada no mercado. Por enquanto Java e .NET :frowning:

J

Tem varias coisas novas por ai, mas na real nao sao tao comuns no mercado. Ainda estou esperando uma plataforma de desenvolvimento boa, profissional e que sera realmente utilizada no mercado. Por enquanto Java e .NET :(

Não entendi o “profissional”. As linguagens não seriam ferramentas? Então qualquer uma seria ideal para um tipo de problema.

R

Na verdade a MS submeteu o C# ao ECMA. Veja http://www.ecma-international.org/publications/standards/Ecma-334.htm

W

Tem varias coisas novas por ai, mas na real nao sao tao comuns no mercado. Ainda estou esperando uma plataforma de desenvolvimento boa, profissional e que sera realmente utilizada no mercado. Por enquanto Java e .NET :(

Não entendi o “profissional”. As linguagens não seriam ferramentas? Então qualquer uma seria ideal para um tipo de problema.

Claro, pode ser que groovy, scala ou clojure seja bom pra alguma coisa, mas sao ferramentas que nao se firmaram no mercado. As coisas que estao fazendo barulho agora (umas velhas) ainda nao estao bem “amadurecidas” assim dizendo e pra mim usa-las nesse ponto so resulta em uma coisa: projetos falidos.

Tem um monte de novas tecnologias mas o que predomina eh java e .net o que eu quero que apareca eh uma tecnologia que um dia fique forte como java e .net .

//Daniel

J

Pode usar c++ ou object pascal. essas fazem mais de 20 anos que estão no mercado e não caem. até cobol tem mercado hoje ainda. Eu não acredito muito nessa de moda de linguagem. Acredito que, um projeto pode ser bem sucedido em qualquer linguagem.

Mas, em contrapartida, vc tem razão num ponto que é: As pessoas tendem a se especializar um tipo de linguagem e se esquecem de que existem várias outras, então, realmente, um bom projeto pode morrer por falta de profissionais.

C

windsofhell:
juliocbq:
windsofhell:

Tem varias coisas novas por ai, mas na real nao sao tao comuns no mercado. Ainda estou esperando uma plataforma de desenvolvimento boa, profissional e que sera realmente utilizada no mercado. Por enquanto Java e .NET :(

Não entendi o “profissional”. As linguagens não seriam ferramentas? Então qualquer uma seria ideal para um tipo de problema.

Claro, pode ser que groovy, scala ou clojure seja bom pra alguma coisa, mas sao ferramentas que nao se firmaram no mercado. As coisas que estao fazendo barulho agora (umas velhas) ainda nao estao bem “amadurecidas” assim dizendo e pra mim usa-las nesse ponto so resulta em uma coisa: projetos falidos.

Nao existe tecnologia profissional, existem pessoas que sao profissionais.

Considerando que leva anos para se tornar proficiente numa nova linguagem, nada mais equivocado pra alguem da nossa area do que assimilar uma tecnologia quando vc deveria na verdade estar dominando-a.

Ou seja, o profissional nao espera pelo mercado!

Java e .net sao mais que linguagens, sao plataformas. Enquanto essas novas linguagens sao importantes por resolverem outros tipos de problemas. Particularmente, nao acho que muita coisa diferente vai acontecer nesse segmento de plataformas enterprise, a nao ser a evolucao das mesmas para suportar essas novas linguagens. Nesse sentido, java e .net é que nao estao maduras o suficiente. :slight_smile:

W

Ai vc ja esta ironizando e distorcendo o que eu disse. Felizmente eu trabalho com coisas novas.
O que eu quis dizer eh que, tem muita coisa nova porem nao eh madura o suficiente pra ser utilizada em projetos de verdade. Um dia que essas linguagens novas ficarem mais usuais no mercado e me passarem alguma seguranca eu vou gastar meu tempo tentando aprender, enquanto isso fico nas tecnologias que sao mais utilizadas agora. Faz uma pesquisa de empregos em Java,C# e pesquisa essas linguagens novas pra ver qual tem mais?

Eu nao tenho tempo pra investir em algo que eu nao sei se vai pra frente ou nao.

//Daniel

J

windsofhell:

Ai vc ja esta ironizando e distorcendo o que eu disse. Felizmente eu trabalho com coisas novas.
O que eu quis dizer eh que, tem muita coisa nova porem nao eh madura o suficiente pra ser utilizada em projetos de verdade. Um dia que essas linguagens novas ficarem mais usuais no mercado e me passarem alguma seguranca eu vou gastar meu tempo tentando aprender, enquanto isso fico nas tecnologias que sao mais utilizadas agora. Faz uma pesquisa de empregos em Java,C# e pesquisa essas linguagens novas pra ver qual tem mais?

Eu nao tenho tempo pra investir em algo que eu nao sei se vai pra frente ou nao.

//Daniel

Me desculpe, eu não quis falar nesse sentido, nem ironizar. Só quis dizer que qualquer projeto vai para frente em qualquer linguagem. Java e C# não resolvem todo tipo de problema computacional. Como foi postado acima, as pessoas devem ser profissionais. Existem ótimos projetos em Phyton, fortran, etc… Não há necessidade de ter uma linguagem específica para se fazer tudo.

W

juliocbq:
windsofhell:

Ai vc ja esta ironizando e distorcendo o que eu disse. Felizmente eu trabalho com coisas novas.
O que eu quis dizer eh que, tem muita coisa nova porem nao eh madura o suficiente pra ser utilizada em projetos de verdade. Um dia que essas linguagens novas ficarem mais usuais no mercado e me passarem alguma seguranca eu vou gastar meu tempo tentando aprender, enquanto isso fico nas tecnologias que sao mais utilizadas agora. Faz uma pesquisa de empregos em Java,C# e pesquisa essas linguagens novas pra ver qual tem mais?

Eu nao tenho tempo pra investir em algo que eu nao sei se vai pra frente ou nao.

//Daniel

Me desculpe, eu não quis falar nesse sentido, nem ironizar. Só quis dizer que qualquer projeto vai para frente em qualquer linguagem. Java e C# não resolvem todo tipo de problema computacional. Como foi postado acima, as pessoas devem ser profissionais. Existem ótimos projetos em Phyton, fortran, etc… Não há necessidade de ter uma linguagem específica para se fazer tudo.

Pow, mas python ta mais do que consolidado no mercado, tem varias oportunidades pra python. Eu mesmo fiz varias coisas em python sei la 4 ou 5 anos atras. Fortran eh mais velho que eu, mas ja vi gente fazendo coisa em fortran. Nao sao essas linguagens que eu estou me referindo. To me referindo a coisa nova que esta surgindo ou que surgiu de dois anos pra ca.
O que eu quero ver eh algo de impacto, de mesmo impacto que Java teve quando surgiu, por exemplo.

//Daniel

F

Minha opinião sobre o tema:

  1. Quem faz algo semelhante ao que já existe tem a obrigação de fazer melhor, porisso mesmo sem conhecer o C# minha espectativa é que sempre tenha algumas coisas que sejam melhores do as que existem no Java, afinal foram feitas depois; tiveram a chance de fazer melhor.

  2. A IDÉIA que existe em java (na minha opinião) foi uma solução (ao menos deveria ser) para os sistemas executados no Windows, pois existem incompatiblidades dentro do próprio sistema operacional; executa em um mas não executa em outro mesmo sendo todos Windows com o DOT NET acredito que isso irá acabar, acredito.

flws

Criado 9 de janeiro de 2009
Ultima resposta 12 de jan. de 2009
Respostas 31
Participantes 18