Dúvida básica relacionando duas linguagens

7 respostas
Ruttmann

Boa noite pessoal!

Sou novo no fórum e na linguagem Java também, já tive uma breve passagem em programação C, a qual exercia para programar microcontroladores. Sempre estive muito ligado à linguagem procedural, porém surgiu um curso de graça na área, com duração de 6 meses e decidi fazer, afinal conhecimento nunca é demais.

Mas olha, foi uma mudança e tanto deixar de lado esse paradigma procedural e pular de vez para OO.

Pois bem, minha dúvida é a seguinte: No curso que faço, tem turmas de Java e C#. C# também é uma linguagem OO, certo?

Pela questão de bibliotecas que o Java dispões, toda essa parte de classes e afins, é muita diferença entre as duas linguagens?

Existem muitas etapas a se passar pra conseguir “trocar de linguagem” e conseguir programar bem?

7 Respostas

thiagof

Olá Ruttmann!

Cara eu tive sua mesma dúvida a uns anos atrás…
Eu programo em Java e C#, comecei programando em Java e apendi os conceitos de POO nela, e depois de alguns anos, me aventurei no C# e não tive problema algum ao me adaptar ao estilo de programação dessa linguagem.

Claro que muitas coisas mudam, porque C# tem suas particularidades e java outras… Eu diria que se vc sabe Java, vc sabe POO e 90% da estrutura de codificação do C#!!!

Mas o que realmente importa são as características da plataforma .Net :smiley:

e outra coisa, se vc sabe programar em C#, então vc ja sabe 90% de Visual basic.Net porque as bibliotecas são as mesmas, ou seja, classes e metodos do framework .Net são os mesmos, o mesmo código do C# pode ser escrito em VB.Net e vice-versa a unica coisa que muda e a estrutura de codificação entre essas linguagens.

O segredo do C# está na plataforma .Net, é ela que vc aprende de verdade… C# é apenas uma linguagem qualquer, o poder e grande trunfo da microsoft é o .Net e para tudo que vc vai fazer em C#, vc usa o .Net!!!

então se vc conhece C#, vc conhece o .Net e consequentemente, todas as linguagens que ele suporta, ou seja, todo o ambiente .Net…

mas não pense que o .Net é uma coisa facil de se aprender porque, assim como o ambiente java, ele é enorme e leva anos para conhecer metade dele!!!

Resumindo… aprende Java, e depois, se quiser, aprende .Net (pode ser C#, VB.Net ou C++.Net entre outros, que muda entre elas é apenas a estrutura do código)

mas minha opinião pessoal é que .Net é muito mais facil de se aprender do que Java, porque muito do trabalho “pesado” é gerado automaticamente pelo visual studio e em contra partida, em java vc precisa configurar muita coisa na mão.
eu prefiro configurar na mão porque ai eu terei que pesquisar o que to configurando e assim aprendo mais a fundo :smiley:

Poe uma coisa em mente: Java e .Net são concorrentes, o que um faz, o outro busca fazer melhor e assim vai, ou seja, se tem algum .lib em C#, tem um .jar equivalente em java, não com o mesmo nome, mas com as mesmas finalidades…

as duas são muito boas e tem muito mercado também…

Aqui na região de Campinas, tem muito mercado na parte de web pedindo .Net, mas como sabemos, o mundo gira e amanhã pode mudar para Rails e tals e como vc disse, conhecimento nunca é demais e temos que aprender cada dia mais! :smiley:

Ruttmann

Entendi thiagof, era bem isso que eu queria saber.

Dei uma perguntada ao meu professor na semana passada, ele explicou mais ou menos isso mas ficou “rodiando” um pouco e falando abobrinha, pois como ele mesmo disse, tem pouco conhecimento em .Net…

:stuck_out_tongue:

Mas olha, pretendo continuar no Java por bastante tempo. Quero muito mudar de ramo, e programação é uma coisa que está presente na minha vida há pelo menos 5 anos, já mexi muito com isso, mas sempre sem compromisso, projetos pequenos e coisa de aula.

Tá tendo um estouro do Java aqui em Blumenau/SC, quase todas as empresas da área de TI estão migrando pra Java, empresas que nunca trabalharam com Java estão migrando pra essa plataforma, e a demanda por pessoal nesta área tá grande.

Portanto estamos aí!

:smiley:

thiagof


Ruttmann
(…) já tive uma breve passagem em programação C, a qual exercia para programar microcontroladores (…)

Tive a oportunidade de trabalhar como programadores C que programavam microcontroladores e eles “odiavam” Java por ser incrivelmente lento comparado ao C para microcontroladores hhehehehe :smiley:

Na minha visão, java é forte para aplicações seguras, grandes e corporativas, mas não é uma linguagem onde o cenário de trabalho é o extremo alto desempenho que o C consegue atingir

Mas se vc não precisa de desempenho extremo, Java vai te atender bem!!!

Outra coisa legal do java em comparação ao .Net é que muita coisa (muita mesmo) em java é free e open source, já em .Net é quase tudo pago e muitas libs que vc baixa para usar no seu projeto não vêem com o codigo fonte junto :frowning:

Ruttmann

Na real, programar microcontroladores em Java, seria mesma coisa que mandar um Fusca puxar uma carreta…

:stuck_out_tongue:

Digo isso pq na época que eu trabalhava com microcontroladores, preferia até programar em Assembly, pela questão de manejamento de memória, alocar nos espaços certos pra otimizar o funcionamento.

Mas olha, Java, uma linguagem que não prioriza uso de memória, é bem complicado usar pra microcontroladores.

Só por experiência mesmo…

:wink:

thiagof

Pode até ser que a versão J2ME (para sistemas embarcados) priorize a memória, mas com a velocidade e precisão de C ou Assembly, nunca!

mas em compensação, ela é muito segura! não se tem problemas com estouro de memória iguais ao do C, e todas aquelas praticas de programação segura em C já estão tratadas de bandeja para vc, a JVM cuida de tudo :smiley:

Bons estudos!

para começar, utilize esse livro como guia:
http://shopping.uol.com.br/java-como-programar-8a-ed-2010-deitel_2114152.html#rmcl
ele é completo e todo mundo indica como referencia! se pegar firme nele, acredito que pode até tentar uma certificação depois de lê-lo :wink:

discorpio

Boa tarde a todos.

Olha se a linguagem C é um estouro, imagine Java que veio oriunda da C, e com o recurso da multiplataforma.

Assim como você, também senti muita diferença quando migrei do Delphi para Java, porém a única diferença e que foi crucial é que o Delphi é uma IDE de desenvolvimento tipo RapidCad, ou seja, para desenvolvimento de aplicações rápidas, com uma vasta gama de bibliotecas de componentes, do tipo click e arraste e monte se formulário, encapsulando muito código, do qual você não tinha visão, onde você só construía as regras de negócio básica.

Assim como o Delphi, o novo Visual Studio, herança do antigo Visual Basic 6, seguiu a mesma linha, isto porque o arquiteto por trás do Delphi e de seu predecessor Turbo Pascal foi Anders Hejlsberg, até a sua alteração para a Microsoft em 1996, onde se tornou o arquiteto responsável pelo projeto do C# e foi peça chave na criação do ambiente Microsoft .NET, utilizado no Delphi 8.
O Delphi teve o formato da IDE alterado pela primeira vez na versão 8, basicamente similar ao formato do Microsoft Visual Studio para .NET.

Já a linguagem Java traz algumas vantagens que eu considero que são cruciais.

A primeira delas é a multiplataforma, se tornando uma linguagem híbrida (Compilada e Interpretada). No primeiro momento em que você desenvolve o seu projeto em java, o seu código somente é compilado em código independente de código nativo de máquina chamado “Bytecodes” e depois a máquina virtual Java (JVM - Java Virtual Machine) com o seu JRE (Java Runtime Enviroment - Ambiente de Execução Java), que é instalada em cada sistema operacional específico é que vai interpretar os bytecodes compilados por debaixo de uma camada de abstração, fazendo assim com que seja multiplataforama, e foi assim que o Java foi escrito com o Slogan “Make once, run everywhere - Faça uma vez, rode em qualquer lugar”.

A segunda vantagem é que java é gratuíto.

E a terceira delas é que a maioria das bibliotecas java é open source (código aberto), onde você pode, utilizando uma IDE como o NetBeans ou Eclipse, ao se clicar em um nome de classe, o código é aberto pra você analisar porém não é modificável.

Apesar de notar esta diferença, ao qual estava acostumado a montar projetos rápidos com o Delphi na base do click e arraste, para o java, onde tive que montar formulários na unha e na munheca, aprendi que quando você tem conhecimento da maioria do código que roda por traz da sua aplicação é muito melhor, inclusive na hora de identificar qualquer erro de lógica, ou até mesmo de sintaxe da linguagem, além é claro de você ampliar os seus conhecimentos.

Quando trabalhava com o Delphi, tive muito problema em utilizar bibliotecas de terceiros, tal qual o Projeto Jedi, e já com o Java, vi a oportunidade de criar as minhas próprias bibliotecas, e também de criar o próprio framework.

Além disso, existe também uma vasta gama de frameworks de java disponíveis no mercado, como o Spring, Hibernate, entre outros, e também um recurso em Java para se trabalhar com recursos de multimídia que é o Java - FX.

Um abraço.

ViniGodoy

Como linguagem, eu gosto muito mais de C# do que Java. Eis alguns dos recursos que o C# não tem que o Java carece:

  • Cálculo Lambda;
  • Extension methods;
  • Co-routines (yield return);
  • Sobrecarga de operadores;
  • LINQ Queries;
  • Propriedades;
  • Delegates;
  • Partial classes;

Alguns recursos, como reflexão e métodos unsafe são bem mais fáceis de usar em C# do que em Java. A API de XML do C# também é muito melhor, e acho as APIs nativas de bancos de dados bem melhores resolvidas que as nativas do Java.

Entretanto, como plataforma, o Java ainda é superior por ser mais velho, e por existirem muitos projetos terceiros de excelente qualidade para ele. Um dos exemplos é o Hibernate. Embora o LINQ deixe manipulações de dados e coleções mais simples que no Java, acho a biblioteca de coleções do Java mais bem arquitetada e poderosa.

As bibliotecas de concorrência do C# também são mais simples de mexer, e para a próxima versão as novidades prometidas são realmente impressionantes, ao tratar de maneira simples distribuição (vale lembrar que uma das grandes apostas da MS é seu servidor Azure, distribuído). Gosto muito do que fizeram como o MVC3.0 também.

Um dos problemas do C#, e da MS no geral, é a falta de continuidade entre as versões. Ainda não tive problemas com os MVCs nem com o C#, mas parece que o XNA já não será diretamente suportado no Windows 8. Sei de usuários no GUJ que já passaram por traumas na migração entre versões.

Criado 22 de abril de 2012
Ultima resposta 23 de abr. de 2012
Respostas 7
Participantes 4