성능 -짝수
두 플랫폼 모두 거의 모든 응용 프로그램에서 매우 잘 작동합니다.
내 주관적인 경험은 Java가 오래 실행되는 응용 프로그램에는 약간의 우위가있는 반면 .Net은 응용 프로그램 시작 시간이 빠르다는 것입니다.
사용 가능한 도구 (타사 도구 포함) -토론 가능
필요한 도구와 익숙한 도구에 따라 다릅니다.
.Net에는 Microsoft가 제공하는 훌륭한 도구가 있습니다. 반면에 Java 세상에는 Eclipse, IntelliJ 환경의 Netbeans와 같은 훌륭한 도구가 있습니다.
크로스 플랫폼 호환성 -Java Win
.Net은 기본적으로 Microsoft 플랫폼 (Windows, Xbox 등)과 연결되어 있습니다. Microsoft 이외의 플랫폼에서는 완전한 구현을 사용할 수 없습니다 .
모노는 훌륭하지만 실제로 모든 .Net 라이브러리를 지원하지 않기 때문에 완전한 크로스 플랫폼 기능을 제공하지는 않습니다 (예를 들어, 모든 Windows GUI 기능이 올바르게 작동하지 않을 수 있으므로 GTK #와 같은 크로스 플랫폼 툴킷은 다른 플랫폼에서 앱을 실행할 수 없습니다)
Java는 실제로 이식성이 있습니다. 언어뿐만 아니라 훨씬 더 중요한 것은 모든 Java 라이브러리가 이식 가능하다는 것입니다. 순수 Java 라이브러리 (예 : Swing for GUI)를 사용하면 Java 런타임 환경이있는 곳 어디에서나 코드가 실행됩니다.
라이브러리 (특히 타사 라이브러리) -Java win
아마도 Java 플랫폼의 가장 큰 장점은 광범위한 라이브러리 에코 시스템, 특히 오픈 소스 라이브러리 일 것입니다. 몇 가지 예 :
- 모든 Apache 라이브러리 및 도구
- 광대 한 이클립스 생태계의 모든 라이브러리
- Google이 제공 / 관리하는 모든 라이브러리
- JBoss 및 Red Hat이 유지 관리하는 모든 관련 엔터프라이즈 도구
비용 (오라클은 자바로 수익을 창출하려고 노력하는 것 같습니다) -오픈 소스로 가면 Java가 승리합니다.
100 % 오픈 소스 Java 스택을 가질 수 있으며 무료이며 특정 독점 플랫폼에 연결되지 않습니다. 100 % 무료입니다.
또는 IntelliJ IDEA를 구입하고 Windows에서 Java를 실행하며 독점 데이터베이스를 사용할 수 있습니다.이 경우 일반적인 Microsoft .NET 스택과 비용이 거의 동일합니다.
개발 과정 (가장 쉬움 / 가장 빠름) -토론 가능
이것은 아마도 플랫폼에 기인 한 것이 아니라 각 플랫폼에서 개발자의 경험에 더 의존 할 것입니다.
.Net에는 Windows의 간단한 GUI 응용 프로그램을 매우 생산적으로 만들 수있는 훌륭한 도구가 있습니다. 이것이 .Net 개발의 "스위트 스폿"이므로 놀라운 것은 아닙니다.
반면에, 나는 서버 측 개발을 위해 Java 스택을 선호합니다. Maven과 같은 도구 및 모든 지속적인 배포 / 통합 기능을 사용하면 강력한 서버 측 앱을위한 매우 효과적인 개발 프로세스를 구축 할 수 있습니다.
언어 별 C #은 Java에 비해 몇 가지 생산성 이점이 있습니다. 그러나 요즘 Java 플랫폼에서 개발하는 경우 트렌드는 Java 자체를 사용하지 않고 Scala, Groovy 또는 Clojure와 같은 새로운 JVM 언어 중 하나를 사용하는 것입니다. 그렇게하면 훨씬 생산적입니다. C # 또는 Java보다.