Manipulação de ponteiros seria péssimo em Java, principalmente porque nesta linguagem não se faz coisas muito baixo nível.
Mas sobrecarga de operadores seria algo interessante, desde que fosse algo controlado. Eu já cheguei a imaginar que para a implementação de sobrecarga deveria haver um certo contrato (ou seja, interfaces). Por exemplo, deveria haver uma interface chamada NumberProfile, com métodos plus(), minus(), times() e dividedBy(). Uma classe que quisesse usar operadores implementaria essa interface, e sempre que houvesse no código, por exemplo, o operador *, ele seria interpretado como o método times() da interface. É uma idéia, poderia haver também CharSequenceProfile ou CollectionProfile nesse mesmo esquema.
Porém, seria interessante que o assunto “sobrecarga de operadores” fosse discutido dentro de uma solução maior, como, por exemplo, a eliminação da diferença (ou pelo menos, a redução de “gap”) entre tipos primitivos e classes, que tanto confunde a cabecinha dos que começam em Java.
Uma vez vi numa biblioteca um livro chamado “Assembly orientado a objetos”. Provavelmente o cara deve ter aplicada as técnicas desse livro… rs
Acho que o exemplo mais famoso desse “estilo” de programação é o GTK. Se não me falha a memória, ele usa structs p/ representar classes e ponteiros de função como elementos do struct p/ simular métodos.
Estava lendo o artigo do C# na wikipedia e vi q ele faz uma série de comparações. Uma delas me deixou na dúvida. Lá faz uma série de afirmações um tanto tendenciosas. Como por exemplo não ter sobrecarga de operadores no java. Oras, quando o programador define corretamente classes e métodos não é necessário nada disso. Concordam?
A única coisa que vi realmente relevante é a sobrecarga de operadores que realmente não sei se há um meio de contornar isso, mas como que para tudo se dá um jeitinho ainda tenho esperanças, até porque a falta disso deve ter uma boa justificativa… Mas como não trabalho com software do meio científico (no qual essa necessidade se aplica), ainda não tive tempo para me dedicar a esse problema.
Sobre properties, isso pra mim não é uma vantagem. Pois, pelo jeito que foi feito chega a ser um impecilho. No Eclipse por exemplo, existe o assistente de “generate getters and setters” que exime a necessidade de properties. Porém, na plataforma .net, usando o visual studio 2008, mesmo tendo properties não existe um assistente como o que tem no Eclipse (pelo menos não descobri nada ainda, só o tal do code snipets, que ajuda muito pouco), obrigando o programador a criar as propriedades ou pelo menos especificar os membros privados tudo na mão, um por um. Resumindo, nesse caso, .net chama é mais chamativo porém é menos produtivo pra quem coloca a mão na massa.
GOTO? putz… se isso for mérito para C# então os programadores de tal genero se contentam com pouco. Imagina pular linha de código de acordo com a posição dela? Se ocorrer alguma alteração de código vai ter que revisar todos os goto para ver se algum saiu fora de sincronismo.
[quote=windsofhell][quote=eduacsp][quote=windsofhell]Sempre programei em Java, mas vou mudar de emprego em 2 meses pra desenvolver em C#.
Confesso que eu nao consigo dizer qual eh melhor.
Esses dias mesmo eu estudei Delegates e Events, fiquei muito impressionado com isso, achei mto mto bom. E varias outras coisas em C# que eu acho interessante como o ja citado overload de operadores.
Properties tb facilita muito e deixa o codigo super limpo e legivel.
Estou curioso agora pra usar o visual studio. Estou por enquanto usando mono e monodevelop pra estudar.
//Daniel[/quote]
traidor :P[/quote]
hahahahaha
O dinheiro fala mais alto! ahaha, brincadeira.
Mas sei la, como disse num outro topico, acho o Java uma linguagem excepcional, eu realmente gosto. Mas nao visto a camisa de ng, acho que vai ser um desafio legal pra mim mudar, profissionalmente vai ser melhor e se um dia aparecer uma boa oportunidade de trabalhar com Java novamente, vou com o maior prazer.
[/quote]
É isso aí, cara. Nunca vista a camisa de ninguém… senão a tua própria. Fanboy é foda… graças a eles q a gente vê as tais “flame wars”… q por sinal são bem irritantes. Parece coisa de fanático religioso.
Bom, como já estou ha uns 3 meses trabalhando com C#, pude sentir na pele a diferença entre as duas linguagens. Quanto ao artigo da Wikipedia, não falou besteira nenhuma. C# é bem mais flexivel do que Java, até porque ele foi criado bem depois de Java, pegando algumas “deficiencias” e melhorando (um pouco). No geral, C# é bem legal de programar, mas ainda faço meus projetos pessoais em Java. Comparar Java com C# é mesma coisa que comparar um Golf com um Stilo. Eu prefiro Golf mas ter um Stilo não é nenhuma má idéia.
Só o VS que me decepcionou, sinto falta de muita coisa do eclipse. Legal a “novidade” do VS 2010.