DOT.NET || Java?

198 respostas
tiagomac

Olá Pessoal :slight_smile: !!

Então, ultimamente eu tenho visto uma “mãe diná” em todos os programadores que eu converso, questiono sobre o futuro de java e da plataforma .net, mas é difícil fazer esse tipo de perguntar para um programador java, ou para um programador C#, pois geralmente tende a puxar a sardinha, coisa que eu não acho legal… uma pessoa que trabalha nessa área de T.I, precisa ter uma mente aberta, e não se enclausurar em uma tecnologia apenas e falar mal da “outra” :? !!
acho que o pessoal de Java é mais mente aberta nesse ponto, por isso, gostaria de perguntar, apenas saber de vocês sobre as diferenças e particularmente o que vocês acham do futuro, qual vai “vencer” (digo, se tornar mais utilizada nos próximos anos)…

No meu ponto de vista a Microsoft  copia o windows copiou o MacOS, e desde então eles não pararam mais, poderia fazer até uma pequena lista:

MSN          -> ICQ;

I.E            -> FireFox;

MSN Earth -> Google Earth;

Zune         -> IPod;

Asp           -> PHP;

Windows Desktop Search -> Google Desktop Search;

DWM -> Quartz, Xgl;

Money -> Quicken.

Na verdade a lista é grande, não vou queimar memória agora c/ isso… mas no meu ponto de vista a MS vivi de copiar a idéia dos outros…
mas pq faz sucesso? eu acredito que a explicação já tá no windows, eles fazem algo que já existe no mercado, porem mais fácil de usar, mais acessível. e por conta disso torna mais popular. também, graças ao $$ que investem pesado em Market…

é até sobre o tal do market que eu queria falar também… eu to em um programa agora da MS para treinamento em C#, tudo gratuíto, (pago por eles…) claro que no curso você só aprende .NET(C#, Asp.NET, SQL Server e mais uma renca de coisas .NET…)
porem o bacana é que eles quase garantem uma colocação profissional para os que ficarem até o final (existe uma filtragem por meio de provas e fases)… agora eu fiquei realmente na dúvida sobre qual plataforma seguir e me dedicar profissionalmente…
já tenho algum conhecimento em Java pois venho estudando Java a mais ou menos 1 ano e meio, sei que minha bagagem é quase nula junto a dimensão da “plataforma”… mas eu sinceramente gosto de Java, do eclipse então nem se fala…

Mas no caso do php, parece que aconteceu uma coisa semelhante, surgio o PHP primeiro, depois do CGI… e conquistou o mercado, logo após veio o ASP, não sei dados de porcentagem exatas, mas me parece que hoje em dia o Asp tá na frente do PHP…

mas enfim, resumindo pra não ficar muito longo… o que vcs acham sobre o futuro? .NET tem uma chance boa de ter mais área de trabalho e também ficar mais popular que o Java?

198 Respostas

M

Já li e pesquisei muito sobre este assunto e cheguei a seguinte conclusão:

Uma linguagem que é ou foi muito difundida não sai do mercado facilmente, por exemplo Cobol, C/C++, Delphi, ASP, PHP, etc… aliás elas evoluem como por exemplo Cobol visual, PHP no Delphi, etc …

Outra coisa, as empresas não focam mais em apenas uma tecnologia, pois qto mais tecnologias ela dominar maior a chance de realizar projetos bem sucedidos já que a tecnologia X atende melhor as exigencias do meu projeto do que a tecnologia Y. Então se vc domina uma tecnologia e tem conhecimentos em outras suas chances no mercado são maiores !! veja, pelo menos vc tem que dominar uma tecnologia. Se sua dúvida for em qual tecnologia se aprofundar mais vc deve analisar o que vc procura, se for melhor salário por exemplo vamos fazer uma comparação entre Delphi e Java.

Delphi:

  • curva de aprendizado menor;
  • várias escolas de informática em fundo de quintal tem curso de Delphi;
  • maior oferta de mão de obra no mercado;

Java:

  • curva de aprendizado maior;
  • poucos lugares oferecem curso de Java;
  • pouca oferta mão de obra;

O profissional Java ganha em média 50% mais que um profissional Delphi. Então se a MS seguir seu padrão de marketing deixará o .Net carne de vaca como o Delphi é hoje, e a oferta de mão de obra no mercado vai ser grande !!!

P.S. O texto acima é meu ponto de vista, então se falei alguma bobagem me corrigem por favor.

tiagomac

Marcelo, você está muito certo em relação ao valor do profissional Java… inclusive isso foi debatido ontem em sala juntamente c/ meu professor de Eng. de software, que é Analista de sistemas sênior na Petrobrás…
mas não posso analisar somente esse ponto, veja só, um profissional Cobol é muito caro também… mas tem sido cada vez mais difícil achar um trabalho em Cobol…

Pelo que tenho estudado C#, tenho achado ele até mais difícil de aprender do que Java, o C# tem enumeration, struct, delegates, nullable… são conceitos que em uma semana se aprende, mas a aplicação é p/ vida toda e pode confundir (tipo, que momento uso essa, ou aquela…) então termina ficando muito maior…

Mas outra coisa que tenho observado no C# é que a MS agora tá investindo pesado no mercado de jogos c/ o XNA, uma framework que ajuda muito o desenvolvimento de jogos tanto 2D quanto 3D, e em java eu desconheço uma iniciativa como essa…

mas olha só, não to defendendo, nem criticando, pelo amor de deus…

vlw mesmo a opinião, abraços.

Jair_Rillo_Junior

Meu ponto de vista pessoal:

A muito tempo não “brinco” com C#, então realmente não sei como estão as coisas hoje em dia.

A grande sacada da microsoft é realmente o marketing que ela faz, principalmente nas suas ferramentas “mágicas”, como por exemplo o VisualStudio.
Porém a tecnologia .NET tem seus pontos fortes sim, é uma tecnologia muito boa e que atende a uma grande fatia do mercado. Alias, é sempre bom existerem tecnologias concorrentes, assim ambas podem evoluir.

Pelo que eu ví à algum tempo atrás, quando brinquei com C#, foi que a ela atende melhor desenvolvimento em sistemas Desktop e para plataforma Windows (existe o projeto Mono no Linux, mas esse eu não conheço então não posso opinar).
Java tem como ponto forte sua plataforma JEE, onde geralmente é utilizada em projetos de médio/grande porte, onde suas regras de negócios ficam do lado servidor (gerenciado por um servidor de aplicação).
Vejo a comunidade Java muito mais forte que .NET. A quantidade de frameworks que existem e de grande qualidade, é um ponto forte em Java (embora existem pessoas que acham que uma quantidade grande de ferramentas ao invés de ajudar atrapalha).

Como eu disse, cada uma tem seus pontos fortes e fracos, onde devem ser melhor aplicadas ou não. Assim como hoje, não podemos esquecer de Ruby on Rais, que aos poucos vem conquistando vários adeptos.

Marcio_Nogueira

Já desenvolvi em .net, e hoje desenvolvo em java. A meu ver a plataforma .net será totalmente reformulada, tendo uma única linguagem o C#. todos os caminhos levam a deduzir isto, pois o VB.net tem incorporado em sua estrutura características do C++ e do Java. Acredito que em um futuro próximo a era VB chegará ao fim.

Em relação ao Java podemos esperar muitas melhorias e novidades em breve. Acredito que o Java será a tecnologia que mais cresce em quantidade de aplicações e dispositivos que a utilizam.

Em função do fim da era VB (Visual Basic) ocorrerá uma migração tanto para o C#, assim como para o Java. Sendo que o número de programadores Java será muito maior devido a portablidade da tecnologia Java e sua independência de plataforma e ide.

M

:smiley:

Desenvolvi mto pouco com C#, mas achei interessante…concordo com o amigo ali de cima sobre o ponto forte em ser para plataformas Windows…

Trabalho com Java, mas acho que ele é deficiente em aplicações desktops e o J2EE é uma coisa que não dá para comentar, é foda!!

Minha opinião é que todas tecnologias são deficientes e cada uma tem seu ponto forte, cabe ao usuário/desenvolvedor ver o que vai atender suas necessidas e sobre a Microsoft ‘copiar’, eu concordo que eles copiam, mas estamos em pleno 2007 e num mundo onde existe uma concorrência em qualquer área, é claro que a Microsoft vai copiar e brigar para que a sua ‘cópia’, ganhe aquele nicho do mercado.

[]'s

faq

Marcio Nogueira,

O que te faz pensar isso? Por todos os lado eu vejo exatamente o oposto, as plataformas vão suportar mais e mais linguagens.

peczenyj

Vamos fazer uma busca no Catho:

Sua busca encontrou 1.831 registros de anúncios de vagas para java.
Sua busca encontrou 811 registros de anúncios de vagas para PHP.
Sua busca encontrou 669 registros de anúncios de vagas para delphi.
Sua busca encontrou 591 registros de anúncios de vagas para C#.

IMHO, eu ficaria com Java, pelas inumeras possibilidades, pelo tempo de mercado e, principalmente, por não depender da Microsoft.

louds

Você pode ter êxito profissional com ambas plataformas, pois profissionais qualificados de C# ou Java são peças raras. A idéia de que no .NET as “ferramentas mágicas” do Visual Studio fazem tudo tá acabando, existe um movimento muito fonte nesse sentido, o alt.net.

No geral a plataforma do .NET é mais avançada e moderna que a do Java, o que é natural se considerar a diferença de idades. Ambas são maduras e ambas são multiplataformas.

Por sinal, um programa escrito para .NET roda em mais plataformas que um escrito em JSE. Roda em pc, power pc, itanium, sparc, mips, alpha e arm. Você consegue rodar um programa desktop em um celular. Achar que .net é para windows apenas é ignorar que existe o mono, uma implementação madura e open source da plataforma.

Ambas plataformas estão caminhando para realmente suportarem multiplas linguagens. VB.NET, C#, F# e linguagens de scripts no .NET. Java e linguagens de script na JVM. Isso é sadio e deve formentar ainda mais a expansão das mesmas.

Porém, no final das contas, tanto faz, é questão de gosto pessoal e na qual você se sente mais confortavel. Se você for competente, emprego não à de faltar.

T

Marcio_Nogueira:
Já desenvolvi em .net, e hoje desenvolvo em java. A meu ver a plataforma .net será totalmente reformulada, tendo uma única linguagem o C#. todos os caminhos levam a deduzir isto, pois o VB.net tem incorporado em sua estrutura características do C++ e do Java. Acredito que em um futuro próximo a era VB chegará ao fim.

Em relação ao Java podemos esperar muitas melhorias e novidades em breve. Acredito que o Java será a tecnologia que mais cresce em quantidade de aplicações e dispositivos que a utilizam.

Em função do fim da era VB (Visual Basic) ocorrerá uma migração tanto para o C#, assim como para o Java. Sendo que o número de programadores Java será muito maior devido a portablidade da tecnologia Java e sua independência de plataforma e ide.

na verdade é isso mesmo, principalmente pq o VB.net vai começar a tender a uma linguagem mais dinâmica, do tipo script…

josenaldo

Bem. Não vou ficar aqui falando q matei a cobra. Vou logo mostrar o pau.

Tenho coletado alguns links sobre essa “briga” de Java com .Net.

Dêem uma olhada aqui: http://del.icio.us/josenaldo/javaee_vs_dotnet

Quanto ao quesito plataforma, as duas são boas e cada uma tem suas aplicações.
Para aplicação desktop Windows e aplicações web de pequeno e médio porte, prefiro .Net dá conta do recado muito bem. Para o cara ter a mesma produtividade em Java, tem que saber muito.
E para aplicações de grande porte, indiscutivelmente prefiro Java. O Java EE é uma bazuca sim, e por isso é a melhor alternativa pra encarara dragões.

Agora, quanto ao quesito modelo de negócio, prefiro Java. Livre. Cada especificação conta com a participação de várias empresas. Uma comunidade muito forte. Transparência. A Microsoft, com seu FUD e vendor lock-in não me permite confiar meu futuro profissional em suas garras.

Trabalho com Windows, uso o windows, mas a cada dia que passa, procuro me livrar mais dele e utilizar ferramentas livres. Não por ideologia, mas por pragmatismo mesmo.

chun

O unico motivo para não considerar o mono como plataforma de desenvolvimento em .Net opensource é o fato da Microsoft vender o .Net como SOLUCAO FECHADA… integrando tudo que só existe e só existirá no windows… builhares de objetos DCOM… milhares de solucoes de venda casada ao estilo “share-point” , Active Directory , SQL Server…

Entao voce precisa fugir correndo de tudo isso que hoje são a menina dos olhos da “super producao e integracao” vendida pela MS se voce quer usar o mono…

Outra coisa é ficar na mao da MS… do que ela “decidir fazer da noite para o dia”… o C# esta morfando de tal forma que vai chegar um ponto em que programas escritos nele vão ser ilegiveis para a maioria dos “utilizadores” do VisualStudio… assim aconteceu com o C++… virou um elefante branco…

Concordo que varios conceitos da plataforma .Net deveriam ser portados para o mundo java…

O que me decepciona no java é eles não ter a capacidade de rodar varias apps dentro de uma mesma JVM (Projeto barcelona)…

Outra coisa que me deixa triste eh voce nao poder limitar o uso de um determinado recurso … ex: “o modulo war X soh pode ocupar no maximo 10% do processador e 40% da memoria”… e isso nem .net oferece.

Outro fato interessante é o uso INDISCRIMIDADO de chamdas nativas… 80% dos fabricantes de componentes para softwares (editores de textom, geradores de relatorio, etc… ) fazem do mono algo impossivel de se trabalhar… quer ex ? ponha o Report Builder no seu programa em .net… e vc fica preso no windows… o que eles fizeram ? UM MONTE DE WRAPPER para dll’s nativas do sistema operacional… assim como o pessoal do WPTools… entao… o mono se torna algo bem dificil de se considerar tento em vista este cenario…

louds

josenaldo:
Agora, quanto ao quesito modelo de negócio, prefiro Java. Livre. Cada especificação conta com a participação de várias empresas. Uma comunidade muito forte. Transparência. A Microsoft, com seu FUD e vendor lock-in não me permite confiar meu futuro profissional em suas garras.

Vendor lockin não existe mais com .net. Agora pouco compilei código c# no meu celular que roda linux e rodei o assembly gerado no meu note, que roda OSX. Dizer que existe lockin quando o mono é uma realidade, é o mesmo que ignorá-la.

Rodrigo_Carvalho_Aul

Faz tempo que não mexo no Mono, mas da última vez (menos de 1 ano atrás) não consegui rodar nenhuma aplicação Asp.Net aqui da empresa que já está funcionando em produção no IIS. Só conseguia fazer Hello Word simples.

[]'s

Rodrigo Auler

celso.martins

Como assim?

Tenho 5 coletores de dados, aplicações stand-alone, rodando dentro do mesmo servidor FreeBSD.

Como a administração dos servidores não-windows da empresa é terceirizada, pode ser que eu esteja falando besteira.

As 5 apps não estão rodando na mesma JVM? Você se referiu a aplicações JEE? Fiquei confuso agora!

josenaldo

louds:
josenaldo:
Agora, quanto ao quesito modelo de negócio, prefiro Java. Livre. Cada especificação conta com a participação de várias empresas. Uma comunidade muito forte. Transparência. A Microsoft, com seu FUD e vendor lock-in não me permite confiar meu futuro profissional em suas garras.

Vendor lockin não existe mais com .net. Agora pouco compilei código c# no meu celular que roda linux e rodei o assembly gerado no meu note, que roda OSX. Dizer que existe lockin quando o mono é uma realidade, é o mesmo que ignorá-la.

Louds, confesso que conheço muito pouco de .Net e Mono, menos ainda. Como você conhece, a pergunta vai pra vc mesmo. rsrssrsr

Pelo que pude notar e me disseram, o Mono não implementa o .Net inteiro, não é? ou já implementa? Qualquer coisa que eu faça no Visual Studio funciona no Mono?

Pergunto isso por uma coisa simples. Pra mim,portabilidade é portabilidade. Não adianta eu escrever um programa utilizando as apis descritas no Java EE e funcionar em uma plataforma e em outra não. Pra mim o Mono só vai ser uma alternativa viável ao .Net quando fizer TUDO que ele faz( se ainda não o faz)

fabim

DOT.NET? que plataforma é essa? :smiley:

C#, VB, Delphi, JAVA, tanto faz… qdo se esta estudando ‘lógica de programação’ já se aprende que um bom desenvolvedor nunca é preso à linguagem.

chun

celso.martins:
chun:

O que me decepciona no java é eles não ter a capacidade de rodar varias apps dentro de uma mesma JVM (Projeto barcelona)…

Como assim?

Tenho 5 coletores de dados, aplicações stand-alone, rodando dentro do mesmo servidor FreeBSD.

Como a administração dos servidores não-windows da empresa é terceirizada, pode ser que eu esteja falando besteira.

As 5 apps não estão rodando na mesma JVM? Você se referiu a aplicações JEE? Fiquei confuso agora!

O exemplo que quero dizer é este:

Imagine que voce tem SEU CLIENTE DE EMAIL feito em java… vc abre ele certo ? voce tem uma JVM na memoria… no minimo 30mb na ram comidos instantaneamente…
E se o comunicador interno da sua empresa for em java ? OUTRA jvm rodando… mais 30mb de memoria comida…
E se por acaso voce acessa o BANCO DO BRASIL e abre a applet java ? Outra vm rodando…
E se utilizar o ThinkFree ? Outra VM…
E se vc programar e fizer um utilitariozinho de monitoramento de acoes ? Outra vm…

Acharia lindo java utilizando apenas UMA VM e “acoplando” esses programas como se fossem “processos” entende ?

o Projeto barcelona prometia isso… mas acho que morreu.
era a MVM…

S

louds:
josenaldo:
Agora, quanto ao quesito modelo de negócio, prefiro Java. Livre. Cada especificação conta com a participação de várias empresas. Uma comunidade muito forte. Transparência. A Microsoft, com seu FUD e vendor lock-in não me permite confiar meu futuro profissional em suas garras.

Vendor lockin não existe mais com .net. Agora pouco compilei código c# no meu celular que roda linux e rodei o assembly gerado no meu note, que roda OSX. Dizer que existe lockin quando o mono é uma realidade, é o mesmo que ignorá-la.

Oi,
Pelo que ouvi dizer, .NET 3.0 saiu e o Mono ainda não tinha a implementação completa do .NET 2.0. É verdade isso?
Se for, não chamo isso de portabilidade.

ViniGodoy

Isso me lembrar a informática a uns anos atrás: "VB ou Delphi?"

O fato é que as duas tem muito espaço para coexistir. Existem empresas que precisam de multi-plataforma, assim como existem empresas que também precisam muito de integração com o Windows/Office.

Acho que o que desbancará o Java (e provavelmente o .Net junto) será uma nova linguagem, com um novo paradigma. É mais ou menos o que acontece sempre. Veja as linguagens mesmo.

Era do assembly: MS Assembly, Borland Assembly ou Assembly do fabricante? -> Todos coexistiram até a
Era estruturada: Pascal ou C? Fortran? Cobol? Clipper? -> Todos coexistiram até a
Era orientada a objetos: Delphi? VB? C++? -> Todos coexistiram até a
Era de linguagens com VM: Java? .Net?

Isso sem citar também as disputas envolvendo linguagens para web (PHP, ASP, JSP e afins)…

celso.martins

Ohhhh peste… disso eu não sabia… que negócio doido… vou dar uma pesquisada sobre esse assunto. Coloquei Projeto Barcelona no google e não veio nada de imediato. Vou dar uma olhada nas profundezas do google e talvez eu ache algo.

Meu ambiente de desenvolvimento é Win XP com Eclipse Europa. Se coloco duas apps diferentes para rodar no Eclipse consigo ver essas instâncias diferentes da JVM na memória? Com o gerenciador de processos do windows?

Vlw pela explicação.

ViniGodoy

celso.martins:

Meu ambiente de desenvolvimento é Win XP com Eclipse Europa. Se coloco duas apps diferentes para rodar no Eclipse consigo ver essas instâncias diferentes da JVM na memória? Com o gerenciador de processos do windows?

Vlw pela explicação.

Isso. Aperta CTRL+ALT+DEL e manda ordenar por nome. Vai na parte de Java.

Se você tem o Visual Editor, vai ver uma VM para cada janela sendo editada.
Também vai ver a VM do eclipse, que provavelmente é a que mais ocupa memória.
E a VM de cada aplicação sua rodando… só não dá para saber exatamente o que é o que…

celso.martins

ViniGodoy:

Isso. Aperta CTRL+ALT+DEL e manda ordenar por nome. Vai na parte de Java.

Se você tem o Visual Editor, vai ver uma VM para cada janela sendo editada.
Também vai ver a VM do eclipse, que provavelmente é a que mais ocupa memória.
E a VM de cada aplicação sua rodando… só não dá para saber exatamente o que é o que…

Constatado… realmente eu não sabia disso. Eu pensava que as apps compartilhavam a mesma instância da JVM.

Vlw!

chun

celso.martins:
ViniGodoy:

Isso. Aperta CTRL+ALT+DEL e manda ordenar por nome. Vai na parte de Java.

Se você tem o Visual Editor, vai ver uma VM para cada janela sendo editada.
Também vai ver a VM do eclipse, que provavelmente é a que mais ocupa memória.
E a VM de cada aplicação sua rodando… só não dá para saber exatamente o que é o que…

Constatado… realmente eu não sabia disso. Eu pensava que as apps compartilhavam a mesma instância da JVM.

Vlw!

doce sonho :roll:

L

Essas briguinhas entre .NET e Java são tão repetitivas que dá até vontade de bocejar. :smiley:

Mas, só pra botar mais lenha na fogueira, queria saber de uma coisa:

Por que dizer que Java é bom porque roda em vários SOs? Nada contra ser multiplataforma, mas se em algum projeto tiver como pré-requisito máquinas com Windows XP e Windows Vista, vai descartar o .NET só porque em Linux não rola?

jjose

Java não é multi-plataforma, a VM é uma plataforma assim como o VMWare e o Java precisa da JVM e quando vc vai baixar a JVM vc tem que informar para qual tipo de SO.

O iExplore é multi-plataforma? É possivel rodar no MAC, mas como tem que informar para qual SO é a JVM, devemos informar para qual SO é o iExplore

chun

nossa jjose… seguindo esse seu preceito… não existe multi plataforma…

vc misturou tudo… misturou plataforma de desenvolvimento com “aplicativo”…

que salada.

ViniGodoy

Leonardo3001:

Por que dizer que Java é bom porque roda em vários SOs? Nada contra ser multiplataforma, mas se em algum projeto tiver como pré-requisito máquinas com Windows XP e Windows Vista, vai descartar o .NET só porque em Linux não rola?

Se entre esses requisitos estiver a integração com o ActiveX, ActiveDirectory e recursos específicos do SO…

celso.martins

jjose:
Java não é multi-plataforma, a VM é uma plataforma assim como o VMWare e o Java precisa da JVM e quando vc vai baixar a JVM vc tem que informar para qual tipo de SO.

O iExplore é multi-plataforma? É possivel rodar no MAC, mas como tem que informar para qual SO é a JVM, devemos informar para qual SO é o iExplore

Então, seguindo a sua linha de raciocínio, na minha opinião, a JVM não é multi-plataforma. O código desenvolvido no Java é sim. Tenta portar uma aplicação de Delphi para Kylix. É um inferno.

No java, os códigos que escrevo na minha máquina Windows XP, roda, sem precisar de alterações em BSD e em Linux.

Acho que é essa a idéia por trás da multi-plataforma. As JVM’s são diferentes, mas os códigos iguais.

ViniGodoy

Entretanto, compartilhar VMs também tem seus drawbacks.

Se o cara está rodando 3 ou 4 apps. Uma delas trava e ele “espertalhão” mata a VM, ele mataria todas as aplicações!

Claro, eles iriam fornecer mecanismos para que a aplicação seja morta na VM… mas aposto que a maioria dos usuários (que muitas vezes nem sabe que VM existe) saberia disso…

ViniGodoy

Também é bom não confundir código portável com código multiplataforma.

Você podia gerar código portável em C++, ou seja, fizessem em Windows e rodasse em um compilador no Linux, o código compilaria e geraria uma aplicação Linux.

Mas quem já escreveu código assim sabe que é centenas de vezes mais difícil do que escrever código multiplataforma. Isso porque a “plataforma curinga” (JVM) se preocupa com detalhes como ordenação de bytes, etc. E não há necessidade de recompilação.

jjose

.NET pode rodar em Linux com Wine, é multi?

ViniGodoy

Não. O wine “emula” um Windows e não é uma aplicação feita pelo fabricante do .net.

Também não há qualquer garantia por parte deles de que tudo o que o código .net suporta será suportado no wine.

jjose

Nem todas VM são da SUN…

O bc gerado pela JVM Win é diferente da do Linux.

Coloca uma VM deixa tudo mais lento pois esse coringa fica interceptando tudo

celso.martins

jjose:
Nem todas VM são da SUN…

O bc gerado pela JVM Win é diferente da do Linux.

Coloca uma VM deixa tudo mais lento pois esse coringa fica interceptando tudo

Não sei, mas acho que você confundiu alguma coisa novamente. =)

O ByteCode quem gera é o javac. O .class gerado no Windows é o mesmo que roda no Linux. Os bc’s são iguais. A JVM que interpreta esses BCs é que precisa ser especifica do SO.

ViniGodoy

jjose:
Nem todas VM são da SUN…

O bc gerado pela JVM Win é diferente da do Linux.

Ahem… o bytecode é o .class. Ele é gerado pelo javac, não pela VM.
Podem haver várias empresas que implementem uma VM, mas ela é padronizada pela Sun, e tem uma especificação rígida.

Também não é exatamente verdade. A VM tem um esquema muito interessante de gerenciamento da memória. Ela também pode analisar um código em tempo de execução e fazer inline automático de métodos.

jjose

Crie duas complicações do mesmo código em Java.

Uma gerenciada pela JVM e outra um .exe, qual é mais rápido?

ViniGodoy

PS: Para saber mais sobre a VM, compilação dinâmica, dead-code elimination e outras coisas, dê uma lida nesse artigo:

E nesses sites:
http://www.idiom.com/~zilla/Computer/javaCbenchmark.html
http://bytonic.de/html/benchmarks.html

Ajuda a eliminar pre-conceitos.

jjose

celso.martins:
jjose:
Nem todas VM são da SUN…

O bc gerado pela JVM Win é diferente da do Linux.

Coloca uma VM deixa tudo mais lento pois esse coringa fica interceptando tudo

Não sei, mas acho que você confundiu alguma coisa novamente. =)

O ByteCode quem gera é o javac. O .class gerado no Windows é o mesmo que roda no Linux. Os bc’s são iguais. A JVM que interpreta esses BCs é que precisa ser especifica do SO.

Errei no nome, não me lembro do nome que a JVM faz…

Fato, é diferente para cada SO

ViniGodoy

jjose:
Crie duas complicações do mesmo código em Java.

Uma gerenciada pela JVM e outra um .exe, qual é mais rápido?

Já fiz essa experiência.

Crie duas aplicações. Coloque a criação e destruição de objetos num while.
Compile a aplicação em java e em C++.

Também é bom dar uma olhada nos benchmarks passados ali em cima…

By the way: O que geralmente é um problema de performance é o algoritmo, não a linguagem. Use um algoritmo ineficiente e você terá um programa ineficiente.

ViniGodoy

jjose:

Errei no nome, não me lembro do nome que a JVM faz…
Fato, é diferente para cada SO

Aí é que está. A VM não é multi-plataforma.
Mas a linguagem java, e os bytecodes gerados por ela são.

É o que o pessoal está falando desde o início… Você está misturando conceitos.
E também está meio desinformado. Mas nada que um pouco de leitura não resolva. :wink:

celso.martins

ViniGodoy:

By the way: O que geralmente é um problema de performance é o algoritmo, não a linguagem. Use um algoritmo ineficiente e você terá um programa ineficiente.

Em qualquer linguagem do mundo!

celso.martins

jjose:

Errei no nome, não me lembro do nome que a JVM faz…

Fato, é diferente para cada SO

A JVM “simplesmente” interpreta seus BCs. De qualquer forma, você não precisa mexer no seu código para rodar uma app que era Windows em Linux. Independente do que a JVM faz para tornar real essa portabilidade, não é, diretamente, problema do programador.

jjose

ViniGodoy:
jjose:

Errei no nome, não me lembro do nome que a JVM faz…
Fato, é diferente para cada SO

É o que o pessoal está falando desde o início… Você está misturando conceitos.
E também está meio desinformado. Mas nada que um pouco de leitura não resolva. ;)

No inicio era o futuro do Java e do .NET, a defesa do Java foi ser multi.

Coloca a defesa da Microsoft em sempre ter seus produtos em alta no mercado…

VB x Clipper = Clipper off
VB x Delphi = ?
.NET x Delphi = Delphi off
.NET x Java = ???

ViniGodoy

Só para também não parecer um cego.

Algumas linguagens, como o C++ são sim mais otimizáveis do que o Java. E a ausência de VM realmente contribui para isso.
Mas otimização a níveis extremos tem um custo alto, muito alto, que é pago por poucas indústrias (jogos e aeronáutica são exemplos).

Na verdade, VM já faz diversas otimizações. A plataforma java também fornece acesso fácil a diversos algoritmos muito otimizados. Por isso, de maneira geral, é fácil gerar uma aplicação Java otimizada. Infelizmente, por mais que o Swing seja poderoso, ele é realmente pesado e lento (e acho que continuaria assim, mesmo que portado para uma lingaguem sem VM).

Se você ultrapassa o limite de um código eficiente, ou seja, se já está usando bons algoritmos e quer mais performance que isso, você comecará a abandonar o código flexível em prol de código especializado. O código passa a ser otimizado para “aquela situação”, “aquele sistema operacional” ou, em níveis mais extremos “aquele hardware específico”.

E o java te limita aos códigos otimizados no máximo “aquela situação”.

Só retificando: Para programadores normais, gerando códigos normais, num investimento normal o Java vai ser mais rápido de se desenvolver e com resultado suficientemente otimizado. E, dependendo da aplicação, mais rápido do que linguagens não interpretadas.

celso.martins

jjose:

No inicio era o futuro do Java e do .NET, a defesa do Java foi ser multi.

Coloca a defesa da Microsoft em sempre ter seus produtos em alta no mercado…

VB x Clipper = Clipper off
VB x Delphi = ?
.NET x Delphi = Delphi off
.NET x Java = ???

Simplesmente acho impossível essas comparações. Como comparar VB e Clipper??

VB x Delphi = ?, sabe por que? Porque depende do gosto de cada programador. Como um amigo já disse, depende de onde o programador se sente mais confortável.

Conheço pessoas que possuem opiniões diferentes sobre o fight .NET x Delphi. Tudo é uma questão de gosto pessoal. Me sinto mais a vontade no Pascal que no Basic, apesar de ter começado a programar com Basic, nos TKs da vida.

Como sempre eu digo: O que seria das morenas se todos gostassem das loiras?

tiagomac

Voltando um pouco ao assunto… *rs,
Ouvi um comentário de que a Braxis estava com mais programadores .NET do que Java, e que antes o número de programadores Java era maior, alguém poderia me confirmar isso?

procurando na net me bate c/ esse link: http://www.infoq.com/news/Opinion-ASP.NET-2.0-harder
no link o “Daniel Solin” relata problemas no .NET quando tentou fazer uma aplicação maior, diz também que o .NET é bom e efetivo para soluções simples, “Tarefas comuns” …

Eu sigo um pouco essa linha de pensamento, acredito que se você facilita muito as coisas, vc tira um tanto da autonomia do programador, a capacidade de desenvolver coisas novas, algoritmos mais otimizados para uma determinada situação…

li de alguém aqui que o ideal era ser bom nos 2… tanto no .NET quanto em Java, mas isso é possível? ou o sujeito precisaria de uma segunda vida? 1 para estudar cada um? *rs!

Abraços!!!

mcostabr

peczenyj:
Vamos fazer uma busca no Catho:

Sua busca encontrou 1.831 registros de anúncios de vagas para java.
Sua busca encontrou 811 registros de anúncios de vagas para PHP.
Sua busca encontrou 669 registros de anúncios de vagas para delphi.
Sua busca encontrou 591 registros de anúncios de vagas para C#.

IMHO, eu ficaria com Java, pelas inumeras possibilidades, pelo tempo de mercado e, principalmente, por não depender da Microsoft.

LOL estava lendo um pouco do OFF e achei legal este comparativo… aconteceu algo engraçado comigo, realmente a procura por nego de JAVA é grande.

Sou desenvolvedor .Net a uns 5 anos já em C# mas hoje trabalho com JAVA, eu morava em SP na capital,
lá tem muitas oportunidades para C#realmente não falta emprego para ninguem em Sampa!
Mas… eu tive que vir morar no interior de SP e por aqui tudo é linux ou solaris com JAVA, um cara de uma empresa da região
gostou do meu curriculo (que não tinha nada haver com oque a empresa pedia) eles queriam um cara de JAVA, eu disse que não
sabia nada de JAVA mesmo assim o cara me contratou… kkkk em 1 mês +/- eu já estava desenvolvendo JAVA sem dificuldade nenhuma.

O que senti nesta mudança? Não existe ferramenta melhor para desenvolvimento que o Visual Studio .Net!

Quando se ouve falar:
A maior comunidade é do JAVA!! Sim é verdade, pois se a galera do JAVA não se unir a coisa morre.
Já o C#, a microsoft banca e faz acontecer, a final tudo que vai para frente precisa ter algum tipo de financiamento e tempo é dinheiro.

C# é software livre sim! Eu consigo fazer qualquer programa em C# sem gastar 1 centavo.
Tive uma boa experiência para provar isto.
Trabalhei em uma empresa que não investia nada em sistema… digo… não comprava nada Microsoft…
…ironicamente os sistemas eram desenvolvido em C#… como?

C# + WebMatrix + C# Compiler + Mono + Linux = FREE!!!

Hoje trabalho com JAVA usando JBuilder, estou gostando muito… mas ainda prefiro C#!! heheehehhe…

Esse negocio de software livre para mim é bobagem visando que sempre tem alguem que financia o projeto,
sempre vai ter alguem que injeta tempo ou dinheiro, a coisa pode até ser livre mas não é gratis.

PS: Sou novato aqui este é meu 1o. post!

Obrigado!

celso.martins

tiagomac:
Voltando um pouco ao assunto… *rs,
Ouvi um comentário de que a Braxis estava com mais programadores .NET do que Java, e que antes o número de programadores Java era maior, alguém poderia me confirmar isso?

procurando na net me bate c/ esse link: http://www.infoq.com/news/Opinion-ASP.NET-2.0-harder
no link o “Daniel Solin” relata problemas no .NET quando tentou fazer uma aplicação maior, diz também que o .NET é bom e efetivo para soluções simples, “Tarefas comuns” …

Eu sigo um pouco essa linha de pensamento, acredito que se você facilita muito as coisas, vc tira um tanto da autonomia do programador, a capacidade de desenvolver coisas novas, algoritmos mais otimizados para uma determinada situação…

li de alguém aqui que o ideal era ser bom nos 2… tanto no .NET quanto em Java, mas isso é possível? ou o sujeito precisaria de uma segunda vida? 1 para estudar cada um? *rs!

Abraços!!!

Acho que o problema é que você não estuda apenas a linguagem, que no caso do Java é, para mim, algo exorbitante. Você, também, estuda os framewoks que são lançados no mercado a cada ano. Se manter atualizado no Java já é, pelo menos na minha experiência pessoal, uma tarefa árdua.

Além disso, normalmente, você ainda estuda metodologias mais eficientes, processos de software, Análise, etc.

Um grande amigo, que considero muito inteligente, me disse, certa vez, que seria mais importante focar no estudo de metodologias mais eficientes, processos de software, padrões de projeto do que se enterrar em aspectos obscuros de cada linguagem. Não sei até que ponto isso faz sentido. Mas a minha obsessão em gerar códigos melhores está me fazendo tentar fazer os dois: Me aprofundar na linguagem e estudar metodologias, padrões, etc.

Estava estudando o livro de Padrões de Projeto em Java, parei para estudar XP. Devo recomeçar padrões neste fds. Comprei um livro de Projeto de Software, que só devo começar a ler daqui a um mês. Então tenho assunto para ler durante algum tempo.

Muito desses assuntos para mim é novo. Por isso estou encontrando muita dificuldade. Por isso, talvez, não queira entrar num estudo de um Python (que me foi muito bem recomendado), por exemplo.

mcostabr

Desenvolvo tanto em C# quanto JAVA e o Celso falou uma coisa interessante, os frameworks.
Nesta parte eu senti dificuldades, o google me ajudou bastante…
mas a linguagem, fácil, pega um codigo C# e um JAVA… a sintaxe é praticamente a mesma.

É muito fácil para um cara de C# apreender JAVA do que um cara de VB apreender qualquer uma das duas.

(Se Deus quiser VB vai morrer!!) hehehe

[]´s

S

tiagomac:
Voltando um pouco ao assunto… *rs,
Ouvi um comentário de que a Braxis estava com mais programadores .NET do que Java, e que antes o número de programadores Java era maior, alguém poderia me confirmar isso?

Não sei, mas a Braxis aí em Salvador está recrutando uma galera pra Java.
http://www.cpmbraxis.com/talentosjava2007/

S

jjose:
Crie duas complicações do mesmo código em Java.

Uma gerenciada pela JVM e outra um .exe, qual é mais rápido?


Ter mudado de assunto significa que você reconheceu a portabilidade do Java?

L

AMÉM

ViniGodoy

lgweb:

(Se Deus quiser VB vai morrer!!) hehehe

AMÉM

Deja vu: http://www.guj.com.br/posts/list/73760.java#388473

josenaldo

IDE é um negócio complicado… Cada desenvolvedor tem sua paixão. Aqui onde trabalho rola tanto Java como .Net. Na verdade rola um monte de tecnologias. Buscamos aplicar cada uma delas de acordo com as necessidades do cliente. E nesse nosso uso dos lados branco e negro da força, notei que as IDES Java avançaram tanto que já conseguem fazer frente tranquilamente ao Visual Studio.

Isso quando não fazem bem melhor!

Já li comparativos Netbeans 6 vs Visual Studio, eclipse vs Visual Studio. IntelliJ Vs Visual Studio não rola pq dizem q o IntelliJ não é uma IDE, mas um software de transformação automática de pensamentos em bytecodes…rssrsrsr

Costa, o JBuilder é legalzinho, mas dá uma passada no Netbeans e Eclipse e tu vai ver que essas IDEs pagas podem estar com os dias contados se não acompanharem a evolução das free.

Xiiiiii… Aqui tu pecou feio cara. Parece ate que por trás do Java não rola grana. Na verdade rola muito mais grana que no .Net. O java não é bancado somente pela Sun, mas tb IBM, Google, Nokia, Red Hat e muuuitas outras empresas. Dá uma olhada no www.jcp.org. Você vai se assustar com o tanto de empresas que apóiam e financiam o Java.

Natural sua preferência por C#. Vc ainda se sente mais confortável com ela. Mas com o tempo vai ver que o poder do Java não está só na linguagem, mas na plataforma, na comunidade, nos investidores, no modelo de desenvolvimento da linguagem, no café, nos mascotes, nas meninas gatas que atendem a galera nos eventos, no anel do lanterna verde… rsrssrsrsrsrsrsrsrsrsrsrsrsrsrsr

E quem disse que software livre TEM que ser grátis? Software livre não é mais uma questão de ideologia, mas de modelo de negócio.

Seja bem vindo!

chun

Roda ? vc nao acha que voce esta exagerando ?
voce acha que .Net eh aplicação desktop apenas ?

por favor… olha as bilhares de aplicações incompativeis com o wine…

emular daquela forma… tudo nas coxas… e vc chama de RODAR ?

voce sinceramente já rodou alguma porcaria no wine ?

nao é atoa que o pessoal do mono ABANDONOU o wine… e fez a implementacao do windows.forms nativo.

jjose

Depende do gosto do programador???

Se o cara gostar de programar em Fortran, B e Algol ??? Só pq ele gosta uma dessas é melhor que Java ou C# ?

Onde ele vai trabalhar com esse gosto???

chun

jjose:
Nem todas VM são da SUN…

O bc gerado pela JVM Win é diferente da do Linux.

Coloca uma VM deixa tudo mais lento pois esse coringa fica interceptando tudo

Nem todas sao da Sun… mas TODAS obedecem a spec… o comportamento deve ser identico. eh claro que podem ter recursos a mais… porem respeitao a spec a RISCA.

Olhe… vc nao quer discutir os beneficios de uma VM em um forum de java né ?

se vc acha que a VM é um impecilho… entao realmente precisa estudar as alternativas a se ter uma… ae vc vai perceber a besteira que esta falando…

chun

jjose:
Crie duas complicações do mesmo código em Java.

Uma gerenciada pela JVM e outra um .exe, qual é mais rápido?

depende… um simples i++ ? ou um argoritimo de testes ? rode varias interacoes e vai descobrir a JVM consegue ser tão rapida ou MAIS que um codigo nativo…

Conheco muita aplicação feita em C++ tão lenta quanto java 100% interpretado.

chun

jjose:
Depende do gosto do programador???

Se o cara gostar de programar em Fortran, B e Algol ??? Só pq ele gosta uma dessas é melhor que Java ou C# ?

Onde ele vai trabalhar com esse gosto???

Com fortran ele consegue bastante lugares que trabalham com pesquisa cientifica… principalmente na area de estatistica… nao tem ninguem para bater a facilidade e tranquilidade do fortran…

E quem nunca trabalhou com as malditas integrais triplas ? em fortran isso fica baba

algoritimo do trapesio…
algoritimo da escada…

puts… todos esses de integração tornao-se brincadeira de crianca usando fortran e um matlab da vida…

e ESCALONAMENTO DE MATRIZ ? prontinho prontinho !!! para isso fortran eh MUITO legal… fora os MILHARES de pacotes de estatistica… nossa… eu me acabo !

entao jjose… a vida nao eh apenas C# e Java… nao confunda as coisas por favor… cada aplicação na sua.

chun

lgweb:

(Se Deus quiser VB vai morrer!!) hehehe

AMÉM

i++

mcostabr

Eu me expressei mal, não quis dizer que a coisa morre literalmente…
O que senti nesta migrada de linguagem foi, que o JAVA não tem foco.
Digo isso analisando, por exemplo, para desenvolver C# vc tem uma IDE nervosa e um único e poderoso framework que funciona exclusivamente em uma única plataforma (o grande erro).

Na minha atual situação, migrando minha vida de C# p/ JAVA… percebi que cada empresa tem seus metodos, framework, IDE, metodologia… etc… totalmente diferentes uma da outra, como vc mesmo diz, estas grandes empresas por tras do JAVA, IBM, Google, Nokia… etc…
Cada uma tem estrutura totalmente diferente uma da outra, cada vez que vc troca de emprego vc tem que se adaptar a estrutura da mesma completamente diferente da outra.

Em todos os anos de C# que tive, sempre trabalhei com a mesma estrutura… sempre o mesmo framework, já no JAVA temos inúmeros frameworks… vc chega a ficar na duvida em um inicio de projeto, em qual investir, sendo que para cada framework, vc perde tempo analisando sua estrutura… etc… e o pior, o medo da empresa em confiar que a coisa vai ter futuro. Olha eu já vi casos de dono da empresa escolher pq tal coisa é da Sun… tal coisa é da IBM… tal coisa é da Novell… tal da Apache… mas tudo um diferente do outro, o peão fica doido com isso.
Já na Mocosoft… vc pode ter a certeza de que tem uma grande empresa por tras de tudo dando suporte e vc não terá dificuldade nenhuma de integrar todos seus sitemas, de banco, etc… por tudo ser nativo, tudo da mesma empresa.

Veja bem… eu gosto mto de C# e prefiro, mas hoje minha vida é JAVA, eu to até ganhando mais com isso do que com C#, pela falta de profissional, não me veja como um Islão Xiita da Micosofite… A)W(E8A)(W*EA)(WE!!

A única dificuldade que eu não tive em migrar para JAVA foi a sintaxe… A)WE8A)WE são iguais!

Mas esta é a minha clara opinião sobre os dois lados.

[]´s

jjose

Bastante???

Procura na APINFO quantas vagas abriu na ultima semana para Fortran e quantas para .NET ou Java…

Tenho um amigo que é programador de Cobol, ganha bem mas quando ficou desempregado, demorou 4 meses para encontrar outro $$$ compatível

Se trabalha-se com uma linguagem moderna (e de mercado) iria demora 4 dias… rs

celso.martins

jjose:
Depende do gosto do programador???

Se o cara gostar de programar em Fortran, B e Algol ??? Só pq ele gosta uma dessas é melhor que Java ou C# ?

Onde ele vai trabalhar com esse gosto???

Alguma dessas linguagens foi citada anteriormente?

Realmente não sei se estou me expressando mal ou se você é, realmente, o Jeremias José!

Mesmo assim, não só essas citadas por você, mas, pasme, Cobol, Clipper continuam sendo utilizadas. Não é regra, é excessão. Mas ainda sobrevivem.

Repito: Não citei nenhuma dessas linguagens ditas por você. A discussão estava sobre as “linguagens modernas”, isto é, .Net, Java (que estão no assunto do tópico), etc.

Incrível como é difícil de algumas pessoas mudarem de opinião. Se utilizam até de argumentos estranhos à discussão. =(

chun

jjose:
chun:

Com fortran ele consegue bastante lugares que trabalham com pesquisa cientifica… principalmente na area de estatistica… nao tem ninguem para bater a facilidade e tranquilidade do fortran…

Bastante???

Procura na APINFO quantas vagas abriu na ultima semana para Fortran e quantas para .NET ou Java…

Tenho um amigo que é programador de Cobol, ganha bem mas quando ficou desempregado, demorou 4 meses para encontrar outro $$$ compatível

Se trabalha-se com uma linguagem moderna (e de mercado) iria demora 4 dias… rs

vc realmente nao entendeu… sabe o que é escopo ? fortran não substitui java… e nem java substitui fortran… em seus mundos particulares…

sua afirmação é “ou tudo eh feito em X ou em Y” e nao eh BBEEEEEEEMMMM assim que o mundo funciona…

jjose

celso.martins:
jjose:
Depende do gosto do programador???

Se o cara gostar de programar em Fortran, B e Algol ??? Só pq ele gosta uma dessas é melhor que Java ou C# ?

Onde ele vai trabalhar com esse gosto???

Alguma dessas linguagens foi citada anteriormente?

Realmente não sei se estou me expressando mal ou se você é, realmente, o Jeremias José!

Mesmo assim, não só essas citadas por você, mas, pasme, Cobol, Clipper continuam sendo utilizadas. Não é regra, é excessão. Mas ainda sobrevivem.

Repito: Não citei nenhuma dessas linguagens ditas por você. A discussão estava sobre as “linguagens modernas”, isto é, .Net, Java (que estão no assunto do tópico), etc.

Incrível como é difícil de algumas pessoas mudarem de opinião. Se utilizam até de argumentos estranhos à discussão. =(

Esse tópico é extremo e coloquei um ponto de vista extremo…

O futuro vai ser as com melhores (custo x beneficio) e nunca vai haver apenas uma.

O mundo é assim!

celso.martins

Nesse ponto concordo inteiramente com você.

mcostabr

_)WE*)AWE*)A(WE*0AW(E eu curto esses topicos…
no forum que administro (hondaclub.com.br) rola coisas
mto parecidas… tipo Honda vs. CIA!!
alias… em que forum não rola??

Oque não pode rolar é os papo que tire o andamento do tópico do foco…

[]´s

jjose

Fiz um teste,

O nativo terminou 12seg mais rápido que o da jvm.

Nativo feito em C#… rs

Uma obs.: Eu odeio a microsoft, tentei deixar de lado o meu gosto pelo java

josenaldo

O que vc cita como desvantagem é a melhor vantagem do Java!

Qual a vantagem? ESCOLHA!

Você não fica preso a um fornecedor. Pode usar o que melhor te agradar.

E quanto ao JCP, não pense que o java não tem foco, muito pelo contrário! Java tem um foco muito claro: mercado! Cada especificação que sai tem q atender ao interesse de um monte de empresas. E cada uma cria sua IMPLEMENTAçAO, com a galera do Linux faz! A gente tem um monte de distribuições linux, mas temos umas 20 que mandam muito bem: ubuntu, mandriva, red hat, fedora, suse…

Abração falera e Bom FlameWAR srsrsrsrsrrs

mcostabr:
josenaldo:

Xiiiiii… Aqui tu pecou feio cara. Parece ate que por trás do Java não rola grana. Na verdade rola muito mais grana que no .Net. O java não é bancado somente pela Sun, mas tb IBM, Google, Nokia, Red Hat e muuuitas outras empresas. Dá uma olhada no www.jcp.org. Você vai se assustar com o tanto de empresas que apóiam e financiam o Java.

Eu me expressei mal, não quis dizer que a coisa morre literalmente…
O que senti nesta migrada de linguagem foi, que o JAVA não tem foco.
Digo isso analisando, por exemplo, para desenvolver C# vc tem uma IDE nervosa e um único e poderoso framework que funciona exclusivamente em uma única plataforma (o grande erro).

Na minha atual situação, migrando minha vida de C# p/ JAVA… percebi que cada empresa tem seus metodos, framework, IDE, metodologia… etc… totalmente diferentes uma da outra, como vc mesmo diz, estas grandes empresas por tras do JAVA, IBM, Google, Nokia… etc…
Cada uma tem estrutura totalmente diferente uma da outra, cada vez que vc troca de emprego vc tem que se adaptar a estrutura da mesma completamente diferente da outra.

Em todos os anos de C# que tive, sempre trabalhei com a mesma estrutura… sempre o mesmo framework, já no JAVA temos inúmeros frameworks… vc chega a ficar na duvida em um inicio de projeto, em qual investir, sendo que para cada framework, vc perde tempo analisando sua estrutura… etc… e o pior, o medo da empresa em confiar que a coisa vai ter futuro. Olha eu já vi casos de dono da empresa escolher pq tal coisa é da Sun… tal coisa é da IBM… tal coisa é da Novell… tal da Apache… mas tudo um diferente do outro, o peão fica doido com isso.
Já na Mocosoft… vc pode ter a certeza de que tem uma grande empresa por tras de tudo dando suporte e vc não terá dificuldade nenhuma de integrar todos seus sitemas, de banco, etc… por tudo ser nativo, tudo da mesma empresa.

Veja bem… eu gosto mto de C# e prefiro, mas hoje minha vida é JAVA, eu to até ganhando mais com isso do que com C#, pela falta de profissional, não me veja como um Islão Xiita da Micosofite… A)W(E8A)(W*EA)(WE!!

A única dificuldade que eu não tive em migrar para JAVA foi a sintaxe… A)WE8A)WE são iguais!

Mas esta é a minha clara opinião sobre os dois lados.

[]´s

louds

Rodrigo Carvalho Auler:
Faz tempo que não mexo no Mono, mas da última vez (menos de 1 ano atrás) não consegui rodar nenhuma aplicação Asp.Net aqui da empresa que já está funcionando em produção no IIS. Só conseguia fazer Hello Word simples.

[]'s

Rodrigo Auler

Qual versão do mono você usou? Tem bastante gente que migrou aplicações até que grandes com zero de esforço. Era feita com .net 1.1 ou 2.0?

Schuenemann:
Oi,
Pelo que ouvi dizer, .NET 3.0 saiu e o Mono ainda não tinha a implementação completa do .NET 2.0. É verdade isso?
Se for, não chamo isso de portabilidade.

Agendas de lançamento distintas não tem nenhuma relação com portabilidade, nesse quesito você tem razão. O mono está ainda por lançar uma versão no qual damos todo o 2.0 por completo. A versões 2.1, 3.0 e 3.5 ainda estão em desenvolvimento.

Se fossemos olhar por esse viés, Java também não é portavel, eu ainda estou esperando o java6 pra OSX. A IBM levou quase 3 anos para lançar versões do java 5 para os produtos dela. E isso significa que para quem desenvolve Java para mainframes a linguagem não é portável?

chun

jjose:
Fiz um teste,

O nativo terminou 12seg mais rápido que o da jvm.

Nativo feito em C#… rs

Uma obs.: Eu odeio a microsoft, tentei deixar de lado o meu gosto pelo java

publique o codigo fonte de ambas implementacoes… e tambem como rodou e em qual sistema operacional…

pelo visto voce nao sabe o que eh o bentchmark.

ViniGodoy

jjose:
Fiz um teste,

O nativo terminou 12seg mais rápido que o da jvm.
Nativo feito em C#… rs

Uma obs.: Eu odeio a microsoft, tentei deixar de lado o meu gosto pelo java

O C# também roda em cima da .Net framework. Se você quer executável puro, começou pelo caminho errado.
Você também tem que descontar o tempo de carga da VM. Na prática, o usuário só sente esse tempo uma vez e isso se torna despresível, já que a aplicação fica no ar por horas (dependendo, dias).

Você também precisa fazer a execução de maneira correta, levando em conta os possíveis recursos de cache que ambas as linguagens podem oferecer, ou então, não verá resultados reais.

Resumindo, é melhor fazer um benchmark sério:

Por fim… lembre-se que a VM usa compilação Hotspot. Isso significa que, na prática, ela também compila o bytecode para a máquina local. Com uma vantagem. Ela pode analisar o seu comportamento antes de fazer isso. Por isso, pode fazer inline de métodos, identificar pontos de otimização, etc.

Marcio_Nogueira

Infelizmente o projeto MONO enfrenta uma dificuldade muito grande em relação a portar as funcionalidades do .net framework para o LINUX. O fato de o .net framework ser proprietário faz com que o projeto MONO fique a deriva, emperrado, dependendo da boa vontade da comunidade Open Source para acrecentar novas funcionalidades.

peczenyj

E eu que achava que essa era a sua melhor característica :slight_smile:

chun

E eu que achava que essa era a sua melhor característica :)

seria perfeita ! se o projeto do mono não fosse ambiguo…

se vc fala do mono eles dizem - Implementação do .Net framework para linux !!!
Mas como vc pode dizer que implementa se vc não segue a risca TUDO… eh como dizer que o ClassPath eh o CORE J2SE livre ! mentira… nao tah pronto.

ae se vc fala isso… eles dizem… Nããããooooooooo… o mono não tem compromisso em ser 100% compativel… pois ele roda em muitos sistemas operacionais…

Na minha visao… HOJE o mono e o .net são coisas bem diferentes… Mono implementa um pedaco do .net… e eh multi plataforma…

Nao apostaria minhas fichas na premissa “faz ai em visual studio… qualquer coisa usamos o Mono e rodamos no linux”… isto esta BEM longe de ser verdade em sua plenitude.

ViniGodoy

A questão de ter diversos frameworks é mesmo complicada.
Se, por um lado você tem várias opções, por outro tem que depender de diversos fabricantes.

E, quando o assunto é garantia de disponibilidade de longo prazo, muitas vezes as empresas preferem confiar em um ou dois grandes nomes do que ter um rol muito grande de opções, de pequenos grupos, que podem simplesmente descontinuar o projeto sem aviso prévio.

Não creio que isso seja o caso do Hibernate, ou de outros grandes projetos. Mas, quem aposto no Jython a uns tempos atrás viu o projeto morrer e ficou na mão. E esse não é o único exemplo.

Agora, dizer “mas é Open Source, quem está interessado pode baixar os fontes e continuar o projeto” também é uma hipocrisia. As empresas adotam frameworks externos justamente por não quererem investir em pontos que não consideram seu foco principal. Além disso, elas gostariam de contar com a expertise dos desenvolvedores dessa mesma framework já que, para eles, é o objetivo de sua empresa.

O pessoal pode dizer o que quiser. Mas para uma decisão estratégica, de longo prazo, o nome do fabricante conta sim, e muito. O fato da Microsoft estar garantindo continuidade, ser uma empresa sólida, consolidada, também conta.

PS: Ok, nós técnicos sabemos que não é bem assim, que a MS não dá tantas garantias assim. Mas ainda assim, procurem enxergar como o seu gerente ou o administrador de uma empresa. É essa também a idéia por trás do tal OpenSource 2.0, dar garantias. Não se trata de fechar fontes ou cobrar por eles, mas dar garantias.

Rodrigo_Carvalho_Aul

Não vou lembrar a versão do mono que usei. Mas tentei rodar uma aplicação em 1.1 e outra em 2.0. Ambas usando NHibernate e a 2.0 usando Spring.Net. Tentei rodar num CentOS. Coisas simples de testes rodou, mas as aplicações não. Vou tentar de novo pra ver como vai ser agora.

O que mais me incomoda no mundo .Net é a falta de uma IDE decente. O editor de código do VisualStudio é uma ruim (só melhora com o Resharper), só serve pra montar tela e não tem uma integração boa com as poucas ferramentas opensource disponíveis, como NUnit e NAnt, além de ser caro. O SharpDevelop tem uma boa integração com NUnit e NAnt, mas o editor de código é pior que o do VS e ainda não debuga Asp.Net. O MonoDevelop não testei ainda.

[]'s

Rodrigo Auler

rubinelli

Concordo plenamente com todas as colocações, chun. A impressão que dá é que a Microsoft só tolera o Mono para poder acrescentar “multi-plataforma” nos Powerpoints.

Eu estou chegando tarde na discussão, mas não concordo com quem diz que a Microsoft só copia. O JSF só saiu porque milhares de desenvolvedores começaram a migrar para ASP.Net. Eu trabalhei bastante com o 1.1, e posso dizer que ele tem um modelo de ganchos e eventos muito sofisticado. O C# também implementou properties como parte da linguagem logo de cara, em vez de se contentar com get/set. Criou Delegates, que são muito mais intuitivos de usar que inner classes. Adicionou o mecanismo using()/IDisposable, que é #(&% pra implementar, mas que praticamente garante que os n00bs não vão causar leaks de recurso. Agora saiu com LINQ, SQL direto no código, que dá uma clareza muito maior. Nada disso chegou ao Java, e nem vai chegar num futuro tão próximo.

É claro, esse jeito Microsoft de ser, de ir adicionando recurso atrás de recurso, tem o seu lado negativo. É muito mais difícil saber C# de cabo a rabo, como todo SCJP sabe Java. Mas os caras estão testando coisas novas, e isso é muito bom pra comunidade Java, que é normalmente mais conservadora, e pode ver o que dá produtividade e incorporar mais lentamente ao Java.

Agora, a fatia do mercado .Net está encolhendo, e isso é indiscutível. Há quatro anos, os dois estavam pau a pau. Hoje, vocês já viram os números. Pessoalmente, eu acredito que isso tem muito a ver com o fato que as faculdades ensinam Java e não .Net.

mcostabr

Pelo visto vc não tem conhecimento nenhum sobre a ferramenta.

[]´s

peczenyj

De onde vc tirou isso ?

A maioria dos programadores Java que eu conheci aprenderam a programar fora da faculdade. Inclusive na faculdade alguns tiveram umas aulas do tipo “O uso do this é algo contraditório entre os programadores, alguns recomendam o seu uso, outros procuram evitar. Meu conselho? Usem this, de der erro, removam”.

O Mercado de qualquer plataforma está diretamente relacionado com os custos de desenvolvimento. Se vc chegar com um pdf pro seu chefe e disser “Com .Net o desenvolvimento do sistema X é mais barato” e ele acreditar vcs vão contrar mais 20 desenvolvedores C#.

Marcio_Nogueira

O VS como IDE é realmente muito bom, já desenvolvi em .net, na época utilizava o VS 2003 e .net framework 1.1. A interface do VS faz uma tremenda diferença, se compararmos com o eclipse, simplesmente o VS é imbatível.

Jair_Rillo_Junior

Isso vai muito do ponto de vista.

Eu também trabalhei na época com VS 2003 e framework 1.1 e minha experiência com o VS foi o seguinte: ele realmente é MUITO bom para desenhar telas, alguns wizards dele realmente são legais e etc, porém na hora de você mexer no código fonte, além de estar meio bagunçado pelos wizards, o editor de código do VS é MUITO pior que o Eclipse.

Ou seja, se o seu serviço é trabalhar com sistemas desktop, montar telas e etc, tudo bem, acredito que o VS seja mais produtivo, agora se você trabalha mais na parte de codificação, trabalha mais para aplicativos web onde o seu papel é mais criar componentes do lado servidor, ai certamente um editor de código mais inteligente como o Eclipse, é mais produtivo.

Além do que falaram, o VS não dá suporte a frameworks externos (non-microsoft), enquanto para o Eclipse você encontra vários.

Calvin

O debug do VS é o melhor que eu já vi!

Abraços

Rodrigo_Carvalho_Aul

Vou mudar minha frase. Não tem IDE pra .Net que me atenda. O VS é bom se você seguir a cartilha Microsoft de arrastar, soltar, usar wizards e escrever pouco código. O editor de código do VS é ruim se comparado com o Eclipse. Até acho que pode atender muito bem algumas pessoas, pra mim não atende.

[]'s

Rodrigo Auler

rubinelli

De onde vc tirou isso ?
Não sei com qual parte você não concorda, mas eu vejo isso da seguinte forma:
[list]A maior parte dos desenvolvedores iniciais do ASP.Net vieram do ASP antigo (que estava em franca decadência) e do Java. Eu tenho certeza que você esbarrou pelo menos em algum momento com um livro de C# para programadores Java naquela época. Eu pessoalmente vi dezenas de pessoas na minha antiga firma recebendo treinamento e indo para projetos .Net. Daí a assumir que milhares migraram não é um pulo tão grande. :)[/list]
[list]Antes do .Net, você tinha JSP, Servlet e EJB. Se quisesse facilitar um pouco, Struts. Se não precisasse de EJB, podia fazer seus DAOs na mão. E sinta-se grato por poder usar JSTL em vez de carregar sua bibliotecazinha the tags embaixo do braço cada vez que começasse um novo projeto. Depois do .Net, a Sun percebeu que o J2EE estava “um pouco difícil” (palavras do pai da criança, quando veio pro Brasil) e estava na hora de criar uma ferramenta de criação visual de páginas para a turma junior.[/list]

Quem dera todos pensassem racionalmente assim.

louds

Ou então contar com empresas como Novell, quem mantem uma equipe grande, de mais de 30 pessoas trabalhando fulltime no projeto. Ou então contar com as muitas empresas que usar comercialmente o mono, com MedSphere, Mainsoft, Unity, etc.

Gente, empresas, interesse e muito código sendo escrito tem.

chun

O debug do VS é o melhor que eu já vi!

Abraços

Poderia me enumeerar o que o debug dele faz que aos debuggers do NetBeans e do Eclipse nao fazem ?

tiagomac

celso.martins

Acho que o problema é que você não estuda apenas a linguagem, que no caso do Java é, para mim, algo exorbitante. Você, também, estuda os framewoks que são lançados no mercado a cada ano. Se manter atualizado no Java já é, pelo menos na minha experiência pessoal, uma tarefa árdua.

Eu concordo com você, quando me refiro a linguaguem, eu quero me referir a plataforma mesmo, a diferença de sintax é quase nula… alguns pequenos códigos que não tem vínculos com API, podem rodar tanto no Java quanto no C# mudando apenas o “m” do main para maiúsculo quando em C# e minúsculo, quando em java…

Agora a questão que você colocou, quanto as metodologia de processo (RUP, XP, MSF) etc… isso é importantíssimo e imprescindível em organizações, resta sabe como será a adaptação dos programadores no futuro, como diz meu professor de Eng. de Software: "ainda tem muita gente que gosta de ‘sair fazendo’ "…

uma coisa que realmente me desagrada no Java é o q foi muito comentado aqui, a existência de diversas frameworks, e algumas para fazerem a mesma coisa, ex. Struts, Spring, WebWorks… Mas creio que isso no futuro venha gerar um tipo de filtragem natural, um funil, onde só as mais robustas irão sobreviver, como um rapaz aqui no post falou, que um cliente dele não pode se quer ouvir falar em Struts… logo, já existe mais um convertido do struts para o spring ou outra framework… até que exista somente uma para realizar o trabalho…

rubinelli

Isso eu duvido. Cada um tem um jeito preferido de desenvolver, cada projeto tem necessidades diferentes, e um framework que agrade a gregos e troianos nunca vai existir. Agora, é claro, se você pegar os top 5, vai ver que eles são usados em 90% dos projetos. É nesses que você foca.

pcalcado

plataformaQueVoceDeveEstudar = Java & .Net & Ruby & Erlang & C++ & PERL & Python & Scala & seja lá o que fizer sentido na sua aplicação.

celso.martins

tiagomac:

Agora a questão que você colocou, quanto as metodologia de processo (RUP, XP, MSF) etc… isso é importantíssimo e imprescindível em organizações, resta sabe como será a adaptação dos programadores no futuro, como diz meu professor de Eng. de Software: "ainda tem muita gente que gosta de ‘sair fazendo’ "…

Conheço um pouco melhor a XP. RUP e cia não conheço nada. Algumas sei apenas que existem. É difícil para que eu aplique na prática. Na empresa onde trabalho sou o único programador. Uma das teorias da XP é a programação em pares. =)

Estou tentando aplicar algumas coisas que estou aprendendo e que a física não seja uma barreira.

Você deve estar se referindo a briga JSF x Struts. Me parece outra questão de gosto pessoal. Nas oportunidades de trabalho que vejo, noto um equilíbrio. Mas acho que a balança ainda cai um pouco mais pro lado do Struts.

Acho mesmo que seja gosto pessoal. Imagina uma situação: Um cabra é contratado para trabalhar numa empresa e lá já existe um programador que é apaixonado pelo JSF. O cara tem a maior boa vontade de ensinar e o novato da empresa, que não sabe nada de framework MVC, é doido para aprender. O que vai acontecer? Mais um apaixonado pelo JSF. O mesmo pode acontecer com Struts ou qualquer outra coisa.

Acho que vai do gosto e das circunstâncias.

Mas podem existir razões para preferir uma a outra. Razões essas que eu desconheço.

Abraços

mcostabr

celso.martins:
tiagomac:

Agora a questão que você colocou, quanto as metodologia de processo (RUP, XP, MSF) etc… isso é importantíssimo e imprescindível em organizações, resta sabe como será a adaptação dos programadores no futuro, como diz meu professor de Eng. de Software: "ainda tem muita gente que gosta de ‘sair fazendo’ "…

Conheço um pouco melhor a XP. RUP e cia não conheço nada. Algumas sei apenas que existem. É difícil para que eu aplique na prática. Na empresa onde trabalho sou o único programador. Uma das teorias da XP é a programação em pares. =)

Estou tentando aplicar algumas coisas que estou aprendendo e que a física não seja uma barreira.

Você deve estar se referindo a briga JSF x Struts. Me parece outra questão de gosto pessoal. Nas oportunidades de trabalho que vejo, noto um equilíbrio. Mas acho que a balança ainda cai um pouco mais pro lado do Struts.

Acho mesmo que seja gosto pessoal. Imagina uma situação: Um cabra é contratado para trabalhar numa empresa e lá já existe um programador que é apaixonado pelo JSF. O cara tem a maior boa vontade de ensinar e o novato da empresa, que não sabe nada de framework MVC, é doido para aprender. O que vai acontecer? Mais um apaixonado pelo JSF. O mesmo pode acontecer com Struts ou qualquer outra coisa.

Acho que vai do gosto e das circunstâncias.

Mas podem existir razões para preferir uma a outra. Razões essas que eu desconheço.

Abraços

A empresa que trabalho está formulando um projeto para migrar todo seu sistema JAVA (muito antigo) para uma plataforma nova… e digo a vcs a maior dúvida é qual framwork usar, essa briga entre struts / jsf é muito mal vista e afirmo que o .Net ganha campo por causa disto, enquanto o pessoal de JAVA briga para ver quem é o melhor o .Net ganha mercado com um framework o que implementa todas as ferramentas da microsoft de forma nativa, IDE, Framework, Sistema Operacional, Servidor IIS e SQL todos trabalhando completamente integrados, devido a está grande vantagem, pagar por isto a uma empresa, o beneficio é muito maior que o custo.

Para uma empresa de grande porte, as ferramentas e os profissionais da Sun são mto caros viu… vai ver quanto custa as licenças da Sun… Oracle e a M.O. da galera especializada… é uma fortuna. É mais fácil encontrar pessoas especializadas em Microsoft (e mais baratas até) do que Sun, para as empresas está vantagem é mais do que clara.

Aqui vcs só discutem soluções da linguagem de programação e framework, já pensaram um pouco em base de dados? (DB2, ORACLE, SQL, MySQL, etc…)

A empresa aqui corre um risco grande de migrar tudo para Microsoft por muitos motivos, e o pior é que o pessoal aqui é Islão Xiita por Java, Oracle, etc…

[]´s

pcalcado

Ué, não entendi. Primeiro que não existe UM framework para .net (aliás, a Microsoft lançou a pouco uma implementação de MVC) e depois que se você quer fazer a coisa altamente questionável de ter uma arquitetura padronizada é só escolher uma. Você só entra na briga Struts x JSF, Castle x Asp.Net se quiser, seja em java ou em .Net ou em qualquer coisa.

A grande maioria dos produtos da Sun são software livre. Os produtos comerciais para Java não possuem política de preço diferente dos da Microsoft. De que valores você está falando?

Programadores bons .Net custam caro (tem um amigo meu querendo achar um cara há um ano para ocupar uma vaga de sênior pagando um salário bem razoável de R$9.000,00), programadores baratos Java ou .Net custam barato -que é exatamente uma relação de custo-benefício.

O que que tem?

Existe um sentimento de fanatismo de ambos os lados mas sua mensagem não trouxe muita luz a este embate. A cosia é simples: use a ferramenta certa, seja Java, .Net, Ruby ou Brainfuck.

celso.martins

mcostabr:

Para uma empresa de grande porte, as ferramentas e os profissionais da Sun são mto caros viu… vai ver quanto custa as licenças da Sun… Oracle e a M.O. da galera especializada… é uma fortuna. É mais fácil encontrar pessoas especializadas em Microsoft (e mais baratas até) do que Sun, para as empresas está vantagem é mais do que clara.

Aqui vcs só discutem soluções da linguagem de programação e framework, já pensaram um pouco em base de dados? (DB2, ORACLE, SQL, MySQL, etc…)

A empresa aqui corre um risco grande de migrar tudo para Microsoft por muitos motivos, e o pior é que o pessoal aqui é Islão Xiita por Java, Oracle, etc…

[]´s

Sem querer puxar a sardinha, e já puxando, um sistema operacional que precisa de atualização de segurança quase mensal, não pode ser confiável.

Telas azuis virou uma normalidade cultural no nosso meio. E o pior de tudo. NEGO AINDA PAGA POR ISSO.

O Windows está longe de ser o MELHOR S.O. do mercado, é apenas o mais difundido. Isto é fato comprovado, não é opnião minha.

Veja a palestra do Daniel Godri, tem uma boa explicação do JACU do Bill Gates lá.

celso.martins

pcalcado:

Existe um sentimento de fanatismo de ambos os lados mas sua mensagem não trouxe muita luz a este embate. A cosia é simples: use a ferramenta certa, seja Java, .Net, Ruby ou Brainfuck.

Você fui muito sensato nas suas réplicas.

Marcio_Nogueira

Se você pretende estudar tudo que o mercado de trabalho exige, além de demandar um tempo demasiadamente grande de aprendizado, será uma tarefa herculea.
Acredito fazer mais sentido se especializar em uma tecnologia, e se aprofundar nesta.
No meu caso, procurei me especializar em Java, em função das propostas que tenho recebido tanto como PJ, como CLT.

G

Discordando um pouco do amigo de cima…
Se especialize em uma… mas veja outras em paralelo sim… senao pode acabar como um programador cobol antigo que nao consegue aceitar nada diferente daquilo que usou a vida toda.
“Abra a cabeça”

mcostabr

pcalcado:
mcostabr:

A empresa que trabalho está formulando um projeto para migrar todo seu sistema JAVA (muito antigo) para uma plataforma nova… e digo a vcs a maior dúvida é qual framwork usar, essa briga entre struts / jsf é muito mal vista e afirmo que o .Net ganha campo por causa disto, enquanto o pessoal de JAVA briga para ver quem é o melhor o .Net ganha mercado com um framework o que implementa todas as ferramentas da microsoft de forma nativa, IDE, Framework, Sistema Operacional, Servidor IIS e SQL todos trabalhando completamente integrados, devido a está grande vantagem, pagar por isto a uma empresa, o beneficio é muito maior que o custo.

Ué, não entendi. Primeiro que não existe UM framework para .net (aliás, a Microsoft lançou a pouco uma implementação de MVC) e depois que se você quer fazer a coisa altamente questionável de ter uma arquitetura padronizada é só escolher uma. Você só entra na briga Struts x JSF, Castle x Asp.Net se quiser, seja em java ou em .Net ou em qualquer coisa.

Como vc deve saber o MVC é uma solução para design patterns, o .Net framework em si não força ou sugere a aplicação de um pattern. Não há nada de errado com isto pois o .Net Framework não tem este objetivo.

Os produtos da Sun são livres? Licença de Oracle não é nem um pouco livre.

Eu sou um bom programador .Net com 5 anos de registro em carteira, formado no Mackenzie com pos na usp, tenho interesse nesta vaga de 9 mil, pois eu sempre ganhei a metade disto. (tai o motivo de eu ir para o Java, M.O. mais cara).

Estou fazendo um comparativo, visando uma empresa que fornece um todo, soluções integradas.

pcalcado:

Existe um sentimento de fanatismo de ambos os lados mas sua mensagem não trouxe muita luz a este embate. A cosia é simples: use a ferramenta certa, seja Java, .Net, Ruby ou Brainfuck.

Estamos discutindo os pontos positivos e negativos das ferramentas certas, se eu falar para meu chefe “usa a ferramenta certa… java… net… etc…” ele vai rir da minha cara.
Concordo que estou sendo totalmente idiota, expor meu ponto de vista Microsoft em um forum Java, é totalmente desprezível, ainda mais com usuários evangelistas, a luz só está para quem quer ve-la.

[]´s

L

Pessoal so para colocar mais lenha

http://info.abril.com.br/aberto/infonews/112007/05112007-11.shl

“Novas” tecnologias

Windows Communication Foundation - WCF (Modelo de programação unificado e ambiente de execução que visam a construção de aplicações orientadas a serviços)
Windows Presentation Foundation - WPF (Agrega as classes focadas na construção da nova geração de aplicações cliente que combinam rica interface gráfica, documentos e mídia.)
Windows Workflow Foundation - WWF (Modelo de programação, engine e ferramentas que visam a construção de aplicações workflow-enabled, que modelam processos de negócio.)
Language Integrated Query - LINQ (O LINQ incorpora construções de apoio a consultas às linguagens C# 3.0 e VB 9.)

Ja usei muito java (por 3 anos) mas não pude deixar de migrar a 2 anos para .net

A microsoft investe muito na tecnologia dot net e hoje desconheço uma IDE melhor que Visual Studio, programo só em código não utilizo wizards/designer para nada nem mesmo para html, e o meu foco hoje é sistemas web, o editor HTML editor JavaScript editor C# do visual studio 2008 é o melhor.

O pessoal do mono dessa vez não terá tantos problemas.

L

Esqueci de me apresentar

Leandro

tec. em programação e eng. de computação

to formulando um texto para tentar explicar a empresa que trabalho o pq de usar dot net (hoje usam java), achei o topico exelente.

[]'s a todos

rafaelglauber

Acredito que informática, assim como medicina ou direito, as soluções deveriam surgir de acordo com a necessidade do freguês, exemplo:
Um médico não pode receitar um remédio para uma pessoa que tem alergia a justamente aquela substancia, deveria procurar a melhor alternativa para ela…um advogado não pode apresentar sempre a mesma linha de defesa para todos os seus casos…
O que quero dizer é o que a maioria já disse (desculpem a redundância para alguns), julgar qual a melhor tecnologia hoje em dia é diferente de antigamente (exemplo: FOX ou Clipper) que não tinhamos a complexidade de problemas e soluções que temos hoje. Acredito que salvo algumas ressalvas pode-se desenvolver ótimas aplicações tanto em .NET quanto em JAVA. Antes de escolher quais das duas acredito que deveriamos verificar o público que queremos atender e ai sim ir para onde a solução se apresentar com o melhor CUSTO x BENEFÍCIO.

Sobre a IDE do VS2008 já vi uma palestra e realmente é muito boa, porém não acredito que no desenvolvimento de uma aplicação corporativa ou qualquer outra uma IDE um pouco superior defina algo tão importante como a plataforma utilizada, pois acredito que um sistema bem feito deva consumir menos de 30% do tempo na codificação e desses 30% as melhoras que tem no VS2008 não devam aumentar “tanto” o rendimento.

marcosbrandao

A pouco tempo atras fiz um treinamento em .NET para implantação de um novo sistema para um cliente(O topo da piramede da empresa mudou, e são tarados por .NET).

Apesar do não ser expert em .NET, achei bastante interessante a tecnologia. Tem muita coisa que deixa o java pra trás, como tbm tem muita coisa que é bem melhor em java.
Uma das coisas que achei interessante, foi a produtividade.
Fiz um pequeno sistema Desktop para testar as duas plataformas. Um pequeno CRUD, com tabelas editaveis e ordenaveis.
Em java usei RCP e SWT, pois estava estudando esses dois conceitos. Em .NET utilizei suas magicas de drag em drop…
O resultado foi:
JAVA: 12 horas
.NET: 5 horas

Fiz uns testes usando plataforma WEB, e realmente não gostei muito do ASP.NET.

EM .Net vem muita coisa pronta, tipo as tabelas, eram so criar as tabelas no banco, arrastar uma tabela para a janela, criar uma datasource, linkar os dois e mais alguns ajustes e pronto.

Em compensação, pra fazer mais uns testes, fiz uns ajustes que mudaria um pouco a estrutura do sistema e das tabelas. E as coisas ficaram mais difíceis em .NET.
Mas como eu disse, fiz um testes em duas áreas em que eu estava aprendendo.

Hj eu prefiro usar java, pois tenho muito mais domínio, e me adapto muito melhor. Mas se pintar um projeto .Net, vejo como uma grande oportunidade de adquirir mais experiência.

Quanto a IDE, realmente achei muito bom o VS, visual bem limpo, e bastante rápido.

pcalcado

MVC não é uma ‘solução para design patterns’, MVC é um padrão (seja de design, de aruquitetura ou o que for) e nem Java nem >net nem Ruby nem qualquer linguagem de uso geral que eu conheça te obriga a utilizá-lo. Tanto em Java quanto em .Net existem diversas opções para fazer MVC, se você não gosta de opções basta -em qualquer plataforma- escolher uma e ficar com ela.

Sim. Você já teve a curiosidade de olhar? Solaris: Livre. JVM e Java: Livre. NetBeans: livre. Servidor de Aplicações Glassfish: Livre. O que mais você precisa?

Oracle nao é Sun. Dado que você pode usar Oracle com Java ou .Net , utilizar SQL Server em java ou .Net e etc. não entendi seu ponto.

Segundo esta pessoa os bons profissionais .Net estão muito bem empregados. Segundo ele também o difícil é achar alguém com discernimento e conhecimento sobre o que é desenvolver software. Eu escrevi um tempo para a Mundo .Net e sei bem que se encontra algumas pessoas boas mas um grande número de pessoas muito fracas. Em Java também é assim mas eu diria que apesar da média ser a mesma a moda é bem melhor em Java, vai ver este é o problema dele.

Ok, então faça o comparativo.

Sinal que você precisa mudar de emprego.

Engraçado, o que exatamente você sugere? Usar .Net para tudo? Adotar uma tecnologia apenas em uma empresa?

pcalcado

marcosbrandao:

Fiz um pequeno sistema Desktop para testar as duas plataformas. Um pequeno CRUD, com tabelas editaveis e ordenaveis.
Em java usei RCP e SWT, pois estava estudando esses dois conceitos. Em .NET utilizei suas magicas de drag em drop…
O resultado foi:
JAVA: 12 horas
.NET: 5 horas

Apesar de eu acreditar que o desenvolvimento desktop em .Net é bem mais simples (até porque é algo comum de se fazer, não como em Java onde 99% dos projetos são web) você usou ferramentas completamente diferentes nesta comparação. Tente comparar o VS.Net com algo como o Matisse e você tem algo mais justo, seja qual for o resultado.

rodrigoy

Shoes, Marcos,

Não dá pra tomar esse teste de maneira determinista. Segundo a opinião do Shoes que 99% dos projetos Java são Web, sou um ponto fora da curva, pois muitos dos projetos importantes que desenvolví foram Desktop, e em Java. Desenvolví muitos projetos grandes em Swing.

Aplicações Desktop são difíceis de manter. Se você usa .NET e os fabulosos Datasets pra lá e pra cá não é algo muito diferente de uma aplicação VB. Você terá os mesmos problemas de manutenção.

Agora, se você faz uma aplicação Desktop que se beneficie da Qualidade Interna que a OO te oferece, uma aplicação pra durar 20 anos, aí não interessa tanto a velocidade de desenvolvimento e sim o custo de manutenção.

pcalcado

Bom, ponto, Rodrigo.

Ok, eu fui generalista e acabei contradizendo minha própria experiência, mudando um pouco: 99% dos projetos usam HTTP e/ou são fortemente baseados neste protocolo.

jgbt

Produtividade != Tempo de desenvolvimento. ou melhor, produtividade Não É so teempo de desnvolvimento.Esse tipo de comparação não pode ser feita.
A maior parte do custo de um software é manutenção(tinha a fonte dessa informaçào, mas não encontrei mais). Sendo assim, posso levar mais tempo p/ desenvolver em alguma linguagem qualquer, mas posso ter feito um software muito mais facil de manter e ampliar.

[]'s

ViniGodoy

Nenhum dos projetos que desenvolvi em java, até agora, são para web ou usam HTTP.
Um deles, está dando sinais de que vai ser migrado mais dia ou menos dia…

Entretanto, boa parte eram frameworks. Então, continuando a ser generalista, acho que uns 60% são projetos para web e outros 35% frameworks ou toolkits, muitos deles com várias classes para melhor se integrar a ambiente. :lol:

marcosbrandao

pcalcado:

Apesar de eu acreditar que o desenvolvimento desktop em .Net é bem mais simples (até porque é algo comum de se fazer, não como em Java onde 99% dos projetos são web) você usou ferramentas completamente diferentes nesta comparação. Tente comparar o VS.Net com algo como o Matisse e você tem algo mais justo, seja qual for o resultado.

Realmente, me equivoquei em fazer este comentário, pelo fato das ferramentas que eu usei serem bem diferentes. O VS.Net é uma ótima IDE. Acredito que o fato de ter muita coisa “pronta” foi o principal fator da diferença de tempo entre as duas tecnologias.
Quando eu tiver um tempinho vou fazer o mesmo com outra ferramenta, como o matisse, pra fazer uma comparação mais justa, mas ainda acho que .Net vai levar vantagem.

marcosbrandao

Como eu disse no meu primeiro post: Pra desenvolver, a diferença entre .Net e java foi bem grande, devido as facilidades que a ferramenta VS.net traz. Mas uma alteração no sistema foi bem pior fazer em .net por causa destas coisas prontas. Em java foi bem mais simples.

jgbt, concordo em dizer que vale mais a pena perder mais tempo desenvolvendo o sistema e fazendo ele mais simples de manter.

L

o que difere realmente o java do dot net?

a portabilidade (por enquanto)

mais o que?

tiagomac

LEX_Cool:
o que difere realmente o java do dot net?

a portabilidade (por enquanto)

mais o que?

Acho que se dependesse da Microsoft, a resposta seria “NADA” afinal eles tentaram comprar a tecnologia Java e não conseguiram… inclusive teve uma versão do windows que chegou a sair c/ uma virtual machine, que logo depois eles removeram quando viram que não dava mais p/ comprar…
Mas de certo existe muita coisa que diferencia… mas ai só os prós mesmo que podem dizer, como eu ainda to em um nível iniciante, eu fico sem poder afirmar nada… alias, existe uma coisa q o Java dá de 10 a zero no DOT.NET, a collection do Java é muito boa perto da do dot.net

L

dot net tem o ArrayList (coleção generica aceita receber qualquer tipo de objeto) e a implementação ICollection IDictionary e outras pra vc fazer suas coleções tipadas, ainda tem List que vc cria uma coleção usando generic

http://msdn2.microsoft.com/en-us/library/7y3x785f(VS.80).aspx

acho que vc naum conhece dot net, e eu não conheço java o suficiente pra falar qual é melhor, me de um exemplo claro que as collections em java são melhores que dot net

L

Lembrei de uma multipla herança, mas isso não é problema em dot net pq ao invez de vc fazer

objeto a

objeto b

objeto c herda de a e b

vc pode fazer

objeto a

objeto b herda de a

objeto c herda de b

alguem sabe mais algumas diferenças?

ViniGodoy

LEX_Cool:
Lembrei de uma multipla herança, mas isso não é problema em dot net pq ao invez de vc fazer
objeto a
objeto b
objeto c herda de a e b
vc pode fazer
objeto a
objeto b herda de a
objeto c herda de b
alguem sabe mais algumas diferenças?

Mas isso não só não é multipla herança como também é possível em Java…

Mas eu concordo com você. Há realmente poucas diferenças significativas entre .net e Java. O java é mais portável, por outro lado o .net tem integração melhor com o Windows. Acho que, no resto, não há muito o que dizer… ambas são grandes tecnologias.

Jair_Rillo_Junior

Faz algum (muito) tempo que não mexo com .NET (e quando mexi, foi para desenvolver aplicações desktop no Windows usando C#), por isso vou fazer umas perguntas e você pode me confirmar se isso existe na plataforma .NET.
Antes de tudo, eu gosto do Java porque você tem várias opçoes de escolha (como já foi discutido, tem gente que acha que isso é um ponto fraco, na minha opinião é um ponto forte).

Com .NET é possivel trabalhar com Cluster de forma simples?
Em java simplesmente “liga” os Application Servers (em maquinas diferentes, até mesmo em sistemas operacionais diferentes) em clusters e deixa que o próprio AS faz o trabalho pesado, como Load Balance, Fail over, Transaction, etc.

No IIS (que é o servidor para .NET, certo?) ele dá suporte ao controle transacional? Se não, existe algum framework para fazer esse controle transacional sem ser manualmente (talvez algo no ADO.NET que eu desconheça)? (No caso de java, existe um framework chamado Spring que um dos seus módulos é responsável pelo controle transacional, deixando essa operação transparente para o desenvolvedor).

Como anda a integração de ASP.NET com C#? ASP.NET para fazer toda a view do sistema e o C# para fazer o controler e as regras de negócios? (O Famoso MVC). Na versão do VS 2003 que eu usei, não era simplesmente clicar e arrastar para fazer essa integração (até porque naquela época o conceito MVC ainda não estava tão forte).

O Editor do VisualStudio melhorou? Já tem suporte a Refactor descente? “Corrige” o código quase que na hora que estamos programando, ou só mostra erro na hora de compilar? Ele já integrou o NUnit dentro da sua IDE?

Como anda a parte de sistemas distribuídos usando Webservice do .NET? Não apenas o fato de facilidade (clica, arrasta e está pronto para usar), mas você é livre para escolher entre SOAP e REST? Existe algum framework/servidor para fazer isso ou é tudo embutido dentro do IIS?

Como anda a parte de unit testing? Eu sei que existe o NUnit, mas o pessoal tem usado ele de fato? Existe algum MockObject para o mesmo? Existe algum Unit Testing para banco de dados (como por exemplo o DBUnit).

O pessoal tem seguido boas práticas de programação, ou cada empresa trabalha de uma forma sem se preocupar com design patterns?

Como está a comunidade .NET? Bastante frameworks open-source, ou a comunidade é mais fechada para isso?

Eu gostei muito desse tópico e acho ele muito válido para conhecimento geral das pessoas que não conhecem tão a fundo determinada tecnologia.
[]'s

Leozin

Eu também concordo com isso, a maior prova disso é tu olhar as vagas de emprego que estão saindo: Quantas pedem Swing e quantas pedem JSP?

só não concordo com esse tipo de comentário:

rodrigoy:
Aplicações Desktop são difíceis de manter. Se você usa .NET e os fabulosos Datasets pra lá e pra cá não é algo muito diferente de uma aplicação VB. Você terá os mesmos problemas de manutenção.

Agora, se você faz uma aplicação Desktop que se beneficie da Qualidade Interna que a OO te oferece, uma aplicação pra durar 20 anos, aí não interessa tanto a velocidade de desenvolvimento e sim o custo de manutenção.

que pra mim, sinceramente, não consegui entender: Ou você quis dizer que pelo fato de ser .NET não é possível ter qualidade interna (ponto pro desenvolvedor “oreia”) ou a plataforma que é responsável pela manutenção (ou seja: se for em Java é fácil fazer manutenção, otherwise a manutenção é complicada)

Agora vem me dizer que JDBC é tranquilo de fazer manutenção (…)

Do mesmo jeito que se programa “estilo” JDBC no Java se programa em .NET (com ado.NET) AH, antes que me esqueça, os esquemas de DataSources/datasets/Datagrids do ado.NET foram, querendo ou não, a evolução do simples “conectar->executar SQL->desconectar” do JDBC. Ninguém é obrigado a fazer Datasources/datasets/datagrids, isso só foi uma opção.

“AHHHH MAS O JAVA TEM HIBERNATE”
http://www.hibernate.org/343.html

“AHHHHH MAS O JAVA TEM SPRING”
http://www.springframework.net/

“AHHHH MAS O JAVA TEM AOP”
http://dotnet.sys-con.com/read/113337.htm

“AHHHHH MAS O JAVA TEM JRUBY”
http://rubydotnet.googlegroups.com/web/Home.htm

minha sugestão: aos que falam por falar, evangelistas java e afins, sugiro a ler mais e falar menos, trabalhar mais, conhecer mais… porque falar da boca pra fora assim só pra dizer “nossa eu sei java o resto é paia” só vai te fazer passar vergonha

ah e detalhe: linguagem de programação é que nem arte-marcial: Não existe uma melhor que a outra e sim, existem desenvolvedores melhores que os outros :slight_smile:

chun

Leozin… o hibernate para .net eh uma piada… usando xml ainda… hibernate 2 ? pra acabar hein ? nao compare o amadurecido hibernate 3 com seu porte da versao 2.0 para .net

Fora as investidas da microsoft em foder tudo… agora com o DBLINQ… enfiando por goeala abaixo o que “ela acha que eh melhor” e eh disso que nao gosto em .net… a MS historicamente sempre foi parecida com a borland… SOCA o que vem na cabeca dela… e depois descontinua sem nem ao menos falar porque…

Por que estou dizendo isso ? Prq .net eh Visual Studio meu filho… ou vc tem suporte ao VS ou praticamente o framework nao tem visibilidade… com suporte a DBLINQ em tudo… quem vai querem usar hibernate ? Antigamente vc usava o ou C++ da borland ou da MS… hoje em dia o .net esta na palma da mao da MS… e queira ou nao, 80% dos programadores .net emergentes sao “arrasta solta , wizard… arrasta solta, wizard…” e vao passar bem longe…

O alt.net é um movimento que “tenta” botar ordem na casa… mas alem de fraco não tem chance… pega uma massa de programadores jumentos que só entao com o .net por causa do Visual Studio, e os 20% que sobram… nao fazem tanto barulho assim…

Outra coisa que me deixa pau da vida é que 80% das coisas que vejo em .net estao presos ao Windows… mas presos de uam forma IMPOSSIVEL de ser portados… componentes visuais… relatorios … etc…etc… prq ? prq sao simplesmente wrappers para dll’s nativas do windows… e obviamente não podem ser portadas para um mono da vida… ( que esta bem longe de implementar o .net em sua totalidade )

Nao estou aqui defendendo o java… estou aqui defendendo que .Net esta sim ai… e veio para ficar… NO MUNDO WINDOWS… nao existe vantagens fora dele… e se eu fosse ficar preso ao windows… a minha plataforma seria o .net, independente se fosse mais facil de “fazer uma app distribuida” ou nao.

peczenyj

Não confunda desenvolvimento sério com amadorismo.

Mesmo quem ‘arrasta’ componentes faz muito codigo embaixo. Sem falar que pode ser muito util para gerar protótipos (assim como o scaffold do rails, ninguem usa em produção - ou pelo menos não deveria).

Entretanto o que eu percebo é uma resistência por parte de alguns programadores .Net ao refactoring. Ao inves de procurar alguma coisa nova e interessante como interfaces fluentes, BDD, etc… se não vier sob a forma de algo empacotado como Microsoft, é deixada de lado. Se a microsoft lançar um Fluent Interface Advanced Plus todo mundo vai usar.

L

Com .NET é possivel trabalhar com Cluster de forma simples?
Em java simplesmente “liga” os Application Servers (em maquinas diferentes, até mesmo em sistemas operacionais diferentes) em clusters e deixa que o próprio AS faz o trabalho pesado, como Load Balance, Fail over, Transaction, etc.

Desculpa mas nunca fiz uma aplicação para cluster, desenvolvi uma biblioteca de Redes Neurais mais é local, referente a mult processadores (não cluster) fica a cargo do SO administrar.

pode usar apache, transaction tem sim, eu uso, é um objeto dentro do Ado.Net, mas não tem haver com IIS, pois o IIS é servidor web, quem faz isso é o framework com o própio banco de dados, que é instalado na maquina

Hoje vc monta seu “HTML” com os objetos num arquivo e no code-behind é o de “programação” o objeto ja existe como privado no code-behind quando foram declarados no arquivo de “HTML”, no meu caso, eu fiz uma Page personalizada que herda e System.Web.UI.Page e implementei todo o sistema de segurança com AD/MySQL (Active Directory), eu uso MVC mas isso é uma regra de boas praticas eu tenho um padrão de desenvolvimento PascalCase MVC e outros. Em relação a clicar e arrastar eu particulamente detesto e não uso, naum uso wizards também pois suja muito o código, nem mesmo para o HTML, prefiro gastar uns minutos a mais e fazer na mão mesmo.

Isso melhorou muito, hoje é indiscutivel o intellisense funciona praticamente pra tudo no 2008 javascript html C#, objetos nativos objetos criados, assim que vc digita “uma besteira” ele sublinha tipo word de vermelho, hoje não conheço IDE que supere o VS.

Acho muito bom o SOAP no dot net http://msdn.microsoft.com/msdnmag/issues/01/02/webcomp/
agora tem Windows Communication Foundation - WCF que é modelo de programação unificado e ambiente de execução que visam a construção de aplicações orientadas a serviços, com isso acho que o dot net vai criar um novo estilo de trabalhar com webservice. Sobre REST usei pouco mas tem no dot net também.

Nunca usei esse tipo de testes então sobre esse assunto não posso falar nada.

Cara isso é de cada empresa, até existem regras mas não tem haver com a linguagem e sim com o comprometimento em relação ao desenvolvimento, as que eu trabalhei e a que eu trabalho, temos tudo padronizado, toda a estrutura toda a especificação padronizado.

O Framework vai ser disponibilizado o código fonte pela microsoft mas em relação a comunidades exitem algumas muito boa, msdn e codeproject são as principais. Lah vc encontra bastante exeplos mas se vc usar o google pra pesquisa de codigo vc também verá muita coisa.

As principal diferença que eu vejo é que o C# tem uma empresa que realmente está investindo pesado na linguagem, e o principal ponto fraco é que vai acabar sendo monopolio, apesar de não acreditar nisso, pois a google desbancou a microsoft, mas em relação a dot.net a microsoft so está copiando tudo de bom do java e melhorando, mas isso não é errado, afinal foi com java que realmente começou a orientação a objetos, e nesse mundo nada se cria tudo se copia :stuck_out_tongue:

C++ -> Java -> C#

Em relação a manutenção, isso depoende muito mais do padrão de desenvolvimento do que da linguagem, pois um codigo parametrizado é muito mais facil dar manutenção do que um emaranhado de código e isso pode acontecer em java ou dot net ou C++ ou qualquer linguagem.

Só uma OBS. o pessoal que fez o hibernate naum pensou duas vezes http://www.hibernate.org/ fizeram o nhibernate para dot.net eles foram os mais espertos. Mas eu acabei fazendo uma classe de persistência na mão mesmo usando Reflections e Generics

L

:shock:

L

Agora entendo melhor, a briga não é Java X Dot.Net a briga é apoiar ou não a microsoft, a realidade é que ela domina mesmo, todo mundo usa.

Imagina vc virar para um empresa com 10 mil usuário ter que pagar curso de Linux e uma empresa de suporte (onde muitas das vezes sai muito mais caro que as licencas da microsoft) para treinar todos os funcionarios, e o office que até aqele cara formado em zoologia (desculpa se tiver alguem com essa formação) sabe usar pois usa o windows a muito tempo, ter que se adapitar num BrOffice da vida, falo isso que é indiscutivel a praticidade do windows, é o ponto forte da microsoft, so não conseguem bater a praticidade do google :P.

O que vejo nesse forum são pessoas ant windows e não desenvolvedores que realmente leva em consideração facilidade no desenvolvimento que no caso se reverte em custo/beneficio, pois li a um post atraz que o tempo não é muito importante para uma aplicação de 20 anos, fala isso para o cliente eu vou desenvolver em java demora 1 ano o cara que vai desenvolver em dot.net demora 6 meses, e ve quem ele vai escolher, tempo de desenvolvimento conta e conta muito na hora de fechar o negocio, a aplicação pode ser para ser usada por 1 ano ou 50.

peczenyj

A parte de testes do Visual Studio está gigante.

Vc tem testes unitários, testes de banco de dados, testes utilizando alguma ferramenta externa (como chamar um script perl) e até testes web.

Este ultimo vc navega na aplicação e o internet explorer apresenta um ‘plug-in’ que grava as suas interações. O wizard grava os requests html e vc pode inserir algumas verificações depois (e não tive muito sucesso).

Alias vc também pode inserir testes manuais e aparece uma interface dizendo “passo tal: faça tal coisa. funcionou ? Sim/Nao”.

Vc pode agrupar os testes em listas de teste e roda-los através de um arquivo .msbuild, por exemplo, em alguma etapa do build do seu sistema.


LEX_Cool

Existem programadores excelentes em qualquer plataforma (seja mainframe, windows, linux, solaris e até amiga). Entretanto alguns usuarios dessas plataformas não conseguem diferenciar o fato de pertencerem a um grupo que tem em comum a dita plataforma com o fato de que nada é 100% maravilhoso e criticas construtivas ou não existem. Nesse ponto o sentimento de agressão é muito forte (podemos ver muitos exemplos em qualquer forum, geralmente a pessoa se torna um troll, mesmo que temporariamente).

Usuarios de software livre anti-windows existem e a maioria é imatura nesse ponto (quando não se envolvem com politicagem). Da mesma forma como existem usuarios de windows que tem medo de trabalhar num linux complicado e sem a usabilidade adequada e, inconcientemente até, detonam o sistema sem nunca terem usado de fato. Entretanto se vc é uma pessoa informada e tem um conhecimento de informatica amplo (o que significa que vc reconhece as palavras ENIAC, BIT, BYTE, AND, OR, XOR, CPU… até HTTP, WWW, etc), não deveria perder tempo com esse tipo de coisa.

Jair_Rillo_Junior

Perguntei sobre cluster porque no projeto atual que eu estou trabalhando ele roda em Cluster de alguns servidores, além de se comunicar com outros servidores de aplicações que estão alocados em um mainframe. Essa comunicação é feita através de troca de mensagens (MQSeries) e é bastante transparente para o desenvolvedor.

Concordo que a Microsoft é uma grande empresa que investe em seu produto, porém não supera o conjunto de empresas que investem em Java, dentre elas podemos destacar: Sun, IBM, Oracle, Google, MySQL…http://jcp.org/en/participation/members/.

Também não concordo que a microsoft esteja apenas copiando do Java e melhorando, alias, eu acho muito bom ter linguagens competitivas, porque assim as duas podem melhorar juntas. Concordo que após o C# o pessoal do Java começou a se mexer para implementar novas features, assim como o pessoal do C# tem também melhorando suas implementações (na versão 1, ouvir dizer que o Garbage collector do C# era bem pior que do Java e que melhoraram isso na versão 2).

Com boas práticas é possível alcançar a padronização para qualquer tipo de empresa/projeto. Cansei de ver dentro da mesma empresa, cada pessoa programando de uma forma diferente. Claro que o principal papel do design pattern é oferecer uma solução a um problema comum e por isso ele deve ser utilizado sempre que possível.
Na minha época de Delphi e PHP, eu notei que cada empresa/pessoa tinha sua forma de programar, e era um parto tentar dar manutenção em qualquer código open-source ou de outra pessoa que não seguia os padrões corretos.
Em java, a maioria dos projetos open-source que eu já vi o código fonte é super simples de entender e dar manutenção.

LEX_Cool:

Só uma OBS. o pessoal que fez o hibernate naum pensou duas vezes http://www.hibernate.org/ fizeram o nhibernate para dot.net eles foram os mais espertos. Mas eu acabei fazendo uma classe de persistência na mão mesmo usando Reflections e Generics

Pelo que eu sei o NHibernate ainda está na versão 2 (O Hibernate está na 3 e implementa a especificação JPA). Na versão 2 todo o mapeamento é feito através de XML, o que na minha opinião é uma perda de produtividade imensa.
Minha impressão da época que eu mexi com .NET é que se o framework não tivesse suporte real do VS, não era tão simples de utiliza-lo. Claro que existem programadores bons, ruins, programadores de IDE, etc etc etc… Isso existe em qualquer plataforma.

L

Uma pergunta

Onde eu baixo o código fonte do Java Virtual Machine da sun?

Comecei a usar LINQ agora, e daqui alguns meses discutimos qual e melhor Hibernate ou LINQ

O problema todo é o dinheiro, a microsoft lucra muito com Dot Net, acaba fazendo investimento maior, e só vc pegar a linha de amadurecimento das duas e comparar, quanto tempo existe java e quanto tempo existe dot.net, vc vai ver o que eu to falando. Java 5 e dot net 3

Em relação a Cluster dei uma pesquisada rapida a microsoft tem a bibli MSClusterLib que o pessoal usa pra fazer aplicações em cluster, mas eu nunca precisei faze-lo

Leozin

chun:
Leozin… o hibernate para .net eh uma piada… usando xml ainda… hibernate 2 ? pra acabar hein ? nao compare o amadurecido hibernate 3 com seu porte da versao 2.0 para .net

Fora as investidas da microsoft em foder tudo… agora com o DBLINQ… enfiando por goeala abaixo o que “ela acha que eh melhor” e eh disso que nao gosto em .net… a MS historicamente sempre foi parecida com a borland… SOCA o que vem na cabeca dela… e depois descontinua sem nem ao menos falar porque…

Por que estou dizendo isso ? Prq .net eh Visual Studio meu filho… ou vc tem suporte ao VS ou praticamente o framework nao tem visibilidade… com suporte a DBLINQ em tudo… quem vai querem usar hibernate ? Antigamente vc usava o ou C++ da borland ou da MS… hoje em dia o .net esta na palma da mao da MS… e queira ou nao, 80% dos programadores .net emergentes sao “arrasta solta , wizard… arrasta solta, wizard…” e vao passar bem longe…

O alt.net é um movimento que “tenta” botar ordem na casa… mas alem de fraco não tem chance… pega uma massa de programadores jumentos que só entao com o .net por causa do Visual Studio, e os 20% que sobram… nao fazem tanto barulho assim…

Outra coisa que me deixa pau da vida é que 80% das coisas que vejo em .net estao presos ao Windows… mas presos de uam forma IMPOSSIVEL de ser portados… componentes visuais… relatorios … etc…etc… prq ? prq sao simplesmente wrappers para dll’s nativas do windows… e obviamente não podem ser portadas para um mono da vida… ( que esta bem longe de implementar o .net em sua totalidade )

Nao estou aqui defendendo o java… estou aqui defendendo que .Net esta sim ai… e veio para ficar… NO MUNDO WINDOWS… nao existe vantagens fora dele… e se eu fosse ficar preso ao windows… a minha plataforma seria o .net, independente se fosse mais facil de “fazer uma app distribuida” ou nao.

Ah mas esse é o maior defeito

Agora cá entre nós Chun, o .NET, apesar de ser totalmente windows, faz muito bem o seu serviço, não concorda?

Porque .NET é SÓ Visual Studio e SÓ windows

ViniGodoy

Uma coisa que eu ainda me questiono é…

Qual o problema de ser só Windows? Até onde eu vejo “só” Windows ainda representa a maioria dos computadores hoje em dia, mesmo quando falamos em aplicações comerciais. E muitas empresas nem sequer sonha em investir em Linux ou Mac num curto prazo.

Portabilidade tem um custo. Quem já precisou fazer o Java integrar com hardware sabe bem disso, o mesmo vale se você precisar de um sistema com grande conectividade com o SO (que acesse o ActiveDirectory, por exemplo). Sempre que precisar recair no JNI, ou que usar uma biblioteca use JNI, estará abrindo mão da tal portabilidade do java, e ainda inserindo um código mais complexo do que seria numa linguagem “não portável” (o mesmo vale para unmanaged code do .net, mas por lá é mais simples usar “unmanaged”).

Até por isso tenho visto jogos que usam C# (Neverwinter Nights 2, Sim City Societies). As empresas também focam em “só Windows”, já que não tem porque pagar mais caro por portabilidade para agradar uma fatia miserável do mercado. Ok, no caso dos jogos, o público é o usuário caseiro, não empresarial… e o Windows ainda tem o DirectX, que é muito mais completo que o OpenGL (e não deixa de ser um mérito da MS).

Mas é só para deixar um outro exemplo de onde investir em portabilidade pode nem sequer fazer sentido.

É como o Leozin disse. O .net é só Windows, mas faz muito bem o seu serviço. E se esse serviço envolver integração com SO, hardware e uso de código unmanaged, acho que chega a fazer melhor que o Java.

chun

Bom , respondendo ao leozin e ao vinigodoy…

Sim… .net faz o seu servico… mas acho que o custo final é que me preoculpa… quando vc abraca uma solucao apenas windows… voce vai ter que alem de desenvolver tudo… vender windows pro seu cliente…

E me desculpe… Windows Server para mim e meus clientes é segunda opcao… e beeeeeeeem na segundona… a quantidade de TRANQUILIDADE que tenho com servidores linux é incomparavel…

A quantidade de tecnicos que se achao “os experts em windows” realmente é broxante… e q falta de direção que a aplataforma windows server toma é preocupante…
voces viram o super novo recurso do windows 2008 ? paravirtualizacao ? porra… to usando isso faz anos… TUDO no windows é velho e copiado (parte server)… e isso conta…

Como disse… é só windows ? entao é .net… e se é .net eh VISUAL STUDIO e NAO TEM CONVERSA… nao me venha com delphi 2010 , 2020 ou qualquer merda parecida !!! E tem outra… pagar a conta disso tudo… Qualquer solucao descente demanda um abraço gostoso na MS… com direito a Share point , Active Directory e SQL Server… vender esse pacotão e ainda cobrar pelo meu software o quanto ele vale não é uma tarefa facil…

Como eu disse… se é só windows… entao é .net… se começar a mesclar… ae eu fujo correndo do .net… prq sei que vou me incomodar…

Lembre-se estou falando do CONJUNTO DA OBRA… e não apenas da paixao pela plataforma…

E fora que os recursos em demasia atribuidos ao C# nas ultimas versões estão me deixando de cabelo em pé… quero só ver… daqui a pouco vai virar um C++ da vida… um puta elefante branco… cheio de armadilhas…

Fora que a palhaçada que fazem com o marketing do .net é foda… FALAO FALAO FALAO que eh multi linguagem… e até agora vejo C# e só… e o VB vindo correndo já todo capado o coitado… logo logo eh VB for .Net (C# Compatible)… e um esforco para portar o python … sem nenhuma grande “empresa” acreditando neste porte…

.net ?
é windows
é Vs.Net
é C#

partindo desse presuposto dá pra conversar… agora se vir me oferecer algo diferente disso eu pulo fora no ato.

Gosto do java por isso… eu não preciso dar bom dia para o billgates todos os dias demanhã… e a Sun… coitada… é apenas mais uma…

mais uma abrindo as pernas agora… deixando tudo quase que 100% GPL… veja o NetBeans 6.0… até ele ficou GPL…

ViniGodoy

Chun,

Você só vai precisar vender o Windows para o seu cliente, se ele já não usar o Windows. Ou se você já não investiu numa infra MS para você. E, se você está vendendo um sistema desktop, fazendo um sistema de prateleira ou mesmo um jogo, pode contar que a empresa usará o Windows na grande maioria das vezes. Não estou falando de uma aplicação web. Embora seja o que as software houses mais vendem, ainda tem muita aplicação interna feita para desktop por aí. E sim, tem muita empresa grande por aí que já pagou a conta da MS e, se brincar, até preferiria um sistema mais integrado com o parque todo.

O C++ é uma das mais poderosas, flexíveis e versáteis linguagens que existe. E o C# não caminha na direção dele. Você falou isso ou sem conhecer C++, ou sem conhecer o C#, ou por puro pré-conceito mesmo. Boa parte das armadilhas acontecem com quem programa “C++ ao estilo C”, sem usar a STL, Smart Pointers e ainda insistindo em macros, defines, etc.

O Java também está se enxendo de recursos, alguns bastante questináveis, como a promessa de closures na próxima versão. Fora que a API está engordando. Duas bibliotecas de IO? Duas bibliotecas de componentes gráficos(e tão falando de uma terceira)? StringBuilder e StringBuffer? Vector e ArrayList? Streams e Writers? Todos são exemplos de componentes de funcionalidade similar, que foram acrescentados para corrigir uma deficiência do passado (falta de sincronização, tratamento melhor de charset, falha de projeto). Você não considera isso inxaço? Ou na mão do java isso vira “opção”?

PS: Eu também adoro o Java e fico feliz por poder desenvolver tanto com tão pouco investimento. Só acho que a gente tem que reconhecer que o Java não é único, ou mesmo o melhor para absolutamente todos os casos. Também estou cansado de só condenar a MS, como se ela não tivesse bons produtos. Porque, embora talvez não sejam os melhores, são bons, sim, senão não se manteriam no mercado. E finalmente, é impossível não reconhecer que a MS domina praticamente 100% dos Desktops.

chun

ViniGodoy

Quanto ao Windows… eu preciso vender ele… prq 98% das estacoes do brasil tem windows pirata… e eu sou associado a ABES… nao posso sair por ae instalando Windows 2003 server com Ad. SQLServer e o karamba pirata… sem chances… Agora empresa grande pagou a conta… mas meus clientes não são multi-nacionais… e o licenciamento é uma paulada SIM… é só fazer a continha…

Quanto ao C++ ser poderoso , eu nao tenho duvidas… e ele tmb alem de poderoso é confuso , cheio de armadilhas e totalmente incompativel entre versoes , tanto referido quanto a plataforma quanta a distribuidores (Borland e MS)… eu acho usar C++ hoje em dia um tiro bem no meio do pé… ou usa C direto para fazer algo mais baixo nivel… ou corra para C# ou Java… que tem um apelo melhor… Se C++ fosse assim tao bom… e tao facil… todo mundo usava… nao se iluda com essa de “mais poderoso”… de que adianta poder sem controle ? ( as vezes controlar tudo nos minimos detalhes leva a perda do controle ) Quero ver voce achar no mercado a preco acessivel profissionais que usem STL, Smart Pointers e o caralho a 4 em C++ para dar manutencao naquele “codigo de ninja” que um “monge do C++” deixou na sua empresa… simplesmente não dá.

Quanto a API do java… ela vai muito bem obrigado… e SIM tem defeitos… mas esta bem longe desses que voce mencionou… por favor… tem StringBuilder e StringBuffer por um motivo MUITO logico… UM é sincronizado (thread safe) e outro não… quanto a api de IO tem duas tmb por outro motivo bem claro… um faz intermedio com chamadas não bloqueantes e a outra eh a tradicional… e Java SEMPRE tente a compatibilizar as coisas… ou vai dizer que vc vai penalizar o java por ter duas API’s de IO e vai esquecer do .net 1.1 pro 2.0 ? sinceramente voce precisa analisar melhor… quanto a Vector e ArrayList sao coisas BEM diferentes… Vector vem do 1.1 ( ou 1.0 ? ) e é sincronizado… ArrayList IMPLEMENTA a interface List e não é sincronizado… e tem outra… se for assim pra que uma lista duplamente encadeada ? USA A SIMPLESMENTE ENCADEADA… endente ? sua afirmacao não tem logica… voce tá comparando bananas com cenouras…

E quanto ao java se encher de recursos ? por favor… amanha um cara acorda lá MS e pensa “eu vo fazer tal coisa” e o mercado não é nem consultado e é feito e ponto… java pelo menos tem a JCP… vc por acaso viu a proposta de closures ? porra tao discutindo a té agora… já na MS … ela enfia por goela abaixo e pronto.

Voce viu o SilverLight 1.1 ? vai imbutir um CLR CAPADAO… ou seja… caparam o que eles achavam o certo… e nao o que o mercado quer… amanha depois eles tiram uma classe que vc estava usando… ae belem belem…

Fora que a MS se mante no mercado devido ao seu Monopolio… te desafio… faca um teste… implante o Exchange Server na sua organização sem ter que implantar o Outlook… e de quebra o SQLServer… VOCE SIMPLESMENTE passa raiva… eh uma venda casada do kct… e isso me deixar muito desgostoso… nao tenho opcoes… se vc cai no mundo MS … eh pra casar… um namorico nao rola.

Eu aqui nao estou defendendo o java… e nem o .net…
só acho que .net é uma puta armadilha na maioria dos casos…e quando vc não se prende… vc nao consegue achar vantagens… dá na mesma…

E tem outra… convido voce a instalar o a solucao E.P.M. da MS… vc vai ver que vc no final tem quase toda a familia windows infrunhada… quando na realidade só precisava do project.

L

Mais uma vez a raiva é contra a microsoft.

Onde eu baixo o fonte do Java Virtual Machine da sum?

Achar que so pq é linux vc não vai ter que pagar é muita falta de informação, nem tudo em linux e de graça, na verdade as melhores ferramentas são pagas e muito caras.

Quanto ta a licença do Windows e quanto custa um treinamento basico de linux?

imagina isso para 10 mil funcionarios, esqueça a área de informatica, eu quase nunca desenvolvo ferramenta para quem trabalha com informatica pois eles são praticamente auto-suficiente nisso, agora imagina treinar uma clinica inteira para usar linux.

Quanto a valor conhece o Visual Studio Express? é gratuito…

chun

LEX_Cool

java.sun.com - Vai em Download Java SE lá tem o fonte de 90% da VM da sun… ostros 10% estao portando pois eh codigo de outras empresas e com propriedade intelectual… mas vc pode baixar o IcedTea… que usa “plugins livres” para a parte proprietaria do codigo da sun…

Quanto a usar linux e nao pagar… nao eh BEM assim… mas quando instalo linux nao preciso pagar 5k pela licenca do servidor mais 4k pelo sqlserver (uso postgres) mais 8k pelo sharepoint e ainda instalar 512 service packs resar 3 ave marias e pedir para ficarem a 50 metros PELO MENOS do servidor… e claro… nao espirrarem muito forte…

Treinamento em linux no server ? meus questionamentos sao a parte servidora… nao aplicações desktop… e tem outra… se for assim… Windows tmb precisa de treinamento… essa estoria de eh instalar e usar é pura babaquice… ponha seu vô na frente do windows e mande ele acessar o banco do brasil… vc vai perder tanto tempo quanto se fosse num linux…

Vs Express ? por favor… quem tem que se informar é voce… instale o VS 2008 e depois o VS Express… ae vc vai perceber que esse negocio de express é pura idiotice de vendedor para dizer “mas tmb temos de graca”…

é .net ?
é VS normal.
é C#.
é windows.

chun

O que eu queria deixar bem claro… é o problema de se opitar por Microsoft… independente do .Net dar conta ou não do recado. ( e eu acho sinceramente que dá. )

Marcio_Nogueira

chun, você tocou em um ponto interessante e preocupante a questão da pirataria, como você desenvolvedor encara este problema ao oferecer uma solução para seu cliente?

ViniGodoy

OK… é como eu falei. Para você, as opções do .net são inxaço. Do Java são apenas opções.

Quando O ArrayList surgiu, surgiram junto diversos artigos orientando a não usar mais Vector. Vector é velho, legado. Se precisar de um ArrayList sincronizado, ainda sim você não deve usar Vector. Deve usar Collections.synchronizedList. Logo, Vector é um legado que torna a API inxada, não uma opção.

O mesmo vale para a AWT. Os componentes visuais da AWT não devem ser mais usados. Aliás, vc nem vê mais por aí coisas que ensinam AWT (exceto as classes da AWT que o Swing usa). Mas Buttons? Panels? Não… sem o J na frente não vale. Mas lá estão as classes, inxando a API.

Aliás, os Channels, como o SocketChannel, também podem ser usados como um replacement direto dos Sockets. É até a recomendação de livros como java.nio, da O’Reilly. Não precisam existir necessariamente para uso com selectors. Então, por que deixar os Sockets lá? Pq não podem simplesmente sumir? Mas, para você, isso é opção. Se fosse a MS, garanto que você diria que “isso engorda o C#”.

Quanto a você vender o Windows para os seus clientes pq vc faz parte da ABES. Então se eles forem usar a VM sobre o Windows vc também vai exigir que eles legalizem? Ou se sua aplicação web roda num browser que está num SO pirata não conta? Ou vai exigir que seu cliente substitua para Linux? Ou então, se for chamado para trabalhar numa empresa que produz para o mercado caseiro, você vai se negar porque teria que vender o Windows? Devo assumir então que você só trabalha com clientes que usam Linux, ou que comprovem que usam Windows legalizado? Nesse caso, você é um cara que trabalha com uma fatia realmente pequena do mercado. Ok, se você vende um servidor linux com sua aplicação. Mas e todos os desktops que acessam esse servidor? Podem continuar piratas?

Quanto ao C++. Eu quis dizer que o enfoque do C++ é muito diferente do adotado pelo C# e pelo Java. E que, por isso, o C# não está caminhando na direção do C++ e vice-versa. Ele é mesmo uma linguagem complexa e cheio de armadilhas (especialmente para quem usa ele como se usasse o C). Mas tem muitíssimo menos armadilhas do que o Czão e pode ser muitíssimo otimizado. Até por isso tem sido usado por empresas que produzem aplicações gráficas, CADs, jogos de computadores, sistemas operacionais e mesmo hardwares (isso inclui aqui, a Siemens - tanto nos telefones quanto nas centrais, quanto em aplicações médicas, etc).

L

Que pena que no local onde eu trabalho não posso me dar o luxo de usar um banco que não suporteos dados ou não tenha suporte.

Desculpa contrariar mas eu so uso Express e estou satisfo com ele, acho que vc naum conhece o Express conhece?

chun

Não tem o que fazer… ou voce vai lá e vende a solucao pro cara… ou sai instalando software pirata…

esse negocio de “olha… roda no windows… quando eu voltar aqui quero tudo instalado soh para eu configurar meu sofware” nao funciona

prq dae ele liga para uma SoftHar da vida… e fala… olha para licenciar isso vai custa 30k… ae o cara me liga

e fala “jah estou gasntando 30k em licenciamento , tem como baixar o valor ?” ae vc fica lutando com o cliente por causa de softwares dos outros…

eh foda hein ?

chun

ViniGodoy vamos por partes…

quanto a API’s… tudo que vc disse tem um nome… se chama COMPATIBILIDADE RETROATIVA e isso sim tem um preço… e atualmente no java é bem baratinho… e eu prefiro ter essa compatbilidade a ser degolado como fui quando a ms veio com o .net 2.0… ( sim eu fui vitima dessa merda de pulo, quebrou tudo q eu tinha )

segundo… Sim… tenho que cobrar deles um windows legalizado nos desktops caso eu tenho um software desktop rodando… e se for web… eh outros 500… VM soh utiliza se eu usar applets… coisa q nao uso.

Outra… trabalho com clientes que usao windows pirata… por OPCAO deles… agora… basear-me em uma ferramenta e sair instalando 2003 server por ai… ai nao dá… e hoje tem muita gente querendo legalizar… e Windows vc paga até pela estacao conectando ao servidor… eh uma loucura !!! Agora se vc esta se lixando para o que o cara tem que comprar… ae eh um problema seu… mas eu vendo a solucao… e nao mais problemas…

é uma questão bem filosofica… porem é importante na gora de vender…

L

Eu vendo a solução, agora o que o usuário vai escolher é problema dele não obrigo a usar windows, dependendo da aplicação não é necessário um server 2003 pra web temos o mono usa o seu linux, temos XP com apache e dot net (obs o IIS do XP so aceita 10 users simultaneos), tudo depende da experiência do “desenvolvedor” mas não costumo vender soluções tecnológicas como software, pois ja me dei muito mal em relação a manutenção de servidor linux, sabe quanto custa uma auditoria para certificação em rede linux? E não ganho $$$ da microsoft pra fazer venda casada, vc se prende muito a windows server, não há necessidade de uma pequena empresa comprar o server2003, agora em uma grande e media empresa, sempre acabavamos ganhando a concorrência por questões de tempo de desenvolvimento e suporte, hoje não trabalho em empresa de desenvolvimento, mas desenvolvo e gerencio dentro da empresa que trabalho.

Leozin

Olha, sinceramente, Windows Server 2003 + IIS não me trazem confiança

sou completamente defensor da plataforma .NET mas acho que o .NET poderia ser muito melhor se não vivessem de Microsoft Tools =/

L

Cara acho que sua rede windows precisa de um especialista, ou o orkut não é um bom exemplo?

bandrade

Orkut é java e já rolaram várias dicussões a respeito no forum. Procura aí que vc acha.

marciosantri

Pessoal, sem querer defender a Microsoft mas se tratando de marketing ela joga muito bem. Alguns pontos:

  • Existe versão do 2003 Server acessível só para aplicações Web sem a necessidade de licenças por acesso. Eu reclamei disso para um palestrante da Microsoft e ele me apresentou a solução antes desconhecida por mim. Pra mim era um dos principais pontos negativos.
  • Licença Microsoft para desenvolvedor (isso não inclui o Visual Studio) sai por uns R$ 750,00 anuais (10 estações, naquele esquema do Action Pack). Para muitos desenvolvedores isto ajuda bastante, dá R$ 75,00 reais por ano por estação para ter Windows, Word, Project e demais ferramentas. Nós aqui na Santri utilizamos o OpenOffice por 1 ano e, sem querer desmerecê-lo, é bem inferior ao MS Office.
  • Software houses podem lucrar com vendas de estação Windows. A Microsoft tem um plano de comissão.

Se você quer desenvolver uma aplicação Web utilizando o .net, pode simplesmente colocar seu banco de dados num servidor Linux (eu adoro fazer isto!), colocar seu Asp.net num Windows 2003 Server completamente acessível (como descrito acima) e não estar nem aí para as estações.
Me parece uma boa opção também.

Chun, acho a ferramenta .net da Borland (Delphi) muito boa, podendo muito bem ser comparada com a da Microsoft. Só não concordo em programar em Delphi nela (C# é o canal neste ponto). O problema das duas é o preço salgado para o desenvolvedor mas que não difere tanto de algumas ferramentas pagas para Java.
Se vc faz aplicações Web, a portabilidade não chega a ser esse problema todo. Vc vai ter Asp.net num Windows Server e só.

Quando entra dinheiro no meio a situação muda. Eu até pego no pé de nossos clientes para legalizarem o software, mas não deixo de vender nosso sistema por este motivo. Seria suicídio.

rubinelli

Sem querer jogar lenha na fogueira, hoje no almoço eu estava conversando com um colega sobre uma empresa em que ele trabalhou por alguns meses, e que usava Linux pra quase tudo. Vocês com certeza vão reconhecer o padrão.

Os caras não usavam open source porque estavam preocupados em ter uma solução tecnológica melhor. Eles apenas faziam de tudo pra não gastar. Precisa de um servidor de controle de versão? Pega aquele Pentium II que tava encostado num canto, vê se boota, e se bootar instala o CVS. Servidor de storage? Que nada, eu comprei um drive externo em Miami, espeta aí e bota pra funcionar. Tudo na gambiarra. Ele, certificado em Oracle, acostumado com as coisas nos devidos lugares, até tentou botar ordem na bagunça, mas não durou 6 meses.

Esse é um caso, mas o que eu vejo por aí segue essa linha. Tem empresa séria usando Linux? O Google esta aí pra mostrar que sim. Mas em boa parte das empresas existe essa visão de que software não devia custar nada, que você desenvolvedor deveria ficar contente de receber uns trocados pelo seu trabalho, e que enquanto os servidores estiverem rodando vamos tocar o barco. Foi de empresas destas que eu recebi propostas indecentes, como um estágio que não pagava nem a passagem de ônibus.

O meu ponto é: não entre nessa de pensar que o cliente não vai querer pagar o que você está pedindo depois de pagar a licença. Se ele não está disposto a pagar para ter um datacenter com Windows ou Unix e o devido suporte, ele não acredita no valor da sua solução também. Seja Java, ASP.Net, PHP ou Ruby on Rails, cliente orientado a gambiarra é tudo igual.

Java_Boy

Topico bem sugestivo, é como LINUX || WINDOWS ou coisa similar rsrs

Sem ler os muitos textos que nossos amigos escreveram defendendo arduamente suas respectivas tecnologias só posso dizer oque todo mundo ja sabe sobre seus pontos mais diferenciados:

JAVA => 0R$ ,leve desenvolvimento bom,pequena e multiuso runtime otimo,ser gpl excelente

.NET =>!!R$ (Projeto MONO nao conta),heavy tools, instalar um grande framework tambem nao,ter uma licença MS pior ainda

Na minha humilde opniao é porque sempre preferi java

[]s

bandrade

Então volta e lê algumas mensagens, principalmente uma q está 2 acima da sua. Esse argumento de .net ser caro já foi desmentido.

Além disso (para a empresa) é mais fácil achar um profissional .NET do que um de Java, e geralmente o salário de profissional .Net é menor, mas dá para ser bem pago trabalhando com .Net (alguém inclusive já postou ai uma situação de um salário de 9k para .net)

O que são heavy tools??

Instalar framework? Você roda java sem instalar a JVM?? Me conta a mágica aí… muda o nome de Framework para VM…

chun

bandrade…

Foi desmentido ? por favor… acorda para a realidade no brasil… se vc eh daqueles que instala pro seu cliente um servidor pirata… eu nao sou e nao posso… entao o custo final conta sim… faca a continha basica… SQLServer para 40 estacoes… + Windows 2003 para 40 estacoes e vai saber do q eu falo.

Quanto ao profissional, isso eh BEM…,. mas BEM… BEEEEEEEMMMM relativo… 70% do mercado de profissionais .net são meros arrastadores de componentes… e que se tornão bem mais caros quando um projeto que se resuma mais que CSS inline no codigo esta em jogo…

Alguem aqui falou que instalar o .net framework eh um fardo ? por favor… o que foi comentado sao os 547 pachtes que vc tem que aplicar no windows 2003 para que as coisas não se desmanchem…

Ninguem aqui esta defendendo o java… apenas apresentando a realidade nua e crua.

Java_Boy

bandrade

Cara nao quero abrir discussao de nada, só digo oque penso.

Oque quis dizer sobre custo foi reforçado pelas palavras do chun, é natural isso hoje em dia

Heavy tools que eu digo é a velha historia de instalar um visualstudio, com certeza sao as desvantagens de uma ide completa como ele

O lance da JVM x Framework tambem é natural, enquanto só existe java em um lado, no outro a CLR precisa conversam com suas muitas linguagens, isso não é mal nenhum, é um fator interessante.

O lance de salário varia muito para oque se faz e como se faz e o impacto disso em alguma respectiva tecnologia.

Sem brigas, apenas conversa

[]s

ViniGodoy

chun:

Outra… trabalho com clientes que usao windows pirata… por OPCAO deles… agora… basear-me em uma ferramenta e sair instalando 2003 server por ai… ai nao dá… e hoje tem muita gente querendo legalizar… e Windows vc paga até pela estacao conectando ao servidor… eh uma loucura !!! Agora se vc esta se lixando para o que o cara tem que comprar… ae eh um problema seu… mas eu vendo a solucao… e nao mais problemas…

Era esse o ponto. Usar ou não software pirata em suas estações de trabalho é uma opção DO CLIENTE. Não uma coisa que você vá impor.

Se você tem a estrutura .Net e pode oferecer a ele, ou se ele já tem essa estrutura legalizada e quer usar (e muito mais gente do que se imagem tem), então não há problema algum. Mas não venha dizer que você vai exigir que seu cliente legalize todas as estações de trabalho dele. Isso é realmente difícil de acreditar. Também não consigo acreditar que você já promoveu migrações em massa para Linux, sendo que existem muitos softwares que só rodam em Windows (como a suíte MS Office) e que a empresa não tem nem sequer capital para treinar todos os seus usuários para usarem Linux.

Ok, você pode vender um servidor, com a sua solução, como eu falei. Um servidor Linux, bonitinho, com o seu aplicativo instalado. Isso realmente é uma vantagem, principalmente pq são outras tecnologias free. E nesse ponto, você tem realmente uma vantagem competitiva, pois o custo final da sua solução será mais barato (embora muito provavelmente a empresa terá que contratar um profissional ou um serviço mais caros por conta disso). Agora, o argumento de “eu sou membro da ABES e por isso vou exigir que meu cliente legalize tudo” é que é furado. Em todo caso, eu particularmente concordo 100% com sua abordagem. Muitas empresas não pensam em longo prazo e sim no desembolso imediato. E, no caso das soluções baseadas em java e tecnologia Linux, o desembolso é minúsculo comparado a MS. Fora que, em matéria de servidor web, a qualidade das soluções Linux é inquestionável. Além disso, se for olhar somente no que você instalou, garantiu e assegurou (e não no que o cliente tinha e manteve instalado), você fez tudo certo, tudo dentro da lei. Seria a abordagem que eu também adotaria.

Você comentou que 70% dos profissionais .net são arrastadores de componentes. De onde você tirou esse dado? Aqui na Siemens, temos vários profissionais .net. Muitos deles contratados recentemente e são ótimos programadores. Aliás, a maioria nem arrasta componentes, pq nem temos muitas aplicações visuais por aqui. Eles também falam em patterns, em MVC, em separação de aplicação em camadas. Já tive altas discussões arquiteturais em que comparamos patterns usados no Java e no .net.

O fato é que, profissional ruim tem em qualquer linguagem. Foi uma das reclamações que vi alguém fazer aqui esses dias. Que o Java tem um monte de nego que é “escravo de frameworks”. O cara só sabe programar se for no netbeans e usando essa e essa sopa de letrinhas. Será que são maioria? Realmente eu não sei. Mas seus comentários estão muito baseados em revolta anti-microsoft, e pré-conceito, não exatamente na “realidade nua e crua”.

Você também não pode condenar a MS pela mudança e perda de compatibilidade para a versão 2.0. Eu peguei a mudança do Java 1.0 para 1.1 (refizeram o modelo de eventos da AWT). Foi um caos, tivemos perda de compatibilidade. Da 1.1 para 1.2 ocorreu a mesma coisa. Vimos dezenas de classes se tornarem obsoletas (AWT e as coleções), outras mudarem de assinatura. Realmente foi uma grande dor de cabeça. Geralmente, esse é o problema com versões “1.0”. Se a Sun tivesse acertado desde as primeiras versões, estaríamos agora vendo aplicações web em applets e usando AWT em nossos desktops. Mas, graças a Deus que as linguagens evoluem.

Agora, eu concordaria com você se condenasse a MS pelo seu histórico. Aí sim, ela tem um péssimo histórico quando o assunto é compatibilidade (sofri do VB3 para o VB4, do 4 para o 5 e do 5 para o .net). Mas não parece ser a tendência que ela vai seguir a partir da versão 2.0 do .net. Bem, isso é o tempo que vai dizer…

chun

ViniGodoy…

Esse seu mundo de Siemens não é a realidade do mercado brasileiro… eh de uma MULTI-NACIONAL… entao nao me venha dizendo “eh opcao do cliente” pois hoje vc nao pode simplesmente chegar “ahhh o sr nao tem ? entao foda-se”… o mercado esta uma selva.

Dao onde eu tirei os 70% ? simples… faca voce o teste… chame este “mundo de profissionais de .net” … uns 5 gtah bom… e mande eles fazerem um sisteminha simples… na sua frente… e vera do que eu falo.

Quanto a profissional RUIM voce esta correto… porem voce quer comparar um profissional VB.Net com o resto do mercado ? por favor… se for VB.Net entao minha porcentagem sobre pra 98%…

Ahhhhhhh eu nao posso condenar a MS por perda de compatibilidade TOTAL ? entao tah… entao vou culpar o governo de Hugo chaves !!! FORA CHAVES !!! melhorou ?

Quanto java 1.0… nao tinha nem 2% dos usuarios do .net… e isso aconteceu a 10 anos… voce quer comparar uma mudanca de paradigmas de 10 anos atras com hoje ? tudo bem… eh uma opcao sua…

A MS é louca e isso nao eh de hoje… repito… veja o que fizeram com o siverlight 1.1 … um produto NOVO…

PadrE

Kraca… esse tópico ta treta hein… ^^

Bom… li alguns post, mesmo porque 10 paginas O.o

Dificil decidir… mas ai vai o que penso…

Eu dou aula de tecnologia e vira e mexe rola discussão sobre isso… eh muito bacana… e percebo algumas coisas…

Como por exemplo, o pessoal acha muito confuso se trabalhar com Java por causa da infinidade de opções, maneira e idéias de se fazer alguma coisa… fica muito difícil escolher… E convenhamos, nos últimos anos as soluções OpenSource e suas variações cresceram D+…
O pessoal que eh velhaco na área se da bem… mas a galera nova… se perde muito no meio de tanto software…

Agora…, em .NET vc tem aquela receita de bolo (Win+VisualStudio+FrameWork.NET+SQL-Server+IIS) ou seja, não tem erro… eh assim eh pronto… então fica muito fácil tomar decisões… hehe…

Ou seja… um ponto que vejo ser bastante decisivo na escolha, está na linha de parendizado… e na facilidade de arrumar suporte… eh isso que a maioria do pessoal pensa…

Ai (como gosto de bagunçar… hehe) falo sobre valores versões pagas… o uso da pirataria…

E mostro que eh possível desenvolver aplicações em Java sem custo algum (claro, tem a mão de obra neh)…

Algus até mudam de idéia… outros ficam com mais dúvidas…

Então eu sugiro que se faça uma boa análise de sua necessidade e tome decisões em cima dessa análise…

Fui !

bandrade

Você tá sugerindo que cada desenvolvedor tenha o ambiente de produção instalado na própria máquina?? Nao basta 1 SQL Server e 1 Windows 2003 para o desenvolvimento não??

Estação usa o XP, e dependendo do acordo feito com a MS o custo é bem baixo. Trabalhava numa empresa q tinha essas parcerias com a MS, e as coisas funcinavam bem. O servico prestado pela MS era bom e o não saiu caro…

A filosofia da direção também influencia muito essas decisões, se a direção não quer sw livre, não adianta nem fazer reza (o mesmo vale para posições anti-ms). E o pior é que essas pessoas não costumam mudar de idéia facilmente… );

chun, 80% das pessoas com a qual trabalhei são ruins de serviço, independente do ambiente. Estou procurando gente q saiba java e/ou .net BEM e não encontro… );

Realidade nua e crua são as classes de data no java, que agora vão consertar. (Finalmente) :twisted: — tá bom, tá bom, foi um argumento péssimo, mas foi divertido. rsrsrs

marciosantri

chun:
bandrade…

Foi desmentido ? por favor… acorda para a realidade no brasil… se vc eh daqueles que instala pro seu cliente um servidor pirata… eu nao sou e nao posso… entao o custo final conta sim… faca a continha basica… SQLServer para 40 estacoes… + Windows 2003 para 40 estacoes e vai saber do q eu falo.

Quanto ao profissional, isso eh BEM…,. mas BEM… BEEEEEEEMMMM relativo… 70% do mercado de profissionais .net são meros arrastadores de componentes… e que se tornão bem mais caros quando um projeto que se resuma mais que CSS inline no codigo esta em jogo…

Alguem aqui falou que instalar o .net framework eh um fardo ? por favor… o que foi comentado sao os 547 pachtes que vc tem que aplicar no windows 2003 para que as coisas não se desmanchem…

Ninguem aqui esta defendendo o java… apenas apresentando a realidade nua e crua.

Chun, vamos fazer as contas:

1 - Servidor Windows 2003 para aplicações Web -> + ou - R$ 2.500,00 sem a necessidade de pagar por acessos.
2 - SQL Server? Por que vou ficar bloqueado neste banco com tantas opções? Aliás, o mesmo banco que você usaria em Java você pode utilizar no .net, na maioria das vezes e em todas quando se trata de um grande banco.
3 - Estação? Pra aplicação Web não faz muita diferença. Se for Desktop e o cliente não tiver licença Windows, sou o primeiro a entrar no seu barco.
4 - Patch tem para vários SOs, bancos e Java também. Concordo que com Windows e .net tem mais, mas não acho você esteja isento porque está utilizando outra coisa. Além do mais, se você contratar um excelente profissional para fazer um servidor Windows ele poderá ficar tão seguro quanto um Linux. O que a gente enfrenta são alguns empresários que aceitam qualquer serviço porcaria e pelo Windows ser mais intuitivo aparecem mais pessoas se dizendo entendidas. Cabe a você aceitar isto ou não e, sinceramente, sempre convecemos nossos clientes em relação a isto. O Windows 2008 já traz até uns esquemas para funcionar por “shell”, como no Linux (eu sei, idéia pirateada, mas sinceramente não estou nem aí pra isso).

Digamos que seu cliente gaste uns R$ 5.000,00 entre licenças e configurações (lembre-se que os outros R$ 2.500,00 teriam do mesmo jeito no Linux). Você acha isto caro para uma empresa média que fatura, digamos, 1 milhão por mês?

Não estou falando pra você utilizar .net, estou dizendo que você tem SIM opções e que não é esse bicho de sete cabeças. Até mesmo para utilizar com Java que, dependendo do que você for fazer, pode ser necessário ter um Windows por causa de JNIs da vida.
O que você acha?

marciosantri

Só para constar também, nos meus 13 anos programando, o que vejo no mercado de programadores é o seguinte:

  • 30% devem mudar de profissão;
  • 50% são programadores medíocres, nem bom nem mal;
  • 20% são bons e são difíceis de trazer para sua equipe pois sempre estão empregados.

Nas 3 linguagens em que tive o prazer de conhecer mais programadores (Delphi, Java e .net) ocorreu isto.

marciosantri

.

chun

Se voce nao usa a receita de bolo (.net+windows+sqlserver) .net deixa de ser uma opcao interessante e inteligente… pelo menos ao meu modo de ver…

quanto a pacthes… o java 6 tah no 3 e o java 5 acho que no 13 ou 14… windows 2003 sai hotfix aos milhares por semana…

O esquema do windows 2008 por shell eh uma piada… voce simplesmente nao pode configurar uma porcao de servicos… eu fui na apresentacao dessa porcaria… por exemplo… nesse windows vc nao coneseque instalar nada que dependa de config visual… Exchange… IIS etc…etc… e isso quem disse foi um cara da MS… entao… carta fora do baralho

5k em 40 licencas ? vc precisa fazer melhor as suas contas. 2.5k com linux ? eu teria SOH 2.5k que seria a instalacao… jah com windows seriam 2.5k + 2.5k … 5k.

Empresa media que fatura 1 milhao por mes ? hummm que media boa hein ? 40 estacoes… 1 milhao por mes… vai ser bem restrito esse mercado…

Fora que windows te exige atualizacao direta… nao eh soh instalar e bum… vc sempre tem q estar de olho, senao já era…

ViniGodoy

Ok, só citei exemplos de colegas próximos. Tenho colegas fora daqui que são ótimos especialistas em .net. Também por causa dos jogos, participo de alguns fóruns de tecnologia .net e XNA, inclusive por lá conheci vários brasileiros, formados. E os caras mandam bem. Felizmente, meu mundo não se restringe a Siemens. Fazer FUD do tipo “você é um alienado que vive num mundo à parte” não funciona muito bem comigo.

Além do mais, você está falando do mercado no geral, e isso inclui todos os profissionais, inclusive os de grandes empresas, como existentes aqui em Curitiba (HSBC, Siemens) como as existentes em São Paulo.

Esse é o tipico argumento: “É assim pq eu acho que é assim.” Você deve ter tido uma má experiência. O fato é que o profissional médio das software houses de hoje é muito ruim, porque elas pagam mal. Honestamente, R$600,00 até R$800,00 por um programador? Um cara assim ou vai ser um estagiário, ou vai ser um péssimo profissional. Mas duvido que qualquer um que se preocupe em desenvolver com qualidade e tenha uma formação acadêmica seja esse profissional alienado que você está falando.

Ops… Onde eu comparei profissionais VB.Net com o resto do mercado? Eu só estava demonstrando que com o VB (produto MS), a microsoft teve diversas quebras de compatibilidade. Houve problemas assim com a MFC também, mas foram muito mais suaves. Peguei o VB pq foi um caso extremo. Agora não comparei o profissional VB porque a MS sempre deixou claro que o VB é uma linguagem construída para ser fácil e, portanto, atrair programadores menos experientes.

Faltaram argumentos? Acho que a idéia não é partir para apelação…

Quanto java 1.0… nao tinha nem 2% dos usuarios do .net… e isso aconteceu a 10 anos… voce quer comparar uma mudanca de paradigmas de 10 anos atras com hoje ? tudo bem… eh uma opcao sua…

A MS é louca e isso nao eh de hoje… repito… veja o que fizeram com o siverlight 1.1 … um produto NOVO…

Eu falei algo que acontece no geral. As versões 1.0 são muito imaturas e os desenvolvedores acabam fazendo mudanças mais agressivas em versões futuras. E isso acaba com a compatibilidade. E não foi assim só com o Java. Foi o mesmo com o Delphi e com o Visual C++. Até com algumas frameworks isso ocorre. Esse é um risco que assumimos ao apostar no novo.

bandrade

Rola de explicar porque? Você pode ter apenas 1 servidor rodando windows 2003, com framework e instalações e tudo mais. Banco pdoe ser qualquer outro e cliente não é problema seu (defendo soluções WEB para 99% dos casos).

Se sair um bugfix de segurança do linux, você vai atualizar? Mesma coisa…

Concordo demais, ficou um lixo.

chun:
5k em 40 licencas ? vc precisa fazer melhor as suas contas. 2.5k com linux ? eu teria SOH 2.5k que seria a instalacao… jah com windows seriam 2.5k + 2.5k … 5k.
Empresa media que fatura 1 milhao por mes ? hummm que media boa hein ? 40 estacoes… 1 milhao por mes… vai ser bem restrito esse mercado…

Ainda não entendi essa conta de 40 licenças… );

Alguma empresa séria instala um servidor (externo) e esquece? Independente do SO, sempre tem q estar de olho no servidor.

chun

ViniGodoy

Quanto a parte dos R$ 800 reais por programador… ai voce chegou no ponto que eu quero… o argumento foi “existem mais programadores em .net” e eu disse… “CLARO… com a qualidade oferecida… soh poderiam ter varios” e vc acabou de confirmar isso… E nem nenhum momento disse “nao existem profissionais bons em .net”

Fora que deixei bem claro que não estava falando de multi-nacionais, elas optao e DEVEM optar por uma solucao fechada e direto ao assunto a qualquer preco.

Quanto a parte da falta de argumento… me desculpe… mas a sua declaracao “nao podemos culpar a ms pela perda da compatibilidade” foi demais… se nao podemos culpar ela… entao nao podemos culpar ninguem, e voce entendeu muito bem o que eu quis dizer.

Completando… o 1.0 do .net veio copiando o 1.4 do java… entao era obrigacao deles fazerem um produto NO MINIMO com a experiencia do concorrente em falhas… e isso eh OBVIO… voce viu a instalacao do VS 2005 ? na parte que ele fala “Agora com .net 2.0 voce tem uma economia de 70% de codigo !!” Po… os caras saem com a capacidade e avancao 10 anos… e voltam 10 anos no tempo fazendo as mesmas cagadas do java 1.0 ? Isso eh reflexo CLARO de uma empresa que acha que o que ela faz eh inovador… o resto eh resto… e essa eh uma premissa de eu deixar em segundo plano coisas que vem da MS ( segundo plano nao eh carta fora ).

Agora a propaganda que a MS fez no 1.1 foi que era a 2 maravilha do mundo moderno… e o 2.0 ? eh a primeira ? por favor… tem gente usando java 1.3 até hoje… vc acha que não vão existir legados ? três versoes ENORMES em três anos ? sem chance… em menos de 6 meses vc esta com 3 versoes do .net framework rodando em suas aplicações… ou eh isso ou vc fica com versões prestoricas… assim como fez a borland com o Delphi 2006… que PASMEM… eh 1.1

Jair_Rillo_Junior

Eu defendo .NET caso seja uma solução específica para Windows, agora se for uma solução para WEB, bom, ai eu fico com o pé atrás.

Primeiro, você confiaria tanto em um servidor Windows para um projeto de médio/grande porte?

Caso seja algo mais simples, eu talvez optaria por um PHP ou principalmente um Ruby on Rails.

Para aplicações de grande porte (onde eu trabalho atualmente), eu acho que Java é a melhor solução.

chun

Bandrake…

Vou te explicar prq para mim .net é:

C#
Windows
Sqlserver…

C# ? Simples… prq tudo que pinta de novo pinta com C#… enquanto a MS se dedica ao C# o pessoal do VB fica com o resto… com as migalhas… outras linguagens nem vou comentar… a MS altera o .net framework constantemente por causa do C# , os outros vem correndo atras… vide LINQ entao… se voce quer aproveitar-se das novidades , entao vc usa C#…

Windows ? Simples tambem… nao preciso informar que .Net é uma SOLUCAO… e nao simplesmente C#… .Net eh autenticacao usando Active Directory , é IIS , é Exchange Server… po… tudo de LEGAL que vc pode fazer com .net vc acaba caindo SEMPRE nas solucoes MS… prq ? prq vem integradas SEMPRE… entao… se voce quer realmente aproveitar… entao use e abuse disso… e mono esta BEEEEEEEEEEEEMMMMM longe de compatibilizar-se com tudo isso…

SQLServer ? Tudo se integra diferentemente ao SQLServer no .net… tanto que no 1.1 ele tinha um acesso DIFERENTE do ADO.NET… voce poderia ateh usar ADO.NET … mas com SQLServer e seu “acesso magico padrao dentro do 1.1” voce conseguia maravilhas em performance… Voce jah brincou com a integracao do .net com o SQLServer ? chamadas… administracao… manutencao… tudo simples e facil via .net framework… e nao disponivilizadas via ADO.NEt para os outros “tentarem” fazer igual… entao… para que vou esquentar a minha cabeca ? já estou preso ao Windows… ao .net,… pra que esquentar a cabeca usando postgres ? vai de SQLServer que no final… se der pau em algo… voce vai ouvir da tia do Suporte “Mas o banco de dados Postgres nao eh homologado” como já ouvi do suporte windows 2003 server quando estava dando tela azul em um cliente… eh mole ? soh posso rodar software MS na maquina… prq se der pau… eles soh olham se tiver tudo ok…

Respondido ?

rodrigoallemand

Isso vai longe…
O que é melhor?!? FastFood ou Churrascaria?!?
Depende de quem está comendo e o momento em que se quer comer…

bandrade

Eu defendo .NET caso seja uma solução específica para Windows, agora se for uma solução para WEB, bom, ai eu fico com o pé atrás.

Primeiro, você confiaria tanto em um servidor Windows para um projeto de médio/grande porte?

Caso seja algo mais simples, eu talvez optaria por um PHP ou principalmente um Ruby on Rails.

Para aplicações de grande porte (onde eu trabalho atualmente), eu acho que Java é a melhor solução.

Falei das soluções WEB pq dessa forma só é necessário comprar uma licença do 2003.
Fiz uns projetos grandes em .Net e funciona bem. Trabalho na área de Serviços de Valor Agregado para empresas de telecom (principalmente móvel) e o número de transações por minuto é absurda. E é confiável. Um servidor windows bem configurado, num ambiente bem configurado, é bom sim.

Tem parceiro que tem uma solução java, com banco sybase (acho) que a solução simplesmente não funciona. É uma porcaria.

No fim das contas o que vale são as pessoas, a tecnologia é o menor dos problemas.
Cara, simples só projetos por fora e pessoais. O mundo aonde vivo não tem nada de simples… );
Pra esses simples não faz diferença, gosto desses projetos para aprender tecnologias. Entao, independe.

chun

Bom , vou dar a minha contribuicao para o final deste debate sem fim…

Paro por aqui meus postos neste topico…

Gostei muito da discussao… mas nao tem fim :stuck_out_tongue:

Rubem_Azenha

Olha o preconceito :lol:

ViniGodoy

chun:
Quanto a parte da falta de argumento… me desculpe… mas a sua declaracao “nao podemos culpar a ms pela perda da compatibilidade” foi demais… se nao podemos culpar ela… entao nao podemos culpar ninguem, e voce entendeu muito bem o que eu quis dizer.

Eu realmente não culpo ninguém em tomar caminhos errados nas primeiras versões e abrir mão da compatibilidade nas próximas. Nem a MS, nem a Sun. É ruim? Péssimo. Mas na minha opinião, é um mal necessário.

Muita coisa foi cópia mesmo. Mas muita coisa não foi. A solução deles para código não gerenciado é bem diferente, assim como o grau de controle que põe sobre o garbage collector. Havia muita coisa lá para integrar com o Windows que não funcionou como eles esperavam. Mas eu concordo com você em uma coisa. A MS realmente divulga tudo que ela faz como inovador, seja realmente inovador ou não. Em termos de administração ela realmente joga sujo, tem um marketing mentiroso e usa estratégias de mercado imorais (sim, por incrível que pareça, também não gosto da MS).

Tem gente usando Java 1.1 até hoje… e isso por culpa da MS VM (eca) que vem com todos os Windows. Mas isso também comprova o que eu falei. Que a MS tem muito poder, por controlar o SO usado pela maioria. E muitas vezes é melhor fazer algo que só sirva e agrade essa maioria.

marciosantri

Não posso falar sobre muitos bancos mas sobre Oracle, banco em que somos especializados, temos drivers disponíveis para Java e .net feitos pela própria empresa. E não creio que sejam inferiores ao do SqlServer.

mcostabr

Ainda bem os Hotfix são constantes, já pensou se fosse como a Sun!!
No site da Sun tem Bugs fazendo aniversário de mais de 5 anos…

:lol:

G

Pessoal, o que eu não gosto dessas discussões de linguagem é a falta de foco.
Um fala de sintaxe, ai o outro de ferramenta, ai depois de framework.
Num seria mais interessante relacionar uma coisa com a outra não? Sem falar coisas genericas do tipo “você confiaria no Windows Server pra um projeto de grande porte”?
E outra coisa, vocês realmente acham que tudo nessas linguagens são novidade?

Generics? basta olhar os templates de c++.
LINQ? Basta olhar qualquer DSL de decadas atrás.

Praticamente tudo é reimplementação de linguagens passadas, basta olhar pra trás.

Agora algumas coisas eu fico realmente na dúvida. Por exemplo o custo de ferramentas. É muito raro o cliente investir numa infra-estrutura apenas por causa de uma certa aplicação que ele vai querer, isso quase sempre já esta definido. E como a maioria das aplicações hoje é WEB, a tal portabilidade de S.O pra mim fica cada vez menos importante, exceto é claro pra quem desenvolve sistemas Desktop.
Eu falo isso pq a maioria dos projetos que desenvolvo hoje em dia são Web, e vejo isso como uma preferencia no mercado.

chun

Ainda bem os Hotfix são constantes, já pensou se fosse como a Sun!!
No site da Sun tem Bugs fazendo aniversário de mais de 5 anos…

:lol:

de seguranca ? aonde ? me mostre um bug com 5 anos de aniversario relativo a seguranca…

G

Outra coisa, o que vocês querem dizer em relação a “C# ser cópia do java”?
Eu trabalho muito com as duas linguagens, e é claro a sintaxe é a mesma. A sintaxe do C# é copia da sintaxe do Java, assim como a do Java deve ter sido inspirada na do C++ pela semelhança. Mas a JVM e a CRL são MUITO diferentes, e isso é o que realmente importa.
A semelhança na sintaxe acaba confundindo as pessoas, tanto que sempre se fala em Java x C#, e quase nunca Java x VB.NET.

peczenyj

C# ultimamente é mais ‘complicada’ que java com as suas classes parciais e as novidades como Extension Methods e por ai vai.

ViniGodoy

Existem duas excelentes facas. A sua, que é para saladas, e uma outra, do seu colega, para cortar carne.
Entretanto, você e seu colega começam uma discussão, sobre que faca é melhor no geral. Você mostra como é fácil cortar cebolas e tomate com sua faca. Mas seu colega contra-ataca mostrando que a dele corta picanha muito melhor que a sua.

Não contente, você explica ao seu colega que você também consegue cortar diversos tipos de folhas, além de cortar frutas e fazer sucos. Não satisfeito, seu colega mostra também que a faca dele tem uma serrinha capaz de cortar ossos.

E os dois, ficam discutindo qual faca é melhor no geral.
Ninguém convence ninguém. Porque no geral, uma faca corta salada. E a outra corta carne.

PS: gugaime, não precisava ter ressucitado o tópico.

louds

C# 3.0 definitivamente é mais dificil de aprender que Java, porém depois disso é uma linguagem muito mais rica.

J

Sou fã incondicional não de todo .NET (Vb $#$#$) e sim somente C#
C#, C++ e Java é vida! 8)
Respondendo: DOT.NET || Java?
Re: Java! :wink:

chun

Está acontecendo… igualzinho ao C++… C# está virando um monstro…

A ideia de deixar o Java simples… foi justamente isso… ser facil de aprender e não criar um mundo escondido de recursos… onde dependendo do programador fica impossivel de dar manutencao…

Fico com a simplicidade.

louds

chun:
Está acontecendo… igualzinho ao C++… C# está virando um monstro…

A ideia de deixar o Java simples… foi justamente isso… ser facil de aprender e não criar um mundo escondido de recursos… onde dependendo do programador fica impossivel de dar manutencao…

Fico com a simplicidade.

Usar a desculpa que a linguagem tem que ser mediocre pois seus usuários assim serão é um tanto castrante, não? Desculpa, mas eu realmente não consigo ver como alguém consegue achar c++ ou c# 3.0 como a parte dificil de qualquer sistema de tamanho razoavel (razoavel como em 5mil linhas de código). Na maioria dos casos a dificuldade sempre fica por conta de entender o negócio ou decifrar o lixo que programadores meia boca produziram.

Falar mal de uma linguagem por conta de profissionais ruins é feito reclamar da NBA por causa do basquete que se assistiu no para-panamericano.

chun

louds… vai me dizer que C++ perdeu mercado por que ?

voce considera java uma linguagem mediocre ?

louds

chun:
louds… vai me dizer que C++ perdeu mercado por que ?

voce considera java uma linguagem mediocre ?

C++ perdeu mercado pois não é uma linguagem adequada para escrever a maioria do software corporativo feito hoje em dia, além das alternativas serem mais economicamente viaveis. Porém se olhar nichos nos quais C++ faz sentido, a penetração de Java, C# e semelhantes é incrivelmente pequena.

Java é uma linguagem que foi deliberadamente mutilada para facilitar a vida do average joe.

chun

Não é adequada por que ?

rubinelli

Basicamente porque cerca de um terço de um program em C++ é dedicado a gerenciamento de memória, um problema difícil de debugar mas que não tem nada a ver com lógica de negócio. Além disso, programas em C++ são muito mais sensíveis a problemas como overflow de buffer (uma técnica clássica de ataque de hackers) e não podem ser totalmente isolados do sistema operacional, ao contrário de programas em Java ou outras linguagens que podem rodar em uma sandbox.

chun

Voce consegue programar com C++ muito bem sem ficar usando malloc pra cima e para baixo… existem milhares de classes e bibliotecas que escondem muito bem este baixo nivel…

A pergunta que fiz eh… por que não é adequada ?

ViniGodoy

É o que o Louds disse. Tiraram o que era realmente difícil no C++, e fizeram uma linguagem muito mais tranquila de se programar, que é o Java. E eu não acho isso ruim em absoluto.

Se a maior parte das aplicações não usa o poder que o C++ oferece, e esse poder vem com o custo de uma complexidade adicional - o que complica a vida dos menos experientes - por que oferece-lo?

Melhor mesmo é focar naqueles mais de 50% que não querem saber de gerência de memória, ponteiros e como o processador trabalha e prover mecanismos mais facilitados e mais eficientes para eles.

Como o chun mesmo falou em outro tópico, usar smart pointers e recursos assim do C++ é muito mais complicado. E não é qualquer profissional por aí que sabe. Existe uma curva de aprendizado enorme, já que nenhuma faculdade chega nesse ponto também.

Mas uma coisa é fato. É possível programar C++ sem depender do SO hoje em dia. E nem é assim tão difícil, veja como exemplo o CodeBlocks, que é uma IDE multi-plataforma feita em C++. Existem diversas camadas e APIs para isso, como a wxwidgets e a SDL.

chun

Vini , eh nesse ponto que eu queria chegar… acho um exagero chamar de mediocre a linguagem java…

O que gosto nela é justamente a dificuldade em se “esconder” coisas no codigo… em evitar “grandes macetes”… e coisas que deixam a vida de quem da manutencao num codigo destes MUITO dificil… e chata…

Acho que o C# está caminhando para este lado… complicado e cheio de armadilhas… e a prova disso é o 3.0

A questão não é se a linguagem é poderosa… e sim o estrago que ela faz em uma equipe…

fabim

Eu desenvolvo em Java.

Conheço 1 desenvolvedor C# que, ao contrário dos tais “arrastarores de componentes” citados nesse topico, faz coisas EXCELENTES em .NET que 90% dos desenvolvedores desse forum e de Java em geral nem sonham em fazer.

A recíproca é verdadeira.

ViniGodoy

E o Netbeans, a cada versão, tenta atrair mais e mais os arrastadores de componentes.

E essa galera está entrando no mercado java também, não se enganem. Quantos tópicos no GUJ vocês já viram que o cara começa sua dúvida com “programo em Netbeans e…”

chun

R.A.D. ?

http://www.go-java.com/blog/2007/12/21/1198258739664.html

louds

Rubinelli, de onde você tirou que um terço do programa é dedicado a gerenciamento de memória? Esse número é fictício. Trabalho com aplicações escritas em C e nunca ví tanto código assim para gerenciamento de memória. Somente aplicações incrivelmente complexas conseguem enganar os leak detectors modernos.

Tem gente que acha que gerenciamento de memória é muito dificil e simplesmente desencana de fazê-lo. O gcc é um exemplo, é todo escrito em C e usa um garbage collector. A técnica funciona bem, tanto que a Apple adotou a mesma tecnologia para o ObjectiveC do novo OSX.

Vini, eu não disse que tiraram a parte dificil do c++. Resolveram vários problemas relacionados ao ferramental e eliminaram uma enorme quantidade de recursos úteis da linguagem.

Chun, te respondo por que C++ não é apropriada para desenvolvimento corporativo:

:arrow: Tempo de resposta muito grande entre salvar e terminar de compilar, especialmente para grandes projetos. Java faz toda linkedição em tempo de execução, isso permite compilação separada. Java também não tem problemas de ABI, apenas com interfaces simbólicas.

:arrow: Com gerenciamento explicito de memória, os desenvolvedores tem que comunicar entre sí o ciclo de vida de toda memória envolvida no sistema. Isso é dificil quando estão separados por burocracia, empresa, burrice, ou sem acesso a todo fonte do sistema. Isso é de praxe em empresa grande.

:arrow: Java possui um modelo de execução bem definido que diminui muito o tempo para se fazer postmorten debug. Analisar stacktraces dos logs de produção, por exemplo.

:arrow: Não é xplat o suficiente para permitir o desenvolvedor fazer tudo de seu desktop P3 Win98 e ter o deployment num SunOs4. Isso conta MUITO.

Java é uma linguagem pato, corre, nada e voa; porém faz tudo meia boca.

ViniGodoy

É os dois lados da moeda…

Os recursos são legais? Com certeza, são incríveis.

Mas vai ter o arrastador de componentes que só sabe “programar” (ou melhor “fazer funcionar”) se o recurso estiver ao lado dele…

ViniGodoy

Desculpe, interpretei mal.
Mas que fizeram isso, é, fizeram.

Tudo em prol do average joe.

fabim

louds:

Java é uma linguagem pato, corre, nada e voa; porém faz tudo meia boca.

Caramba eu ja falei isso pra um monte de gente, mas não com essas palavras.
Nunca vi uma frase que definisse tão bem a linguagem.

chun

ae que tá louds… o beneficio de se ter uma linguagem mais enxuta esta justamente abordada nos topicos da sua resposta 2,3 e 4…

acho mais do suficiente para sacrificar algumas coisas…

Fora que estamos falando de 10 anos… se fossem assim absurdamente necessarios… nao teria se esperado 10 anos…

um caso tipico é o VB… levou trocentos anos para ser OO… acho um tremendo exagero classificar de mediocre uma linguagem apenas pelo fato dela nao ter os milhares de recursos milaborantes que embananao 90% dos programadores… e tornao um mundo de dor e sofrimento a quem dá manutencao em codigos escritos por esses “gurus da micro-otimizacao”

ViniGodoy

O VB, até antes do .net, era uma linguagem medíocre.

chun

Que detinha 70% do mercado de aplicações comerciais de “caixinha” …

rubinelli

Bem, na minha experiência profissional com C, eu usava uma biblioteca que fazia o gerenciamento de heap. Então, para cada struct que eu fosse usar, eu tinha que chamar uma função passando uma referência, receber um ponteiro void, e fazer o cast pra depois começar a fazer alguma coisa útil. Depois, tinha de lembrar de chamar outra função pra liberar a referência, o que permitia que a thread compactadora da heap a movesse. Se não fosse mais usar aquela estrutura, tinha outra função pra chamar pra liberar a memória. Então, no meu caso, dava bem uns 30%.

Os programas da faculdade também ficavam por aí. Se você escreve uma biblioteca de árvore ou pilha em C, é quase tudo gerenciamento de memória.

louds

Caramba, usar o Boehm GC é incrivelmente mais facil. Bastava alocar a memória que ele a coleta conversativamente, podendo usar descritores para ter alocação tipada e diminuir a carga no alocador. Fora isso, vejo o esforço de alocação de memória no mono, usamos para quase tudo memory pools já que a desalocação de memória depende do ciclo de vida da aplicação gerenciada. Não generalize por conta da lib que você usou que C é 30% gerenciamento de memória.

rubinelli:

Os programas da faculdade também ficavam por aí. Se você escreve uma biblioteca de árvore ou pilha em C, é quase tudo gerenciamento de memória.

Ainda bem que não ganhamos dinheiro escrevendo programas de faculdade profissionalmente. :wink:

rubinelli

Ainda bem que não ganhamos dinheiro escrevendo programas de faculdade profissionalmente. ;)

É verdade, muitos seriam reprovados! :wink:

Note, eu não estou tirando o mérito de C. Eu sei que você está gostando muito de trabalhar com C, e se eu tivesse uma oportunidade também gostaria de voltar a trabalhar com ele. Só que não tem biblioteca nenhuma que vai torná-lo melhor que Java e C# pra fazer web application e CRUD.

louds

Quem seria louco de usar C para desenvolver aplicações web ou CRUD? Não estamos mais em 1995.

Criado 8 de novembro de 2007
Ultima resposta 11 de jan. de 2008
Respostas 198
Participantes 39