Diferenças e semelhanças entre maquinas virtuais do Java e do C sharp
07/10/2019
0
agradeço desde já! :)
Leonardo
Posts
07/10/2019
Sadasd
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).
07/10/2019
Sadasd
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.
07/10/2019
Wellington Domiciano
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
04/06/2024
Ricardo Rebêlo
05/06/2024
Arthur Heinrich
Já achava a linguagem Java limitada. Isso foi uma surpresa para mim.
Clique aqui para fazer login e interagir na Comunidade :)