Plataforma Java x Plataforma .net

139 respostas
M

Dia 24/10/2009 e dia 07/11/2009, acontece em Taguatinga Norte - DF - o Evento “Plataforma Java x Plataforma .net”.

“O evento Plataforma Java x Plataforma .NET tem como foco principal promover debates técnicos de alto nível sobre duas das principais plataformas de desenvolvimento de software do momento: Java e .NET.”

Acredito ser um evento interessante para atualização profissional e para ver como as duas tecnologias estão se comportando no mercado, tendências e tudo mais.

“Além de palestras e debates sobre temas variados das plataformas Java e .NET, o evento Plataforma Java x Plataforma .NET tem um aspecto social muito importante. O evento não tem fins lucrativos, sendo que todas as inscrições corresponderão a doações para o projeto Lar Betel, mantido pela Assistência Social Evangélica de Brasília (ASEB).”

Os palestrantes são bem qualificados e acredito que nível do evento será muito bom!

Mais detalhes pode ser consultados no site: http://www.javaversusdotnet.com.br

139 Respostas

eduveks

Isto vai ser pior que Corinthians vs Flamengo em cima da fronteira :twisted:

Bem eu trabalho no meu dia a dia com as duas, e estas discussões não leva a nada, pois sempre acabam por desviar o foco e começam as defesas e ataques por questões de gosto e preferência e acabam por levar para o lado mais pessoal, basta ver nos foruns as “guerras” que já ocorreram.

Acho que o importante é seguir pelo ponto de vista de que Java é bom em algumas coisas e .Net em outras, e cada um domina um tipo de mercado diferente, com alguma concorrência em algumas áreas como Web, mas também nestas áreas há casos em é melhor optar por Java ou .Net.

É preciso fazer um estudo e ver qual a melhor opção em termos de Esforço vs Tempo vs Custo vs Manutenção.

Saber escolher bem, sabendo o ponto forte de cada uma, penso que é a chave.

Penso que o mais proveitoso é eventos em que seja aprofundado mais em uma tecnologia, se fizessem um evento de Java, e outro de .Net ai sim, as pessoas que fossem as duas poderiam ter uma visão mais ampla.

Agora as duas em 1 evento só, isto vai dar mais discussão do que conteúdo.

Acho que é assim :stuck_out_tongue:

tRuNkSnEt

Eu já me inscrevi e acho que vai ser legal o evento.

Penso que é igual ao que eduveks disse. Aqui no forum existem muitos puristas que acha que Java é a ultima bolacha do pacote e um evento como esse é ótimo para se ter uma visão mais ampla.

Jose111

Reforcem a segurança…

chun

Cada um no seu quadrado.

CarlosEduardoDantas

É difícil encontrar profissionais que possuem conhecimento abrangente o suficiente, para efetuar análises detalhadas referentes as 2 plataformas de maneira imparcial, inteligente e produtiva.

Espero que o evento seja bom e envolva palestrantes de bom senso.

xdraculax

Pois é, o colega ali disse tudo: “ser imparcial”.

E realmente, pra ser imparcial, tem que conhecer de forma equivalente as duas plataformas (o que realmente é dificil).
Pois embora parecidas em termos de recursos, a estruturação (e conssequentemente utilização) desses recursos é bem diferente.

Mas vale a pena sim, assim como comparar com outras coisas mais novas (tipo Ruby com Rails e outros).

MaikoID

Não considero linguagem de programação, linguagem presa a uma única plataforma, isso pra mim é um bash orientado a objetos nem de longe é uma linguagem de programação.

A linguagem que mais tem mercado é C/C++ e que tem mais crescido para dispositivos embarcados é C/C++ ou estou errado? Dizer que as duas mais disputadas linguagens no mercado é Java e .Net é no mínimo tosco…

Abraço.

wescleyfcosta

creio que um evento desse ajuda muito uma equipe/empresa a ver os pontos forte de cada uma com demonstração de especilistas das duas plataformas, desde que fique longe das paixões.

xdraculax

MaikoID:
Não considero linguagem de programação, linguagem presa a uma única plataforma, isso pra mim é um bash orientado a objetos nem de longe é uma linguagem de programação.

A linguagem que mais tem mercado é C/C++ e que tem mais crescido para dispositivos embarcados é C/C++ ou estou errado? Dizer que as duas mais disputadas linguagens no mercado é Java e .Net é no mínimo tosco…

Abraço.

Depende de que mercado estamos falando, não é?
Como fariamos uma aplicação com persistência em banco de dados, distribuída, com concorrência e tudo mais que temos no Java por exemplo, em C++?

Pode botar mais uns Plus Plus desses ai :slight_smile:

J

O negocio vai ficar feio hein … preparem as armaduras ^^

D

Se souberem ver o lado bom de cada plataforma, ambas crescem. O difícil é que, quem sabe Java apenas, acha que .Net é um lixo e vice-versa. Cada uma tem seus defeitos, sim, mas também tem suas ótimas características.
Espero que seja um evento que eleve neste lado. O difícil é encontrar bons desenvolvedores que conheçam bem ambas as plataformas. E geralmente, eles não estão nestes eventos, infelizmente.

gilmarcand

Acredito que se o evento for “Java e .Net” ao invés de" Java vs .Net" pode ser proveteiso. Ou seja, o evento teria profissionais capacitados de cada uma as plataformas exibindo os benefícios de adotar aquela plataforma sem falar mal da outra. Se começarem a atacar um ao outro, então vira desperdício de tempo.

sergiotaborda

djemacao:
Se souberem ver o lado bom de cada plataforma, ambas crescem. O difícil é que, quem sabe Java apenas, acha que .Net é um lixo e vice-versa. Cada uma tem seus defeitos, sim, mas também tem suas ótimas características.
Espero que seja um evento que eleve neste lado. O difícil é encontrar bons desenvolvedores que conheçam bem ambas as plataformas. E geralmente, eles não estão nestes eventos, infelizmente.

Esta conversa politicamente correta é meio chata. Essas frases feitas sem sentido nenhum e que não significam nada.
Afinal que ótimas características são essas que apenas uma das plataformas tem que a outra não tem ?

O ponto não é discutir java x .net , mas discutir essa visão que vocês parecem ter que as plataformas são equivalentes ou que uma se destaca mais num campo e a outra noutro.

Palestras sobre as maravilhas da plataforma ou sobre fulano que fez o software X na plataforma Y não significam nada, pois para cada exemplo em uma, podemos dar um exemplo na outra.

Existe realmente algum ponto onde o .NET seja melhor escolha que Java ? Ou vice-versa ?

Conhecer as duas plataformas é interessante para qualquer arquiteto que tem que escolher entre uma e outra, assim como tem que escolher entre essas e outras plataformas do mercado ( por exemplo, JME vs Android ) mas que diferença real ha entre as duas plataformas que nos permite utilizar uma num cenário e não a outra ?

Para mim não ha diferença alguma nas plataformas em si. O conceito é o mesmo. As diferenças são práticas e económicas e isso não é responsabilidade da plataforma.

Alguem ter a gentileza de explicar, por favor, que cenários são esses onde uma aplicação tem mais vantagem ser feita na plataforma X que na Y ?

K

MaikoID:
Não considero linguagem de programação, linguagem presa a uma única plataforma, isso pra mim é um bash orientado a objetos nem de longe é uma linguagem de programação.

A linguagem que mais tem mercado é C/C++ e que tem mais crescido para dispositivos embarcados é C/C++ ou estou errado? Dizer que as duas mais disputadas linguagens no mercado é Java e .Net é no mínimo tosco…

Abraço.

C/C++ e outros como Delphi hoje é mito e passado, nem lançam mais nada novo sobre isso, o que manda hoje é sistemas no browser, estou aguardando uma ferramenta para desenvolver softwares tudo em web, sempre ouço aqui no GUJ, desktop está morto e tals, hoje é web, bom, to esperando uma IDE web super poderosa para gerar aplicações web, até hoje nada, ficar usando aplicações desktop é ir contra o progresso, esses netbeans e eclipse que tem que instalar em desktop é duro e um saco.

MaikoID

xdraculax:

Depende de que mercado estamos falando, não é?
Como fariamos uma aplicação com persistência em banco de dados, distribuída, com concorrência e tudo mais que temos no Java por exemplo, em C++?

Pode botar mais uns Plus Plus desses ai :)

Pelo que estou vendo, você não sabe muita coisa de c++ né? Tudo que se faz em Java se faz em C++, mas não é este o foco do tópico.

Existe um erro no tópico ao dizer que .net e java são as linguagens mais usadas no mercado, e como disse não há como comparar um bash orientado a objetos (.net) com uma linguagem de programação independente de arquitetura como o Java.

GouverMXT

knowledgebr:
MaikoID:
Não considero linguagem de programação, linguagem presa a uma única plataforma, isso pra mim é um bash orientado a objetos nem de longe é uma linguagem de programação.

A linguagem que mais tem mercado é C/C++ e que tem mais crescido para dispositivos embarcados é C/C++ ou estou errado? Dizer que as duas mais disputadas linguagens no mercado é Java e .Net é no mínimo tosco…

Abraço.

C/C++ e outros como Delphi hoje é mito e passado, nem lançam mais nada novo sobre isso, o que manda hoje é sistemas no browser, estou aguardando uma ferramenta para desenvolver softwares tudo em web, sempre ouço aqui no GUJ, desktop está morto e tals, hoje é web, bom, to esperando uma IDE web super poderosa para gerar aplicações web, até hoje nada, ficar usando aplicações desktop é ir contra o progresso, esses netbeans e eclipse que tem que instalar em desktop é duro e um saco.

Sem C/C++ o seu computador nem ligaria para você poder fazer esta postagem (errônea).

K

GouverMXT:
knowledgebr:
MaikoID:
Não considero linguagem de programação, linguagem presa a uma única plataforma, isso pra mim é um bash orientado a objetos nem de longe é uma linguagem de programação.

A linguagem que mais tem mercado é C/C++ e que tem mais crescido para dispositivos embarcados é C/C++ ou estou errado? Dizer que as duas mais disputadas linguagens no mercado é Java e .Net é no mínimo tosco…

Abraço.

C/C++ e outros como Delphi hoje é mito e passado, nem lançam mais nada novo sobre isso, o que manda hoje é sistemas no browser, estou aguardando uma ferramenta para desenvolver softwares tudo em web, sempre ouço aqui no GUJ, desktop está morto e tals, hoje é web, bom, to esperando uma IDE web super poderosa para gerar aplicações web, até hoje nada, ficar usando aplicações desktop é ir contra o progresso, esses netbeans e eclipse que tem que instalar em desktop é duro e um saco.

Sem C/C++ o seu computador nem ligaria para você poder fazer esta postagem (errônea).

Essa é a questão, postei pra chamar a atenção, muitos aqui falam com palavra definitiva, esqueçam o desktop, hoje tudo é web, fazer o que, falam tanto e colocam o desktop como o vilão da tecnologia que é um retrocesso, penso que ao contrário como falam, hoje há soluções diversificadas, e não chamar o desktop de legado, como postam ou anunciam alardeando, “Temos soluções web completas, removemos o legado desktop para melhor performance dos seus negócios”, é de ir quando se lê isso, tudo depende do negócio e o que é viável ou não para determinado tipo de aplicação, agora o sujeito dizer, “não sei ainda por desenvolvem aplicações desktop, não vejo senso”, aff, é o mesmo dizer que C/C++ e outras do gênero está morto.

MaikoID

É rapaz, dai quando você for desenvolver seus programas web, desenvolva também o SO do servidor via web, o próprio servidor desenvolva em web também, de boot via web faça tudo via web…

È cada um que me aparece viu, vai estudar maluco.

GouverMXT

knowledgebr:
GouverMXT:
knowledgebr:
MaikoID:
Não considero linguagem de programação, linguagem presa a uma única plataforma, isso pra mim é um bash orientado a objetos nem de longe é uma linguagem de programação.

A linguagem que mais tem mercado é C/C++ e que tem mais crescido para dispositivos embarcados é C/C++ ou estou errado? Dizer que as duas mais disputadas linguagens no mercado é Java e .Net é no mínimo tosco…

Abraço.

C/C++ e outros como Delphi hoje é mito e passado, nem lançam mais nada novo sobre isso, o que manda hoje é sistemas no browser, estou aguardando uma ferramenta para desenvolver softwares tudo em web, sempre ouço aqui no GUJ, desktop está morto e tals, hoje é web, bom, to esperando uma IDE web super poderosa para gerar aplicações web, até hoje nada, ficar usando aplicações desktop é ir contra o progresso, esses netbeans e eclipse que tem que instalar em desktop é duro e um saco.

Sem C/C++ o seu computador nem ligaria para você poder fazer esta postagem (errônea).

Essa é a questão, postei pra chamar a atenção, muitos aqui falam com palavra definitiva, esqueçam o desktop, hoje tudo é web, fazer o que, falam tanto e colocam o desktop como o vilão da tecnologia que é um retrocesso, penso que ao contrário como falam, hoje há soluções diversificadas, e não chamar o desktop de legado, como postam ou anunciam alardeando, “Temos soluções web completas, removemos o legado desktop para melhor performance dos seus negócios”, é de ir quando se lê isso, tudo depende do negócio e o que é viável ou não para determinado tipo de aplicação, agora o sujeito dizer, “não sei ainda por desenvolvem aplicações desktop, não vejo senso”, aff, é o mesmo dizer que C/C++ e outras do gênero está morto.

Ha sim, agora entendi que você estava sendo irônico.

GouverMXT

knowledgebr:
GouverMXT:
knowledgebr:
MaikoID:
Não considero linguagem de programação, linguagem presa a uma única plataforma, isso pra mim é um bash orientado a objetos nem de longe é uma linguagem de programação.

A linguagem que mais tem mercado é C/C++ e que tem mais crescido para dispositivos embarcados é C/C++ ou estou errado? Dizer que as duas mais disputadas linguagens no mercado é Java e .Net é no mínimo tosco…

Abraço.

C/C++ e outros como Delphi hoje é mito e passado, nem lançam mais nada novo sobre isso, o que manda hoje é sistemas no browser, estou aguardando uma ferramenta para desenvolver softwares tudo em web, sempre ouço aqui no GUJ, desktop está morto e tals, hoje é web, bom, to esperando uma IDE web super poderosa para gerar aplicações web, até hoje nada, ficar usando aplicações desktop é ir contra o progresso, esses netbeans e eclipse que tem que instalar em desktop é duro e um saco.

Sem C/C++ o seu computador nem ligaria para você poder fazer esta postagem (errônea).

Essa é a questão, postei pra chamar a atenção, muitos aqui falam com palavra definitiva, esqueçam o desktop, hoje tudo é web, fazer o que, falam tanto e colocam o desktop como o vilão da tecnologia que é um retrocesso, penso que ao contrário como falam, hoje há soluções diversificadas, e não chamar o desktop de legado, como postam ou anunciam alardeando, “Temos soluções web completas, removemos o legado desktop para melhor performance dos seus negócios”, é de ir quando se lê isso, tudo depende do negócio e o que é viável ou não para determinado tipo de aplicação, agora o sujeito dizer, “não sei ainda por desenvolvem aplicações desktop, não vejo senso”, aff, é o mesmo dizer que C/C++ e outras do gênero está morto.

[post duplicado]

C

E lá vamos nós de novo discutir linguagens e ambientes.
Outra discução classica é CLT X PJ.
Entre outras.

Olha assim como quase tudo na vida, existem vantagens e desvantagens que devem sempre ser levadas em considerção.

Falar mal de C, C++, Delphi, Java, .NET ou se Desktop ou Web, isso sim é ir contra a inovação tecnológica.

Tem gente que faz soluções fantásticas em Delphi, e dizem que ela está fora do mercado.
Pra mim quem fala mal de uma linguagem ou ambiente, em 90% dos casos, é por que não conhece 1% do que ele é capaz de fazer.

A escolha vai da abtidão e como essa pessoa se ambientou com a linguagem escolhida.

Até acho que o evento de comparação pode ser interessante, mas irá depender da cabeça das pessoas que irão palestrar e das pessoas que irão assistir as palestras.

O que aconteceria se fizemos um evento Volkswagen X Ford ? ou Nintendo X Sony ? Será que iria ser produtivo ? Acho eu que todas discussões não teriam fim.

K

marcosalex:
cawink:

Até acho que o evento de comparação pode ser interessante, mas irá depender da cabeça das pessoas que irão palestrar e das pessoas que irão assistir as palestras.

O que aconteceria se fizemos um evento Volkswagen X Ford ? ou Nintendo X Sony ? Será que iria ser produtivo ? Acho eu que todas discussões não teriam fim.

Quem organiza esse tipo de evento quer ver o circo pegar fogo mesmo, pra ganhar ibope.

A própria Microsoft adora incentivar esse tipo de “briga” e não é raro nas apresentações e palestras os evangelizadores pregarem que os aficionados em .NET entrem nos fórums de Java e Delphi pra “defender sua escolha e trazer mais legionários” (sic).

O marketing pode não ser o mais honesto, mas funciona de forma eficiente. Tanto é que muito produto que mesmo tendo um mercado pequeno, tem-se a impressão de estar dominando a área.

Citei o exemplo da MS, mas várias empresas fazem isso, não só de tecnologia. Tenho um amigo que trabalhava de Gerente de Marketing na Ambev e quando eles lançavam uma cerveja nova, pagavam gente pra chamar uma turma de amigos e chegarem nos barzinhos pedindo a nova cerveja. Quando o dono do bar falava que não tinha, eles diziam que iriam embora porque só queriam aquela. Cada dia ia uma turma nova pedindo, assim o estabelecimento iria acreditar que estava perdendo clientes por não ter “a nova cerveja”.

Bom, o fato hoje que se não usar Java ou .NET, está fora, usar C/C++ e Delphi hoje é arriscado, C/C++ ficou para a infra estrutura mesmo, Delphi mesmo já era, segundo o pessoal deste fórum.

J

NOOB…ALGUMAS PESSOAS NÃO SABEM O Q FALAM!!

K

NOOB…ALGUMAS PESSOAS NÃO SABEM O Q FALAM!!

Você não deve ter lido, por isso não entendeu…

xdraculax

MaikoID:
xdraculax:

Depende de que mercado estamos falando, não é?
Como fariamos uma aplicação com persistência em banco de dados, distribuída, com concorrência e tudo mais que temos no Java por exemplo, em C++?

Pode botar mais uns Plus Plus desses ai :)

Pelo que estou vendo, você não sabe muita coisa de c++ né? Tudo que se faz em Java se faz em C++, mas não é este o foco do tópico.

Existe um erro no tópico ao dizer que .net e java são as linguagens mais usadas no mercado, e como disse não há como comparar um bash orientado a objetos (.net) com uma linguagem de programação independente de arquitetura como o Java.

Eu acredito que C++ tem sua finalidade, e que Java tem as suas; o cara se irrrita e vem dizer que tudo que faz em Java, faz em C++.
Faz mesmo, faz até em assembly se quiser. A questão e se você faz isso antes do mundo acabar.
Eu conheço[não trabalho] nem com C nem C++. Na bancada do meu lado tem 3 caras trabalhando com as duas, e o que vejo é que eles fazem coisas com outras finalidades[mais baixo nível, melhor desempenho et…]. Já o pessoal do Java, cuida das aplicações para gerência e um software de um nível um pouco mais baixo, que gerencia um equipamento controlado por um software em C.
O que eu quis dizer é que Java é uma um nível de abstração bem mais alto que C++, não é melhor, simplesmente tem outra finalidade.
Você que entendeu errado.

Se não tivesse conhecimento das outras linguagens, não poderia comparar, como algumas pessoas fazem. Diz que uma linguagem ou framework não prestam sem nunca ter escrito uma linha de código, ou só ouviu os outros falarem.

xdraculax

sergiotaborda:
djemacao:
Se souberem ver o lado bom de cada plataforma, ambas crescem. O difícil é que, quem sabe Java apenas, acha que .Net é um lixo e vice-versa. Cada uma tem seus defeitos, sim, mas também tem suas ótimas características.
Espero que seja um evento que eleve neste lado. O difícil é encontrar bons desenvolvedores que conheçam bem ambas as plataformas. E geralmente, eles não estão nestes eventos, infelizmente.

Esta conversa politicamente correta é meio chata. Essas frases feitas sem sentido nenhum e que não significam nada.
Afinal que ótimas características são essas que apenas uma das plataformas tem que a outra não tem ?

O ponto não é discutir java x .net , mas discutir essa visão que vocês parecem ter que as plataformas são equivalentes ou que uma se destaca mais num campo e a outra noutro.

Palestras sobre as maravilhas da plataforma ou sobre fulano que fez o software X na plataforma Y não significam nada, pois para cada exemplo em uma, podemos dar um exemplo na outra.

Existe realmente algum ponto onde o .NET seja melhor escolha que Java ? Ou vice-versa ?

Conhecer as duas plataformas é interessante para qualquer arquiteto que tem que escolher entre uma e outra, assim como tem que escolher entre essas e outras plataformas do mercado ( por exemplo, JME vs Android ) mas que diferença real ha entre as duas plataformas que nos permite utilizar uma num cenário e não a outra ?

Para mim não ha diferença alguma nas plataformas em si. O conceito é o mesmo. As diferenças são práticas e económicas e isso não é responsabilidade da plataforma.

Alguem ter a gentileza de explicar, por favor, que cenários são esses onde uma aplicação tem mais vantagem ser feita na plataforma X que na Y ?

Aplicação desktop pra Windows… Eu faria em Windows Forms.
Aplicação Web… faria com J2EE.
Aplicação Mobile [Empresarial]… Windows Mobile e Compact Framework e SQL CE
Aplicação Mobile [de Prateleira]… faria JME

Teria algum problema em fazer isso???

sergiotaborda

xdraculax:
sergiotaborda:

O ponto não é discutir java x .net , mas discutir essa visão que vocês parecem ter que as plataformas são equivalentes ou que uma se destaca mais num campo e a outra noutro.

Palestras sobre as maravilhas da plataforma ou sobre fulano que fez o software X na plataforma Y não significam nada, pois para cada exemplo em uma, podemos dar um exemplo na outra.

Existe realmente algum ponto onde o .NET seja melhor escolha que Java ? Ou vice-versa ?

(…)

Alguem ter a gentileza de explicar, por favor, que cenários são esses onde uma aplicação tem mais vantagem ser feita na plataforma X que na Y ?

Aplicação desktop pra Windows… Eu faria em Windows Forms.
Aplicação Web… faria com J2EE.
Aplicação Mobile [Empresarial]… Windows Mobile e Compact Framework e SQL CE
Aplicação Mobile [de Prateleira]… faria JME

Tem que explicar as escolhas. Porque com esses e não com os outros ?

xdraculax

sergiotaborda:
xdraculax:
sergiotaborda:

O ponto não é discutir java x .net , mas discutir essa visão que vocês parecem ter que as plataformas são equivalentes ou que uma se destaca mais num campo e a outra noutro.

Palestras sobre as maravilhas da plataforma ou sobre fulano que fez o software X na plataforma Y não significam nada, pois para cada exemplo em uma, podemos dar um exemplo na outra.

Existe realmente algum ponto onde o .NET seja melhor escolha que Java ? Ou vice-versa ?

(…)

Alguem ter a gentileza de explicar, por favor, que cenários são esses onde uma aplicação tem mais vantagem ser feita na plataforma X que na Y ?

Aplicação desktop pra Windows… Eu faria em Windows Forms.
Aplicação Web… faria com J2EE.
Aplicação Mobile [Empresarial]… Windows Mobile e Compact Framework e SQL CE
Aplicação Mobile [de Prateleira]… faria JME

Tem que explicar as escolhas. Porque com esses e não com os outros ?

Bom, vamos lá :slight_smile:

Aplicações Windows Forms normalmente são pequenas, usam um bancos pequenos; pelos na minha humilde experiência. Normalmente também não temos muita perspectiva de portabilidade, as aplicações são tão especificas que normalmente ficam sempre para aquele cliente.
Com o Visual Studio, você tem maior produtividade nesse tipo de aplicação por causa de Linq, DataBind, e os componentes que já vem na .NET Framework (como DataGridView).

J2EE para web é bem melhor do que ASP.NET, nem tanto por qualidade técnica, mas sim políticas. Primeiro porque os conteinners são “de grátis”, no caso do ASP.NET você tem que usar o IIS e consequentemente comprar uma licença do Windows Server xxxx; ou montar um servidor meia-boa com o XP Professional. Os Data Provider “originais” só vem para SQL Server e Oracle, já limita um pouco. Com J2EE acho que nem preciso explicar a liberdade de bancos, frameworks e componentes gráficos.

Windows Mobile para aplicações empresariais. Porque aplicações empresariais mais especificas, que dificilmente você venderá para outras empresas, quase sempre se saem melhor com Windows Mobile, você possui mais recursos e facilidades do Visual Studio. Trabalhei por um tempo com WM, e não tenho o que reclamar, tanto em produtividade, quanto em qualidade. Conheço pessoas [dono de fábrica de software] que não tiveram sucesso com a utilização de JME; até hoje, sinceramente, não vi ninguém falando bem de JME [devo ter humildes 5 anos de mercado], mas essa não é minha opnião.
Por outro lado, se queremos construir uma aplicação para ser baixada por internet, ter grande utilização por diversos usuários de diversas plataformas, seria preferível usar JME.

Pelos menos a minha realidade é essa; onde você mora, ou seja, o mercado da sua região, pode ser diferente.
E eu acredito sim que software é algo muito contextual, nenhuma solução tecnologica [ou não] é 100% aplicável em todas as situações.

sergiotaborda

xdraculax:
sergiotaborda:
xdraculax:
sergiotaborda:

Alguem ter a gentileza de explicar, por favor, que cenários são esses onde uma aplicação tem mais vantagem ser feita na plataforma X que na Y ?

Aplicação desktop pra Windows… Eu faria em Windows Forms.
Aplicação Web… faria com J2EE.
Aplicação Mobile [Empresarial]… Windows Mobile e Compact Framework e SQL CE
Aplicação Mobile [de Prateleira]… faria JME

Tem que explicar as escolhas. Porque com esses e não com os outros ?

Bom, vamos lá :slight_smile:

Aplicações Windows Forms normalmente são pequenas, usam um bancos pequenos; pelos na minha humilde experiência. Normalmente também não temos muita perspectiva de portabilidade, as aplicações são tão especificas que normalmente ficam sempre para aquele cliente.
Com o Visual Studio, você tem maior produtividade nesse tipo de aplicação por causa de Linq, DataBind, e os componentes que já vem na .NET Framework (como DataGridView).

J2EE para web é bem melhor do que ASP.NET, nem tanto por qualidade técnica, mas sim políticas. Primeiro porque os conteinners são “de grátis”, no caso do ASP.NET você tem que usar o IIS e consequentemente comprar uma licença do Windows Server xxxx; ou montar um servidor meia-boa com o XP Professional. Os Data Provider “originais” só vem para SQL Server e Oracle, já limita um pouco. Com J2EE acho que nem preciso explicar a liberdade de bancos, frameworks e componentes gráficos.

Repare que vc entra em contradição. Se os dataproviders são um problema em web, não o são em desktop ? Afinal as facilidades do JDBC estão em ambas e as dificuldades do ADO.NET tb. É um pouco contra sentido.

Aceitando quem o drag and drop do visual studio é mais produtivo (o problema é que não definição do que “produtivo” significa)
se eu lhe desse uma ferramenta igual em java, vc usaria java em vez? Porque pela questão dos bancos e eliminando o problema de WYSIWYG do VS não ha mais diferenças ?


Pelos menos a minha realidade é essa; onde você mora, ou seja, o mercado da sua região, pode ser diferente.
E eu acredito sim que software é algo muito contextual, nenhuma solução tecnologica [ou não] é 100% aplicável em todas as situações.

Sim, escolher uma solução é um trade-off contextual, mas para cada exemplo que der em um, ha alguem que dará no outro.
Por exemplo, JME tem vários prefis, .NET é para smartphones (assim como android). JME tem maior espectro. E sim, a escolha é feita baseado no contexto. Mas o que vc falou é .NET tem ferramentas mais “produtivas” que java para certos tipos de aplicação.

Agora, alguem que usa netbeans vai argumenta que faz telas swing tão facilmente quanto vc com o VS, e programas ME tb.
Ora, ferramenta é algo fora do escopo da plataforma. Não responde à pergunta sobre a diferença entre as plataformas …

T

Só vou dizer uma coisa: a linguagem a ser escolhida não depende apenas de gostos do implementador ou de modismos, mas principalmente da característica da aplicação a ser desenvolvida.

Portanto, não adianda ficarmos discutindo qual é a melhor ou a pior, já que depende do projeto e sistema que cada um trabalha!

prometo que não falo mais nada neste tópico. Afinal na minha opinião seria pura perda de tempo…

sergiotaborda

thiagomont:
Só vou dizer uma coisa: a linguagem a ser escolhida não depende apenas de gostos do implementador ou de modismos, mas principalmente da característica da aplicação a ser desenvolvida.

O ponto é que esse argumento é pura charlatanice. Que características são essas que fazem a diferença ? O que é possivel em um que não é no outro que justifique a escolha ? E não estamos falando só das linguagens e sim das plataformas como um todo. Das soluções como um todo.

C

Esse evento vai ser dos bons.
IFL in Brazil.

Vai ser como o congresso coreano, se um fala algo que outro não gosta vai voa cadeira.

xdraculax


Repare que vc entra em contradição. Se os dataproviders são um problema em web, não o são em desktop ? Afinal as facilidades do JDBC estão em ambas e as dificuldades do ADO.NET tb. É um pouco contra sentido.

Eu não disse que DataProvider são problemas na Web. Eu disse que o problema é licenciamento e tudo mais. A questão é que se você só possui dois data providers, você se limita 'a aqueles bancos, se quiser usar outros, não vai ter suporte. Por isso disse que você se limita.


Aceitando quem o drag and drop do visual studio é mais produtivo (o problema é que não definição do que “produtivo” significa)
se eu lhe desse uma ferramenta igual em java, vc usaria java em vez? Porque pela questão dos bancos e eliminando o problema de WYSIWYG do VS não ha mais diferenças ?

Não, a diferença não é simplesmente o WYSIWYG; mas o DataBind também, gerenciamento de boa parte das classes da framework de forma gráfica, que nas entranhas, são da plataforma em si, mas a ferramenta gerencia isso graficamente, o que só trás benefícios.

Sim, escolher uma solução é um trade-off contextual, mas para cada exemplo que der em um, ha alguem que dará no outro.
Por exemplo, JME tem vários prefis, .NET é para smartphones (assim como android). JME tem maior espectro. E sim, a escolha é feita baseado no contexto. Mas o que vc falou é .NET tem ferramentas mais “produtivas” que java para certos tipos de aplicação.

Sim, é possível desenvolvedores equivalente construirem aplicações equivalentes usando VS e NetBens para Windows? Você confirma fortemente que o VS NÂO é mais produtivo para aplicações Windows?
Eu não. E gosto muito do NetBeans, acho uma ferramenta no mesmo nível do VS.


Agora, alguem que usa netbeans vai argumenta que faz telas swing tão facilmente quanto vc com o VS, e programas ME tb.
Ora, ferramenta é algo fora do escopo da plataforma. Não responde à pergunta sobre a diferença entre as plataformas

Pois é, mas no final das contas, queremos é produzir mais por menos, não importa se o quem lhe trouxe os benefícios foram a ferramenta ou a plataforma.
Concordo com você em partes, em outras nem tanto.

xdraculax

ps.: acho melhor eu ficar por aqui mesmo, pq só termina com besteira…
deixa pros caras discutirem lá nas palestras :slight_smile:
haiuheihaiuheua

MaikoID

Eu tenho a impressão que quando se discutem .net x java, os defensores do bash orientado a objetos só fazem programas de controle de estoque, aqueles que aprendemos na faculdade…

Eu sinceramente mesmo quando aprendi .net (num curso da MS) eu não usava os arrasta e solta porque queria saber o que esta por trás, queria eu mesmo fazer as coisas, pra aprender e principalmente pra confiança de que estava fazendo o de jeito certo.

Mas tudo bem você pode usar o drag and drop numa boa, o NetBeans tbem tem isto, mas num projeto sério quantas vezes você vai usar o drag and drop? Quantas vezes você não precisará checar se a conexão está bem feita, mesmo debugando ?Isso realmente é importante pra se definir se uma linguagem é melhor que outra ? IDE não é linguagem de programação e nem faz parte dela, se for pra decidir o desempenho de uma linguagem de programação baseada em sua IDE, C é a pior coisa que já existiu.

E fala sério eu prefiro mil vez o netBeans do que o MSVS, tanto no Windows quanto no Linux, o highlight dele, o renomear, a mapeação da localização das váriaveis é muito mas muito mais útil que drag-and-drop de conexão com base de dados. E posso aproveitar todos esses recursos utilizando-o pra C++, viu só ? IDE por IDE a minha é melhor que a sua, e isso não justifica o uso de determinada linguagem…

E gostei do caboclo ali que disse claramente, 'isto é charlatanismo, eu quero ver é os pontos do contexto que fazem escolher uma ou outra linguagem" Também estou doido pra ouvir a resposta.

xdraculax

MaikoID:
Eu tenho a impressão que quando se discutem .net x java, os defensores do bash orientado a objetos só fazem programas de controle de estoque, aqueles que aprendemos na faculdade…

Eu sinceramente mesmo quando aprendi .net (num curso da MS) eu não usava os arrasta e solta porque queria saber o que esta por trás, queria eu mesmo fazer as coisas, pra aprender e principalmente pra confiança de que estava fazendo o de jeito certo.

Mas tudo bem você pode usar o drag and drop numa boa, o NetBeans tbem tem isto, mas num projeto sério quantas vezes você vai usar o drag and drop? Quantas vezes você não precisará checar se a conexão está bem feita, mesmo debugando ?Isso realmente é importante pra se definir se uma linguagem é melhor que outra ? IDE não é linguagem de programação e nem faz parte dela, se for pra decidir o desempenho de uma linguagem de programação baseada em sua IDE, C é a pior coisa que já existiu.

E fala sério eu prefiro mil vez o netBeans do que o MSVS, tanto no Windows quanto no Linux, o highlight dele, o renomear, a mapeação da localização das váriaveis é muito mas muito mais útil que drag-and-drop de conexão com base de dados. E posso aproveitar todos esses recursos utilizando-o pra C++, viu só ? IDE por IDE a minha é melhor que a sua, e isso não justifica o uso de determinada linguagem…

E gostei do caboclo ali que disse claramente, 'isto é charlatanismo, eu quero ver é os pontos do contexto que fazem escolher uma ou outra linguagem" Também estou doido pra ouvir a resposta.

Você define as coordenadas de todos os componentes da tela no código pq quer ver como funciona? HEheh
parabéns, você é meu héroi hiuahiueua
E quem aqui falou que prefere um ou outro? Você lê ou interpreta caracteres?
Você está se doendo a toa. Se você defende que C++ é melhor em todas as situações, exponha seus argumentos, diga poruqe você defende isso.

MaikoID

Primeiro não me referi a desenho de GUI e sim de conexões, qualquer linguagem e qualquer IDE tras construção de GUI, estou destacando os recursos “especiais”.
Segundo não defendi C++ como melhor linguagem, e sim que tinha um erro no tópico ao considerar JAVA e .NET as maiores linguagens do mercado.
Terceiro já coloquei meu ponto de vista sobre o .net, diversas vezes, sobre sua incapacidade de ser multiplataforma, apesar que o monodevelop está ficando cada vez melhor, mas ainda assim não é suportado oficialmente pela MS.

Até agora seus argumentos foram sobre a IDE, o VS faz isto, faz aquilo e blah, blah… foi isto que ataquei, IDE não é linguagem…

sergiotaborda

xdraculax:

Heroi é quem ainda faz isso. Em java não se definem coordenadas de coisa nenhuma. Embora isso possa ser feito se necessário,
em java a composição de componentes visuais é portável também. Não entre OS, mas entre diferentes tamnhos de desktop e resolução…

Em java não se usa arrasta e solta porque não é necessário. A vantagem do WYSIWYG é apenas para design mode, para ficar experimentando como fica a tela. Mas na real, o design é feito por alguem antes da implmentação. Não ha experimentalismo.
Vc encaixa o codigo e voilá. Vc pode criar componentes usando for , while, if, etc… com um pouco mais de trabalho pode gerar a partir de xml ,etc…

Mas ai está uma diferença entre as plataformas : o posicionamento dos componentes na tela. Java permite explicito e dinamico. .NET é sempre explicito. Vão me dizer que fazer sempre no design mode é vantagem ?

xdraculax

MaikoID:
Primeiro não me referi a desenho de GUI e sim de conexões, qualquer linguagem e qualquer IDE tras construção de GUI, estou destacando os recursos “especiais”.
Segundo não defendi C++ como melhor linguagem, e sim que tinha um erro no tópico ao considerar JAVA e .NET as maiores linguagens do mercado.
Terceiro já coloquei meu ponto de vista sobre o .net, diversas vezes, sobre sua incapacidade de ser multiplataforma, apesar que o monodevelop está ficando cada vez melhor, mas ainda assim não é suportado oficialmente pela MS.

Até agora seus argumentos foram sobre a IDE, o VS faz isto, faz aquilo e blah, blah… foi isto que ataquei, IDE não é linguagem…

ta bom então… você tem razão… :lol:

C

mesmo com netbeans, todas classes visuais eu escrevo na mão, toda estruturação do gridbag, componentes, etc etc.

Por que isso?
O dia que você fizer algum refactor em um ambiente mais complexo, com milhoes de linhas, com aqueles forms nojetos por trás, talvez irá entender.

D

Até onde usei, não lembro das licenças matar a empresa que desenvolve em .Net. Aliás, em Java, pode ser gratuito algumas coisas, mas vai pedir suporte e você verá que são os profissionais mais caros.

Se for pra desktop, o NetBeans faz praticamente a mesma coisa. Em Web, o VS.Net 2008 não é diferente dos visuais do Eclipse, apenas que ele tem uns componentes que se conectam ao banco de dados através deles. Embora possamos “desmembrar” o componente feito, se precisar de total flexibilidade no design, tem que colocar a mão no código mesmo. Isso não é ganho de tempo, mesmo porque, se tiver que personalizar mesmo, vai ter que ser na unha mesmo.

Alguns alegam que desenvolver em .Net é mais produtivo, mas não é bem assim. Se for para desenvolver do modo macarrônico que muitos dos que vi por ai, vindos do VB, realmente, será. Fácil de fazer e duro de manter.
Mas usando padrões, isso com C#, não conheço VB.Net, é trocar 6 por meia dúzia, dá na mesma em termos de tempo de desenvolvimento. ASP.Net é como JSF praticamente, só que mais flexível. Se misturarmos JSF com Facelets, fica igual.
Produtivo na Web eu diria Asp.Net MVC, que é outro conceito e ai sim, há um ganho de produtividade.
Enfim, são esses tipos de conversas que um evento como esse não deve ter, porque tem muito javeiro que se diz conhecedor de .Net e de .Net em java, mas a realidade é que poucos conhecem mesmo os dois lados.

PS: Não vou falar de portabilidade, pois nisso o Java é melhor, já que o projeto Mono sempre está com dois passos atrás e precisa mudar componentes que no SO Windows usam do sistema operacional.

xdraculax

sergiotaborda:
xdraculax:

Heroi é quem ainda faz isso. Em java não se definem coordenadas de coisa nenhuma. Embora isso possa ser feito se necessário,
em java a composição de componentes visuais é portável também. Não entre OS, mas entre diferentes tamnhos de desktop e resolução…

Em java não se usa arrasta e solta porque não é necessário. A vantagem do WYSIWYG é apenas para design mode, para ficar experimentando como fica a tela. Mas na real, o design é feito por alguem antes da implmentação. Não ha experimentalismo.
Vc encaixa o codigo e voilá. Vc pode criar componentes usando for , while, if, etc… com um pouco mais de trabalho pode gerar a partir de xml ,etc…

Mas ai está uma diferença entre as plataformas : o posicionamento dos componentes na tela. Java permite explicito e dinamico. .NET é sempre explicito. Vão me dizer que fazer sempre no design mode é vantagem ?


Sim sei que existem gerenciadores de layout.
Mas como eu disse no começo, faria para aplicações Windows Desktop.

Mas voltando ao assunto do tópico, tomara que seja legal.
Ver o que ambas as plataformas oferecem pode ser interessante do ponto de vista da arquitetura; pra que venhamos a tomar decisões embasadas em fatos, e nem em “achismos”.
To doido que venha pra minha cidade.

mvargens

Bom primeiro gostaria de avisar que esse post é minha opnião. Não que vale alguma coisa, mas é uma maneira de receber notificações sobre as postagens, já que achei as postagem interessantes e quero acompanhar.

Eu acho que o Browser é uma aplicação cliente e de certa forma Desktop. Talvez algum guru consiga fazer um browser que rode dentro de um browser na web. Sei la vai saber né. No celular ainda não tem, mas o futuro ta logo aí. Vamos ver se o Google faz um.

Para mim C, VB6 e Delphi estão mortos. Não porque ninguém quer usar mais, mas porque não evoluem.

Não posso opinar sobre .Net até fazer o curso que estou planejando. O mercado está pedindo por algum motivo. Mas posso por exemplo comparar o VB6 ao Swing. Desenvolver no VB6 é muito mais produtivo que no Swing. Não da nem para comparar. E o principal motivo é o espaguete como dito acima. No VB não tem esse negócio de Pattern não, é tudo ali, juntinho no código. Aí tem gente que vai dizer que da pra fazer diferente. Claro que dá, mas perde produtividade. E a manutenção? Para isso sem duvida o Swing é melhor, uma vez que você já aprende a fazer de forma mais organizada, tem conceitos diferentes, é realmente orientado a Objeto e etc, mas produtividade… Agora uma coisa que me deixou muito feliz quando migrei de VB para java foi me livrar daquelas porcarias de DLL. O inferno que era aquilo. Só que minha alegria durou pouco. Assim que fui apresentado ao Tomcat e ao JBoss e comecei a usar a commons lib da apache, eu percebi que linguagem só muda o nome, no fim das contas é tudo igual.

K

mvargens:
Bom primeiro gostaria de avisar que esse post é minha opnião. Não que vale alguma coisa, mas é uma maneira de receber notificações sobre as postagens, já que achei as postagem interessantes e quero acompanhar.

Eu acho que o Browser é uma aplicação cliente e de certa forma Desktop. Talvez algum guru consiga fazer um browser que rode dentro de um browser na web. Sei la vai saber né. No celular ainda não tem, mas o futuro ta logo aí. Vamos ver se o Google faz um.

Para mim C, VB6 e Delphi estão mortos. Não porque ninguém quer usar mais, mas porque não evoluem.

Bom, é muito forte dizer que estão mortos e não evoluem, quem não evolui é ameba que tem na mão ferramentas boas e não sabe o que fazer com elas, na verdade a maioria nem programador é, são usuários de libs/frameworks, coisa mastigada que ajuda a agilizar o aplicativo final, C/C++ ficou com o estigma de ser difícil e de deixar o developer seguir caminhos errados. Esta linguagem é padrão de industria para infra estrutura, será que o Java foi feito em Java puro? O Linux foi feito em Java? Pasmem, faz poucos anos que a JVM ganhou velocidade para ser tratado como algo sério a adotar.

Não posso opinar sobre .Net até fazer o curso que estou planejando. O mercado está pedindo por algum motivo. Mas posso por exemplo comparar o VB6 ao Swing. Desenvolver no VB6 é muito mais produtivo que no Swing. Não da nem para comparar. E o principal motivo é o espaguete como dito acima. No VB não tem esse negócio de Pattern não, é tudo ali, juntinho no código. Aí tem gente que vai dizer que da pra fazer diferente. Claro que dá, mas perde produtividade. E a manutenção? Para isso sem duvida o Swing é melhor, uma vez que você já aprende a fazer de forma mais organizada, tem conceitos diferentes, é realmente orientado a Objeto e etc, mas produtividade… Agora uma coisa que me deixou muito feliz quando migrei de VB para java foi me livrar daquelas porcarias de DLL. O inferno que era aquilo. Só que minha alegria durou pouco. Assim que fui apresentado ao Tomcat e ao JBoss e comecei a usar a commons lib da apache, eu percebi que linguagem só muda o nome, no fim das contas é tudo igual.

Tudo é jogada de marketing, vai na conversa dos outros quem quer, mas o certo que aqui é falar de Java, C/C++ deve ser falado com o pessoal que move a industria de software, estão em outro nível.

ViniGodoy

Eu tenho trabalhado com o .Net, e me irritado muito. Os componentes as vezes não se comportam da forma esperada e, quando vc procura num fórum da MS a solução, surpresa, a própria MS recomenda uma gambiarra. Ok, ainda tenho muito o que aprender, e posso estar sofrendo só por ainda estar escalando a curva de aprendizado, portanto, considerem que estou só resmungando por enquanto.

O C#, por si só, é uma linguagem excelente. É tão fácil quanto o Java, tem alguns recursos de programação muito interessantes, como sobrecarga de operadores ou ter implementado de generics da forma certa. A API também é legal, e conta com o poderoso LINQ.

Eu não recomendo a ninguém o VB6. E olha que trabalhei muitos anos com a linguagem. Aquele lixo deveria ser publicado como exemplo do que não se deve fazer. Eu posso citar diversos pontos negativíssimos da linguagem, como o famoso “On error resume next”, ou como as variáveis serem Variant por padrão, funções serem public, ou declarações enganosas como essa:

Onde a variável y é inteira, mas a variável x foi implicitamente declarada como Variant. Fora coisas irritantes como “se vc referenciar um objeto dentro de um form, o VB o torna automaticamente visível”.

Usei Java Swing por mais de 5 anos, usando como ambiente visual o VEP. Muito bom, era tão rápido quanto desenvolver em Delphi ou VB. Só para constar trabalhei por 2 anos com C++ Builder e 2 anos em Delphi.

Uma coisa que gosto do Java é que as APIs da Sun, de maneira geral, são bem puristas. Encontramos quase nenhuma gambiarra, as coisas funcionam exatamente como o esperado. Tudo é muito simples e intuitivo. As interfaces são bem projetadas, o que permite desenvolver código bem flexível com muita facilidade. Tenho esses mesmos elogios para a VCL da Borland.

A MS tem o bom e velho problema de ser proprietária, e de não estar lá muito aí para compatibilidade. Passei infernos para mover do VB4 para o 5, do 5 para o 6, e não há conversão do 6 para o .net (a ferramenta para conversão automática funciona bem para aplicações do tipo “Hello world”). Alguns colegas que estão a mais tempo no C# reclamam a mesma coisa sobre o .net framework.

Uma coisa que sinto-me à vontade no Java é com fazer com tranquilidade os updates de versão. Meu código 1.4 roda perfeitamente no Java 1.6.

Tenho experiência com C++. Trabalhei vários anos com ele, desenvolvi jogos na linguagem. É uma linguagem excelente e a maioria que reclama dela, ainda está trabalhando com o C++ de 1980. Nunca sequer ouviram falar das coisas “novas”, como RAII, Smart pointers ou da boost. Mas realmente, é uma linguagem mais difícil que o Java, e eu não recomendaria fazer aplicações web com ela, por exemplo. Mas, se for fazer uma aplicação desktop, e tiver que integrar um pouquinho mais com o SO, é uma excelente opção. No Java, vc não tem acesso ao SO, até pela própria proposta da plataforma. Ou seja, nada de interagir com direct3d, direct sound, controles, drivers de DVD, portas USB, scanners, webcams, etc…, etc…, etc… Mesmo que você use um binding, você sempre estará um passo atrás, e sempre correrá o risco daquele binding demorar muito, ou nunca ser atualizado. É diferente de recém comprar a última placa da NVDIA, baixar o SDK no site e já sair usando.

Fora que, se você um dia pretende entrar no mercado profissional de games, programar para qualquer console, terá que aprender C++. Para quem acha que as aplicações desktop estão fora de moda, considerem a indústria de video-games, só para terem certeza do quanto estão errados. Quem fala isso também desconsidera a maior parte das aplicações da indústria, que tem requisitos de tempo real, que não podem ser cobertos pelo Java e que estão muito longe de sequer se aproximar da web. E também desconsidera boa parte da área de pesquisa tecnológica. Todas áreas bem remuneradas e com grande abertura de contratações anualmente.

sergiotaborda

cawink:
mesmo com netbeans, todas classes visuais eu escrevo na mão, toda estruturação do gridbag, componentes, etc etc.

Por que isso?
O dia que você fizer algum refactor em um ambiente mais complexo, com milhoes de linhas, com aqueles forms nojetos por trás, talvez irá entender.

bom, o codigo só é nojento porque alguem o fez assim. Não é culpa da ferramenta ou da linguagem ou da plataforma.

Se vc estruturar seu codigo orientado a objetos vc não terá esse tipo de problemas. Ok, eu entendo que muito poucos sabem que têm que construir camadas acima do swing, mas isso não é culpa do swing e sim dessas pessoas que não aprenderam direito ( mais uma vez o problema de aprender sozinho em vez de aprender com quem sabe)

O .NET é orientado a RAD. Reparem que essa coisa de amarrar componentes gráficos ao banco é amadorismo. Cadê a separação em camadas ? O fato da plataforma ter este tipo de objeto - que não se encontram no java padrão - já leva as pessoas no caminho errado. Bons programadores OO , aliás, bons programadores sem mais, nunca fariam isto. Então o problema, sim é, como alguem disse ,rad vs não rad. .NET e todas as ferramentas da microsoft sempre foram RAD. mas RAD significa que é rápido de fazer, não de manter. Para ter um baixo custo de manutenção é preciso ter certas coisas como separação de camadas. E é possivel. Ainda mais facil com ports de algums layer-helpers como o NHibernate.

O netbeans é uma plataforma que suporta rad que sofre o mesmo problema que todas as ferramentas rad. No mundo java tem existem ferramentas rad,mas existe o bom e velho bloco de notas. Isso não é uma questão de ser programador duro de matar,mas que demostra que a plataforma é independente de ferramentas. Alguem usa .NET sem o VS ? aliás, tem como ?

Como o Viny comentou o .NET tem várias gambiarras e vários problemas de implementação e várias limitações porque é suportado pelo windows sobretudo na parte gráfica do windowsforms. O que o windows não pode fazer, o .NET não pode fazer.

Eu acho que este tipo de evento não serve para mais nada senão utilizar o nome do java para suportar o .NET. Se o nome do evento fosse : A Plataforma .NET nem metade das pessoas estaria lá.

como alguem já disse ,tb, essa historia de ficar indo e vindo nas duas plataformas é para quem não sabe programar direito ou, o que eu acho que é mais realista , não têm uma plataforma de aplicação e nem sabem o que é isso. ai tentam utilizar as plataformas .NET e java como plataforma de aplicação e vai tudo pró buraco… é uma pena que a mentalidade e prática dos desenvolvedores ainda seja desse nivel.

C

Trabalhei 10 anos desenvolvendo software na área de automação industrial, com Delphi, C, C++ e digo com toda certeza que aplicações Desktop estão muito longe de ter um final.
Existem aplicações que necessitam de um poder fogo que fogem da capacidade do java ou .net.
Quero ver alguém fazer um software em microcontrolador com 16K de memória interna em Java.

Vocês devem estar achando que não existe soluções em hardaware com tão pouca memória ? Mas podem te certeza que existe, e fazem miséria.

Hoje em dia utilizo o Java para fazer aplicações na área de gerência de projetos. O java tem ferramentas fantasticas e poderosas para essa finalidade, além de ser uma linguagem muito boa, de fácil compreensão e altamente profissional.

Logo, toda linguagem tem seu propósito para alguma solução ou ambiente.

ViniGodoy

A RAD do Asp.net (apesar de alguns problemas) é bastante elegante também. Existe separação de camadas, você liga o Table a DataViews (que são como os TableModels). Esses enxergam suas classes de negócio. Mais ou menos como o Swing faz.

Y

Eu trabalhei em apenas um projeto .NET com Windows Forms e gostei bastante, achei simples, as coisas podem ser bem divididas como disse o Vini, o Visual Studio, apesar de eu ainda preferir o eclipse, é bastante intuitivo.

Agora eu tenho uma duvida sobre .NET. Vale a pena investir nele para grandes aplicacoes web sabendo que o que o vai manter de pé no fim das contas é o Windows Server? Ou estou falando besteira?

Y

Na verdade foi uma pergunta generica. O fato de ter que rodar no Windows Server ja nao traz uma certa desvantagem?

ViniGodoy
marcosalex:
Uma dúvida, você disse que o Generics do C# é melhor implementado. Como é que é feito no C#?

No Java, os generics são um recurso de pré-compilação. No C#, são um recurso da linguagem.

Deixa eu dar um exemplo trivial. Em C# é possível criar um método genérico, para a construção de qualquer classe T que tenha um construtor default:

public static T construtor<T>() : where T() {
   return new T();
}
...

String x = construtor<String>();

Claro que esse exemplo, por si sí, não tem utilidade nenhuma, mas no Java não poder instanciar objetos do tipo genérico as vezes é um grande incomodo.

Outras coisas que são possíveis é testar que tipo tem T dentro de um método.
if (object is T) {   //is é equivalente ao instanceof

No caso dos generics, foi o preço que pagamos em Java por ter compatibilidade.

Marcio_Nogueira

Outro tópico java x .net, ninguém merece!

T

sergiotaborda:
thiagomont:
Só vou dizer uma coisa: a linguagem a ser escolhida não depende apenas de gostos do implementador ou de modismos, mas principalmente da característica da aplicação a ser desenvolvida.

O ponto é que esse argumento é pura charlatanice. Que características são essas que fazem a diferença ? O que é possivel em um que não é no outro que justifique a escolha ? E não estamos falando só das linguagens e sim das plataformas como um todo. Das soluções como um todo.

Primeiro ponto. Cuidado com suas palavras.

Segundo ponto: se a preocupação maior é a plataforma, então se o requisito impedir o uso de certa linguagem, o que fará? Devemos preocupar ocm o requisito, com o que o cliente quer!
Já tive casos de desenvolver aplicativos em que o cliente precisava que rodasse em linux (devido utilização de um servidor já existente) então não julgue um argumento sem antes ter a humildade de saber os motivos. Outros casos o cliente nos obrigou a usar uma linguagem ou um banco determinado (mesmo a equipe de desenvolvimento não concordando por ter um custo mais alto) e desenvolvemos com o que eles queriam (claro com tudo devidamente documentado que a decisão de plataforma foram deles).

Terceiro ponto: toda linguagem tem características que podem impedir o uso sim. Ah não? Usa cobol puro na Web então. Assembler web?. Ou quem sabe usar delphi para dispositivos móveis? Em .NET? Sim, podem existir limitações. Tenta usar .NET em um 486…vai lá!!! Como falei tudo depende dos seus requisitos, sejam eles funcionais ou não funcionais!

ts ts ts . . . incrível como as pessoas são tão simplistas.

Devido o baixo nível de algumas pessoas (disse algumas!!! a maioria está tendo uma discussão saudável) abandonarei este tópico.

sergiotaborda

thiagomont:
sergiotaborda:
thiagomont:
Só vou dizer uma coisa: a linguagem a ser escolhida não depende apenas de gostos do implementador ou de modismos, mas principalmente da característica da aplicação a ser desenvolvida.

O ponto é que esse argumento é pura charlatanice. Que características são essas que fazem a diferença ? O que é possivel em um que não é no outro que justifique a escolha ? E não estamos falando só das linguagens e sim das plataformas como um todo. Das soluções como um todo.

Segundo ponto: se a preocupação maior é a plataforma, então se o requisito impedir o uso de certa linguagem, o que fará? Devemos preocupar ocm o requisito, com o que o cliente quer!
Já tive casos de desenvolver aplicativos em que o cliente precisava que rodasse em linux (devido utilização de um servidor já existente) então não julgue um argumento sem antes ter a humildade de saber os motivos. Outros casos o cliente nos obrigou a usar uma linguagem ou um banco determinado (mesmo a equipe de desenvolvimento não concordando por ter um custo mais alto) e desenvolvemos com o que eles queriam (claro com tudo devidamente documentado que a decisão de plataforma foram deles).

Nada disso tem a haver com o assunto.
O assunto é : dizem que .NET é melhor para certos fins que java e java para outros. Que a “linguagem” tem caracteristicas que permitem fazer software que a outra não tem e portanto é impeditivo usar a que não tem.

O pergunta é muito simples: enumere essas caracteristicas e fins que justificam esse tipo de frase.

Enumere as do .NET e do Java (que são as que estão em discussão)
Não basta dizer que existe, demonstre dando exemplos.

Só para completar, quando o cliente exige uma tecnologia como requisito então, obviamente não ha escolha nenhuma a ser feita
e portanto não ha necessidade de trade-off e por conseguinte não é preciso conhecer as diferenças entre as plataformas. Nesse cenário, conhecer as plataformas é totalmente irrelevante. Assim como é irrelevante para a conversa deste tópico.

Se vc está tentando decidir entre .NET e Java assume-se que vc pode escolher.

ViniGodoy

Uma característica do .net, que pode pesar muito é que ele tem boa integração com código nativo. Se sua aplicação exige esse tipo de coisa, mas você também não quer se degladiar com a complexidade do C++ 100% do tempo, será muito mais fácil faze-la em C# do que em Java.

O JNI torna isso possível, mas acredito que ele tenha sido intencionalmente feito complexo justamente para que evitemos o seu uso.

sergiotaborda

ViniGodoy:
Uma característica do .net, que pode pesar muito é que ele tem boa integração com código nativo. Se sua aplicação exige esse tipo de coisa, mas você também não quer se degladiar com a complexidade do C++ 100% do tempo, será muito mais fácil faze-la em C# do que em Java.

O JNI torna isso possível, mas acredito que ele tenha sido intencionalmente feito complexo justamente para que evitemos o seu uso.

O problema da JNI é que se não for usada corretamente, pode facilmente tornar a sua aplicação não portável.
O JNI - espante-se - serve para tornar a sua aplicação portável pois permite que uma feature seja implementada de forma dependente,mas usada de forma independente (aliás é o principio da propria JVM).
O JNA é um passo à frente em que vc integra com componentes nativos em vez de codigo nativo e isso é muito ,muito, melhor.

Sim, se eu precisar de algo nativo do windows tlv usaria .NET. O talvez é porque se está no windows, provavelmente está acessivel pelos DLL do windows diretamente sem passar pelo .NET. Ou seja, mesmo nesse caso o .NET seria opcional. Aliás não vejo algo nativo ao .NET já que o .NET é montado em cima do windows.

Outra forma de resolver, hoje comum, é usar um agente. Ou seja, um programa em outra linguagem que faz um único serviço para a aplicação mae escrita em java. O protocolo pode ser complexo ou um simples o quanto necessário.

J

O que vou dizer aqui é referente às linguagens, e não á plataforma, e com base na experiência que venho tendo.

C# é uma linguagem muito boa, senão, a melhor que já usei(é um gosto pessoal), pelos seguintes motivos:

*Como o vini citou, generics em c# funciona perfeitamente;

*C# permite sobrecarga de operadores.

*C# tem ampla integração com o hardware(isso não tem nada haver com portabilidade)

*C# é ECMA;

*C# me permite operações com ponteiros, ou coleta de lixo automática(Poder de escolha)

*C# possui delegates;

*C# possui structs, o que o torna ótimo para desenvolvimento de protocolos de comunicação. (structs são alocadas na pilha, então posso transferir uma struct inteira pela rede. Com uma clesse, isso não é possivel).

*C# possui reflection

*C# possui ponteiros seguros como c++ (IntPtr), e várias classes que permitem gerenciar esse tipo de dado com facilidade(Marshal)

*C# possui tipos unsigned(não sinalizados), que também são importantes no quesito desenvolvimento de protocolos de comunicação entre plataformas.

Ao meu ver, java peca apenas e, algumas restrições que a linguagem impõe:

*Ausência de uma boa integração com hardware e multimedia;

*Gerenciamento de ponteiros;

*Suporte a tipos não sinalizados (unsigned);

No mais, as melhores ferramentas são java(A maioria opensource e gratuita).

sergiotaborda

Apenas enumerar diferença também não adianta. Será que é tão dificil entender o objetivo da coisa.
O objetivo é enumerar “vantagem” ou “desvantagens”…

juliocbq:
O que vou dizer aqui é referente às linguagens, e não á plataforma, e com base na experiência que venho tendo.

C# é uma linguagem muito boa, senão, a melhor que já usei(é um gosto pessoal), pelos seguintes motivos:

*Como o vini citou, generics em c# funciona perfeitamente;
*C# permite sobrecarga de operadores.

Em java simplesmente não ha necessidade de instanceOf T e t.newInstance() porque em java generics é um tipo de assinatura forte e não um mecanismo de template como na familia C. Independentemente disso, não ha aplicação que seja impedida por essa diferença. O mesmo com a sobrecarga. Que uso vc fez disso que não , não podendo fazer em java o impediria de usar java ?

Essa não entendi…

hardly an argument… java é JCP , e dai ?

E isso é bom ? O que vc consegui fazer com isso que não consegue com java ? (memory leak ? lol)

Ponteiros seguros, inseguros, com CG , sem CG … parece que o problema foi agradar a gregos e troianos…

O que isso lhe permite fazer que é impossivel em java e impeditivo de fazer as aplicações ?
Em java eventos são tratados como simples chamadas. Não ha necessidade de delegates “escondidos”.
Tudo bem que delegates não serve só para isso , mas então… o que a falta deles impossibilita na prática?

Tudo bem que classes não ficam no stack ( em java real time algumas ficam… ) mas quanto a rede não ha diferença. RMI serve exactamente para isso.

bom, isso não é diferença. Java tb. Não só isso como bytecode rewrite (veja a classe Proxy do java)

raios partam… java tb tem tipo unsigned. chama-se char.
O que vc quer dizer é que “byte em java não tem a mesma definição que byte em C” ok, e porque deveria ter ?
Afinal bytes podem ser bigendian e small e vc não quer um tipo diferente para cada…

O protocolo de comunicação não ser implementado com “unsigned-byte” muda alguma coisa ? Não. várias bibliotecas existem que trabalham com todos os protocolos binários. Isto tb não é uma razão que impossibilite o uso de java para qualquer aplicação que utilize um protocolo , ou leitura de arquivos binários. Se isso é um grande problema vc pode criar uma API para trabalhar com esses tipos usando wrappers ou convenções sobre o byte do java (que é o que faz a API do google)

A plataforma java é uma plataforma virtual, isto significa que está acima do OS. Não se mistura promiscuamente com o OS
e nunca acessa coisa abaixo do OS. hardware é abaixo do OS.

Não se pode esperar que java tenha integração com hardware (seja lá o que isso signifique) espera-se que ela tenha integração como o OS. Além disso bibliotecas/software que corram no mesmo OS ( como decoders e encoders)

O máximo que pode ser dito é que a integração como OS e essas bibliotecas é fraco (sic) como openGL e directX. Mas esperar comunicação com o hardware é absurdo, isso nunca será feito. Duvido até que o .NET faça.

Tudo bem, entendemos que .NET deve ser usado se vc quer ficar brincando com ponteiros. Essa é a unica diferença relevante que pode trazer alguma vantagem/ desvantagem. Fora isso , é tudo sintax sugar.

Claro que agora eu perguntaria para que raios preciso controlar os ponteiros manualmente e vcs me responderiam que para aplicações de tempo real como jogos. humm… então como é possivel ter servidores e API de jogos em java (como o darkstar, por exemplo) ou mecanismo de desenho como o Java 3D e o jmonkey engine?

ViniGodoy

Discordo, em Java não existe essa possibilidade, mas a necessidade existe sim. Tanto que uma abordagem comum é contornar isso com reflection.

Em C# os generics também representam assinatura forte, e não templates. Mas não se pode negar que as duas construções poderiam são sintaticamente fortes, mesmo no conceito do generics, e só não são possíveis no java pela implementação escolhida, não por uma limitação do conceito.

Não inviabiliza nada. Mas não deixa de ser um recurso interessante. Pela sua linha de argumentação, poderíamos dizer que generics são inúteis. Afinal, não há nada que não se possa fazer sem eles (pelo menos na forma que foram implementados no Java).

Java possui apenas um único tipo unsigned, que serve para representar caracteres, não números. E isso, para quem programa protocolos com outras aplicações é realmente um pé no saco. Tente interoperar com qualquer linguagem que suporte os unsigned num protocolo binário, que você vai sentir o inferno.

E, note, que esse protocolo pode ter sido criado pelo fabricante de um harware ou do software terceiro, que não estava nem um pouco com a falta do unsigned no Java. Ainda acho que as classes de comunicação do Java tinham que ter, no mínimo, métodos que fizessem a promoção automática dos tipos de dados vindos da rede.

E se afetam, afetam sim. Já tentou ler um unsigned byte? Você tem que lê-lo num short. E tomar cuidado para fazer um & 0xFF para que o primeiro bit não seja interpretado como sinal. Além disso, é muito ruim trabalhar com o tipo unsigned long, muito usado para timestamps.

Pelo menos as classes que estão na “borda” da rede, deveriam garantir uma conversão simples e rápida para tipos comumente usados fora do Java. A classe ByteBuffer incluiu endianess, mas ficou faltando tratar o unsigned, na minha opinião. (Não estou falando em adicionar tipos novos na linguagem, mas simplesmente um método que me permita ler 2 bytes num int, 4 bytes num long, ou 1 byte num short, 8 bytes num BigInteger, e vice-versa, sem que haja interpretação de sinal).


Não se pode esperar que java tenha integração com hardware (seja lá o que isso signifique) espera-se que ela tenha integração como o OS. Além disso bibliotecas/software que corram no mesmo OS ( como decoders e encoders)

Concordo. Mas isso só significa que é uma limitação “planejada” da linguagem. Mas ainda assim, uma limitação. E isso a torna desinteressante em muitos casos.

APIs como o JMonkey existem pq fazem binding, usando JNI, ou seja, saem do escopo do Java. Não sei detalhes do projeto DarkStar, mas no caso de jogos de rede, a latência é um problema sério, e contorna-se com xunxos gráficos.

lelodois

Ser ou não ser?

R

MaikoID:
Não considero linguagem de programação, linguagem presa a uma única plataforma, isso pra mim é um bash orientado a objetos nem de longe é uma linguagem de programação.

A linguagem que mais tem mercado é C/C++ e que tem mais crescido para dispositivos embarcados é C/C++ ou estou errado? Dizer que as duas mais disputadas linguagens no mercado é Java e .Net é no mínimo tosco…

Abraço.

Pensando assim você vai longe… :?

J

Em java simplesmente não ha necessidade de instanceOf T e t.newInstance() porque em java generics é um tipo de assinatura forte e não um mecanismo de template como na familia C. Independentemente disso, não ha aplicação que seja impedida por essa diferença. O mesmo com a sobrecarga. Que uso vc fez disso que não , não podendo fazer em java o impediria de usar java ?

Vou resumir isso em vantagens que o c# pode ter em relação ao java.

*Sobrecarga de Operadores- Flexibilidade. Se eu não me engano, aqui no guj tem um tópico sobre isso.
ex:
http://www.arnaut.eti.br/op/CPPAI06.htm

*Ponteiros - Opção de se usar ou não coletor de lixo, em partes de código. Isso me dá performance para operações com imagens digitais. Se fizer um benchmark com BufferdImage, e um Bitmap do winforms, usando unsafe, vai ver que a diferença de velocidade de processamento é grande.
Memory leaks em java são tão comuns como em c ou outra linguagem. A diferença é que as ferramentas para lidar com isso são muito fortes em java.
Ex: VisualVM, Profiler;

*Structs e tipos unsigned- Não preciso usar nenhuma api para implementar um protocolo de comunicação. Novamente ganho performance.

*Tipos unsigned: Tipos unsigned são subtipos dos tipos primitivos. Em java, o char pode ser unsigned, mas o integer não, nem o long, nem nenhum. Posso utilizar o intervalo de um inteiro negativo, adicionando-o ao positivo e aumentando a sua capacidade, com a palavra chave unsigned.

*Multimedia, Hardware - Directx e Opengl são recursos ligados diretamente ao hardware. Java 3d é somente um mapeamento sobre direct3d ou opengl, e você pode escolher qual usar. Esse mapeamento é somente um jni.

Agora, cada trabalho pede um tipo de funcionalidade. Citei essas, porque (no meu caso) uso constantemente.

MaikoID

Roberto Porto:

Pensando assim você vai longe… :?

Porque uai? Linguagem de programação obrigatoriamente tem de ser independente do SO, pessoal acostumado com venda casada não costuma pensar muito em portabilidade e livre direito de escolha…

Bash = C# = Funciona só numa plataforma.

Como OO é um conceito, acredito que ambas “linguagens” são equivalentes em bash é possíve implementar o conceito de OO com alto grau de dificuldade adminito, rsrs.

Sobre a descrição tosca que segue no tópico: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Czão rules, C# tem 0,5% a mais de uso que Python, então nem me venha falar sobre as “Linaguagens mais usadas no mercado” que não passa de besteira e das brabas…

J

MaikoID:
Roberto Porto:

Pensando assim você vai longe… :?

Porque uai? Linguagem de programação obrigatoriamente tem de ser independente do SO, pessoal acostumado com venda casada não costuma pensar muito em portabilidade e livre direito de escolha…

Bash = C# = Funciona só numa plataforma.

Como OO é um conceito, acredito que ambas “linguagens” são equivalentes em bash é possíve implementar o conceito de OO com alto grau de dificuldade adminito, rsrs.

Sobre a descrição tosca que segue no tópico: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Czão rules, C# tem 0,5% a mais de uso que Python, então nem me venha falar sobre as “Linaguagens mais usadas no mercado” que não passa de besteira e das brabas…

Oo - C# roda em várias plataformas, inclusive ipods, nintendos wii, powerpcs, arms.
Não entendi o bash…

Só complementando…o mono tem um compilador nativo, de c#, para todas essas plataformas.

mvargens

Olha só. Na época do VB6 e Delphi, todo mundo dizia que Delphi era melhor. Conhecendo o VB6 acredito que era mesmo, mas não foi suficiente para fazer ele dominar o mercado. Na época do ASP (sem o .) o PHP já vinha fazendo sucesso. Hoje vemos especificações java que são ignoradas pelo mercado, e ferramentas que vão até contra as ideias das especificações, serem usadas em massa. Estou usando NetBeans em um projeto pessoal. Até o momento senti falta de pouca coisa comparando com o Eclipse. Algumas até achei melhor, mas o Eclipse domina o mercado com folga, aliás li que existe uma IDE melhor que o Eclipse, mas é paga. Mas quase não é usada quando comparada as anteriores.
Trabalhei em um banco grande com java para web e o sistema sofria constantes ataques da equipe interna do banco para transforma-lo em ASP(sem o .). Durantes anos o java resistiu por ter créditos quanto a segurança, e como o Banco todo era Microsoft, eu ficava até abismado com a resistência, que convenhamos, era merecida. Quando saio .Net o java não resistiu e o sistema foi todo convertido. A empresa que eu trabalhava foi toda convertida também, quando chegou a minha vez de me converter eu sai. Na maioria das vezes não importa muito a linguagem a ser usada. A decisão é estrategicamente voltada para o negócio da empresa como um todo. E negócio envolve parcerias. Alguém já trabalhou com BPM aqui? Se usar o Aqualogic, vai automaticamente usar o WebLogic. E se usa WebLogic e quer usar BPM, não vão deixar vc enfiar um JBoss para rodar junto. Vai rodar no WebLogic e vai ter que ser Aqualogic porque ambos são da BEA. E por ai vai. O que realmente torna o .Net atrativo é a gama de parceiros e clientes que a Microsoft tem. Existem muitos projetos interessantes em .Net do ponto de vista de negócio e as vezes para java o projeto é um porre mesmo usando pattern e tecnologia de ponta, por causa do parceiro. Para mim não é Java x .Net, é Microsoft x o Resto. E me desculpe quem se ofender, eu não visto camisa de empresa nenhuma mas é assim que vejo o mercado. A Microsoft, seja la o que ela fizer, se for pelo menos útil, vai ser bastante usado, mas dificilmente vai ter a mesma qualidade dos concorrentes.
E quem disser que é mais produtivo usar JTable do Swing ao invés do DataGrid do VB6 ta de brincadeira. Só o fato e ter que implementar o DataModel já acaba com essa afirmação. Mas concordo que VB6 é um lixo e a Microsoft não matou ele a toa. O Swing é considerado uma obra de arte OO por muita gente, mas é devido sua abstração, ou seja, muita coisa tem que ser implementada. E DLL, OCX e .JAR acabaram virando tudo a mesma coisa. No caso do VB se vc instalar ele inteiro na maquina do cliente :shock: e depois remover ele, os erros de ocx simplesmente desaparecem. No JBoss ainda não consegui fazer isso. :mrgreen: hehehe e nem tentei. Mas mesmo assim ainda prefiro o java, pela sua transparência, portabilidade e padronização, isso o .Net não tem.

MaikoID

juliocbq:

Oo - C# roda em várias plataformas, inclusive ipods, nintendos wii, powerpcs, arms.
Não entendi o bash…

Só complementando…o mono tem um compilador nativo, de c#, para todas essas plataformas.

Só roda em Windows-like não é?

Sim existe o mono que é cross plataform, mas até hoje não vi uma aplicação desenvolvida nele (com certeza deve existir) e seu “framework” praticamente é reescrito a cada versão, se isso for cross-plataform eu desacarto, obrigado.

Marcio_Nogueira

Porém o Mono tem que amadurecer muito para posibilitar o desenvolvimento de aplicações de forma decente, por que do jeito que está só serve mesmo para fazer o Hello World.

J

MaikoID:
juliocbq:

Oo - C# roda em várias plataformas, inclusive ipods, nintendos wii, powerpcs, arms.
Não entendi o bash…

Só complementando…o mono tem um compilador nativo, de c#, para todas essas plataformas.

Só roda em Windows-like não é?

Sim existe o mono que é cross plataform, mas até hoje não vi uma aplicação desenvolvida nele (com certeza deve existir) e seu “framework” praticamente é reescrito a cada versão, se isso for cross-plataform eu desacarto, obrigado.

Dá uma olhada nisso. É usada para desenvolver filmes em holywood, e jogos para a maioria dos consoles, como o n wii e e ps3. Desenvolvida com mono.

Ao meu entender, o único problema é sobre manter a compatibilidade com winforms. Mas por mim, usaria somente o gtk mesmo, que é muito estável.

J

Olha esse hello word.

J

marcosalex:
Pra quem acredita que uma vantagem do .NET é ser um padrão ECMA:
http://mono-nono.com/bbpress/topic/detailed-count-of-net-35-covered-by-ecma-335

É a mesma coisa do OOXML com o ISO: nem o Office 2007 segue o padrão que eles remeteram pro órgão.

marcos, ECMA é a linguagem c#. Ela não tem nada haver com dotnet.
Se a jvm suportasse c#, eu passaria a usá-la, ao invés do dotnet.
A MS não repeita nem o padrão ISO, para c++. Mas não preciso dela pra codificar em c#.

ViniGodoy

juliocbq:
marcos, ECMA é a linguagem c#. Ela não tem nada haver com dotnet.
Se a jvm suportasse c#, eu passaria a usá-la, ao invés do dotnet.

Olha, confesso que ficaria tentado também. Só sinto falta realmente da implementação de interfaces anônimas privadas inline. Dá para contornar com os delegates anônimos, mas não é tão poderoso, já que cada delegate representa uma única função.

ViniGodoy

marcosalex:
Não precisa pra codificar em C#, mas então não pode alegar que a especificação da linguagem está coberta pelo padrão, que é o que a MS e os defensores do C# e .NET alegam.

Nem 20% dele é compatível com a especificação “oficial” do ECMA. Ou seja, fail!

Nesse caso, é bom não chamar o Java de ISO também.
Afinal, a API do Java não é ISO…

J

marcosalex:
juliocbq:

marcos, ECMA é a linguagem c#. Ela não tem nada haver com dotnet.
Se a jvm suportasse c#, eu passaria a usá-la, ao invés do dotnet.
A MS não repeita nem o padrão ISO, para c++. Mas não preciso dela pra codificar em c#.

Não precisa pra codificar em C#, mas então não pode alegar que a especificação da linguagem está coberta pelo padrão, que é o que a MS e os defensores do C# e .NET alegam.

Nem 20% dele é compatível com a especificação “oficial” do ECMA. Ou seja, fail!

O mono cobre a especificação em 100%. Se a microsoft não padroniza ISO nem ECMA é opção e problema dela. Não me afeta em nada se eu tenho poder de escolha.
Eu poderia muito bem desenvolver uma jvm e não seguir o padrão. É tudo uma questão de opção.

sergiotaborda
ViniGodoy:
sergiotaborda:
Em java simplesmente não ha necessidade de instanceOf T e t.newInstance() porque em java generics é um tipo de assinatura forte e não um mecanismo de template como na familia C. Independentemente disso, não ha aplicação que seja impedida por essa diferença. O mesmo com a sobrecarga. Que uso vc fez disso que não , não podendo fazer em java o impediria de usar java ?

Discordo, em Java não existe essa possibilidade, mas a necessidade existe sim. Tanto que uma abordagem comum é contornar isso com reflection.

Mostre exemplos. Da minha experiencia quando um programador quer fazer isso é porque a sua modelagem é falha.

repare no método

public <T> T newInstance(){

}

Mesmo que não houvesse erasure não é possivel saber quem é T porque se trata de um método puramente co-variante.
Para este método ter acesso a algum T real o T precisa ser definido na classe

public class Alguma(){

public T newInstance(){

}

}

Agora sim, porque em algum lugar terei que escrever

Alguma<X> algumaDeX = new Alguma<X>();

Se vc fizer isto, vc terá acesso a X via reflection dentro de newIntance.
não ha necessidade de t.newinstance()

instanceofT é absurdo porque se T é genérico vc não deveria estar tentando saber que tipo ele é.

Em C# os generics também representam assinatura forte, e não templates. Mas não se pode negar que as duas construções poderiam são sintaticamente fortes, mesmo no conceito do generics, e só não são possíveis no java pela implementação escolhida, não por uma limitação do conceito.

não. O ponto não é esse. O ponto é que na prática , mesmo sem essa feature maluca, não ha limitação.

sergiotaborda:
O que isso lhe permite fazer que é impossivel em java e impeditivo de fazer as aplicações ? Em java eventos são tratados como simples chamadas. Não ha necessidade de delegates "escondidos". Tudo bem que delegates não serve só para isso , mas então... o que a falta deles impossibilita na prática?

Não inviabiliza nada. Mas não deixa de ser um recurso interessante. Pela sua linha de argumentação, poderíamos dizer que generics são inúteis. Afinal, não há nada que não se possa fazer sem eles (pelo menos na forma que foram implementados no Java).

Sim. generics servem apenas para assinar fortemente. Só.
Se não ha limitações impostas pela diferença de implementação, este ponto não é portanto relevante à discussão.

raios partam... java tb tem tipo unsigned. chama-se char. O que vc quer dizer é que "byte em java não tem a mesma definição que byte em C" ok, e porque deveria ter ? Afinal bytes podem ser bigendian e small e vc não quer um tipo diferente para cada...

O protocolo de comunicação não ser implementado com "unsigned-byte" muda alguma coisa ? Não. várias bibliotecas existem que trabalham com todos os protocolos binários. Isto tb não é uma razão que impossibilite o uso de java para qualquer aplicação que utilize um protocolo , ou leitura de arquivos binários. Se isso é um grande problema vc pode criar uma API para trabalhar com esses tipos usando wrappers ou convenções sobre o byte do java (que é o que faz a API do google)

Java possui apenas um único tipo unsigned, que serve para representar caracteres, não números.

Isso é um missconception comum. char , embora o nome, é um numero. O que acontece é que existem os literais de char que o java mapeia pela tabela UTF-16. São os literais, não o tipo, que representam caracteres. vc pode escrever char c = 3 sem problemas
e pode fazer operações ariméticas sem problemas (bom, como os mesmo problemas que com os outros tipos numericos diferentes de int)

char pode representar o que vc quiser. Acontece apenas que o java lhe dá essa canja de poder usar para representar caracteres (em um certo encoding). Mas isso não é de longe nem de perto limitativo.

E, note, que esse protocolo pode ter sido criado pelo fabricante de um harware ou do software terceiro, que não estava nem um pouco com a falta do unsigned no Java. Ainda acho que as classes de comunicação do Java tinham que ter, no mínimo, métodos que fizessem a promoção automática dos tipos de dados vindos da rede.

Se deveria haver um classe, então escreva-a. Essa coisa de esperar que a plataforma lhe dê tudo não é razão.
Se deveria haver um tipo diferente, já argumentei.
aliás java explicitamente não tem unsigned por causa do critério de segurança (pela mesma razão que não tem ponteiros e destrutores e outras coisas assim.... afinal java não é da familia C)

E se afetam, afetam sim. Já tentou ler um unsigned byte?

Já. Em JME para manipular imagens gif e tiff.
Eu fiz um stream especial que tratava os bytes. Não tive problemas.
Eu acho esse tipo de adaptador normal. Se houve unsigned seria muito mais complexo. Java é OO , ter
um vasto leque de tipos primitivos não é o objetivo.

E como já concluimos, isso não impede nada. Portanto, tb não é razão para preferir uma plataforma à outra.

Não se pode esperar que java tenha integração com hardware (seja lá o que isso signifique) espera-se que ela tenha integração como o OS. Além disso bibliotecas/software que corram no mesmo OS ( como decoders e encoders)

Concordo. Mas isso só significa que é uma limitação "planejada" da linguagem. Mas ainda assim, uma limitação. E isso a torna desinteressante em muitos casos.

APIs como o JMonkey existem pq fazem binding, usando JNI, ou seja, saem do escopo do Java. Não sei detalhes do projeto DarkStar, mas no caso de jogos de rede, a latência é um problema sério, e contorna-se com xunxos gráficos.

Mas se fosse impossível ter acesso a esses recursos , coisas como o JMonkey seriam impossíveis. O ponto é que a plataforma Java sim pode ter acessos nativos do nivel que vc quiser não impossibilitando nenhum projeto ou obrigando a escolher outra plataforma.

as diferenças sintáticas e semânticas das linguagens são detalhes , firulas. O que interessa para um arquiteto é a capacidade de responder às qualidades esperadas. E isso é a plataforma como um todo que oferece. Indo, até, além das fronteiras dos SDKs ...

J
ViniGodoy:
juliocbq:
marcos, ECMA é a linguagem c#. Ela não tem nada haver com dotnet. Se a jvm suportasse c#, eu passaria a usá-la, ao invés do dotnet.

Olha, confesso que ficaria tentado também. Só sinto falta realmente da implementação de interfaces anônimas privadas inline. Dá para contornar com os delegates anônimos, mas não é tão poderoso, já que cada delegate representa uma única função.


Só pelo fato de poder usar sobrecarga de operadores. Criar uma classe representasse uma matriz, e simplesmente:

byte byte[3][3] = {1,1,1,1,1,1,1,1,1};

Matrix a = new Matrix(bytes);
Matrix b = new Matrix(bytes);
Matrix c = a + b;

Imagina isso, extendendo uma classe para se trabalhar com imagens digitais, ou mesmo protocolos.

socket(&quot;192.168.1.2:80&quot;);
socket &lt;&lt; byte;

Realmente só faltava estar na jvm.

J

marcosalex:
juliocbq:
marcosalex:

Não precisa pra codificar em C#, mas então não pode alegar que a especificação da linguagem está coberta pelo padrão, que é o que a MS e os defensores do C# e .NET alegam.

Nem 20% dele é compatível com a especificação “oficial” do ECMA. Ou seja, fail!

O mono cobre a especificação em 100%. Se a microsoft não padroniza ISO nem ECMA é opção e problema dela. Não me afeta em nada se eu tenho poder de escolha.
Eu poderia muito bem desenvolver uma jvm e não seguir o padrão. É tudo uma questão de opção.

É óbvio. Não estou dizendo que você é obrigado ou que deveria seguir ou que o melhor é seguir.

Só estou dizendo que se você NÃO segue, jamais diga que segue ou que a sua vantagem é seguir o padrão porque você está mentindo.

Mas o mono segue, então porque eu estaria mentindo?

J

marcosalex:
juliocbq:
marcosalex:

É óbvio. Não estou dizendo que você é obrigado ou que deveria seguir ou que o melhor é seguir.

Só estou dizendo que se você NÃO segue, jamais diga que segue ou que a sua vantagem é seguir o padrão porque você está mentindo.

Mas o mono segue, então porque eu estaria mentindo?

Quem mente é a MS.

Mas o tópico é sobre Java e .NET, não sobre Java x Mono. Uma vez que o Mono está sempre correndo atrás do .NET e até hoje não cobriu nem a versão 2.0 por completo, embora tenha algo da 3.0 e da 3.5.

Mas mesmo assim tenho minhas dúvidas sobre se ele cobre 100% do ECMA.

Sim o tópico é sobre .net. Mas o que eu quero dizer é a respeito da linguagem c# que não tem nada haver com isso.
E o objetivo do mono não é cobrir o winforms em 100% porque ele é patente da MS. O Objetivo é um framework para gtk#.

Agora que a linguagem c# é muito boa, isso é mesmo, sem sombra de dúvidas.

ViniGodoy

Não é absurdo, porque T representa um tipo. Nesse caso, deveria ser possível testa-lo. Type erasure vem com limitações e nega-las é agir com ignorância.

Não poder testa-lo é só uma dessas limitações. Da mesma forma, construir um T não é absurdo porque T pode ser construído.

Ainda não há solução para se construir T, ou se testar se um determinado objeto é do tipo de T, sem apelar para a reflection. E reflexão, apesar de remover a limitação, costuma a ser insegura e só verificada em runtime.

Você também não pode testar se uma lista é instanceof List ou instanceof List. Afinal, para o Java, ambas as listas representam exatamente o mesmo tipo. Você não pode testar dentro de seu código que tipo tem T.

Todas são limitações. São limitações terríveis? Não. Mas podem te incomodar, dependendo do que você esteja fazendo.

Não concordo que seja irrelevante. Não está sendo comparado somente o que as linguagens são capazes, mas como. Se for comparar só o que podem fazer, então, assembly será tão bom quanto Java.

Isso é um missconception comum. char , embora o nome, é um numero. O que acontece é que existem os literais de char que o java mapeia pela tabela UTF-16. São os literais, não o tipo, que representam caracteres. vc pode escrever char c = 3 sem problemas
e pode fazer operações ariméticas sem problemas (bom, como os mesmo problemas que com os outros tipos numericos diferentes de int)
char pode representar o que vc quiser. Acontece apenas que o java lhe dá essa canja de poder usar para representar caracteres (em um certo encoding). Mas isso não é de longe nem de perto limitativo.

Imprima um char. O que aparece? Um número? Por que o Java faz a conversão implícita?

O tipo char representa um caracter, codificado na forma de um número. Ele pode ser convertido para uma representação numérica, mas ele não é um número. A definição de char, dada pela sun, é:

Trata-lo como um número é só uma forma de simplificar diversas operações, mas é, na prática, uma violação do conceito do tipo char em si. É lidar com a sua forma bruta, o que não deveria ser feito. É como tratar o String como um array de números, ou dizer que o um int é formado por 4 bytes de -127 até 128. Tudo isso é verdade, mas não é o que o tipo foi criado para representar.

Ele foi criado para tratar caracteres. A “canja” que o Java dá é justamente ao contrário: permitir que ele seja tratado como um número.

Se deveria haver um classe, então escreva-a. Essa coisa de esperar que a plataforma lhe dê tudo não é razão.
Se deveria haver um tipo diferente, já argumentei.

É razão sim, já que estamos comparando duas plataformas. Por mim, isso é um recurso muito básico, e qualquer API de classes que se propusesse estar na “borda” entre duas aplicações deveria tratar esse detalhe. Eu já escrevi essa classe, como provavelmente milhares de programadores que já precisaram fazer isso, em operações de I/O por aí.

Aliás, isso já foi solicitado para a Sun também.

C# suporta o tipo unsigned, e não tem esses problemas. O Java não trata o tipo primitivo unsigned long e, se você precisar dele, terá que recorrer a operações matemáticas lentas, na classe BigInteger. Específico? Talvez, mas uma limitação do mesmo jeito.

Finalmente, é fácil usar o argumento de “implemente você”. Nesse caso, eu deveria dizer que o LINQ não pode ser levado em conta, pq poderia ser implementado em Java? Acho que não… é um recurso importante, que está na API padrão da plataforma .net.

Usando o argumento de “implemente você”, você simplesmente abre mão de comparar as APIs padrão, já que, por definição, tudo o que está lá poderia ser implementado na linguagem.

Desculpa para boi dormir. Tipos com sinal não são inseguros. Se quer segurança, você teria que ter formas de definir ranges de maneira geral.

Esses recursos são implementados através de C, não de Java. Fora que é um processo lento, difícil e extremamente sujeito a erros. Um driver JNI se torna uma implementação complexa e insegura.

Em C#, o código fica limpo, elegante e facilmente integrado. O que acaba gerando um número de bindings maior e menos sujeito a erros. Não se pode negar que é uma vantagem sobre o Java. Isso é, se você não considerar que o programador é idiota, e que só pq esse recurso é mais fácil por lá, eles vão sair usando a torto e a direta. Aliás, o recurso é fácil, mas continua não sendo trivial, e na prática, não está sendo usado indiscriminadamente pela comunidade C#.

Nem sempre, muitas diferenças sintáticas podem evitar erros, ou tornar o código consideravelmente mais legível. Admito que elas podem ser evitadas, mas uma linguagem poderia só ter o comando “while” por exemplo, e não ter for nem for each. Mas não se pode negar que ficou mais fácil e agradável programar em Java depois do for…each e, de quebra, essa instrução evitou alguns erros comuns.

sergiotaborda

Não é absurdo, porque T representa um tipo. Nesse caso, deveria ser possível testa-lo. Type erasure vem com limitações e nega-las é agir com ignorância.

Não poder testa-lo é só uma dessas limitações. Da mesma forma, construir um T não é absurdo porque T pode ser construído.

Na prática esses recursos que vc identifica não impedem a criação de aplicações de um certo tipo.
O seu argumento virou então que em .NET , com C# (atenção ao detalhe de comparar as linguagens, porque em VB não ha signed byte… e o argumento ao contrário)… algumas aplicações podem ser feitas mais depressa.

Que tipo de aplicações são essas que podem ser desenvolvidas mais depressa ?
Até agora duas areas : perto do hardware e protocolos , e windows forms

Ok. Java realmente não é para hardware e protocolos - embora como vimos não é impossivel - já que uma coisa que pode fazer com .NET é DLL - que é algo mais de intra - e forms são para todos os OS por default o que significa que certas regras tem que ser seguidas.

Otimo. Vc faz esse tipo de coisa muito rapidamente (segundo vc mais depressa e com menos problemas que se fosse em java). Ok.
Agora vc quer utilizar essa vantagem para competir com o cara que, como eu, usaria java, mesmo sendo mais “lento”.
Vc vende o seu sistema para empresas que usam a plataforma windows. E eu vendo para quem usa a plataforma windows e as outras.

Vc acha que é o trade-off de velocidade/facilidade por portabilidade compensa ?
Ok, cada caso é um caso, mas a menos que haja exemplos concretos de estudos que foram feitos para uma aplicação X e se provou que .NET teria maior ROI a longo prazo é difícil entender como Y porcento do mercado é maior que Y+Z do mercado.

Os meus pontos, que ainda não refutaram são:

  • detalhes da linguagem são detalhes. Não impedem nada ou tornam nada mais possível que antes. No máximo dão velocidade (RAD) mas não são impedimentos.
  • a velocidade obtida por esses meios não compensa a longo prazo, pelo que, mesmo sendo mais RAD não é automáticamente uma boa escolha devido ao OS lock-in já que uma aplicação java nunca ficará obsuleta. Nunca terá que ser re-escrita quando a versão mudar. E isso, mesmo considerando apenas o windows (.NET vs java no windows apenas) ainda é uma vantagem estrondosa que mata qualquer uma vantagem de velocidade.

Ok, agora, se vc faz software de vida curta, sim. Ai vale a pena usar o .NET. Aplicações que são escritas para durar um ano ou dois.
Mas, na boa, fazer aplicações assim é se aproveitar dos clientes. Pois uma das qualidades dos sistemas é a longividade. se tem data para morrer, de que serviu o investimento ? O ROI para a empresa que faz o software é alto e o cliente que se f…
Não é um tipo de politica profissional que eu entendo nem pratico e tlv por isso não use o .NET… eu entendo que mercadologicamente falando existam pessoas usando dessa forma, não os censuro, mas não me venham dizer que .NET é melhor que Java. Ele é para um nicho. java é para qualquer coisa.

dito assim parece meu megalomano, mas o problema não é do java, e sim do uso do java (e até do .NET, ruby, etc) que é a falta de investimento em Plataformas de Aplicação (que o java não é)

Se vc tem uma plataforma de aplicação para o seu ramo de negocios vc consegue ser um Time to market mais pequeno ainda que fazendo drag-and-drop.

ViniGodoy

Não só mais depressa, mas também com mais segurança.

Quando você tem recursos na linguagem que te permitem codificar com mais tranquilidade, você ganha em produtividade e poupa em manutenção. O que, no final das contas, te reduz custos. IDEs, por exemplo, só geram um ganho estético no código. Você poderia abrir mão de code completion e sintax coloring, mas você faria isso?

Nós questionamos o RAD pq, em excesso, ela é restritiva e pode gerar um código ruim. Mas RAD bem feito é mais produtivo e lucrativo do que uma aplicação sem RAD. Não é a toa que o matisse e o visual editor são populares. Eu usei o VE por anos, e era certamente muito mais produtivo com ele, do que se quisesse escrever todas as classes do Swing no braço.

Vender para clientes em mais plataformas é relevante? Bem, depende muito do que você esteja vendendo. Uma aplicação desktop, por exemplo, tem como clientes um mercado dominado em mais de 95% pelo Windows. Será que compensaria usar uma linguagem mais difícil, se estamos falando em 5% de um público provável? É como você falou, é muito difícil medir esse recurso ou aquele pelo retorno sobre investimento, porque o retorno vai variar de acordo com cada caso, cada empresa, e cada nicho de mercado. Pq retorno não envolve só informática, mas questões administrativas também.

cv1

Mercadologicamente falando*, Java tambem eh para um nicho bem estabelecido: aplicacoes comerciais de medio a grande porte rodando num servidor Unix-like. Funciona pra outras coisas? Sim, claro. Assim como .NET, que pertence a um nicho similar.

Tem ferramenta RAD, features ruins e programadores extremamente ruins nas duas plataformas quase que na mesma medida.

  • R$ 40 pra quem fizer uma camiseta com isso!
sergiotaborda

ViniGodoy:
Não só mais depressa, mas também com mais segurança.

Nós questionamos o RAD pq, em excesso, ela é restritiva e pode gerar um código ruim. Mas RAD bem feito é mais produtivo e lucrativo do que uma aplicação sem RAD. Não é a toa que o matisse e o visual editor são populares. Eu usei o VE por anos, e era certamente muito mais produtivo com ele, do que se quisesse escrever todas as classes do Swing no braço.

É exactamente isso que eu quero dizer quando digo que falta investimento numa plataforma de aplicação.
Eu adoro swing, mas nunca escrevi uma aplicação swing no braço ou usei um drag-and-drop. Eu tinha uma plataforma que criava as telas para mim , a definição da tela era em xml ou codigo e o plumbing de eventos era automatizado pela plataforma.
Fazer a tela aparecer era sem trabalho porque por default a plataforma lia as propriedades e adicionda os campos. apenas se precisasse alterar o layout ou costumizar algum evento que precisava alterar o default.

É tão RAD ou mais que drag and drop mas tem um custo de desenvolver a plataforma. contudo, se paga rápidamente e tanto mais rápidamente quanto mais aplicações vc faz. Se vc não ter este tipo de trabalho ,vc pode usar frameworks por que fazem algo semelhante (thinlet por exemplo) , mas por muitos frameworks que vc aglutine sempre precisa haver um jeito desacoplado de os usar.

O problema com a 'lentidão" do java é a falta de compreensão de como se usam as API ( não o uso tecnico, mas o proposito delas)
O .NET supre uma parte dessa plataforma de aplicação, pela mao da MS, que ftaz algumas coisas prontas.Mas prontas do ponto de vista da MS que nem sempre é que precisamos.

Java é feito para ser uma plataforma virtual e por isso ele é generico e extensivel e as api são mais limpas e mais discutidas.
é tb por isso que existem milhentos frameworks em cima. estes frameworks são partes de uma plataforma de aplicação (componentes) que devem ser unidos com outros para produzir alguma coisa. É aqui, no mushup , que os desenvolvedores java em geral falham. Porque eles não compreendem a diferença.
em NEt com mais coisas já prontas ha menos procura pela costumização, expansão , etc… e .NET ela própria vira a sua plataforma de aplicação. Mas ela foi engendrada para isso, logo funciona. Até um certo nivel. Quando vc quiser expandir do jeito que se faz no java vc encontra limites impostos pelas apis, a documentação, etc… o ambiente como um todo.

Não concordo que java é apenas para servidores unix porque isso seria dizer que java é só JEE. O que é falso.
A maioria das aplicações são web, mas não EE e utilizam apenas os recursos do SE. Além disso temos os applets que volta e meia são solução para muita coisa no lado cliente.

mvargens

Vyni, perai também né. Vamos com calma. A linguagem é um pouco mais difícil levando em considerações suas argumentações. Talvez menos que os 5% que vc está levando em consideração como publico alvo. Dependeria do tipo de aplicação claro, mas para a maioria dos casos seria uma margem muito pequena. Conheço 3 hipermercados, fora algumas lojas do varejo (incluindo multinacionais) que optaram por linux no PDV e bancada para diminuir custos. Nesse caso o .NET rodou por não ser multiplataforma e ser mais caro que o conjunto Linux + java, segundo eles. O varejo é muito chato com dinheiro. E acredite, o volume de maquinas é muito grande se somados. Sinceramente, eu não acho que o Windows ainda domine 95% do mercado corporativo, esse número deve ser menor, mas isso é achismo mesmo.

D

ViniGodoy:
Não só mais depressa, mas também com mais segurança.

Quando você tem recursos na linguagem que te permitem codificar com mais tranquilidade, você ganha em produtividade e poupa em manutenção. O que, no final das contas, te reduz custos. IDEs, por exemplo, só geram um ganho estético no código. Você poderia abrir mão de code completion e sintax coloring, mas você faria isso?

Nós questionamos o RAD pq, em excesso, ela é restritiva e pode gerar um código ruim. Mas RAD bem feito é mais produtivo e lucrativo do que uma aplicação sem RAD. Não é a toa que o matisse e o visual editor são populares. Eu usei o VE por anos, e era certamente muito mais produtivo com ele, do que se quisesse escrever todas as classes do Swing no braço.

Vender para clientes em mais plataformas é relevante? Bem, depende muito do que você esteja vendendo. Uma aplicação desktop, por exemplo, tem como clientes um mercado dominado em mais de 95% pelo Windows. Será que compensaria usar uma linguagem mais difícil, se estamos falando em 5% de um público provável? É como você falou, é muito difícil medir esse recurso ou aquele pelo retorno sobre investimento, porque o retorno vai variar de acordo com cada caso, cada empresa, e cada nicho de mercado. Pq retorno não envolve só informática, mas questões administrativas também.

Adoro tudo que é Unix-like. Mas tenho que reconhecer, a briga com a Microsoft já está perdida no Desktop faz tempo. Poderiamos até dizer que o Mac OS daria para brigar de frente com o Windows se o danado não tivesse tudo enlatado em uma máquina de beleza radiante e bem cara para a tecnologia usada em termos de hardware.
Nestas horas, infelizmente, fazer um sistema desktop em .Net é mais vantagem. Não adianta a pessoa alegar licença do Windows porque, é barato quando se compra com PC novo. Mais barato ainda em quantidade. Ainda que, a pessoa prefira o Linux, o Mono para desktop também é muito bom.
Logo, concordo contigo em dizer que retorno envolvendo também questões administrativas são levadas em consideração. E produtividade também.

D

mvargens:
ViniGodoy:

Vender para clientes em mais plataformas é relevante? Bem, depende muito do que você esteja vendendo. Uma aplicação desktop, por exemplo, tem como clientes um mercado dominado em mais de 95% pelo Windows. Será que compensaria usar uma linguagem mais difícil, se estamos falando em 5% de um público provável? É como você falou, é muito difícil medir esse recurso ou aquele pelo retorno sobre investimento, porque o retorno vai variar de acordo com cada caso, cada empresa, e cada nicho de mercado. Pq retorno não envolve só informática, mas questões administrativas também.

Vyni, perai também né. Vamos com calma. A linguagem é um pouco mais difícil levando em considerações suas argumentações. Talvez menos que os 5% que vc está levando em consideração como publico alvo. Dependeria do tipo de aplicação claro, mas para a maioria dos casos seria uma margem muito pequena. Conheço 3 hipermercados, fora algumas lojas do varejo (incluindo multinacionais) que optaram por linux no PDV e bancada para diminuir custos. Nesse caso o .NET rodou por não ser multiplataforma e ser mais caro que o conjunto Linux + java, segundo eles. O varejo é muito chato com dinheiro. E acredite, o volume de maquinas é muito grande se somados. Sinceramente, eu não acho que o Windows ainda domine 95% do mercado corporativo, esse número deve ser menor, mas isso é achismo mesmo.

Conheço algumas empresas que estão usando Linux. Mas lamento, muitos não são Java na tela que usam. Fora que, se for usar terminal, até Mono serve e ainda pode ser mais vantagem para acessar componentes das máquinas PDV.
[EDIT]
Procurem pelo Daruma, muito usado em PDVs.
[/EDIT]

mvargens

Tudo bem, mas preferir .Net a java por causa da MS é uma coisa, agora preferir o Mono ao java por causa da MS é outra. Não faz muito sentido ja que mono não é .Net e Ms não da suporte no Mono.
É uma pena essas empresas não usarem java, estão perdendo muito dependo do que estiverem usando, mas enfim, não é widows também, o que torna meu achismo mais coerente. De qualquer forma eu achei a estratégia dessas empresas interessante.

D

Tudo bem, mas preferir .Net a java por causa da MS é uma coisa, agora preferir o Mono ao java por causa da MS é outra. Não faz muito sentido ja que mono não é .Net e Ms não da suporte no Mono.
É uma pena essas empresas não usarem java, estão perdendo muito dependo do que estiverem usando, mas enfim, não é widows também, o que torna meu achismo mais coerente. De qualquer forma eu achei a estratégia dessas empresas interessante.

Questões talvez mercadológicas ou de desenvolvimento, quem sabe? Mas acredito, pessoalmente, que foi mais fácil migrar as DLLs do .Net (que podem ter sido até feitas usando C#, quem sabe) para o Mono em PDVs da Daruma a ter de construir uma biblioteca nativa e acessível por Java (claro, o custo disso não deveria ser nada barato).

tnaires
sergiotaborda:
repare no método
public <T> T newInstance(){

}
Mesmo que não houvesse erasure não é possivel saber quem é T porque se trata de um método puramente co-variante. Para este método ter acesso a algum T real o T precisa ser definido na classe
Sérgio, há uma outra opção. Você pode explicitar o tipo de T ao chamar o método:
Classe.<Tipo>newInstance();
Assim o compilador não precisa do T definido em outro lugar para inferir o tipo.

Mais detalhes em http://cabritin.wordpress.com/2009/10/06/passagem-explicita-de-tipos-para-metodos-genericos-em-java/

sergiotaborda
tnaires:
sergiotaborda:
repare no método
public <T> T newInstance(){

}
Mesmo que não houvesse erasure não é possivel saber quem é T porque se trata de um método puramente co-variante. Para este método ter acesso a algum T real o T precisa ser definido na classe
Sérgio, há uma outra opção. Você pode explicitar o tipo de T ao chamar o método:
Classe.<Tipo>newInstance();

Eu não me estava a referir ao método newInstance de Class. Foi um exemplo de um método qualquer... foi mal usar esse nome,
mas decorre da citação da conversa.

J

O fato da lentidão do java não se deve a nenhum programador medíocre. O swing torna uma aplicação java lenta, e não por sua arquitetura, mas por ser totalmente portável. O winforms do .net é um mapeamento em cima do artefato responsável pela gerência de janelas do windows. Rodando em linux, ele passa usar gtk#.

Ao meu ver, acho swing uma das coisas mais interessantes do java, por ser totalmente portável.
Se for fazer benchmark, a jvm é mais rápida que dotNet. O ponto forte do .net na minha opinião é a linguagem c# e suporte a multimedia no win, como directx.
Fora isso java campeão, sem dúvida.

sergiotaborda

A conversa sobre a “lentidão do java” é sobre a “lentidão para desenvolver em java” , o chamado time-to-market. Ninguem falou da lentidão de executar. Por favor leiam os textos com calma.

E mesmo a lentidão de execução é coisa do passado. (aliás eu nunca vi o swing ser lento)

sergiotaborda

.

J

A conversa sobre a “lentidão do java” é sobre a “lentidão para desenvolver em java” , o chamado time-to-market. Ninguem falou da lentidão de executar. Por favor leiam os textos com calma.

E mesmo a lentidão de execução é coisa do passado. (aliás eu nunca vi o swing ser lento)

já tentou rodar uma aplicação swing em uma máquina com 256mb de ram?
Até na minha com 3gb sente diferença com o netbeans.

Aliás, “lentidão” ao meu ver, em termos de desenvolvimento não se aplica a java. Muito fácil e prático.

ViniGodoy

O ponto era exatamente esse, só tem sentido falar em ROI se você levar em conta o ambiente. Então, quando você fala em “mundo corporativo”, você está se referindo a que? Automação comercial? Ou industrial? Ou das corporações que fazem produtos de prateleira, para usuários domésticos?

Se for o mercado de jogos, por exemplo, a quantidade de jogadores Windows é ainda superior a essa e você vai estar, efetivamente, falando em multiplataforma para um mercado de menos de 2% dos jogadores. No de celulares, a estatística se inverte, e você vai ter quase 95% dos usuários querendo jogos em Java, já que o aparelho muda de ano em ano, e há um número sem-fim de modelos no mercado.

Em muitas aplicações caseiras, você vai ter exatamente essa estatística, ou próxima dela. Isso inclui aplicações para exibir vídeo, navegadores, messenger, etc… não é a toa que existem muito mais empresas grandes investindo em aplicações para usuário final em Windows do que em Linux, ou mesmo Mac.

Por outro lado, você pode tentar fazer algum servidor web, e nesse caso, pode ser que seja interessante suportar apenas as plataformas Unix, e deixar até mesmo o Windows de lado. Tudo vai depender do grau de interatividade com a máquina que sua aplicação exigir. Ou que seu cliente quiser.

Multiplataforma é interessante para a maior parte das aplicações de automação comercial hoje em dia. Até porque, você geralmente as instalará num parque de máquinas grande, onde você deverá suportar praticamente todo o tipo de ambiente.

Mas elas não são as únicas aplicações existentes. Certamente é um mercado grande, e trabalhando com web será praticamente o único mercado que você poderá ver em sua carreira inteira. Não estou desmerecendo, em hipótese nenhuma, nem a dimensão, nem a importância desse mercado, ou as pessoas que só atuarão nele (até pq, acho que todos nós morreremos sem atuar em todos os mercados possíveis e imagináveis).

Mas, só faz sentido em falar em ROI, ou analisar o ganho financeiro de uma linguagem, se você souber de que mercado estamos falando. Até por isso, discutir sobre linguagens é geralmente inútil. Isso volta naquela questão. Se você trabalha dentro de uma grande empresa, com servidores IIS, SQL Servers, e um parque de máquinas Windows (foi aprovado assim pela infra, não vão mudar, pois teria que mudar o manual de processos), por que você teria que desenvolver em multi-plataforma para essa mesma empresa?

J

O ponto era exatamente esse, só tem sentido falar em ROI se você levar em conta o ambiente. Então, quando você fala em “mundo corporativo”, você está se referindo a que? Automação comercial? Ou industrial? Ou das corporações que fazem produtos de prateleira, para usuários domésticos?

Se for o mercado de jogos, por exemplo, a quantidade de jogadores Windows é ainda superior a essa e você vai estar, efetivamente, falando em multiplataforma para um mercado de menos de 2% dos jogadores.

Em muitas aplicações caseiras, você vai ter exatamente essa estatística, ou próxima dela. Isso inclui aplicações para exibir vídeo, navegadores, messenger, etc… não é a toa que existem muito mais empresas grandes investindo em aplicações para usuário final em Windows do que em Linux, ou mesmo Mac.

Por outro lado, você pode tentar fazer algum servidor web, e nesse caso, pode ser que seja interessante suportar apenas as plataformas Unix, e deixar até mesmo o Windows de lado. Tudo vai depender do grau de interatividade com a máquina que sua aplicação exigir. Ou que seu cliente quiser.

Multiplataforma é interessante para a maior parte das aplicações de automação comercial hoje em dia. Até porque, você geralmente as instalará num parque de máquinas grande, onde você deverá suportar praticamente todo o tipo de ambiente.

Mas elas não são as únicas aplicações existentes. Certamente é um mercado grande, e trabalhando com web será praticamente o único mercado que você poderá ver em sua carreira inteira. Não estou desmerecendo, em hipótese nenhuma, nem a dimensão, nem a importância desse mercado, ou as pessoas que só atuarão nele (até pq, acho que todos nós morreremos sem atuar em todos os mercados possíveis e imagináveis).

Mas, só faz sentido em falar em ROI, ou analisar o ganho financeiro de uma linguagem, se você souber de que mercado estamos falando. Até por isso, discutir sobre linguagens é geralmente inútil.

Com certeza. Existe uma instituição, aqui perto, em Brasópolis, O LNA. Visitei o lugar algumas vezes, e todos os softwares são desenvolvidos para linux, e usando somente ferramentas opensource. Não tem como generalizar.

http://www.lna.br

sergiotaborda

A conversa sobre a “lentidão do java” é sobre a “lentidão para desenvolver em java” , o chamado time-to-market. Ninguem falou da lentidão de executar. Por favor leiam os textos com calma.

E mesmo a lentidão de execução é coisa do passado. (aliás eu nunca vi o swing ser lento)

já tentou rodar uma aplicação swing em uma máquina com 256mb de ram?

:slight_smile: Já tentou ler os requisitos minimos ?

que culpa o swing tem que o netbeans o use ? vc está confundindo a performance do netbeans com a do swing.


Aliás, “lentidão” ao meu ver, em termos de desenvolvimento não se aplica a java. Muito fácil e prático.

Pois é.

sergiotaborda

ViniGodoy:

Mas, só faz sentido em falar em ROI, ou analisar o ganho financeiro de uma linguagem, se você souber de que mercado estamos falando. Até por isso, discutir sobre linguagens é geralmente inútil. Isso volta naquela questão. Se você trabalha dentro de uma grande empresa, com servidores IIS, SQL Servers, e um parque de máquinas Windows (foi aprovado assim pela infra, não vão mudar, pois teria que mudar o manual de processos), por que você teria que desenvolver em multi-plataforma para essa mesma empresa?

Porque vc sabe a primeira diretiva : software evolui.

Se vc quer “cover your assets” e vc investe num software essencial ao seu negocio, vai vai atrelar a aplicação ao uso do windows ?
Repare, é o software do seu negocio.Enquanto houver empresa esse software será usado. A longividade dele é apenas limitada pela da empresa. Quem garante quem daqui a 5, 10, 20, 50 anos o parque será windows ?

A multiplataforma e a protabilidade não se usa apenas quando o software é lançado, usa-se principalmente daqui a muitos anos (a cada geração).

E tem mais. Supondo que vc usa .NET quando sair outra versão, para o mesmo windows, vc tem que escrever tudo de novo,ou usa uma tecnologia primitiva para sempre, aka sistema legado.

Em pouca palavras :NET não tem longividade. Mas longividade é vital para proteger o seu investimento.

J

Ser completamente carregado no heap da vm?
Aliás o netbeans é muito bem projetado.

Sobre requisitos de sistema. A maioria dos softwares rodam com 256, menos softwares swing.

ViniGodoy

Na verdade, o .net tem uma VM, assim como o Java. Portanto, ele também é multi-plataforma, e não depende de nenhuma versão específica de Windows.

Para o mercado de automação comercial, concordo com você. Aliás, nunca neguei isso.

Mas há outros mercados (automação industrial, aplicações científicas, jogos, sistemas de segurança), onde é muito mais viável atrelar sua aplicação ao SO. Se você for usar Java, não será o fator multi-plataforma que terá o maior peso e sim o “resto” (API extensa, muita coisa free, linguagem gerenciada, etc).

Aliás, usando Java, você também está atrelando sua aplicação a algum tipo de plataforma, no caso, a VM Java. Se o suporte a essa VM cair no ostracismo, certamente o Java morrerá junto. Isso é um pouco mais difícil, já que existe uma comunidade por trás de tudo e a VM é um software, não um hardware. Mas não seria o primeiro caso de uma linguagem que “morreria” porque sua principal empresa (que dava credibilidade, força e coordenava o desenvolvimento) parou de mante-la.

J

marcosalex:
Reparem que o Sergio quando falam de coisas que o Java não tem, diz que basta desenvolver, que o JAva suporta, portanto ele nao aceita os argumentos.

Por outro lado, quando fala de frameworks que o java já tem, diz que é vantagem porque no .net você teria de desenvolver, o que toma tempo e portanto nao aceita os argumentos.

Como argumentar com alguém que tem dois pesos e duas medidas é impossivel…

é verdade…

sergiotaborda

marcosalex:
Reparem que o Sergio quando falam de coisas que o Java não tem, diz que basta desenvolver, que o JAva suporta, portanto ele nao aceita os argumentos.

Por outro lado, quando fala de frameworks que o java já tem, diz que é vantagem porque no .net você teria de desenvolver, o que toma tempo e portanto nao aceita os argumentos.

Como argumentar com alguém que tem dois pesos e duas medidas é impossivel…

suponho que esse sergio ai seja eu. nesse caso o que tenho a dizer é :você não entendeu nada.

Bem simples, para vc entender:

Java = > Plataforma virtual = > Base para fazer plataformas de aplicação
Frameworks Java => pedaços de plataforma de aplicação

.NET => Plataforma virtual + alguns pedaços de plataforma de aplicação prontos => Base para fazer plataformas de aplicação, mas não é obrigatorio usar dessa forma se usar os pedaços já existentes.

Fazer frameworks em java é uma necessidade porque é para isso que o java serve. Em .NET não é obrigatório.

tnaires
sergiotaborda:
Eu não me estava a referir ao método newInstance de Class. Foi um exemplo de um método qualquer... foi mal usar esse nome, mas decorre da citação da conversa.
Eu também não. Pelo que entendi, você tinha falado que quando temos um método com um parâmetro genérico, precisamos declarar o mesmo parâmetro na classe para que o compilador possa determinar o tipo correto:
class ClasseGenerica<T> {
    public static <T> T metodoEstaticoGenericoSemArgumentos() {
        
    }
}
E eu falei que não precisa, pois podemos informar explicitamente o tipo do parâmetro do método ao chamá-lo:
ClasseGenerica.<String>metodoEstaticoGenericoSemArgumentos();
Mas talvez eu tenha entendido errado o que você falou. Se for o caso, desculpe-me.
J

sergiotaborda:
marcosalex:
Reparem que o Sergio quando falam de coisas que o Java não tem, diz que basta desenvolver, que o JAva suporta, portanto ele nao aceita os argumentos.

Por outro lado, quando fala de frameworks que o java já tem, diz que é vantagem porque no .net você teria de desenvolver, o que toma tempo e portanto nao aceita os argumentos.

Como argumentar com alguém que tem dois pesos e duas medidas é impossivel…

suponho que esse sergio ai seja eu. nesse caso o que tenho a dizer é :você não entendeu nada.

Bem simples, para vc entender:

Java = > Plataforma virtual = > Base para fazer plataformas de aplicação
Frameworks Java => pedaços de plataforma de aplicação

.NET => Plataforma virtual + alguns pedaços de plataforma de aplicação prontos => Base para fazer plataformas de aplicação, mas não é obrigatorio usar dessa forma se usar os pedaços já existentes.

Fazer frameworks em java é uma necessidade porque é para isso que o java serve. Em .NET não é obrigatório.

Ninguém é obrigado a programar nenhum framework em java, nem no .net. Você pode optar por swing ou awt, ou swt. Com .net winforms ou gtk, atk, ou wxwidgets. Basta ter uma máquina virtual, e uma linguagem. A não ser que não exista nenhum disponível na net que não se enquadre no seu projeto. Mas, isso diz respeito tanto ao java como ao .net.

Ao comparar uma plataforma com outra, deve-se levar em conta performance, linguagens disponíveis a ela, e ferramentas(frameworks).

Respondendo ao tópico, java ganha no item 1, e no item3.
DotNet por possuir uma linguagem flexível como c#, que te dá poder de escolha, no item2.

Mas é somente uma opção pessoal.

J

Falando em ferramentas, já saiu a nova jvisualvm. Só não dá pra baixar por causa dos problemas do java.net

mvargens

O ponto era exatamente esse, só tem sentido falar em ROI se você levar em conta o ambiente. Então, quando você fala em “mundo corporativo”, você está se referindo a que? Automação comercial? Ou industrial? Ou das corporações que fazem produtos de prateleira, para usuários domésticos?

Se for o mercado de jogos, por exemplo, a quantidade de jogadores Windows é ainda superior a essa e você vai estar, efetivamente, falando em multiplataforma para um mercado de menos de 2% dos jogadores. No de celulares, a estatística se inverte, e você vai ter quase 95% dos usuários querendo jogos em Java, já que o aparelho muda de ano em ano, e há um número sem-fim de modelos no mercado.

Em muitas aplicações caseiras, você vai ter exatamente essa estatística, ou próxima dela. Isso inclui aplicações para exibir vídeo, navegadores, messenger, etc… não é a toa que existem muito mais empresas grandes investindo em aplicações para usuário final em Windows do que em Linux, ou mesmo Mac.

Por outro lado, você pode tentar fazer algum servidor web, e nesse caso, pode ser que seja interessante suportar apenas as plataformas Unix, e deixar até mesmo o Windows de lado. Tudo vai depender do grau de interatividade com a máquina que sua aplicação exigir. Ou que seu cliente quiser.

Multiplataforma é interessante para a maior parte das aplicações de automação comercial hoje em dia. Até porque, você geralmente as instalará num parque de máquinas grande, onde você deverá suportar praticamente todo o tipo de ambiente.

Mas elas não são as únicas aplicações existentes. Certamente é um mercado grande, e trabalhando com web será praticamente o único mercado que você poderá ver em sua carreira inteira. Não estou desmerecendo, em hipótese nenhuma, nem a dimensão, nem a importância desse mercado, ou as pessoas que só atuarão nele (até pq, acho que todos nós morreremos sem atuar em todos os mercados possíveis e imagináveis).

Mas, só faz sentido em falar em ROI, ou analisar o ganho financeiro de uma linguagem, se você souber de que mercado estamos falando. Até por isso, discutir sobre linguagens é geralmente inútil. Isso volta naquela questão. Se você trabalha dentro de uma grande empresa, com servidores IIS, SQL Servers, e um parque de máquinas Windows (foi aprovado assim pela infra, não vão mudar, pois teria que mudar o manual de processos), por que você teria que desenvolver em multi-plataforma para essa mesma empresa?

talvez a palavra corporativo não tenha sido bem usada por mim, ou mal interpretada por você, mas eu disse mais de uma vez a palavra varejo la em cima. Jogos jamais serão usados em empresas, a menos que o dono queira ir a falência. quem joga é usuário de computador pessoal e não empresa(corporativo ?). Se o .Net da suporte para isso, ponto pra ele sem duvida, acho que vai ganhar do java sempre ai.
Mas o que eu quis dizer é que existem empresas grandes, multinacionais que optaram por usar Linux em todas as suas maquinas de atendimento, incluindo alguns hipermercados que eu pude observar aqui no Brasil, que é um pais MS. Juntando isso aos que já usam Unix e Linux para web, eu acho que o número de Windows rodando em maquinas de empresas não tenha esse volume todo mais(95%). Linux é uma opção barata, se tiver uma empresa de nome dando suporte, ele se torna muito viável para maquinas estilo terminal e acredite não são poucas não. Imagine quantos call-centers devem existir. Para softwares desse tipo não vejo em que o .Net e mesmo o mono seria melhor, e usar mono não teria suporte de nenhuma empesa. Nesse caso a melhor opção é java. E só para firmar o que eu disse, os softwares que eu ví eram feitos em Swing. Mas não estou puxando a sardinha, apenas achei exagero dizer que fazer em java é muito mais difícil que fazer em .Net, e que Windows domina 95% do mercado. Agora se contar computadores pessoais ai vai dar mais de 120% para o windows pirata.

Marcio_Nogueira

Onde que o .Net é multi-plataforma, se só funciona na plataforma Microsoft? O mono? Isso não vinga, ninguém se interessa em desenvolver em uma ferramenta que o mercado não adotou e nem vai adotar.

J

O mercado não adotou porque você não usa?

O mono está em dispositivos que o java ainda não chegou. Por exemplo o IPod.

E digo mais, o mono está se desenvolvendo mais rápido que o java, e pode levar as plataformas unix, o que o java ainda não levou, como aplicativos win e jogos.

É como o pessoal citou acima. Existem outros tipos de mercados diferentes do corporativo.

sergiotaborda
tnaires:
sergiotaborda:
Eu não me estava a referir ao método newInstance de Class. Foi um exemplo de um método qualquer... foi mal usar esse nome, mas decorre da citação da conversa.
Eu também não. Pelo que entendi, você tinha falado que quando temos um método com um parâmetro genérico, precisamos declarar o mesmo parâmetro na classe para que o compilador possa determinar o tipo correto:
class ClasseGenerica<T> {
    public static <T> T metodoEstaticoGenericoSemArgumentos() {
        
    }
}
E eu falei que não precisa, pois podemos informar explicitamente o tipo do parâmetro do método ao chamá-lo:
ClasseGenerica.<String>metodoEstaticoGenericoSemArgumentos();
Mas talvez eu tenha entendido errado o que você falou. Se for o caso, desculpe-me.

Repare, são coisas diferentes. quando vc usa um método puramente covariante o compilador não sabe quem é T, e por isso vc pode escrever class.metodo() para informar o compilador do tipo que vc pretende usar.
Mas para ter acesso dentro do método em si , ao tipo correto de T, esse truque não funciona por é só para o compilador.
Quando vc usa na def da classe e depois criar um objeto com um tipo concreto a classe está tipada e portanto vc pode acessar ao tipo dela. Via reflection API, ok, mas esse é o jeito padrão de acessar metadados em java.

sergiotaborda

juliocbq:
sergiotaborda:

Bem simples, para vc entender:

Java = > Plataforma virtual = > Base para fazer plataformas de aplicação
Frameworks Java => pedaços de plataforma de aplicação

.NET => Plataforma virtual + alguns pedaços de plataforma de aplicação prontos => Base para fazer plataformas de aplicação, mas não é obrigatorio usar dessa forma se usar os pedaços já existentes.

Fazer frameworks em java é uma necessidade porque é para isso que o java serve. Em .NET não é obrigatório.

Ninguém é obrigado a programar nenhum framework em java, nem no .net. Você pode optar por swing ou awt, ou swt. Com .net winforms ou gtk, atk, ou wxwidgets. Basta ter uma máquina virtual, e uma linguagem. A não ser que não exista nenhum disponível na net que não se enquadre no seu projeto. Mas, isso diz respeito tanto ao java como ao .net.

O seu pensamento e conclusão são as de 99,99% dos desenvolvedores que não entendem o que é uma plataforma de aplicação - eles acham que é a própria aplicação.
Eu tentei deixar o mais claro possivel : java não foi feito com a intensão de ser uma plataforma de aplicação. .NET foi. Essa é uma diferença importante.

O fato de vc poder usar as API de forma “crua” não significa nada porque sempre, em algum ponto, vc terá que as usar. O conceito aqui é mais alto nivel que usar APIs, é definir API para a aplicação cuja implementação é baseada nas API cruas, mas que do ponto de vista da aplicação poderiam ser mágicas.

A forma como vc faz o design do plataforma de aplicação define as propriedades da aplicação. òbviamente vc pode fazer “nenhum design” e usar tudo cru, mas se vc tem experiencia suficiente com desenvolvimento, vc sabe que isso é impossivel.Sempre vc adapta a API crua, às suas necessidades. O nivel de abstração com que vc faz isso define a espessura da sua camada de aplicação.

quando no .NET vc arasta um componente, o configura para ligar no banco e "magicamente"ele trás as linhas da tabela vc não programou nada. Vc usou a plataforma de aplicação que já está inclusa no .NET. tente fazer o mesmo em java (é possivel,existem componentes iguais, mas normalmente não free) vc tem que fazer, ou comprar feito, porque java não contém nada da plataforma de aplicação. java não sugere nada para o seu design , por isso que vc precisa saber patterns e boas práticas ou vc está na lama.

Essa é uma comparação simplista, virada ao desenvolvedor. Arquitetos têm que pensar em custos, integração com outras aplicações em outras tecnologias, aderencia a protocolos, mas sobretudo custos, tanto de implementação quando de manutenção e evolução (a evolução é que f… um sistema e o torna obsoleto)

Se vc faz um sistema por 1.000 e gasta 10.000 por ano para o manter e um outro que custa 100.000 e custa 1000 para manter, qual vc prefere ?

As variáveis da equação arquitetural (que é onde se escolher a plataforma) são de mais alto nivel do que a linguagem ou o codigo ou a facilidade que o programador terá. A facilidade é coisa para o designer se preocupar,mas ai a plataforma já foi escolhida. Um bom designer lhe dará uma plataforma de aplicação simples e eficiente em qualquer plataforma.

J

A forma como vc faz o design do plataforma de aplicação define as propriedades da aplicação. òbviamente vc pode fazer “nenhum design” e usar tudo cru, mas se vc tem experiencia suficiente com desenvolvimento, vc sabe que isso é impossivel.Sempre vc adapta a API crua, às suas necessidades. O nivel de abstração com que vc faz isso define a espessura da sua camada de aplicação.

quando no .NET vc arasta um componente, o configura para ligar no banco e "magicamente"ele trás as linhas da tabela vc não programou nada. Vc usou a plataforma de aplicação que já está inclusa no .NET. tente fazer o mesmo em java (é possivel,existem componentes iguais, mas normalmente não free) vc tem que fazer, ou comprar feito, porque java não contém nada da plataforma de aplicação. java não sugere nada para o seu design , por isso que vc precisa saber patterns e boas práticas ou vc está na lama.

Claro que não. O que eu quero dizer é que ninguém é obrigado usar frameworks. Você citou que dotnet precisava, antes, no outro post. Para você ter uma idéia, eu raramente uso banco de dados em aplicações, a maioria dos dados que preciso armazenar são gravados em arquivos serializados.

Não podemos confundir atuações. Um arquiteto trabalha de uma forma, um doutor numa universidade com outra, um analista de outra maneira, um engenheiro de outra, e por ae vai.

sergiotaborda

juliocbq:
A forma como vc faz o design do plataforma de aplicação define as propriedades da aplicação. òbviamente vc pode fazer “nenhum design” e usar tudo cru, mas se vc tem experiencia suficiente com desenvolvimento, vc sabe que isso é impossivel.Sempre vc adapta a API crua, às suas necessidades. O nivel de abstração com que vc faz isso define a espessura da sua camada de aplicação.

quando no .NET vc arasta um componente, o configura para ligar no banco e "magicamente"ele trás as linhas da tabela vc não programou nada. Vc usou a plataforma de aplicação que já está inclusa no .NET. tente fazer o mesmo em java (é possivel,existem componentes iguais, mas normalmente não free) vc tem que fazer, ou comprar feito, porque java não contém nada da plataforma de aplicação. java não sugere nada para o seu design , por isso que vc precisa saber patterns e boas práticas ou vc está na lama.

Claro que não. O que eu quero dizer é que ninguém é obrigado usar frameworks. Você citou que dotnet precisava, antes, no outro post.

Não. Releia com atenção. Eu falei exactamente o contrário Java precisa usar frameworks externos ao core (JSE,JME,JEE) porque o core não tem logica de negocio alguma, .NET não. Em .NET existem componentes que já fazem um monte de coisa sem precisar plugar nada. Simplesmente configura e voi-la.

Pois é, mas vc usa as classes de I/O não usa ? Ora ai está, vc usa o core.
Agora, se vc criou uma API para gerenciar isso, ai a sua aplicação não usa mais o core directamente, usa a sua API. Essa sua
API é um pedaço da plataforma de aplicação.

A conversa não tem nada a haver com isso. Não é uma questão de gosto ou de contexto ou de ramo de negocio. É uma questão tecnica sobre como se decide qual plataforma virtual usar numa arquitetura. um dos fatores é : qual é a facilidade de montar uma plataforma de aplicação em cima dessa plataforma virtual ? é a resposta a esta pergunta que não é trivial porque conforme a aplicação, a plataforma para ela será diferente. Um jogo tem uma plataforma diferente que um sistema cadastro. Para um será mais facil usar a plataforma virtual X e para outro a Y. Mas isso é apenas 1 dos fatores para a escolha. Existem dezenas…

Marcio_Nogueira

O java tem seu desnvolvimento constante, enquanto que o mono está parado, totalmente estagnado. Pessoalmente, não pretendo utilizar uma ferramenta que não irá me acrescentar nada.

J

Não é necessidade. Como te falei, cada caso de trabalho é um caso.

J

Não está parado não, é só entrar no site dele e olhar. Agora, sobre usá-lo ou não, cada pessoa tem sua necessidade.

sergiotaborda

juliocbq:
sergiotaborda:

Fazer frameworks em java é uma necessidade porque é para isso que o java serve. Em .NET não é obrigatório.

Não é necessidade. Como te falei, cada caso de trabalho é um caso.

Para que fique bem claro: é uma necessidade sim.
O fato das pessoas não fazerem é um problema. É uma deficiência na educação que causa problemas e prejuizos.

É como lavar as mãos. é necessário. Se vc não fizer terá problemas.

Ninguem obriga, mas isso não significa que não seja necessário.

J

sergiotaborda:
juliocbq:
sergiotaborda:

Fazer frameworks em java é uma necessidade porque é para isso que o java serve. Em .NET não é obrigatório.

Não é necessidade. Como te falei, cada caso de trabalho é um caso.

Para que fique bem claro: é uma necessidade sim.
O fato das pessoas não fazerem é um problema. É uma deficiência na educação que causa problemas e prejuizos.

É como lavar as mãos. é necessário. Se vc não fizer terá problemas.

Ninguem obriga, mas isso não significa que não seja necessário.

Sergio, na sua área pode até ser, mas acredite, algumas pessoas desenvolvem software para uso interno, em instituições científicas, e em engenharia de hardware(que também desenvolve software). O que você está dizendo não tem o menor cabimento nessas citadas, e nem por isso, não têm qualidade. Nem todo mundo vai vender para setor corporativo, ou mesmo comercializar um software, entende?

Cada caso é um caso.

sergiotaborda

juliocbq:
sergiotaborda:
juliocbq:
sergiotaborda:

Fazer frameworks em java é uma necessidade porque é para isso que o java serve. Em .NET não é obrigatório.

Não é necessidade. Como te falei, cada caso de trabalho é um caso.

Para que fique bem claro: é uma necessidade sim.
O fato das pessoas não fazerem é um problema. É uma deficiência na educação que causa problemas e prejuizos.

É como lavar as mãos. é necessário. Se vc não fizer terá problemas.

Ninguem obriga, mas isso não significa que não seja necessário.

Sergio, na sua área pode até ser, mas acredite, algumas pessoas desenvolvem software para uso interno, em instituições científicas, e em engenharia de hardware(que também desenvolve software). O que você está dizendo não tem o menor cabimento nessas citadas, e nem por isso, não têm qualidade. Nem todo mundo vai vender para setor corporativo, ou mesmo comercializar um software, entende?

Cada caso é um caso.

Acho que vc ainda não entendeu : o que eu estou dizendo não depende do objetivo do software. Não depende da aplicação (do caso).Aqui o “cada caso é um caso” não se aplica. O que eu estou dizendo advem da plataforma em si, e essa é a mesma para todos os casos. A necessiadade de uma plataforma de aplicação é omnipresente seja qual for o seu caso. Reflita sobre isto e só continue lendo depois que entendeu isto.

Se vc a usa, se vc a implementa, conscientemente ou não, com qualidade ou não, se vc sequer sabe o que é isso ou não, etc… é outro assunto. O ponto aqui é: em Java - seja qual for o uso - é esperado que vc monte uma plataforma de aplicação em cima do core (as editions). Todo o design, decisões, trade-offs, etc… servem para saber a diferença.

Consulte o JCP. Todas as requisições de API que , de alguma forma, podem ser consideradas da plataforma de aplicação não foram aceites. Isto é proposital. Porque a plataforma java é virtual e a sun nunca a quiz consporcar (porque eles sabem o que fazem) … agora daqui para a frente os tempo são outros e talvez java fique mais poluido como o .NET, mas até agora estes são os fatos.

J

sergiotaborda:
juliocbq:
sergiotaborda:
juliocbq:
sergiotaborda:

Fazer frameworks em java é uma necessidade porque é para isso que o java serve. Em .NET não é obrigatório.

Não é necessidade. Como te falei, cada caso de trabalho é um caso.

Para que fique bem claro: é uma necessidade sim.
O fato das pessoas não fazerem é um problema. É uma deficiência na educação que causa problemas e prejuizos.

É como lavar as mãos. é necessário. Se vc não fizer terá problemas.

Ninguem obriga, mas isso não significa que não seja necessário.

Sergio, na sua área pode até ser, mas acredite, algumas pessoas desenvolvem software para uso interno, em instituições científicas, e em engenharia de hardware(que também desenvolve software). O que você está dizendo não tem o menor cabimento nessas citadas, e nem por isso, não têm qualidade. Nem todo mundo vai vender para setor corporativo, ou mesmo comercializar um software, entende?

Cada caso é um caso.

Acho que vc ainda não entendeu : o que eu estou dizendo não depende do objetivo do software. Não depende da aplicação (do caso).Aqui o “cada caso é um caso” não se aplica. O que eu estou dizendo advem da plataforma em si, e essa é a mesma para todos os casos. A necessiadade de uma plataforma de aplicação é omnipresente seja qual for o seu caso. Reflita sobre isto e só continue lendo depois que entendeu isto.

Se vc a usa, se vc a implementa, conscientemente ou não, com qualidade ou não, se vc sequer sabe o que é isso ou não, etc… é outro assunto. O ponto aqui é: em Java - seja qual for o uso - é esperado que vc monte uma plataforma de aplicação em cima do core (as editions). Todo o design, decisões, trade-offs, etc… servem para saber a diferença.

Consulte o JCP. Todas as requisições de API que , de alguma forma, podem ser consideradas da plataforma de aplicação não foram aceites. Isto é proposital. Porque a plataforma java é virtual e a sun nunca a quiz consporcar (porque eles sabem o que fazem) … agora daqui para a frente os tempo são outros e talvez java fique mais poluido como o .NET, mas até agora estes são os fatos.

ok…

tRuNkSnEt

Vixi, o Sergio causando encrenca novamente nesse assunto? :slight_smile:

Aproveitando o ensejo do Vini vou dizer algumas experiencias que obtive sobre multiplataforma.

Eu enfrento essas indagações frequentemente.
Quando se está negociando com alguma empresa na primeira conversa o termo multiplataforma salta os olhos mas muita coisa chegará a ser examinada até o fechamento da proposta. Primeiro que quem compra nem sempre é quem mais entende das necessidades e segundo que quem vende é treinado para vender e nem sempre detalhes tecnologicos serão o diferencial. Neste bolo existem ainda aqueles que por uma boa comissão receberão seu produto de braços abertos.

Trabalhar com usuário nunca é coisa facil, logo estações clientes acabam sendo plataforma windows até porque o tempo que se perde, o treinamento que precisa ser pago nem compensa mudar de plataforma. No lado servidor quase sempre vai entrar em conta o que o Vini disse, a empresa já terá seu parque computacional. Mudar a infraestrutura demanda tempo e profissionais capacitados para trabalhar em linux ou mac são dificeis e caros. Para piorar, hoje em dias as empresas querem ganhar por todos os lados e acaba que quando o cliente não tem infraestrutura além de vender o software a empresa vende o hardware também.

É dureza de aceitar mas em muitas empresas o departamento de TI será um dos ultimos a ser consultado na equisição.

Sobre o assunto Java vesus .Net as coisas que o .Net tem e realmente me fazem falta no Java e a questão de um RIA realmente atrativo (espero que não me citem applet novamente) e APIs que me possibilitem trabalhar a fundo com multimida principalmente videos.

mvargens

Como já disseram la em cima aí depende do ramo do cliente. Estou insistindo no varejo eu sei, mas é onde vi melhor aplicação da exceção em um volume grande, (mas tem outros). No varejo, o treinamento é constante pois a rotatividade é constante, sendo um gasto necessário, precisa se economizar em outros lugares (licenças). E o treinamento é para o sistema que gerencia o negócio e não para o sistema operacional. Em casos estremos a Tela do Browser cobre toda a área do monitor para impedir o usuário de fazer algo que não seja trabalhar. Linux se encaixa muitíssimo bem aí, mas quando se fala em browser se fala em Web, cai no JEE e ai começamos tudo de novo. Mesmo assim java ainda roda nas duas opções de SO.
Mas concordo com você quanto as parecerias. Em venda casada a Microsoft ganha de qualquer concorrência, e mesmo seus concorrentes acabam sendo seus parceiros para conseguir vender também.

Marcio_Nogueira

Sempre que acesso a página do projeto mono está sempre na versão 2.4, com os mesmos screanshots, em fim, nada de novo.

ViniGodoy

mvargens:
talvez a palavra corporativo não tenha sido bem usada por mim, ou mal interpretada por você, mas eu disse mais de uma vez a palavra varejo la em cima. Jogos jamais serão usados em empresas, a menos que o dono queira ir a falência. quem joga é usuário de computador pessoal e não empresa(corporativo ?). Se o .Net da suporte para isso, ponto pra ele sem duvida, acho que vai ganhar do java sempre ai.
Mas o que eu quis dizer é que existem empresas grandes, multinacionais que optaram por usar Linux em todas as suas maquinas de atendimento, incluindo alguns hipermercados que eu pude observar aqui no Brasil, que é um pais MS. Juntando isso aos que já usam Unix e Linux para web, eu acho que o número de Windows rodando em maquinas de empresas não tenha esse volume todo mais(95%). Linux é uma opção barata, se tiver uma empresa de nome dando suporte, ele se torna muito viável para maquinas estilo terminal e acredite não são poucas não. Imagine quantos call-centers devem existir. Para softwares desse tipo não vejo em que o .Net e mesmo o mono seria melhor, e usar mono não teria suporte de nenhuma empesa. Nesse caso a melhor opção é java. E só para firmar o que eu disse, os softwares que eu ví eram feitos em Swing. Mas não estou puxando a sardinha, apenas achei exagero dizer que fazer em java é muito mais difícil que fazer em .Net, e que Windows domina 95% do mercado. Agora se contar computadores pessoais ai vai dar mais de 120% para o windows pirata.

Sim, como repeti várias vezes, você citou exatamente o tipo de empresa que o Java se encaixa. Principalmente pq um sistema de caixa dificilmente precisará de qualquer tipo de integração com o SO.

Agora, o mercado de Windows de empresas, pelo menos da última vez que vi no Brasil a estatística, era de 80%. Ainda é muito mais, mesmo contando hipermercados, etc. e tal. Isso porque a absurda maioria dos usuários de escritório ainda opta pelo Windows. Veja bem, 20% do mercado total de um país, ainda é um mercado enorme, e tem empresas que vão sobreviver em enriquecer esse nicho, como o seu caso das empresas de varejo. E claro, sua realidade será outra, olhando da sua perspectiva, o Linux está fortemente instalado e o Java torna-se uma opção mais do que excelente. Até pela comodidade de você poder desenvolver e testar a aplicação no Windows, e depois instalar no seu cliente, em qualquer lugar.

O mesmo vale para o nicho que o julio está inserido, que é o da pesquisa científica. Pode não ser o maior do país, mas remunera bem e tem investimentos milionários todos os anos.

Mas em momento nenhum falei que é mais difícil programar em Java do que em Mono. Quer dizer, pelo menos não para essas coisas. É mais difícil se sua aplicação exigir integração com SO, que é o ponto fraco de qualquer linguagem com VM (naturalmente). E, nesse caso, o C# vai ser mais fácil que o Java, já que fornece essa integração de maneira mais transparente.

Acho que discutir linguagem hoje em dia é um pouco de perda de tempo, pq todas as plataformas são excelentes, e cobertas de pontos positivos. Não vejo uma decisão de plataforma hoje em dia como o maior dos problemas. Na verdade, as escolhas que você faz sobre essa plataforma tem mais impacto. Se você pegar o próprio Java, há uma infinidade de possibilidades de APIs para se usar.

O .net tem outra infinidade, além das opções já fornecidas pela própria MS.

J

O java está na versão 6 a quase 5 anos, nem por isso está parado. Agora detalhe, dá uma olhada nos dispositivos que já suportam mono.

J

ViniGodoy:
mvargens:
talvez a palavra corporativo não tenha sido bem usada por mim, ou mal interpretada por você, mas eu disse mais de uma vez a palavra varejo la em cima. Jogos jamais serão usados em empresas, a menos que o dono queira ir a falência. quem joga é usuário de computador pessoal e não empresa(corporativo ?). Se o .Net da suporte para isso, ponto pra ele sem duvida, acho que vai ganhar do java sempre ai.
Mas o que eu quis dizer é que existem empresas grandes, multinacionais que optaram por usar Linux em todas as suas maquinas de atendimento, incluindo alguns hipermercados que eu pude observar aqui no Brasil, que é um pais MS. Juntando isso aos que já usam Unix e Linux para web, eu acho que o número de Windows rodando em maquinas de empresas não tenha esse volume todo mais(95%). Linux é uma opção barata, se tiver uma empresa de nome dando suporte, ele se torna muito viável para maquinas estilo terminal e acredite não são poucas não. Imagine quantos call-centers devem existir. Para softwares desse tipo não vejo em que o .Net e mesmo o mono seria melhor, e usar mono não teria suporte de nenhuma empesa. Nesse caso a melhor opção é java. E só para firmar o que eu disse, os softwares que eu ví eram feitos em Swing. Mas não estou puxando a sardinha, apenas achei exagero dizer que fazer em java é muito mais difícil que fazer em .Net, e que Windows domina 95% do mercado. Agora se contar computadores pessoais ai vai dar mais de 120% para o windows pirata.

Sim, como repeti várias vezes, você citou exatamente o tipo de empresa que o Java se encaixa. Principalmente pq um sistema de caixa dificilmente precisará de qualquer tipo de integração com o SO.

Agora, o mercado de Windows de empresas, pelo menos da última vez que vi no Brasil a estatística, era de 80%. Ainda é muito mais, mesmo contando hipermercados, etc. e tal. Isso porque a absurda maioria dos usuários de escritório ainda opta pelo Windows. Veja bem, 20% do mercado total de um país, ainda é um mercado enorme, e tem empresas que vão sobreviver em enriquecer esse nicho, como o seu caso das empresas de varejo. E claro, sua realidade será outra, olhando da sua perspectiva, o Linux está fortemente instalado e o Java torna-se uma opção mais do que excelente. Até pela comodidade de você poder desenvolver e testar a aplicação no Windows, e depois instalar no seu cliente, em qualquer lugar.

O mesmo vale para o nicho que o julio está inserido, que é o da pesquisa científica. Pode não ser o maior do país, mas remunera bem e tem investimentos milionários todos os anos.

Mas em momento nenhum falei que é mais difícil programar em Java do que em Mono. Quer dizer, pelo menos não para essas coisas. É mais difícil se sua aplicação exigir integração com SO, que é o ponto fraco de qualquer linguagem com VM (naturalmente). E, nesse caso, o C# vai ser mais fácil que o Java, já que fornece essa integração de maneira mais transparente.

Acho que discutir linguagem hoje em dia é um pouco de perda de tempo, pq todas as plataformas são excelentes, e cobertas de pontos positivos. Não vejo uma decisão de plataforma hoje em dia como o maior dos problemas. Na verdade, as escolhas que você faz sobre essa plataforma tem mais impacto. Se você pegar o próprio Java, há uma infinidade de possibilidades de APIs para se usar.

O .net tem outra infinidade, além das opções já fornecidas pela própria MS.

Sim, uma variedade muito grande, nas duas. No dotNet você encontra diversas apis e ferramentas de muita qualidade, mas vai ver o preço delas. Agora no java, você tem tudo isso de graça, que é o caso do NetBeans e da JVisualVM.

Mudando um pouco o foco, a principal vantagem que vejo em mono e c# são o que elas podem trazer para sistemas unix. Trazer um pouco do comércio de software para o unix pode ser uma coisa muito boa, em termos de desenvolvimento do próprio SO. Mas como disse, só um pouco.

ViniGodoy

juliocbq:
Sim, uma variedade muito grande, nas duas. No dotNet você encontra diversas apis e ferramentas de muita qualidade, mas vai ver o preço delas. Agora no java, você tem tudo isso de graça, que é o caso do NetBeans e da JVisualVM.

Mudando um pouco o foco, a principal vantagem que vejo em mono e c# são o que elas podem trazer para sistemas unix. Trazer um pouco do comércio de software para o unix pode ser uma coisa muito boa, em termos de desenvolvimento do próprio SO. Mas como disse, só um pouco.

Sim, isso é verdade. Em termos de ferramentas e APIs gratuitas, o Java dá de 10 a 0. Por outro lado, isso também é reflexo do Java ser uma plataforma mais madura, com uma comunidade maior.

Agora, pela cultura que geralmente gira em torno da MS, vai ser difícil achar algo gratuito. Barato, talvez, mas gratuito, acho que só se as coisas feitas em outras linguagem representarem uma pressão significativa.

J

ViniGodoy:
juliocbq:
Sim, uma variedade muito grande, nas duas. No dotNet você encontra diversas apis e ferramentas de muita qualidade, mas vai ver o preço delas. Agora no java, você tem tudo isso de graça, que é o caso do NetBeans e da JVisualVM.

Mudando um pouco o foco, a principal vantagem que vejo em mono e c# são o que elas podem trazer para sistemas unix. Trazer um pouco do comércio de software para o unix pode ser uma coisa muito boa, em termos de desenvolvimento do próprio SO. Mas como disse, só um pouco.

Sim, isso é verdade. Em termos de ferramentas e APIs gratuitas, o Java dá de 10 a 0. Por outro lado, isso também é reflexo do Java ser uma plataforma mais madura, com uma comunidade maior.

Agora, pela cultura que geralmente gira em torno da MS, vai ser difícil achar algo gratuito. Barato, talvez, mas gratuito, acho que só se as coisas feitas em outras linguagem representarem uma pressão significativa.

Vejo mais um ponto a favor do mono aí. Se ele se consolidar de verdade no unix, vai aparecer muita ferramenta opensource, para dotNet e c#.

J

Só uma coisa vini. Como faço para baixar a visualvm1.2 com java.net fora do ar?

ViniGodoy

Ué, aqui entrou normal

J

Ué, aqui entrou normal

meu ip deve estar sendo bloqueado pelo java.net. Não tem como adicionar lá no server deles?

J

você consegue acessar aqui? https://visualvm.dev.java.net/index.html

ViniGodoy

É, não consigo.

fredferrao

O java está na versão 6 a quase 5 anos, nem por isso está parado. Agora detalhe, dá uma olhada nos dispositivos que já suportam mono.

5 anos :shock: :shock: :shock:
Segundo este post http://www.guj.com.br/posts/list/47897.java de 11/12/2006 ele AINDA vai fazer 3 anos.

Sim, me parece que ele esta bloqueando alguns IP’s, aqui do trabalho nao consigo acessar, mas de casa acesso normal.

J

O java está na versão 6 a quase 5 anos, nem por isso está parado. Agora detalhe, dá uma olhada nos dispositivos que já suportam mono.

5 anos :shock: :shock: :shock:
Segundo este post http://www.guj.com.br/posts/list/47897.java de 11/12/2006 ele AINDA vai fazer 3 anos.

Ainda bem que eu disse quase 5;

Eu queria baixar a visualvm nova. Mas tem vários projetos que não consigo acessar tem mais de mês, no java.net.

fredferrao

O java está na versão 6 a quase 5 anos, nem por isso está parado. Agora detalhe, dá uma olhada nos dispositivos que já suportam mono.

5 anos :shock: :shock: :shock:
Segundo este post http://www.guj.com.br/posts/list/47897.java de 11/12/2006 ele AINDA vai fazer 3 anos.

Ainda bem que eu disse quase 5;

Eu queria baixar a visualvm nova. Mas tem vários projetos que não consigo acessar tem mais de mês, no java.net.

hehe dessa tu escapou :lol:

Esperimenta usar um webproxy, pela net 3g no note eu só consigo acessar via webproxy, ja la em casa o acesso ta normal.

J

O java está na versão 6 a quase 5 anos, nem por isso está parado. Agora detalhe, dá uma olhada nos dispositivos que já suportam mono.

5 anos :shock: :shock: :shock:
Segundo este post http://www.guj.com.br/posts/list/47897.java de 11/12/2006 ele AINDA vai fazer 3 anos.

Ainda bem que eu disse quase 5;

Eu queria baixar a visualvm nova. Mas tem vários projetos que não consigo acessar tem mais de mês, no java.net.

hehe dessa tu escapou :lol:

Esperimenta usar um webproxy, pela net 3g no note eu só consigo acessar via webproxy, ja la em casa o acesso ta normal.

Ok, valeu fred.

mvargens

juliocbq:

Vejo mais um ponto a favor do mono aí. Se ele se consolidar de verdade no unix, vai aparecer muita ferramenta opensource, para dotNet e c#.

Infelizmente minha visão para o Mono é muito pessimista. Ao meu ver só tem uma maneira dele crescer e virar coisa séria em qualquer sistema operacional (entenda séria como .Net e Java no mercado “corporativo”). Precisa de uma empresa grande por trás, como as que nós conhecemos. Mas quem usa Unix e derivados usa pra fugir e ou competir com a MS.
Como uma empresa que é concorrente (MS vs. o resto) vai investir em um projeto baseado literalmente na solução do rival? Não consigo ver muita esperança para o Mono além de sua comunidade. Se o java tivesse nascido aberto, tenho minhas duvidas se seria o que ele é hoje. Infelizmente algumas coisas precisam mesmo visar o lucro e negócios para andar a todo vapor. E veja que nesse ponto a MS acaba atrapalhando muito o Mono, por tirar seus méritos e não assumi-lo. Ele acaba soando mais como uma ameaça MS no Unix, mas sem comprometimento.
Se a MS consolidasse de vez o Mono, ele até poderia ter chances, mas se ela fizer isso como fica o .Net? Sei la cara, o Mono nessa história toda acaba sendo o mais duvidoso e confuso de todos os projetos. Claro que não sou nenhum especialista e é uma opinião minha, mas tente ser imparcial e veja se não tenho razão. Não é MS mas quer usar tudo da MS. A MS não reconhece e não recomenda o Unix. Mas o Mono quer rodar no Unix. Unix tem horror a MS. Velho a proposta dele é muito esquisita.

tRuNkSnEt

Pessoal, apesar de voces terem mudado o foco da noticia é o seguinte:
O primeiro dia de evento começa amanha, quem de voces vai? Agente podia fazer uma panelinha para meter lenha na fogueira.
Ahhh, até que não foi tão mal assim essa discursao, da para aproveitar alguns topicos levantados pela galera!!

J

mvargens:
juliocbq:

Vejo mais um ponto a favor do mono aí. Se ele se consolidar de verdade no unix, vai aparecer muita ferramenta opensource, para dotNet e c#.

Infelizmente minha visão para o Mono é muito pessimista. Ao meu ver só tem uma maneira dele crescer e virar coisa séria em qualquer sistema operacional (entenda séria como .Net e Java no mercado “corporativo”). Precisa de uma empresa grande por trás, como as que nós conhecemos. Mas quem usa Unix e derivados usa pra fugir e ou competir com a MS.
Como uma empresa que é concorrente (MS vs. o resto) vai investir em um projeto baseado literalmente na solução do rival? Não consigo ver muita esperança para o Mono além de sua comunidade. Se o java tivesse nascido aberto, tenho minhas duvidas se seria o que ele é hoje. Infelizmente algumas coisas precisam mesmo visar o lucro e negócios para andar a todo vapor. E veja que nesse ponto a MS acaba atrapalhando muito o Mono, por tirar seus méritos e não assumi-lo. Ele acaba soando mais como uma ameaça MS no Unix, mas sem comprometimento.
Se a MS consolidasse de vez o Mono, ele até poderia ter chances, mas se ela fizer isso como fica o .Net? Sei la cara, o Mono nessa história toda acaba sendo o mais duvidoso e confuso de todos os projetos. Claro que não sou nenhum especialista e é uma opinião minha, mas tente ser imparcial e veja se não tenho razão. Não é MS mas quer usar tudo da MS. A MS não reconhece e não recomenda o Unix. Mas o Mono quer rodar no Unix. Unix tem horror a MS. Velho a proposta dele é muito esquisita.

Parcial, eu nunca fui nesse forum. Ao meu ver, a MS ganha muito com mono também, pois os softwares win32 poderão ser comercializados em unix. Veja, que não há vilão nem herói nessa história. Todo mundo visa o lucro.
A Novell só escolheu o dotnet, porque na época, c# era ecma e java nem tinha aberto seu código, ou criado um padrão para compiladores. Foi uma fatia de mercado que a SUN perdeu na época, senão seria java no lugar do mono. O objetivo do Icaza é criar uma plataforma simples de desenvolvimento para o gnome, e o c# proporcionou isso.

mvargens

juliocbq:

Parcial, eu nunca fui nesse forum. Ao meu ver, a MS ganha muito com mono também, pois os softwares win32 poderão ser comercializados em unix. Veja, que não há vilão nem herói nessa história. Todo mundo visa o lucro.
A Novell só escolheu o dotnet, porque na época, c# era ecma e java nem tinha aberto seu código, ou criado um padrão para compiladores. Foi uma fatia de mercado que a SUN perdeu na época, senão seria java no lugar do mono. O objetivo do Icaza é criar uma plataforma simples de desenvolvimento para o gnome, e o c# proporcionou isso.

Software win32 rodar em Linux não faz a MS ganhar nada. Ao contrário, ela perde a venda do SO dela. Por esse motivo muita gente desaconselha a usar o Mono. Há riscos de sofrer um processo da MS.
A Novell é parceira da MS. Teria escolhido .Net de qualquer forma. Mas não consigo ver a IBM, HP e Oracle usando Mono. Agora se o Mono fosse o .Net para Linux, ai com certeza seria outra coisa, pois o suporte de uma empresa grande é muito importante. E a parte de licenças estando bem clara, simplifica as coisas. Quanto ao Icaza tem gente dizendo que ele ficou doido :shock:. Mas é outra história. Os aplicativos comerciais Win32 que tenho visto no linux, tem rodado no Wine. Mas como o publico alvo desses aplicativos é Windows, não se usa muito. Sei lá. Parece um projeto sério, mas como tudo que é Microsoft, parece muito preso a ela, o que vai contra a proposta do projeto.

Voltando ao assunto. Alguém foi?

Criado 15 de outubro de 2009
Ultima resposta 26 de out. de 2009
Respostas 139
Participantes 28