Evento Java x .Net

13 respostas
D

Salve Galera.
Tudo tranquilo?

Aconteceu um evento aqui em Brasilia, muito bom para os profissionais ligado a TI, e eu fui.
Só queria saber se há alguém daqui que foi e o que achou de tal evento?
Como é bom ter grana né? a Microsoft investe pesado neste ponto, pois mandou uns profissionais ótimos para representar o .Net com argumentos bons e ferramentas ótimas, Visual Studio, o que todos devem ter notado é o estilo de ferramenta RAD que é, todos ficaram perplexo com a rapidez de desenvolver nesta plataforma.
Ja do nossso lado, java, enviaram uns carinhas meia boca demais, o que é lamentável, que não deram enfase justamente ao que java tem de melhor, poratabilidade e robustez. Tirando o cara de J2ME o restante tudo praticamente falou “.Net é mais facil e pronto” hehehe.

Bom foi uma palestra interessante, mas para quem não conhece nenhuma das linguagens e presenciou este evento tenho certeza que hoje está balançado para o lado de .Net (Facilidade). Não estou citando custos, já que ninguém compra nada original mesmo (isso foi até citado lá).
Se alguém tiver ido ou não e quiser comentar a respeito.

[]'s

13 Respostas

J

Oi

Diogo, isso é realmente lamentável, mas tb é natural da M$ fazer isso… Que pena que foi assim. :frowning:

T+

D

Pois é, se há uam coisa que a microsoft tem Jeve é grana, e uma coisa que ela investe? Marketing, quem disse que ali o povo que estava (a maioria estudantes) nao tem futuro? pois sao eles que usarao o .Net 2, visual studio 2005, o longhorm (futuro windows) e nisso ela investiu pesado.
Achei uma pena, pois o pessoal que já tem um pouco de receio de java, deposi de assistir à palestra, com certeza deve ter ficado um pouco desistimulado, eu por exemplo, nao desistimulei mas passei a me interessar um pouco mais na plataforma do outro lado.
MAs ainda gosto muito de java… acho que tem muito futuro se a JCP começar a nao lerdar tanto

H

Olá Pessoal,

Gostaria de parabenizar a todos aqui pela forma como estão conduzindo este assunto, não sendo radicais e respeitando as tecnologias concorrentes.
 Trabalho com TI e ao ver os comentários, me atentei para a citação do poderio econômico da Microsoft, que aliás, é inquestionável. Porém, não podemos ser injustos e focar o mérito do evento à empresa. 
 A iniciativa da palestra foi pessoal, de um profissional interessado em discutir as vantagens e desvantagens de cada plataforma e interagir com o público de TI. As mesmas oportunidades foram dadas à pessoas envolvidas por ambos os lados e o mérito do comparecimento de representantes da plataforma .NET é de cada membro da comunidade, uma vez que foram atender a um convite, sem vínculos com a Microsoft.
 Espero que novos eventos como esse venham para enriquecer o cenário de TI em Brasília e no país, para que todos possam apresentar seus produtos e para que essa forma de concorrência favoreça cada vez mais a nós, profissionais da área.

“diogoacl”:
Salve Galera.
Tudo tranquilo?

Aconteceu um evento aqui em Brasilia, muito bom para os profissionais ligado a TI, e eu fui.
Só queria saber se há alguém daqui que foi e o que achou de tal evento?
Como é bom ter grana né? a Microsoft investe pesado neste ponto, pois mandou uns profissionais ótimos para representar o .Net com argumentos bons e ferramentas ótimas, Visual Studio, o que todos devem ter notado é o estilo de ferramenta RAD que é, todos ficaram perplexo com a rapidez de desenvolver nesta plataforma.
Ja do nossso lado, java, enviaram uns carinhas meia boca demais, o que é lamentável, que não deram enfase justamente ao que java tem de melhor, poratabilidade e robustez. Tirando o cara de J2ME o restante tudo praticamente falou “.Net é mais facil e pronto” hehehe.

Bom foi uma palestra interessante, mas para quem não conhece nenhuma das linguagens e presenciou este evento tenho certeza que hoje está balançado para o lado de .Net (Facilidade). Não estou citando custos, já que ninguém compra nada original mesmo (isso foi até citado lá).
Se alguém tiver ido ou não e quiser comentar a respeito.

[]'s

J

Bah…

mas uma coisa que precisa ser ressaltado… posso estar até sendo crítico demais, porém a realidade é a seguinte:
Existem Programadores Java
e Usuário de Visual Studio.

Desculpe estar falando isso, mas é a mais pura realidade… que programa em Java quase em sua totalidade se ficar sem uma IDE com recursos visuais se vira com o bloco de notas mesmo… mas peça para alguem que programa em .Net à fazer isso… é claro qeu existem pessoas que conhecem a linguagem (C# que é a unica descente da plataforma) porém… o resto são meros usuários do Visual Studio… mas também eles não tem muita culpa… pq tem tudo pronto no VS, e vc é quase obrigado a usar os componentes prontos que o VS traz… e ae quando esses componentes começam a dar problema? ou se eles simplesmente resolvem sumir?! o que fazer??? eu ja passei por isso… e dai resolvi aprender a linguagem em si… porém logo desisti e fiquei soh com o Java mesmo…

mas ai está uma questão! E sem dúvida a MS facilita muito a vida de programadores, porém de certo ponto de vista também prejudica, pq se pedir para um deles: “Da pra fazer tal coisa com .Net?” a resposta seria: “Bah, nunca vi nenhum componente que fizesse isso…”

Cya!

R

Olá Diogo,

Meu nome é Rogério Moraes de Carvalho e eu fui o idealizador e principal organizador do evento [b]Plataforma Java x Plataforma .NET - Edição 2004[/b].

Eu organizei toda a parte técnica do evento, tendo definido os temas a serem abordados nas palestras das duas plataformas. Além disto, eu entrei em contato com todas as empresas e palestrantes.

Certamente, a Microsoft foi a empresa que forneceu o maior apoio, inclusive enviando o Leonardo Tolomelli (gerente do programa de desenvolvedores da Microsoft do Brasil) e o Ricardo Mendes (evangelista de .NET da Microsoft do Brasil) de São Paulo para participarem do evento em Brasília. Porém, as outras empresas foram convidadas em igualdade de condições e não era necessário entrar com dinheiro, uma vez que o evento foi beneficente. A Sun Microsystems do Brasil foi convidada para participar do evento, mas ela preferiu não responder ao convite e não defender a plataforma Java. O Bruno de Souza (Javaman) também foi convidado para participar do evento, mas disse que não participava de eventos que abordassem a plataforma .NET. Porém, ele será um dos palestrantes no evento WebMobile TECH WEEK que acontecerá em São Paulo nos dias 26 e 27 de novembro de 2004 e abordará as plataforma Java e .NET. Você pode conferir o nome dele na a relação de palestrantes no seguinte endereço: http://www.portalwebmobile.com.br/eventos/wmtw/palestrante.htm.

Eu sou obrigado a não concordar com o seguinte trecho: <blockquote> do nosso lado, Java, enviaram uns carinhas meia boca demais, ....</blockquote> Todos os palestrantes da plataforma Java que participaram do evento são técnicos altamente reconhecidos no mercado de TI. Veja um breve currículo dos palestrantes da Plataforma Java que apresentaram palestras no evento:

[list]Gilberto Fernandes: Diretor Comercial da Borland Brasília.[/list]
[list]Emilio Yoji Numazaki: Analista de sistemas formado pela Universidade Católica de Brasília. Trabalha na área de informática desde 1996 e com Java desde meados de 2000. Participou de projetos no Banco do Brasil, Ministério da Saúde e hoje é consultor SunONE/J2EE. Com conhecimentos no sistema operacional Linux, é mantenedor do site Geleira.org, sendo responsável pela área de Programação Orientado a Objetos, Java e Moderador de Fóruns. Participa ativamente do JavaComBr, um grupo de usuários de Java em Brasília, sendo que já ministrou vários mini-cursos. Foi palestrante na última Maratona 4 Java.[/list]
[list]Paulo Jerônimo: Pós-graduado em Sistemas Distribuídos e Orientação a Objetos pela Universidade de Brasília (UnB) e formado em Ciência da Computação. Sun Certified Programmer for Java 2 Platform e Sun Certified Web Component Developer for J2EE Platform. Possui experiência de mais de 1000 horas de aula ministradas em diversas empresas no Centro-Oeste. Foi arquiteto de sistemas J2EE na Unisys em projeto da Caixa Econômica Federal. Trabalhou no núcleo de tecnologia da Fóton Informática onde atuou principalmente descobrindo o funcionamento e a utilização de API’s e tecnologias, como JMS (Java Message Service) e XML, para aplicação em projetos como o SPB (Sistema de Pagamentos Brasileiro). Também nesta empresa, envolveu-se no desenvolvimento de sistemas utilizando CORBA. Na Politec, liderou projetos, foi analista e desenvolvedor Java (JSPs, Servlets, EJBs) e, antes disso, desenvolveu projetos envolvendo o middleware Tuxedo (Bea) com programação OO em Delphi.[/list]
[list]Hugo Ricardo Urresti: Formado em Tecnologia da Informação pela Universidade Mackenzie, atua na área de Tecnologia de Informação a dezessete anos, passando por empresas como Control Data, SCO, Powersoft/Sybase, Silverstream, e envolvido com CRM como consultor, no Peppers and Rogers Group e Siebel. Atualmente é Consultor de Vendas Sênior da BEA Systems, especialista em tecnologia de desenvolvimento baseado em Java 2 Enterprise Edition (J2EE).[/list][list]Renato Quedas: Senior Solutions Architect Borland Latin America - Especialista em desenvolvimento de aplicações de missão crítica em plataformas distribuídas utilizando Java, CORBA, J2EE e XML Web Services. Ministrou palestras em eventos como: COMDEX Brasil, JavaOne (EUA), BorCon(EUA), BorCon Brasil, DBEXPO, OD e nos seminários de lançamento de produtos de Application Lifecycle Management da Borland na América Latina e Canadá. No ano 2000, foi eleito o Melhor Instrutor do Mundo pela Borland Software Corporation.[/list]
[list]Marcos Maia: Possui certificações oficiais de Java da Sun Microsystem, da Borland (JBuilder) e da BEA (BEA Web Logic Platform).[/list]
[list]Ronan Moraes: Sun Certified Mobile Application Developer(SCMAD), programador Java desde 1996, instrutor da Sun entre 1998 e 2002 começou a atuar com J2ME em 2001 no CTS Banco do Brasil em 2002 foi consultor técnico no projeto Siemens do instituto Genius e atualmente é Gerente de projetos do Instituto Nokia de Tecnologia.
[/list]

Conforme você pode conferir pelos currículos, nenhum palestrante da plataforma Java era "meia boca".

É importante ressaltar que, apesar de eu ter apresentado duas palestras sobre a Plataforma .NET no evento, eu estudo e utilizo a plataforma Java. Inclusive, eu estarei apresentando uma palestra na faculdade Michelangelo (Brasília) sobre as novidades da linguagem Java no J2SE 5.0 (Tiger) na próxima quarta-feira (3 de novembro de 2004) das 10:00 às 11:30.

Você pode ter certeza que esta concorrência é otima para ambas as plataformas. O JCP está muito mais eficiente e a linguagem Java sofreu a maior modificação desde a sua introdução em 1995 (1.0) com o J2SE 5.0, lançado no dia 30 de setembro de 2004. Certamente, grande parte destas modificações foram baseadas em recursos da linguagem C#.

Abraços,

Rogério Moraes de Carvalho
Consultor e Instrutor de TI
[email removido]

R

“jujo”:
Bah…

mas uma coisa que precisa ser ressaltado… posso estar até sendo crítico demais, porém a realidade é a seguinte:
Existem Programadores Java
e Usuário de Visual Studio.

Desculpe estar falando isso, mas é a mais pura realidade… que programa em Java quase em sua totalidade se ficar sem uma IDE com recursos visuais se vira com o bloco de notas mesmo… mas peça para alguem que programa em .Net à fazer isso… é claro qeu existem pessoas que conhecem a linguagem (C# que é a unica descente da plataforma) porém… o resto são meros usuários do Visual Studio… mas também eles não tem muita culpa… pq tem tudo pronto no VS, e vc é quase obrigado a usar os componentes prontos que o VS traz… e ae quando esses componentes começam a dar problema? ou se eles simplesmente resolvem sumir?! o que fazer??? eu ja passei por isso… e dai resolvi aprender a linguagem em si… porém logo desisti e fiquei soh com o Java mesmo…

mas ai está uma questão! E sem dúvida a MS facilita muito a vida de programadores, porém de certo ponto de vista também prejudica, pq se pedir para um deles: “Da pra fazer tal coisa com .Net?” a resposta seria: “Bah, nunca vi nenhum componente que fizesse isso…”

Cya!

Olá jujo,

Qualquer opinião tem que ter uma fundamentação técnica para ser válida. Porém, as suas conclusões sobre a plataforma .NET parecem não ter nenhum fundamento. Você não pode tirar conclusões precipitadas somente baseadas em fracassos pessoais no uso da plataforma .NET.

Eu estudo e utilizo a plataforma .NET desde o início de 2001, quando o Visual Studio .NET estava na versão beta 1. Além disto, eu utilizo o projeto open source Mono (http://www.mono-project.com) para portar o .NET Framework para Linux, MacOS e outras plataformas. Assim como em Java, eu não preciso utilizar o Visual Studio .NET para desenvolver aplicações, pois eu posso utilizar o Notepad (ou qualquer outro editor de texto puro) e compilar o código fonte com o csc (c# compiler), que é fornecido gratuitamente com o .NET Framework SDK (http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d&displaylang=en).

Ainda existem opções de IDEs open source, como o SharpDevelop (http://www.icsharpcode.net/OpenSource/SD) para Windows e o MonoDevelop (http://www.monodevelop.com) e opções de IDEs comerciais, como: Borland C# Builder 1.0, Borland Delphi 8 e, mais recentemente, o Borland Delphi 2005, que permite que você desenvolva em Delphi e C#.

Certamente, a linguagem C# não é a única descente da plataforma, pois o C++ managed code, IL Assembler, J# e até mesmo o Visual Basic .NET são linguagens poderosas na plataforma .NET. Os limites de qualquer linguagem na plataforma .NET podem ser ultrapassados com o IL Assembler.

Rogério Moraes de Carvalho
Instrutor e Consultor de TI
[email removido]

J

Desculpe…
se fui crítico demais… mas como tbm ressaltei, vc é uma EXCEPTION no mundo do .Net… mas vc precisa concordar que a maioria nao eh como vc, o qual se destaca muito nesse ramo de pesquisa, e atuliazação de conhecimento como vc mesmo demostrou.

Bom, quanto a fundamentação de minhas opiniões, creio que não são somente por fracassos pessoais, tem muitas outras coisas que não vale a pena ficar falando, pois estariam fora de contexto e não caberia a mim contar as historias inteiras… E também não quero criar uma discussão “quente” sobre isso… E quando falei que desisti de aprender mais a fundo a plataforma .net, foi por ter que escolher entre uma e outra mesmo.

No entanto, quanto a minha referencia de C# ser a melhor linguagem da plataforma, da-se devido ao fato dela ter sido feita do zero, e não ter sido adaptada para a plataforma como as outras foram, o que devido a pesquisas mostraram-se ruins e com muitos problemas devido a isso… mas também não sou nenhum estudioso da plataforma .Net… Quanto ao projeto Mono, tenho o acompanhado tbm… é muito interessante a tentativa da portabilidade para a plataforma Linux.

Só gostaria de saber como é que componentes nativos para Windows poderiam ser rodados no linux, entada-se esses componentes nativos aqueles que fazem as chamadas diretamente a rotinas do SO. Mas também não entendo muito do assunto… se pudesse esclarecer um pouco mais essas coisas… Gostaria e saber.

Ah… reli o que acabei de escrever, e me pareceu estar sendo um pouco ironico, porém asseguro que as perguntas foram feitas diretamente, sem nenhum tom de ironia, somente dúvidas diretas e técnicas.

Obrigado.

cya!

R

Olá Jujo,

Eu entendo perfeitamente a sua posição e apenas estou colocando estas informações para tentar levar o debate para um lado técnico. Afinal de contas, todas as críticas são muito bem-vindas desde que sejam bem fundamentadas. Deste modo, nós poderemos elevar o nível das discussões e produzir informações úteis para os técnicos que acompanham o fórum.

Você pode ter certeza que é freqüente, principalmente em fóruns, a colocação de críticas à plataforma concorrente, seja ela a plataforma .NET ou a plataforma Java, com argumentos que não correspondem à realidade dos fatos.

Eu tenho uma preferência pessoal pela linguagem C# na plataforma .NET, mas também trabalho com Visual Basic .NET, pois esta é uma definição que cabe ao cliente. Apesar da linguagem C# ter sido feita do zero para a plataforma .NET, a Microsoft definiu uma especificação, que deve ser seguida por qualquer linguagem que seja criada para a plataforma .NET ou portada para ela, denominada CLS (Common Language Specification): http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconwhatiscommonlanguagespecification.asp. Isto permite a interoperabilidade entre os tipos definidos entre as diferentes linguagens. Além disto, o IL Assembler permite o acesso a todos os recursos disponiveis no Common Language Runtime (CLR - ambiente de execução da plataforma .NET, assim como a JVM em Java) e do .NET Framework. Sendo assim, o conhecimento do CLR e do .NET Framework são tão importantes quanto a linguagem utilizada. Qualquer pessoa com conhecimentos sólidos do CLR e do .NET Framework pode migrar de uma linguagem para outra sem problemas e com poucas dificuldades.

Em .NET, assim como em Java, qualquer componente que faça acesso nativo a um sistema operacional deve ser reescrito para outros sistemas operacionais. O Projeto Mono tem portado o .NET Framework para a plataforma Linux e MacOS X. Todos aqueles componentes de .NET produzidos pelo projeto e que fazem acesso nativo à plataforma Win32 devem ser reescritos para acesso nativo a recursos similares no kernel do Linux ou do MacOS X. Na realidade, todos os componentes devem ser reescritos no projeto Mono, uma vez que o código do .NET Framework é proprietário da Microsoft, assim como o código o código do JRE (Java Runtime Environment) é proprietário da Sun.

É importante deixar claro que a Sun disponibiliza os arquivos fontes na linguagem de programação Java de todas as classes que definem o núcleo da API Java 2 no arquivo "src.zip". Ou seja, arquivos fontes para os pacotes java.*, javax.*, alguns org.*, mas nenhum para com.sun.*. Este código fonte é fornecido somente para propósitos informativos, para ajudar aos desenvolvedores Java a aprender e usar a linguagem de programação Java. Estes arquivos não contêm códigos de implementações específicas de uma plataforma e não podem ser usados para recompilar a biblioteca de classes.

Portanto, as coisas funcionam de modo muito similar nas plataformas Java e .NET. Se o seu código é completamente gerenciado, ou seja, não acessa recursos nativos de um sistema operacional, então, teoricamente, ele poderá ser executado em qualquer sistema operacional para o qual a plataforma tenha sido portada.

Em nenhum momento eu achei que você estava sendo irônico, senão eu nem estaria escrevendo neste tópico. Eu apenas achei que você estava tendo uma imagem errada por não ter tanta experiência na plataforma .NET quanto você parece ter na plataforma Java.

Abraços,

J

Legal!

Gostei do conhecimento passado.

Obrigado pelas explicações.
Quanto a CLS tenho conhecimento, mas ja vi artigos onde estudiosos do .Net desaconselhavam o uso das outras linguagens da plataforma por não serem tão boas quanto o C# (claro), mas também pelo motivo das imcompatiblidades que em certos casos ocasionava, pelo motivo de terem que ser portadas para aceitarem OO, e para trabalharem de acordo com a plataforma…
Ja vi como a VM do .Net funciona, e é realmente igual nas idéias, ao java, mas com algumas diferenças na implementação, o que, sem querer “vender meu peixe”, são inferiores ao Java, e ainda mais agora com o Tiger, o qual trouxe muitas modificações, e melhorou muito alguns aspectos internos como as implementações de reflections, e chamadas a métodos que o deixou muito mais rapido, e “preciso”, digamos assim…

E quanto ao MSIL do .Net (byteCodes do Java), ouvi falar, e gostaria de saber de vc, se os códigos gerados, ja tem algumas coisas de códigos de máquina, para tentar torna-lo mais rapido quando interpretado/compilado pelo CLR.

Obrigado e até mais!

ps: para quem se interessar no assunto das diferenças de C# e Java, de uma olhada nesse artigo, onde Thomas Paul, faz uma comparação bem imparcialista sobre as duas linguagens em:
http://www.javaranch.com/newsletter/Sept2002/JavaAndCSharp.html

ps2: Sendo este artigo meio antigo, algumas coisas dessas ja estão no Java1.5, das quais o nosso amigo Rogerio poderia destacar.

D

Rogerio, estive presente em todas as palestras.

Quando mencionei meia boca tinha consciencia do curriculum de cada um no papel de desenvolvedor para tal plataforma.
Se ler topicos mais acima frisei bem que a microsoft (que tem interesses claro nisso) mandou uma equipe de peso, vendedores de produtos realmente bons para palestras.
Os Palestrantes de Java, podiam até ter conhecimento muito bom, mas como vendedor de produtos não foram bons. O paulo jeronimo com a abordagem critica dele em cima de software free na minha opnião foi um dos piores, não estou aqui criticando software free antes que alguém me ataque, mas em palestras como esta o povo quer ver produtividade, desempenho, agilidade.
Eu entendo todos os pontos das palestras e fui ciente de cada um dos palestrantes. Por infelicidade também não gostei da palestra do Renato Quedas, que na minha opnião é um dos melhores palestrantes hoje.
Enfim Rogério, acho que qualquer coisa é feita de criticas assim como elogiei alguns, não gostei da apresentação de outros e tirei minhas conclusões em cima de todas palestras que estive presente, não perdendo um só minuto.
Você está de parabéns pela iniciativa, mas confesso que os palestrantes do Java ficaram em desvantagens ou não mostraram realmente o que java tem de melhor…

R

“jujo”:
Legal!

Gostei do conhecimento passado.

Obrigado pelas explicações.
Quanto a CLS tenho conhecimento, mas ja vi artigos onde estudiosos do .Net desaconselhavam o uso das outras linguagens da plataforma por não serem tão boas quanto o C# (claro), mas também pelo motivo das imcompatiblidades que em certos casos ocasionava, pelo motivo de terem que ser portadas para aceitarem OO, e para trabalharem de acordo com a plataforma…
Ja vi como a VM do .Net funciona, e é realmente igual nas idéias, ao java, mas com algumas diferenças na implementação, o que, sem querer “vender meu peixe”, são inferiores ao Java, e ainda mais agora com o Tiger, o qual trouxe muitas modificações, e melhorou muito alguns aspectos internos como as implementações de reflections, e chamadas a métodos que o deixou muito mais rapido, e “preciso”, digamos assim…

E quanto ao MSIL do .Net (byteCodes do Java), ouvi falar, e gostaria de saber de vc, se os códigos gerados, ja tem algumas coisas de códigos de máquina, para tentar torna-lo mais rapido quando interpretado/compilado pelo CLR.

Obrigado e até mais!

ps: para quem se interessar no assunto das diferenças de C# e Java, de uma olhada nesse artigo, onde Thomas Paul, faz uma comparação bem imparcialista sobre as duas linguagens em:
http://www.javaranch.com/newsletter/Sept2002/JavaAndCSharp.html

ps2: Sendo este artigo meio antigo, algumas coisas dessas ja estão no Java1.5, das quais o nosso amigo Rogerio poderia destacar.

Olá Juliano,

Por favor, se for possível, passe o link dos artigos destes “estudiosos” de .NET que desaconselham o uso das outras linguagens por não serem tão boas quanto o C#. Primeiro, eu acho muito difícil que eles tenham feito um estudo tão completo a ponto de comparar o C# com as mais de 40 linguagens disponíveis atualmente para a Plataforma .NET. Apenas para citar algumas linguagens disponíveis para a plataforma .NET, veja a seguinte relação: Visual Basic .NET, C++ managed Code, J#, JScript .NET, IL Assembler, Delphi, Python for .NET, Perl for .NET, Smalltalk for .NET, COBOL for .NET, Salford FTN95 for .NET (Fortran95), Fortran for .NET, DotLisp (dialeto Lisp for .NET), PHP#, Forth, Chrome for .NET, Standard ML, S#, Boo, Nemerle, Oberon, Eiffel, Component Pascal, F#, Mercury, IronPython, P#, Pan#, RPG, Lua .NET, Haskell, APL, Scheme, Mondrian for .NET, extensible C# (XC#), etc. É importante ressaltar que não podemos concluir que C# é a melhor linguagem .NET simplesmente pelo fato de ter sido criada do zero para a plataforma .NET. Outras linguagens também foram criadas do zero para a plataforma .NET, como: Nemerle (http://nemerle.org) e Boo (http://boo.codehaus.org), dentre outras.

É importante deixar claro que o compilador de qualquer linguagem para .NET compila o código fonte para IL (Intermediate Language), como o bytecode em Java. Sendo assim, o ambiente de execução do .NET (Common Language Runtime - CLR) executa o código intermediário do mesmo modo, independente do código fonte original. As diferenças de performance podem acontecer por causa de diferenças na compilação do código fonte para o código IL. (Na realidade, o código gerado na compilação é denominado PE, que será explicado adiante.)

Quanto a qual é a melhor máquina virtual, JVM (Java Virtual Machine) ou o CLR (Comoon Language Runtime), eu acho que existem vários aspectos s serem analisados. Certamente, em alguns aspectos a JVM deve ter uma implementação melhor que o CLR e em outros, o contrário. A Microsoft trabalhou durante alguns anos na sua própria implementação de um compilador Java (Visual J++) e uma máquina virtual. Neste período, técnicos altamente especializados em Java e outras linguagens trabalharam na Microsoft estudando detalhadamente a plataforma Java. Por exemplo, em 1996 a Microsoft contratou o Anders Hejlsberg (criador do Turbo Pascal e arquiteto chefe do Borland Delphi) da Borland e vários outros especialistas da Borland e de outras empresas (inclusive da Sun), para desenvolver o projeto do Visual J++. Além disto, a Microsoft investe bilhões de dólares por ano em pesquisa. Será que todos estes especialistas em Java e com todo este investimento, eles não conseguiram melhorar em nada a máquina virtual Java? Isto é uma questão de bom senso.

O projeto do “Tiger” (J2SE 5.0) teve como principal objetivo manter a compatibilidade com as máquinas virtuais do legado. Sendo assim, grande parte das melhorias na linguagem Java corresponde a um “açúcar sintático”, pois o compilador gera um código que, anteriormente, teria que ser gerado manualmente pelo desenvolvedor Java. A Sun investiu muito tempo também para melhorar a performance de execução das aplicações Java na JVM. Porém, as restrições impostas pela compatibilidade com o legado atrapalham muito a questão de performance. Mas, este é um preço que a Sun vai ter que pagar neste momento, pois a quebra de compatibilidade com as máquinas virtuais antigas poderia causar o fracasso da adoção do J2SE 5.0 e, conseqüentemente, das várias novidades introduzidas na linguagem Java.

Todo o código compilado para a plataforma .NET gera um PE (Portable Executable). O PE corresponde a um formato de arquivo que define a estrutura que todos os arquivos executáveis (EXE) e bibliotecas de ligação dinâmica (DLL) devem ter para permitir que sejam carregados e executados pelo Windows. O formato PE é derivado do Common Object File Format (COFF). Os arquivos .EXE e .DLL criados para o .NET Framework obedecem aos formatos PE/COFF. Para ver uma análise em profundidade sobre este assunto, você pode ler o artigo “An In-Depth Look into the Win32 Portable Executable File Format” (http://msdn.microsoft.com/msdnmag/issues/02/02/PE/default.aspx), escrito pelo “Matt Pietrek” e dividido em duas partes. O único código nativo que existe é para carregar e iniciar a execução da aplicação .NET na memória. Desta forma, uma aplicação executável .NET não precisa chamar um programa intermediário como acontece com Java (java.exe). Você chama o executável da aplicação diretamente. Quando o PE é portado para outra plataforma (como a plataforma Linux, por exemplo), então o código nativo para carregar e iniciar a execução da aplicação não vai funcionar. Sendo assim, as outras plataformas devem fornecer um programa para carregar e iniciar a execução do código IL. Por exemplo, para executar o programa PE “MeuPrograma.exe” no Mono, rodando em Linux, você deve utilizar a seguinte instrução “mono MeuPrograma.exe”, de modo similar ao que acontece com Java. Para finalizar, desde que a sua aplicação não acesse recursos do sistema operacional, ela será portável para outros sistemas operacionais suportados pela plataforma, assim como acontece com Java.

Obs.: Apenas para esclarecer, o artigo “Java and C# - A Programmer’s Comparison” não tem nada de imparcial. O artigo foi escrito em setembro de 2002, sendo que o autor, “Thomas Paul”, já programava em Java desde 1996 (de 6 a 7 anos de experiência em Java até escrever o artigo). Ele havia iniciado a programação em C# em abril de 2002 (aproximadamente 6 meses de experiência em C# até escrever o artigo). Algumas das coisas que ele “odeia” em C# correspondem a recursos poderosos que a linguagem fornece, como: propriedades e indexers. Um recurso que ele “ama” em C# é duramente criticado pela Sun: delegates. Porém, eu não quero estender demais a discussão comentando detalhe por detalhe das linguagens Java e C#. É muito difícil encontrar algum artigo de comparação das linguagens Java e C# que seja imparcial. Na maiorias das vezes, as opiniões dos autores são tendenciosas para as linguagens que eles têm um maior domínio. Observe que um recurso inicialmente mal entendido numa linguagem pode ser mal interpretado e mal utilizado. Porém, com a experiência, o desenvolvedor com uma mente aberta pode ser capaz de compreender melhor o recurso e utilizá-lo bem. Neste momento, ele estará apto a dar uma opinião mais consistente.

Abraços,

R

“diogoacl”:
Rogerio, estive presente em todas as palestras.

Quando mencionei meia boca tinha consciencia do curriculum de cada um no papel de desenvolvedor para tal plataforma.
Se ler topicos mais acima frisei bem que a microsoft (que tem interesses claro nisso) mandou uma equipe de peso, vendedores de produtos realmente bons para palestras.
Os Palestrantes de Java, podiam até ter conhecimento muito bom, mas como vendedor de produtos não foram bons. O paulo jeronimo com a abordagem critica dele em cima de software free na minha opnião foi um dos piores, não estou aqui criticando software free antes que alguém me ataque, mas em palestras como esta o povo quer ver produtividade, desempenho, agilidade.
Eu entendo todos os pontos das palestras e fui ciente de cada um dos palestrantes. Por infelicidade também não gostei da palestra do Renato Quedas, que na minha opnião é um dos melhores palestrantes hoje.
Enfim Rogério, acho que qualquer coisa é feita de criticas assim como elogiei alguns, não gostei da apresentação de outros e tirei minhas conclusões em cima de todas palestras que estive presente, não perdendo um só minuto.
Você está de parabéns pela iniciativa, mas confesso que os palestrantes do Java ficaram em desvantagens ou não mostraram realmente o que java tem de melhor…

Olá Diogo,

Ao ler a sua opinião, muitas pessoas poderiam achar que o evento foi tendencioso para a plataforma .NET, o que não foi o caso. O termo “meia boca” também leva a entender que os palestrantes da plataforma Java não estavam capacitados para um debate, o que também não foi o caso. De todos os palestrantes da plataforma .NET, apenas dois eram da Microsoft: Leonardo Tolomelli e o Ricardo Mendes. Todos os outros não eram funcionários da Microsoft, mas sim MVPs (Most Valuable Professionals), RDs (Regional Directors) e outros estudiosos da plataforma .NET.

O principal foco do evento era o debate de aspectos técnicos de tecnologias similares das duas plataformas e não a produtividade das IDEs. Muitos dos palestrantes da plataforma Java não pertenciam a empresas que tinham IDEs para desenvolvimento nesta plataforma. Este seria um papel de representantes das empresas que produzem IDEs para a plataforma Java, como: a BEA, a Borland, a Oracle e a Sun. Tanto a Oracle quanto a Sun não responderam aos convites para participar do evento. Eu mesmo gostaria de ver as novidades do Oracle JDeveloper 10g e ver demonstrações do Sun Java Studio Creator, que oferece uma produtividade muito similar a do Visual Studio .NET. Os recursos desta IDE são claramente baseados no Visual Studio .NET, conforme você pode conferir no artigo “Sun Java Studio Creator - IDE de nova geracao da Sun para desenvolvimento Java” que eu escrevi no boletim #389 do DFJUG: http://www.dfjug.org/DFJUG/boletins/bolet_389.html. Por que a Oracle e Sun não enviaram palestrantes para apresentar as suas IDEs no evento? Os convites para a Oracle e Sun foram feitos! Eu também gostaria de ter estas respostas, pois a Microsoft fez questão de estar defendendo a plataforma .NET.

Veja que curioso, eu gostei muito da palestra do Paulo Jerônimo, pois ele apresentou os principais recursos do JDBC 3.0 e as novidades do JDBC 4.0. Porém, ele é um adepto de ferramentas Open Source e nas demonstrações executou uma série de programas com interface de comando de linha (CLI - Command Line Interface). Isto não quer dizer que não existam IDEs open source produtivas e poderosas para a plataforma Java. As IDEs Eclipse (http://www.eclipse.org) e NetBeans (http://www.netbeans.org) estão ai para provar isto. Veja, por exemplo, o número de recursos oferecidos pelas IDEs: NetBeans 3.6, NetBeans 4.0 Beta 2 e o NetBeans 4.1 Early Access Release 1. Veja também os recursos oferecidos pelas IDEs: Eclipse SDK 3.0.1 e Eclipse SDK 3.1M2. São excelentes IDEs para o desenvolvimento na plataforma Java. Além disto, ainda existem excelentes IDEs comerciais, como o Borland JBuilder 2005.

Eu respeito a sua opinião, mas acredito que você tenha levado muito em conta a produtividade da IDE do Visual Studio .NET para concluir que a Plataforma .NET tenha levado vantagem no evento. Eu, por exemplo, estava dando mais importância à robustez das tecnologias de cada plataforma. Quem sabe na próxima edição do evento, a Oracle e a Sun não participem e mostrem que as suas IDEs também são muito produtivas.

Abraços,

D

Caro Rogerio,

Sei muito bem a respeito de CAda IDE de JAVA o que cada uma faz e o que nao faz.
E neste forum em especifico estive falando de Agilidade, mas em outro forum comentei sobre a robutez e portabilidade de java, voce viu a respeito?
Só estou citando os pros e contras de cada palestrantes, bem, nao eram funcionarios, mas com certeza alguns deles tem vinculo com a MS.
Sei que voce tem que defender sua cria, mas o pessoal alem de ver as novidades queria sim ver em termos de agilidade, desempenho e o que se pode fazer.
Em cada uma das plataformas respeito o que há de melhor, mas critico o que nao foi mostrado, ou como foi passado, sendo que poderia ter tido um impacto muito melhor se o palestrante tivesse ajudado!!! ISSO É FATO.
Percebeu-se isso, se voce diz que ficou presente em todas as palestras, o ar de desapontamento em algumas palestras como essa de JDBC!
E o ar de interesse como a palestra de mobile, ou área WEB.
Sei que voce está aqui defendendo o seu evento e nao as plataformas, achei ótimo o evento, e irei nos proximos, o que eu citei poderia chegar aos palestrantes, tenho certeza que a minha opnião não é unica pois nos almoços conversa com outros participantes e sabia extgamente o que estava acontecendo.
Também respeito a sua opniao mesmo que esta seje convergente em alguns aspectos! Como disse, sao criticas construtivas aos palestrantes!
E pra voce também se servir!!!

Criado 11 de outubro de 2004
Ultima resposta 2 de nov. de 2004
Respostas 13
Participantes 5