Java ou C#


claramente que não sabes o que são as properties em c#
são uma facilidade sintáctica de acesso a campos privados

são algo deste género:
Código:
public string Var { 
   get { return privateVar; } 
   set { privateVar=value; }
}

fui ver o que são os object initializers de c# e nada têm a ver com aquele link de java; mais uma sintatic sugar :p
Código:
class Customer

{

public string name;

public string address;

int age;

public int Age { get { return age; }
set { age = value; } }

}
var cust = new Customer{name = "Abhinaba Basu", address = "1835 73rd Ave NE", Age = 99 };

lembra-me algo que se fazia em c++ :p


Lê o que eu meti a bold e já vais ver.

eu li

o Java neste momento para mim é inferior ao C# por uma simples razão -> ele está a dar a sua opinião
pk copiou tudo o que a java tinha de bom -> o .net é em muito cópia da plataforma java, a própria documentação interna entre os séniores da microsoft comprova isso - edit: encontrei a citação:

"Screw Sun, cross-platform will never work. Let's move on and steal the Java language."
It was written by the Visual J++ Product Manager.
:lol:

e ainda acrescentou excelentes novas funcionalidades -> o .net 3/3.5 adicionou bastantes funcionalidades novas que a plataforma java não tem
 
Última edição:
o Java neste momento para mim é inferior ao C# por uma simples razão -> ele está a dar a sua opinião
pk copiou tudo o que a java tinha de bom -> o .net é em muito cópia da plataforma java, a própria documentação interna entre os séniores da microsoft comprova isso

Então o Java é inferior ao C# porque copiou tudo o que a java tinha de bom? O java copia-se a si próprio? java.clone() ?
Vocês às vezes parece que precisam de lavar a cara para tirar as remelas!
 
Então o Java é inferior ao C# porque copiou tudo o que a java tinha de bom? O java copia-se a si próprio? java.clone() ?
Vocês às vezes parece que precisam de lavar a cara para tirar as remelas!

parece-me óbvio que ele queria dizer que o C# é que copiou e adicionou novas funcionalidades..

o Java neste momento para mim é inferior ao C# por uma simples razão, pk [o C#] copiou tudo o que a java tinha de bom e [o C#] ainda acrescentou excelentes novas funcionalidades.

lá porque ele não se explicitou correctamente, acho que é fácil perceber e corrigir o raciocinio dele..
 
parece-me óbvio que ele queria dizer que o C# é que copiou e adicionou novas funcionalidades..

o Java neste momento para mim é inferior ao C# por uma simples razão, pk [o C#] copiou tudo o que a java tinha de bom e [o C#] ainda acrescentou excelentes novas funcionalidades.

lá porque ele não se explicitou correctamente, acho que é fácil perceber e corrigir o raciocinio dele..

Quando é que fazes um plugin para o vB para fornecer os raciocínios de quem escreve? O que ele escreveu está incorrecto e não há volta a dar, eu não tenho de perceber aquilo que ele quer dizer, ele é que tem de saber comunicar através da escrita. Se não o sabe, devia era voltar para a primária.
-- fim do off-topic --
 
claramente que não sabes o que são as properties em c#
são uma facilidade sintáctica de acesso a campos privados
Peço desculpa pela confusão, eu sou distraido por natureza.
Mas isso dessas novas features do c# são tão interessantes, que eu (apesar de eu ser um ignorante) que programo em C# quando faço coisas para windows, nunca usei tais coisas. São mesmo úteis :)

Já agora pelo que li o java tem coisas semelhantes as novas features do c#

p.e. as properties

Properties
* In Java, getName and setName are methods for manipulating properties
* In C# the property Name wraps get and set methods and is explicitly defined as a property.
 
Já agora pelo que li o java tem coisas semelhantes as novas features do c#

p.e. as properties

Wrong !! mais uma vez...

As properties são old no C# :P
Apenas tiveram uma ligeira optimização na nova versão da linguagem.

Compara só uma coisa...

Código:
JAVA :

private string Name;

public string getName(){ return Name;}
public void setName(string name){ Name = name;}

C#

Código:
public string Name{get; set;}

Estes códigos fazem exactamente a mesma coisa...
Deu para perceber as properties?
E sim.... não me esqueci do campo em C#, não é necessário :P
 
Tipo novas para mim.

Continu-o sem perceber a utilidade disso, só se for pra escrever menos, mas no java se usar o Netbeans só precias de 2 clicks para fazer esse codigo
 
Última edição:
As properties do C# são bastante úteis, pois permitem tratares um campo como se fosse público, sem quebrares a encapsulação. Para além disso, penso que é bastante mais natural escrever pessoa.Nome = "X" do que pessoa.setNome("X"). De qualquer forma, não penso que isto sirva de fundamento para dizer que uma linguagem é melhor que a outra até porque segundo alguns blogs, é possível que as próximas versões do Java tenham suporte directo na linguagem para properties à lá C#.
 
Última edição:
Eu não sou contra o java.... Mas que o java neste momento não é tão bom como o C # não é. O que foi falado lambda expressions, métodos anónimos, properties do c# nada tem haver com o java, etc. Muitos pormenores que a java neste momento, e eu friso neste momento, não tem... infelizmente.
E claramente que o java está a evoluir e para não acharem que eu sou um zilote do C# procurem por java FX uma das coisas mais incriveis que vi num video foi uma rapariga a abrir uma página do browser pegar num componente da página do browser fazer o drop do componente no desktop e o componente continua a correr.... Até me caiu o queixo....
Se encontrar o video eu faço o post...
JavaFX malta.... uma das grandes ferramentas do futuro... Mas sim o c# NESTE MOMENTO é superior á linguagem java
 
Em poucas palavras, é bastante discutível, eu não encontro interesse no C#(nem nunca programei em C#). Acontece que java faz tudo aquilo que preciso e muito mais(desconheço muitas das funcionalidades do java, mas tb é so tirar um ou dois dias, e dar uma olhada na API).
Se, à partida, o C# é uma linguagem que nasceu depois do Java, e a sua sintaxe muito semelhante à do Java, assume-se que esteja uns pózitos à frente, contudo depende, uma vez mais, das necessidades.
E depois há a tal questão da portabilidade(seja para win32, unix, HP, solaris, symbian, etc), que (aqui) já foi discutida milhentas vezes, e o Java leva vantagem.
Quanto às properties, como o AliFromCairo disse, até pode ser uma vantagem, mas não é suficiente para se dizer que C# é melhor.
Friso, uma vez mais, depende das necessidades e do propósito que se quer para a linguagem.
 
C# descenente da linguagem C++ e Java

Actualmente só uso Java, mas tenho saudades do tempo em que usava C# v1.

É óbvio que o .net framework com uma solução baseada no IL e na VM .net foi uma aproximação à plataforma Java com os bytecodes e à JVM. Mais, o .NET tentou tirar vantagens do IL para suportar múltiplas linguagens com as mesmas bibliotecas, as mais conhecidas são C# e VB.NET (util para quem tiver um background vb poder rentabilizar a biblioteca standard .NET).

Em termos de linguagens propriamente ditas eu diria que a maioria da sintaxe do código é idêntica, tirando diferenças em funcionalidades especificas, como é o caso dos delegates.

Acredito que existem vantagens nos sintatic sugers da M$. Principalmente quando tornam o código mais simples de compreender, mais "limpo", mais "elegante". São coisas que aparentam ser relativas e subjectivas, mas tornam a experiência de programar mais satisfatória.

Uma propriedade em C# é tipicamente um bloco de código e um campo privado, em java são dois métodos e um campo privado. Ou seja no C# todo o código da propriedade está localizado dentro de uma estrutura sintática o que facilita a sua percepção.

Existem vantagens e desvantagens em pertencer a comunidade Java, tal como as existem em relação à comunidade .net.

As pessoas tendem a ser mais abertas na comunidade Java, apesar da maior complexidade que é gerir a quantidade de bibliotecas e implementações de tudo e mais alguma coisa que existem no Java. A diversidade do Java é ao mesmo tempo boa e má.... depende da situação e da pessoa.


Do que eu já vi, uma vantagem clara do Java é que tende a ser mais fácil arranjar ferramentas e bibliotecas gratuitas. Mesmo que isso queira dizer que se possa ter de abrir o "campôm" e compreender porque é que na situação xpto não está a funcionar como anunciado ou como dá jeito.

No .NET as bibliotecas standard tem quase tudo o que se pode necessitar, não passa pela cabeça termos de escolher se queremos a implementação X ou Y das JSF, nem em adicionar os Jars correspondentes ao classpath...

Podendo estar a disparatar... Se o Java quer atrair novos utilizadores... principalmente na vertente web, penso que tem de haver uma redução das exigências sobre os IDE's, para que por sua vez os IDE's exijam menos sobre os programadores... penso eu de que
 
Em termos de linguagens propriamente ditas eu diria que a maioria da sintaxe do código é idêntica, tirando diferenças em funcionalidades especificas, como é o caso dos delegates.
Exacto. Delegates (e events, que estão intimamente relacionados) são uma das features (FEATURES e não SUGAR) que fazem de C# uma linguagem superior a Java.
Acredito que existem vantagens nos sintatic sugers da M$. Principalmente quando tornam o código mais simples de compreender, mais "limpo", mais "elegante". São coisas que aparentam ser relativas e subjectivas, mas tornam a experiência de programar mais satisfatória.
Mais limpo e mais elegante. Como é que alguém pode dizer que não a isso. Se quiserem passar o tempo a escrever setters e getters ou a chamá-los ( a.getX, b.setY(c) ), força com isso. Eu cá fico-me pelo a.X, e b.Y = c .
Uma propriedade em C# é tipicamente um bloco de código e um campo privado, em java são dois métodos e um campo privado. Ou seja no C# todo o código da propriedade está localizado dentro de uma estrutura sintática o que facilita a sua percepção.
Já nem é um bloco + private field. Agora é so uma linha: public T X {get;set;} . Já tá.

Mas isso dessas novas features do c# são tão interessantes, que eu (apesar de eu ser um ignorante) que programo em C# quando faço coisas para windows, nunca usei tais coisas. São mesmo úteis :)

Pois, muito bem. Se pudesses aprender a programar na linguagem que usas (ao que parece C#) não vinhas para aqui dizer dessas coisas. Sim és um ignorante.
--
Há mais coisas que ainda não foram faladas aqui. Eu até gostava de ver esse tal link para "Java 6 vs CSharp 3" deve ser hilariante
  • Lambdas. Quem não sabe o que é que veja antes de pousar os dedos no teclado.
  • LINQ. Não é preciso dizer mais nada. Basta "ver para crer".
 
Neste momento posso dizer que o c# como linguagem de programação é muito poderoso e sim é NESTE MOMENTO melhor que o java. A framework do windows a 3.5 sobre a qual estou a fazer I&D é uma maravilha, pois é uma framework imatura cheia de bugs e com problemas, alguns ainda desconhecidos. E é aqui que a Sun ganha enquanto a microsoft lança frameworks pouco testadas e imaturas, a Sun lança um jdk testado até à exaustão eles criam aplicações para vêr quais os defeitos da tecnologia... e criam grandes projectos para testar a carga, a robustez da release que acabaram de fazer, para além do mais, a sun, sempre que é pedida ajuda para algum problema que não se consegue ultrapassar mandam técnicos de todos os cantos do mundo para ajudar, a assistência é boa, sabem qual é a assistência da microsoft ???? ZERO...
Com esta nova release do java vão surgir muitas coisas boas para a tecnologia java estou ansioso para ver esta nova release... e Eu não sou zilote nem defendo com a vida o C# ou o Java ambos têm defeitos e virtudes mas penso que as linguagens são muito boas ambas...
 
O Java 7 irá trazer um cheirinho a Lambda e Point-free: http://rickyclarkson.blogspot.com/2007/09/point-free-programming-in-java-7-beyond.html ;)

Outras frameworks giras para java existentes dentro deste tipo de programação são as seguintes:

Groovy: http://groovy.codehaus.org/

Scala: http://www.scala-lang.org/

E já agora, no que toca a LINQ, é realmente interessante, convém é saber como se dão as bibliotecas LINQ a nível de performance com ficheiros XML (ou outro tipo qualquer) de mais de 100Mb ou mesmo Gigas.
A beleza da redução da linguagem como em Haskell e linguagens funcionais trás vantagens visuais para o programador se ele assim o entender que o são, para alguns pode não existir interesse nenhum em usar as expressões lambda, e numa organização onde se crie código seria necessário establecer principios de codificação e toda a gente aceitar que esse tipo de sintáxe seja "obrigatória" para toda a gente desevolver.
Dependendo também do interpretador a linguagem será melhor interpretada ou não, penso eu, pois se o interpretador de Haskell está optimizado para interpretar de certa forma o código "lazy" e gerar a sua linguagem "assembler", já um de Java ou .NET poderá interpretar as coisas de forma diferente (mas neste ponto não tenho bem a certeza do que estou a dizer, passou-me apenas a ideia neste momento).

Ainda assim, é uma discussão que não leva a lado nenhum se for levado pelo lado de "a minha pila é maior que a tua", mas até será engraçado se formos confrontando argumentos e até ir apresentando novas soluções para cada caso.

No caso do LINQ para já ponho o pé atrás, alguém arranja por aí benchmarks disto comparando com algumas outras formas de fazer parse? Nem sempre o que é fácil de codificar é rápido a executar :007:
 
Eu acho que todos vocês andam a chover no molhado. Já programei com C# e com Java e é da minha opinião que são ambas boas linguagens de programação. O java permite executar em qualquer máquina, desde que esta possua a JVM instalada, o C# executa em sistemas windows. Para alguém que quer começar a programar numa destas linguagens, acho que qualquer uma delas é boa, e aprendendo uma, rapidamente se aprende a outra. Não é o facto de escreveres as properties em C# numa só linha que o torna melhor que outra linguagem. Cada pessoa o seu estilo e as suas preferências. A meu ver, podes escolher qualquer uma delas. :)
 
Última edição:
Java ou C# a escolha é tua, ambas são multiplataforma, sim há para ai muitas pessoas que falam sem saber o que dizem, se não acreditam que C# é multiplataforma dediquem-se à pesca mas antes vejam o site do mono-project.
O Java tem a funcionalidade X diferente do C#, e este a funcionalidade Y diferente do Java, mas tendem cada vez mais a serem semelhantes em funcionalidades, e para aqueles que acreditam que LINQ é funcionalidade do C# acordem pra vida e vejam este site http://msdn.microsoft.com/en-us/netframework/aa904594.aspx no fim de contas tu e que escolhes a que queres porque ambas tem as suas vantagens.
 
Java ou C# a escolha é tua, ambas são multiplataforma, sim há para ai muitas pessoas que falam sem saber o que dizem, se não acreditam que C# é multiplataforma dediquem-se à pesca mas antes vejam o site do mono-project.
O Java tem a funcionalidade X diferente do C#, e este a funcionalidade Y diferente do Java, mas tendem cada vez mais a serem semelhantes em funcionalidades, e para aqueles que acreditam que LINQ é funcionalidade do C# acordem pra vida e vejam este site http://msdn.microsoft.com/en-us/netframework/aa904594.aspx no fim de contas tu e que escolhes a que queres porque ambas tem as suas vantagens.

Ok, Java precisa da JVM para executar em kker plataforma, e C# precisa do MONO para executar em kker plataforma. A questão continua a ser a mesma, ou seja, qualquer uma das linguagens é boa. Muitas das vezes não tens opção e tens de usar X ou Y porque é o que usam no local de trabalho. Mas a nível pessoal........ :)
 
Back
Topo