Diferenças e semelhanças entre maquinas virtuais do Java e do C sharp
Ola pessoal, me chamo Leonardo e sou estudante de ciência da computação, este semestre tenho um trabalho onde apresento e comparo as semelhanças e diferenças entre as maquinas virtuais do Java e do C#, gostaria que vocês me ajudassem nessa pesquisa compartilhando oque sabem dobre o assunto aqui, isso me ajudaria muito!
agradeço desde já! :)
agradeço desde já! :)
Leonardo
Curtidas 1
Respostas
Sadasd
07/10/2019
A principal diferença, na minha opinião é que a jvm é universal, enquanto que o .net não, para windows temos o .net, que é a versão "completa" da máquina virtual c#, e o .net core, uma versão para mac e linux(nota .net core também pode ser baixado no windows, mas não faz sentido fazer isso já que o .net completo está a disposição).
Outra diferença que eu acho gritante são as linguagens que rodam(ou que são compiladas) em cada uma das máquinas virtuais no caso do .net você pode rodar c#, f# e vb(visual basic), já na jvm você pode usar java, groovy, scala e kotlin, um ponto interessante que vale ser ressaltado é que no caso do .net todas as linguagens são da mesma empresa(microsoft) apesar de terem sido desenvolvidas por equipes diferentes da microsoft, enquanto na jvm cada linguagem é desenvolvida por uma empresa diferente, com exceção do java que é desenvolvido por duas empresas desde que a oracle cedeu o java ee(https://www.devmedia.com.br/jakarta-ee-o-futuro-do-java-ee/40322).
Para finalizar, o .net trabalha exclusivamente com o backend, enquanto na jvm você têm a opção de utilizar kotlin ou scala no front-end(nota, apesar de ser possível a utilização dessas linguagens no front end ninguém faz isso, pois são linguagens muito novas, ainda não há todo o ecossistema que o javascript tem em torno delas, então a falta de frameworks, bibliotecas e outros recursos feitos pela comunidade reduz o mercado dessas linguagens no front end a zero, ou seja, na teoria você pode trabalhar com front end na jvm, mas na prática ninguém faz isso).
Outra diferença que eu acho gritante são as linguagens que rodam(ou que são compiladas) em cada uma das máquinas virtuais no caso do .net você pode rodar c#, f# e vb(visual basic), já na jvm você pode usar java, groovy, scala e kotlin, um ponto interessante que vale ser ressaltado é que no caso do .net todas as linguagens são da mesma empresa(microsoft) apesar de terem sido desenvolvidas por equipes diferentes da microsoft, enquanto na jvm cada linguagem é desenvolvida por uma empresa diferente, com exceção do java que é desenvolvido por duas empresas desde que a oracle cedeu o java ee(https://www.devmedia.com.br/jakarta-ee-o-futuro-do-java-ee/40322).
Para finalizar, o .net trabalha exclusivamente com o backend, enquanto na jvm você têm a opção de utilizar kotlin ou scala no front-end(nota, apesar de ser possível a utilização dessas linguagens no front end ninguém faz isso, pois são linguagens muito novas, ainda não há todo o ecossistema que o javascript tem em torno delas, então a falta de frameworks, bibliotecas e outros recursos feitos pela comunidade reduz o mercado dessas linguagens no front end a zero, ou seja, na teoria você pode trabalhar com front end na jvm, mas na prática ninguém faz isso).
GOSTEI 0
Sadasd
07/10/2019
A principal diferença, na minha opinião é que a jvm é universal, enquanto que o .net não, para windows temos o .net, que é a versão "completa" da máquina virtual c#, e o .net core, uma versão para mac e linux(nota .net core também pode ser baixado no windows, mas não faz sentido fazer isso já que o .net completo está a disposição).
Outra diferença que eu acho gritante são as linguagens que rodam(ou que são compiladas) em cada uma das máquinas virtuais no caso do .net você pode rodar c#, f# e vb(visual basic), já na jvm você pode usar java, groovy, scala e kotlin, um ponto interessante que vale ser ressaltado é que no caso do .net todas as linguagens são da mesma empresa(microsoft) apesar de terem sido desenvolvidas por equipes diferentes da microsoft, enquanto na jvm cada linguagem é desenvolvida por uma empresa diferente, com exceção do java que é desenvolvido por duas empresas desde que a oracle cedeu o java ee(https://www.devmedia.com.br/jakarta-ee-o-futuro-do-java-ee/40322).
Para finalizar, o .net trabalha exclusivamente com o backend, enquanto na jvm você têm a opção de utilizar kotlin ou scala no front-end(nota, apesar de ser possível a utilização dessas linguagens no front end ninguém faz isso, pois são linguagens muito novas, ainda não há todo o ecossistema que o javascript tem em torno delas, então a falta de frameworks, bibliotecas e outros recursos feitos pela comunidade reduz o mercado dessas linguagens no front end a zero, ou seja, na teoria você pode trabalhar com front end na jvm, mas na prática ninguém faz isso).
Outra diferença que eu acho gritante são as linguagens que rodam(ou que são compiladas) em cada uma das máquinas virtuais no caso do .net você pode rodar c#, f# e vb(visual basic), já na jvm você pode usar java, groovy, scala e kotlin, um ponto interessante que vale ser ressaltado é que no caso do .net todas as linguagens são da mesma empresa(microsoft) apesar de terem sido desenvolvidas por equipes diferentes da microsoft, enquanto na jvm cada linguagem é desenvolvida por uma empresa diferente, com exceção do java que é desenvolvido por duas empresas desde que a oracle cedeu o java ee(https://www.devmedia.com.br/jakarta-ee-o-futuro-do-java-ee/40322).
Para finalizar, o .net trabalha exclusivamente com o backend, enquanto na jvm você têm a opção de utilizar kotlin ou scala no front-end(nota, apesar de ser possível a utilização dessas linguagens no front end ninguém faz isso, pois são linguagens muito novas, ainda não há todo o ecossistema que o javascript tem em torno delas, então a falta de frameworks, bibliotecas e outros recursos feitos pela comunidade reduz o mercado dessas linguagens no front end a zero, ou seja, na teoria você pode trabalhar com front end na jvm, mas na prática ninguém faz isso).
Edit:
Esqueci de dizer que só o .net tem suporte ao desenvolvimento de apps mobile, na jvm temos que baixar a sdk do android separadamente, além de que é só para android, e no .net você desenvolve para android e ios.
GOSTEI 0
Wellington Domiciano
07/10/2019
Olá, Leonardo! Em que semestre vc está?
Não sei se vc já viu, mas aqui estão alguns materiais que acredito que serão bastante úteis na sua pesquisa:
A VM do C#/.Net é o CLR (Common Language Runtime).
- https://en.wikipedia.org/wiki/Common_Language_Runtime
- https://docs.microsoft.com/en-us/dotnet/standard/clr
Tudo a respeito do CLR é especificado neste documento:
http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf
Aqui tem mais documentos úteis:
https://visualstudio.microsoft.com/license-terms/ecma-c-common-language-infrastructure-standards/
E aqui nós temos as especificações da linguagem de programa Java e da Java Virtual Machine:
https://docs.oracle.com/javase/specs/index.html
Sobre a diferença entre eles, encontrei uma resposta no StackOverflow que achei bem interessante:
https://stackoverflow.com/a/480362/3334365
E aqui um artigo legal:
https://medium.com/@uadnan/difference-between-jvm-and-clr-e300e1597d2d
Há 4 diferenças que, pra mim, são bem interessantes e gostaria de citar:
1. JVM não tem noção de números sem sinal
2. CLR permite criar os chamados value types, a JVM apenas reference types
3. CLR tem suporte para ponteiros
Não sei se vc já viu, mas aqui estão alguns materiais que acredito que serão bastante úteis na sua pesquisa:
A VM do C#/.Net é o CLR (Common Language Runtime).
- https://en.wikipedia.org/wiki/Common_Language_Runtime
- https://docs.microsoft.com/en-us/dotnet/standard/clr
Tudo a respeito do CLR é especificado neste documento:
http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf
Aqui tem mais documentos úteis:
https://visualstudio.microsoft.com/license-terms/ecma-c-common-language-infrastructure-standards/
E aqui nós temos as especificações da linguagem de programa Java e da Java Virtual Machine:
https://docs.oracle.com/javase/specs/index.html
Sobre a diferença entre eles, encontrei uma resposta no StackOverflow que achei bem interessante:
https://stackoverflow.com/a/480362/3334365
E aqui um artigo legal:
https://medium.com/@uadnan/difference-between-jvm-and-clr-e300e1597d2d
Há 4 diferenças que, pra mim, são bem interessantes e gostaria de citar:
1. JVM não tem noção de números sem sinal
2. CLR permite criar os chamados value types, a JVM apenas reference types
3. CLR tem suporte para ponteiros
GOSTEI 0
Ricardo Rebêlo
07/10/2019
Minha primeira experiência com .net foi criando Front-End que não precisava de código, se conectava com o Back-End que era outro desenvolvedor que fazia.
GOSTEI 0
Arthur Heinrich
07/10/2019
1. JVM não tem noção de números sem sinal
Já achava a linguagem Java limitada. Isso foi uma surpresa para mim.
GOSTEI 0