Por que o Java não possui Accessors (GET SET) como o C#?

[quote]Diabo Loiro wrote:
é ver uma porrada de classe no JDK usando vector
funciona acho q ta tramquilo

Se você soubesse ao menos o quão problemático é usar Vector você não diria isso.[/quote]

1- os designer da linguagem sabem das limitações de vector se fosse impeditivo seria um bug.

2 - nos outros pontos concordo mais, quem lida com linguagens dinamicas por exemplo é minoria, então a prioridade devia ser atingir a massa, por exemplo acertando api de datas ou properties.

[quote=Diabo Loiro][quote]Diabo Loiro wrote:
é ver uma porrada de classe no JDK usando vector
funciona acho q ta tramquilo

Se você soubesse ao menos o quão problemático é usar Vector você não diria isso.[/quote]

1- os designer da linguagem sabem das limitações de vector se fosse impeditivo seria um bug.

2 - nos outros pontos concordo mais, quem lida com linguagens dinamicas por exemplo é minoria, então a prioridade devia ser atingir a massa, por exemplo acertando api de datas ou properties.[/quote]

Eles também sabem das limitações da API de datas…

Bom, como já disseram, é uma tremenda perda de tempo discutir isso… se acha que deveria ser igual ao C#, sugiro mudar para o C#. Se quer atingir a “massa”, vire sindicalista.

Ou padeiro… Pizzaiolo…

é q foi perdido o foco do topico o cara perguntou pq java nao possui os properties e a resposta seria pq não quiseram simplismente e seria bom colocar, o que é diferente dos generics que não é possivel senão quebra compatibilidade.

Na verdade, tópicos como este estão sempre fadados à isto.
Toda e qualquer observação que faça a comparação entre A e B vai gerar esse desvio. Isso é natural, afinal, os argumentos que serão colocados para explicar a filosofia da linguagem é o que acaba por despertar a necessidade de ser mais voraz.
Mac x Windows, Windows x Linux, Linux x Mac, iOS x Android, Android x Windows Phone, Windows Phone x iOS, Web x Desktop, Maragatos x Chimandos, Caprichoso x Garantido, Palmeiras x Corinthians, Brasil x Argentina, Religiosos x Ateus, Católicos x Evangélicos, Católicos x Muçulmanos, Xiitas x Sunitas, Heteros x Homos…
Este tipo de assunto é algo que não leva a lugar algum, como os citados acima.
Sempre considero o seguinte:

  • Me sinto bem trabalhando com isto?
  • Ganho o suficiente por trabalhar com isto?
  • É algo que eu gosto de fazer?
    Se a resposta for não para alguma das perguntas, já descarto. Se todas forem sim, significa que estou no rumo certo.
    Portanto, com acccessors ou sem, você é quem escolhe, o mercado é que seleciona.

Quebrar a compatibilidade não significa que não é possível. A keywork assert, inclusa no Java 1.4 e o tipo enum, no Java 5, estão aí pra provar. E implementar as properties não é tão simples assim quanto parece pois não será somente um “syntax suggar”.

Sinceramente… Ter accessors, properties ou qualquer outra coisa eh tao util quanto o uso indiscriminado de gets e sets gerados por um generate gets e sets do eclipse por exemplo. Um sistema oo bem modelado poucas vezes tem atributos tao burros assim em uma classe.
e se a falta disso esta impactando na produtividade, na boa nao consigo nem imaginar o sistema de borracharia que esta sendo feito…
falei…

não é isso é que os frameworks dependem de java beans e no final temos que gerar mtos codigos repetitivos, se usarmos os frameworks, properties diminuiriam o esforço e deixariam o codigo mais limpo

o codigo mais limo ate pode ser mas continuo achando irrelevante.
na questao esforco discordo…

[quote=drsmachado][quote=JackOld][quote=drsmachado]Por que o português precisa ter tantas flexões verbais, que variam de acordo com a pessoa e o tempo?
Por que, no inglês, os verbos regulares têm uma forma diferente de serem conjugados do que os irregulares?
Por que o alemão permite unir várias palavras em uma única?

Cada linguagem segue determinadas premissas, padrões e definições, assim como cada projeto que vamos desenvolver durante a vida. É algo bom, ótimo. Mas nem todas as linguagens precisam implementar.
Indo nessa lógica, por que C# e Java não possuem suporte à herança múltipla, como C++ possui? [/quote]

Tá blz, padrões, premissas e definições são importantes, porém é necessário evoluir e simplificar, diferentemente da linguagem natural a linguagem de programação pode ser deixada de lado mais facilmente… [/quote]
Sinceramente, acho essa discussão algo sem fundamento.
Penso da seguinte forma, se você é um serralheiro e não gosta da forma como a serra funciona é por que, provavelmente, você não sabe utilizar a serra.
Se você acha que com um machado conseguiria fazer melhor, so, go ahead dude!.
Trocando em miúdos, não gosta da forma como o java é e acha o .NET melhor, vai programar com .NET e para de reclamar.[/quote]
A discussão do pessoal tem fundamento sim. Quem já trabalhou com as duas linguagens sabe que não é puramente questão de gosto, basta reconhecer. Obviamente linguagem não é tudo e outros pesos estão envolvidos onde dependendo do cenário e pessoas se decide por uma plataforma ou outra.

O Java é muito lento para evoluir. Estão enrolando tanto com essa feature do lambda que todas as outras linguagens já tem! Até C++ tem lambda. Até Objective C tem lambda, haha! O muito inteiro tem lambda, menos o Java.

O Java é um atraso de vida. Se decidissem colocar propriedades na linguagem provavelmente levariam uns 10 anos para implementá-las.

[quote=javaflex]
A discussão do pessoal tem fundamento sim. Quem já trabalhou com as duas linguagens sabe que não é puramente questão de gosto, basta reconhecer. Obviamente linguagem não é tudo e outros pesos estão envolvidos onde dependendo do cenário e pessoas se decide por uma plataforma ou outra.[/quote]
Discordo.
Você não é obrigado a aceitar trabalhar com algo que não gosta, tem sempre o direito de pedir demissão.
Vejo isto como gostar de cebola, quem gosta, come e quem não gosta, não come. Não precisa fazer drama, é simples assim.

[quote=drsmachado][quote=javaflex]
A discussão do pessoal tem fundamento sim. Quem já trabalhou com as duas linguagens sabe que não é puramente questão de gosto, basta reconhecer. Obviamente linguagem não é tudo e outros pesos estão envolvidos onde dependendo do cenário e pessoas se decide por uma plataforma ou outra.[/quote]
Discordo.
Você não é obrigado a aceitar trabalhar com algo que não gosta, tem sempre o direito de pedir demissão.
Vejo isto como gostar de cebola, quem gosta, come e quem não gosta, não come. Não precisa fazer drama, é simples assim.[/quote]
Claro, concordo que nunca ninguem deve se submeter a trabalhar no que não gosta, mas a discussão não é sobre gosto, são sobre melhorias. Então o importante é manter imparcialidade e ver como pode ser interessante que a linguagem X também tenha um recurso existente nas linguagens W, Y e Z. Do mesmo jeito que existem superioridades na plataforma Java em relação a plataforma .NET. Quando chegar lambda na linguagem Java você poderá sentir na prática uma das vantagens.

A questão de produtividade pode impactar se a ferramenta usada para trabalhar o código é mais simples. Por exemplo alguém usar o kate ou vim para editar um source diretamente num artefato exploded do jboss. Aliás eu uso muito esse tipo de editor.

[quote=drsmachado][quote=JackOld][quote=drsmachado]
Trocando em miúdos, não gosta da forma como o java é e acha o .NET melhor, vai programar com .NET e para de reclamar.
[/quote]

Discordo. Ninguém disse que não gosta da forma do Java, só que acha que algumas funcionalidades podem evoluir.