C#/.NET - Porque tanta gente "odeia"?

[quote=marcosalex]Até tentamos substituir os programas em Delphi pra C#, mas como sempre a MS tem suas "surpresinhas". Usamos o .NET 1.1 na época, quando instalamos o Service Pack 1 pra corrigir uma série de bugs tivemos a surpresa 1:

  • o programa parou de funcionar. Em contato com o suporta da MS (sim, pagávamos por ele) descobrimos que tiveram dlls (chamadas de assemblys pra não queimar o filme) que mudaram a versão mas a MS esqueceu de mudar o versionamento interno e nem a data e hora de alteração :shock: .

Depois migramos pro .NET 2.0 e tivemos a surpresa 2:

  • o programa não rodava porque uma série de componentes haviam desaparecidos, inclusive o de acesso a banco de dados. Em contato com o suporte da MS perguntamos como deveria ser a atualização e tivemos a resposta: "Menu File->New Project …"

Alguns projetos começamos a mexer com Java e mesmo com a IDE não tão produtiva quanto o Visual Studio (que só perde pro Delphi) conseguimos um resultado melhor. Mas foram dois fatores que fizeram nós desistirmos de vez:

  • tínhamos o programa feito em .NET que "engasgava" quando chegava a 300 usuários. Com uma consultoria da MS eles defenderam que tínhamos de fazer o upgrade de hardware porque nosso servidor estava fraco. Portamos a aplicação pra Java pra fazer um teste e o mesmo servidor hoje trabalha com 500 usuários simultâneos e aguenta bem

O restante dos projetos em .NET desistimos quando vimos que novamente o .NET 3.0 perdeu a compatiblidade com a versão anterior, a última "supresa"

Outra coisa, nunca vi um usuário de Java ir a um fórum de .NET defender o Java! E nos forums de Java sempre aparece alguém idolatrando o .NET como a sétima maravilha do mundo e sem entender porque tanto ódio!!

Fora as pessoas que .NET que fazem arrastão em toda enquete de qual a melhor linguagem pra "bombar" a votação no C# ou VB.net[/quote]

Essa é a grande vantagem do java em cima de tecnologias da microsoft. ActiveX é uma tecnologia, que morreu praticamente.
Além de perigosa, complicada, como citada no exemplo acima. Não sei como a microsoft ainda insiste em Objetos com e activex.

Isso sem falar em ter que manter o .NET 1.1, 2.0 e 3.0 para poder executar os programas né, só atualizar não adianta, por causa das incompatibilidades.

Quando se está preso a uma tecnologia que possui um dono, você está sujeito as alterações dela na linguagem

se amanha a M$ matar o C#?

Vão mudar tudo pro Mono? (Ela já fez isso com o ASP, então não venham me dizer que isso não vai acontecer)

[quote=Felagund]Isso sem falar em ter que manter o .NET 1.1, 2.0 e 3.0 para poder executar os programas né, só atualizar não adianta, por causa das incompatibilidades.

Quando se está preso a uma tecnologia que possui um dono, você está sujeito as alterações dela na linguagem

se amanha a M$ matar o C#?

Vão mudar tudo pro Mono? (Ela já fez isso com o ASP, então não venham me dizer que isso não vai acontecer)[/quote]

matar o c# não tem como porque é iso. Então quem quiser desenvolver um compilador, só tem que pegar as documentações e seguir a norma. Problema se ela matar o .NetFramework. Vai morrer muito produto que a gente conhece hoje.

Se morrer os Activex, tem muito site de banco que morre junto tmb.

Sem querer te desiludir, mas o JSF também usa esse “campo hidden gigantesco com dados criptografados”.[/quote]

mas eu tenho a opção de não usar jsf… diferente do .net que sou obrigado a usar caso opite por .net…
se o cara não souber usar isto… pode encher de tanta tranqueira e fazer um simples html pesar tanto que demora tempo apenas pra carregar as frescuradas que ele quer… é bem melhor fazer isto direto no cliente… este tipo de coisa tem que ser bem medido… pois a performace é o preço que se paga por querer tentar trabalhar com web como se fosse uma app desktop…

Vou mudar um pouco o foco do tópico, para falar de máquinas virtuais. O gnome tá rodando perfeitamente em cima do mono. Eu acreditava que isso deixaria o gnome como win vista, muito lerdo e consumindo muita memória. Rodei o último release em uma máquina com 512 mb de ram, e rodou consumindo 110mb. Fiquei impressionado.

Vocês juram que houve quebra de compatibilidade do 2.0 para o 3.0? Por que eu uso o CD Burner XP, que é compilado com o 2.0 e roda de boa aqui com o 3.5.

luistiagos, essa funcionalidade se chama view state, e ela pode e deve ser desativada quando desnecessária. Se existem péssimos desenvolvedores que mantém ela ativa o tempo todo para todos os controles, paciência (de quem trabalha com esse cidadão)

Não sabia dessa do Gnome rodando por cima do mono, eu vi que já utilizavam muita coisa em .NET, mas vou dar um conferida também.

Começa pela IDE, que é feia ( :lol: ) e se entranha pelo Windows quando você instala, de uma tal maneira que fica enchendo o saco pra sempre (qualquer erro em um site que você acessa pula aquela porcaria de pop-up na sua cara).
Agora falando sério eu também não gosto da forma como o framework trabalha. Acho que a Engenharia de Software tende a ser mais avançada em aplicações Java (o que também depende muito do programador). Além disso, é muito mais complicado achar documentação .NET, eles não têm um fórum como esse aqui, por exemplo.
Outra coisa que me irrita bastante é que o VS2003 não dá suporte para criar aplicações para smart devices. Aí você vai para o VS 2005 e descobre que ele não dá compatibilidade para trás com as versões do .NET Framework (na boa, isso é tremendamente Microsoft).
Ah, já ia esquecendo: aqui no trabalho o XP veio com o IE7. Quando instalei o VS2005, a opção de criar aplicações para smart devices não funcionava: o IE7 usa uma entrada do registro que é necessária ao VS2005. Conclusão: tive que voltar para o IE6 para poder usar o VS2005 e criar as aplicacões mobile. Isso é definitivamente Microsoft: fazem tanto bacalhau pro programa sair, que acabam esquecendo que outro programa já usava a mesma gambiarra.

Pra finalizar: .NET está mais avançado que Java em muitas coisas?? Claro, a linguagem surgiu depois, viu os pontos fracos da antecessora e trabalhou neles.

A M$ teve uma baixa mancada na mudança do .Net 1 para o 2. Porém, depois, ficou retro-compatível. No geral, a linguagem C# possui muitas coisas que a linguagem Java poderia ter. Entretanto, a maior falha é a plataforma estar focada mais no RWindows. A ferramenta oficial é para RWindows e temos que conviver com isso. O resto que falam é filosofia de botequim.

[quote=J-Chist]Começa pela IDE, que é feia ( :lol: ) e se entranha pelo Windows quando você instala, de uma tal maneira que fica enchendo o saco pra sempre (qualquer erro em um site que você acessa pula aquela porcaria de pop-up na sua cara).
Agora falando sério eu também não gosto da forma como o framework trabalha. Acho que a Engenharia de Software tende a ser mais avançada em aplicações Java (o que também depende muito do programador). Além disso, é muito mais complicado achar documentação .NET, eles não têm um fórum como esse aqui, por exemplo.
Outra coisa que me irrita bastante é que o VS2003 não dá suporte para criar aplicações para smart devices. Aí você vai para o VS 2005 e descobre que ele não dá compatibilidade para trás com as versões do .NET Framework (na boa, isso é tremendamente Microsoft).
Ah, já ia esquecendo: aqui no trabalho o XP veio com o IE7. Quando instalei o VS2005, a opção de criar aplicações para smart devices não funcionava: o IE7 usa uma entrada do registro que é necessária ao VS2005. Conclusão: tive que voltar para o IE6 para poder usar o VS2005 e criar as aplicacões mobile. Isso é definitivamente Microsoft: fazem tanto bacalhau pro programa sair, que acabam esquecendo que outro programa já usava a mesma gambiarra.

Pra finalizar: .NET está mais avançado que Java em muitas coisas?? Claro, a linguagem surgiu depois, viu os pontos fracos da antecessora e trabalhou neles. [/quote]

A retrocompatibilidade não é um ponto forte da ms mesmo. Mas o que não falta é documentação, suporte e fórum.

Olha o nível desse fórum. Desde artigos científicos a tutoriais, dos mais diversos temas.
http://www.codeproject.com/

A especificação padrão ecma c#, para baixar.
http://www.ecma-international.org/publications/standards/Ecma-334.htm

Não falta documentação não.

Não acho winxp nem win 7 ruins. Para mim o único problema é pagar por eles, por isso uso o ubuntu. Mas não tenho nada contra.

[quote=J-Chist]

Pra finalizar: .NET está mais avançado que Java em muitas coisas?? Claro, a linguagem surgiu depois, viu os pontos fracos da antecessora e trabalhou neles. [/quote]

Qual seria o problema disso? Para mim é até melhor, pois irão investir em outras tecnologias também. Todo mundo ganha com isso. O jdk 7 vem ae com várias atualizações.

Eu não achei os fóruns bons e não gosto da maneira que expõem a documentação, nem da plataforma, nem do Windows, nem da Microsoft. Não estou tentando convencer ninguém a achar o mesmo, apenas expus minha opinião.

Eu não disse que .NET se basear em Java é um problema…Só que a linguagem se favoreceu de muita coisa que já estava lá e viu as coisas que não estavam, então tem a óbvia vantagem de poder aperfeiçoar os pontos fracos da antecessora. Java também evolui constantemente, e isso é bom para quem desenvolve.

"

Não ficou. Reduziu os problemas de compatibilidade, mas ainda tem muita coisa que mudou. Pra você ter uma ideia, houve funções que simplesmente mudaram a ordem dos parâmetros :shock:
Esse problema do VS2005 ter de voltar pro IE6 também passamos.

Não sei no resto do mundo e nem se é tendência, mas aqui na região tem muita gente que mexia com .NET e está desistindo e partindo pro Java ou até Ruby.

Creio que tá mais do que explicado porque tem tanta gente que prefere Java.[/quote]

ao meu ver, o maior problema dos produtos ms é a dependência de objetos com. Realmente os controles tornam a vida do usuário um inferno.

eu gosto de .NET, gosto do Visual Studio e acho a linguagem bem legal :stuck_out_tongue:

trabalhei durante 1 ano e se hoje eu tivesse a oportunidade de trabalhar denovo, iria sem problemas

Haha. Aliás, não só na internet, mas até mesmo em emprego. Já vi desenvolvedores .Net vindo falar besteira, mas nunca um programador Java tentando convencer ninguém de nada. É muito chato.

Uma vez um cara de um projeto que usava .Net começou a falar merda do Eclipse, que o Visual Studio era isso e aquilo mais. Um dos desenvolvedores Java ficou indignado, chamou o cara para conversar e começou a mostrar as features uma a uma. VS faz isso? VS faz aquilo? Foi engraçado.

Se eu não me engano apenas algumas aplicações usam o Mono, e sequer são as principais do Gnome. Tipo uma de notas e algumas outras pequenas.

Se eu não me engano apenas algumas aplicações usam o Mono, e sequer são as principais do Gnome. Tipo uma de notas e algumas outras pequenas.[/quote]

Não só essas que você citou, como gerência de rede, hardware, etc…
se você remover o mono(não o sdk), o gnome deixa de funcionar.

Imagino que o Miguel de Icaza quer fazer o que o dotnet é no Vista e no Seven.

Vamos ver como ficará.

PS: Gnome não é o kernel, mas um gerenciador de janela.

Deixa de funcionar porque o gerenciador de pacotes coloca o mono como dependência e se removê-lo diversos outros pacotes também serão removidos. O Mono não é necessário para o Gnome até porque distribuições como o Debian até pouco tempo atrás não o incluíam por medo de patentes da Microsoft.

[quote=Thiagosc][quote=juliocbq]
Não só essas que você citou, como gerência de rede, hardware, etc…
se você remover o mono(não o sdk), o gnome deixa de funcionar.

PS: Gnome não é o kernel, mas um gerenciador de janela.
[/quote]

Deixa de funcionar porque o gerenciador de pacotes coloca o mono como dependência e se removê-lo diversos outros pacotes também serão removidos. O Mono não é necessário para o Gnome até porque distribuições como o Debian até pouco tempo atrás não o incluíam por medo de patentes da Microsoft.[/quote]

Por isso que você acabou de falar. É essencial para o funcionamento dele. E a versão 3.0 vai ser mais dependente ainda.