.NET Framework vs JVM

16/08/2015

0

O .NET Framework é como se fosse uma "virtual machine" comparando ele com o JVM (Java Virtual Machine) no verdadeiro sentido da palavra? As duas estão em pé de igualdade para o aprendizado, no sentido amplo?
Geane Oliveira

Geane Oliveira

Responder

Posts

16/08/2015

Jothaz

Sinceramente não entendi o que você que quer dizer seu questionamento:


As duas estão em pé de igualdade para o aprendizado, no sentido amplo?


Com relação a sua dúvida entre o .Net e JVM, apesar de ser um assunto complicado e extenso, tetarei resumir o que eu entendo a respeito. E provavelmente pode suscitar mais dúvidas que esclarecimentos.

Acho que a resposta seria depende de sua perspectiva!

E principalmente o que é um Maquina Virtual para você?

.NET não é uma linguagem, e sim uma plataforma da Microsoft que permite a utilização de diversas linguagens, como C#, Visual Basic, J# e ASP.

O cenário típico para execução no de uma aplicação .net se parece com isso:

1 - Você escrever um programa em C # .Net, VB.Net, F #, ou alguma outra linguagem compatível.
2 - Esse código é compilado para CLR (Common Language Runtime) e para uma linguagem intermediária (IL), que é semelhante ao bytecode do Java, que é distribuído para máquinas do usuário final.
3 - Um usuário final invoca o programa pela primeira vez em um computador com a versão correta do .NET instalado.
4 - O computador vê esta "versão" é faz uma montagem de Net em vez de "raw" código de máquina, e passa-lo para o compilador JIT (Just in Time).
5 - O compilador JIT compila o IL para código de máquina totalmente nativa.
6 - O código nativo é guardado na memória para a execução do programa.
7 - O código nativo salvo é chamado, e a IL, não importa.

Em nenhum momento qualquer código é interpretado. Em vez disso, você pode ver no passo 5 que ele é compilado para código nativo. Esta é uma enorme diferença de carregá-lo em uma máquina virtual, por várias razões:

1 - O código totalmente compilado é executado pelo CPU diretamente em vez de interpretado ou traduzido por uma camada de abstração de software adicional, que deve ser mais rápido.
2 - O compilador JIT pode tirar proveito de otimizações específicas para a máquina individual ao executar o programa, em vez de se contentar com um menor denominador comum.
3 - Se você quiser, pode até mesmo pré-compilar o código e, em essência esconder a etapa 5 do usuário completamente.

Um ponto a ser considerado é a falta de um processo de VM. Quando você executar seu aplicativo, não há nenhuma "sandbox" comum processo que é executado. Compare isso com Java, onde se você abrir o gerenciador de tarefas quando um programa está sendo executado, você verá um processo especificamente para o Java VM, e processo real do aplicativo é um fio no interior da caixa de areia criada pela VM. Na Net, você vê o processo do aplicativo no gerenciador de tarefas do Windows diretamente.

Agora, o termo Máquina Virtual tem vindo a ser um termo geral que descreve ambientes de execução abstratos como o CLR, a JVM, o Smalltalk VM, etc. O termo "máquina virtual" é realmente um termo muito mais velho do mundo do hardware (IBM virtualizou seu modelo 360 foi o primeiro, na década de 1960), que usado para significar uma emulação da máquina subjacente software / hardware para realizar o mesmo tipo de coisa que a Microsoft faz com VirtualPC .

Finalizando você poderia dizer que a IL, CLR e JIT juntos de alguma forma fazer-se uma máquina virtual.
Mas acho que não faz a muyita diferença e é um discussão que só gera mais discussão e é um questão de perspectiva e abstração de cada um.
Responder

16/08/2015

Geane Oliveira

Boa noite Jothaz, não precisa tanto, me desculpe se errei no "malabarismo" na construção da minha duvida, queria apenas saber a diferença entre as duas, mas você foi muito claro e completo.
Responder

16/08/2015

Jothaz

Não tem que se desculpar em nada, talvez eu é que tenha que me desculpar por não entender! kkk

Infelizmente não tem como ser sucinto em um assunto com complexidade igual a este e como ressaltei talvez a explicação ou tentativa de explicação gerasse mais dúvidas.
Responder

16/08/2015

Geane Oliveira

No meu caso não, a resposta não foi bem fundamentada, entendi bem! Por enquanto as perguntas são essas, talvez virão outras mais complexas, tambem sobre .NET Framework, mas acredito que por hoje é só.
Responder

16/08/2015

Fernanda Acacia

É muita informação para as duas, a JVM e o .NET Framework.
Responder

17/08/2015

Jothaz

É muita informação para as duas, a JVM e o .NET Framework.


Particularmente acho importante conhecer os conceitos, apesar de ser muita informação.

E normalmente acho mais proveitoso mostrar o contexto gera e deixar que os postantes exercer sua visão critica e decidir qual o caminho tomar.
Responder

17/08/2015

Fernanda Acacia

Sim, muito importante, saber as caracteristicas de cada linguagem é muito importante. no java os "imports" e no .net os "using".
Responder

17/08/2015

Geane Oliveira

Estou vendo algumas video aulas, mas tenho que ler tambem!
Responder

10/07/2017

Réulison Silva

Você também poderia consultar esse curso sobre net framework
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar