Java 와의 비교.NET 플랫폼
Comparison of the Java and .| 비교 프로그래밍 언어 |
|---|
| |
이 문서는 갱신할 필요가 있습니다.최신 하여 이 . (2013년 10월) |
Java 와의 비교.NET 플랫폼
법적 문제
.그물
모노 프로젝트는 특허 또는 저작권을 침해하는 것을 방지하는 것을 목적으로 하고 있으며, 성공하는 한 이 프로젝트는 GPL에 의거하여 안전하게 배포 및 사용할 수 있습니다.Microsoft와 Novell은 2006년 11월 2일 Novell 또는 그 고객을 특허 [1]침해로 고소하지 않기로 약속했습니다.Mono 프로젝트 리더인 Miguel de Icaza의 블로그에 기재된 내용에 따르면, 이 계약은 Novell 개발자와 사용자를 [2]위한 Mono에만 적용됩니다.FSF는 Microsoft 특허의 위협이 있을 수 있으므로 Mono 또는 C#[3][4]에 의존하는 소프트웨어를 만들지 말 것을 권장합니다.
Microsoft-Novell 계약은 특정 프로그램의 모든 사용자에게 동등한 권리를 부여한다는 원칙을 위반한다는 이유로 오픈 소스 커뮤니티에서 일부로부터 비판을 받았습니다(Microsoft 및 Mono와의 계약 및 Microsoft의 특허 참조).
Microsoft와 Novell의 합의에 따라 자유 소프트웨어 재단은 GNU General Public License를 개정하여 Microsoft와 Novell이 특허 거래에 대해 GPL의 매우 강력하고 보호적인 조항([5]Microsoft에 의해 제한적이라고 간주됨)을 회피하기 위해 사용하던 허점을 해소했습니다.FSF는 또한 마이크로소프트가 GNU 라이선스를 회피한 메커니즘인 Novell의 Linux 소프트웨어 쿠폰을 판매함으로써 마이크로소프트를 Linux 벤더로 간주하고,[5] 따라서 GPL에 명시된 모든 약관을 적용한다고 밝혔다.
.NET 환경은 마이크로소프트가 코어의 많은 부분을 오픈 소스로 하기로 결정한 2013년에 바뀌기 시작했습니다.Apache [6]License에 의한 NET 테크놀로지는, 한층 더 많은 것을 새롭게 결성된 에 기부하고 있습니다.2014년 [7]NET Foundation.오픈 소스 테크놀로지에는 ASP가 포함됩니다.NET MVC, Entity Framework, Managed Extensibility Framework, Roslyn 컴파일러의 서비스화 인프라스트럭처(C# 및 Visual Basic과 함께).NET 컴파일러), F# Functional First Language [8]컴파일러 [9]등 다양한 기능을 제공합니다.Microsoft와 Xamarin은 의 크로스 플랫폼 가용성을 높이기 위해 공동 작업을 발표했습니다.Mac OS, 리눅스 및 모바일 [10]디바이스에서 NET을 사용할 수 있습니다.
마이크로소프트는 2016년 6월에 출시되었습니다.NET Core 1.0은 오픈 소스 크로스 플랫폼 환경이며 순수 Windows [11]구현의 린 버전입니다.
종래의 컴퓨터
데스크톱 응용 프로그램
자바의 AWT(Abstract Window Toolkit)와 Swing 라이브러리는 기능이 부족하지 않지만 자바는 데스크톱 시장에서 발판을 마련하기 위해 고군분투해왔다.일부에서는 Sun Microsystems가 개발자와 최종 사용자에게 Java를 홍보하는 데 시간이 걸려서 데스크톱 소프트웨어에 매력적인 선택이 되었습니다.[citation needed]경쟁 언어와 플랫폼 내에서 유사점이 거의 없는 자바 웹 스타트 같은 기술도 거의 [citation needed]홍보되지 않았다.
2006년 12월 11일 Java 버전 6.0이 출시되면서 데스크톱과 더욱 긴밀히 통합하기 위한 광범위한 새로운 툴셋을 통해 데스크톱 시장에 새로운 초점이 맞춰졌습니다.2007년 JavaOne 컨퍼런스에서 Sun은 Adobe Flash(JavaFX)를 채택하기 위한 새로운 언어, 초기 설치 공간을 2Mb 미만으로 줄이는 JRE 다운로드 방법, 멀티미디어 라이브러리에 대한 새로운 초점을 포함한 데스크톱 관련 발표를 더 많이 했습니다.
AWT 및 Swing의 대안으로 원래 IBM이 개발했으며 현재 Eclipse Foundation이 관리하고 있는 Standard Widget Toolkit(SWT)가 있습니다.가능한 경우 기본 네이티브 라이브러리에 의존하여 Java 데스크톱 애플리케이션의 성능 및 시각화를 개선하려고 합니다.
Windows 의 경우는, Microsoft 의.NET은 Windows Forms(Win32 API에 대한 경량 래퍼), Windows Presentation Foundation 및 Silverlight를 모두 제공하는 인기 있는 데스크톱 개발입니다.의 통합과 함께.Windows 플랫폼에 NET 접속합니다.NET 앱은 Java의 Swing에 비해 OS 통합이 강화되고 네이티브한 외관과 느낌을 갖춘 Windows 환경에서 최고 수준의 사용자입니다.
Windows 이외에서는, Silverlight 는 Mac OS X 데스크탑에 휴대할 수 있습니다.또한 Mono는 많은[12] Linux 데스크톱 환경에 포함되어 있기 때문에 오픈 소스 및 무료 소프트웨어 시스템에서 더욱 보편화되고 있습니다.
서버 응용 프로그램
이 두 플랫폼이 라이벌로 간주되는 가장 가까운 경기장일 것입니다.Java, Java EE(Java Platform Enterprise Edition) 플랫폼을 통해 및ASP를 통한 NETNET, 웹 기반 동적 컨텐츠 및 애플리케이션을 만들기 위해 경쟁합니다.
두 플랫폼 모두 이 시장에서 잘 사용되고 지원되고 있습니다.상위 1,000개 웹사이트 중 약 24%가 ASP를 사용하고 있습니다.NET 및 24%는 Java를 사용하고 있으며, 전체 웹사이트 중 약 17%는 ASP를 사용하고 있습니다.NET 및 3%가 [13]Java를 사용합니다.
Java EE에 대한 Oracle의 Java 관련 라이센스 계약 중 일부는 Java 플랫폼의 측면을 영업 [14]기밀로 정의하고 최종 사용자가 타사 Java 환경에 기여하는 것을 금지합니다.구체적으로는 Oracle Java EE 개발 패키지에 대한 적어도 하나의 현재 라이센스에는 다음과 같은 용어가 포함되어 있습니다.「소프트웨어의 단일 아카이브 카피를 작성할 수 있지만, 그 이외의 경우는 소프트웨어를 카피, 변경, 배포할 수 없습니다.」 — 「적용법에 의해 강제 적용이 금지되어 있지 않는 한, 소프트웨어를 디컴파일 또는 리버스 엔지니어링 할 수 없습니다.」 — 「소프트웨어를 디컴파일 하거나 리버스 엔지니어링 할 수 없습니다. 소프트웨어에서 실행된 벤치마크 또는 비교 테스트 결과를 Oracle의 사전 서면 동의 없이 제3자에게 공개 또는 제공합니다." — "소프트웨어는 기밀이며 저작권이 [14]보호됩니다."그러나 Oracle의 소프트웨어는 위의 라이센스 조건을 따르는 반면 Oracle의 Java EE API 참조는 WildFly(원래 JBoss) 및 JOnAS 프로젝트에 의해 오픈 소스 라이센스로 구현되었습니다.
Microsoft의 ASP 구현NET은 표준화된 CLI의 일부가 아닙니다.Microsoft의 런타임 환경 및 개발 툴은 Java EE와 동등한 비밀유지 계약의 대상이 아니지만, Microsoft의 공식 툴은 오픈 소스 또는 무료 소프트웨어가 아니기 때문에 Windows 서버가 필요합니다.단, 크로스 플랫폼프리 소프트웨어 ASP.NET의 실장은 모노 프로젝트의 일부입니다(웹 파트 및 웹 서비스 [15]확장 제외).Mono는 ASP를 지원합니다.Web Forms, Microsoft AJAX, ASP를 포함한 NET 4.0.NET [16]MVC
임베디드 어플리케이션
모바일 애플리케이션
구글의 인기 있는 모바일 애플리케이션용 안드로이드 플랫폼은 자바를 기반으로 한다.구글은 모바일 기기용 자바 코드 실행을 최적화하기 위해 달빅이라는 맞춤형 가상 머신을 채택했다.
Oracle은 모바일 OEM 벤더를 위한 레퍼런스 구현인 Java ME를 제공합니다.Java ME는 Java 데스크톱 환경의 서브셋인 다양한 프로파일과 모바일 및 셋톱박스 개발을 위한 추가 라이브러리로 구성됩니다.Java ME는 휴대 전화와 PDA 시장에서 매우 큰 기반을 가지고 있으며, 현재 가장 저렴한 기기만 KVM(처리 능력이 제한된 장치에서 사용하기 위한 JVM 컷다운)을 갖추고 있지 않습니다.많은 게임을 포함한 자바 소프트웨어는 일반적이다.
대부분의 피처폰에는 JVM이 포함되어 있습니다만, 유저(특히 남아프리카)가 항상 많이 사용하는 것은 아닙니다.초기 대부분의 전화기의 Java 애플리케이션은 일반적으로 메뉴 시스템, 작은 게임 또는 벨소리 등을 다운로드하는 시스템으로 구성되었습니다.다만, 번역 딕셔너리, 월드 클럭 디스플레이(어둠/조도, 시간대 등), 계산기등의 심플한 애플리케이션이 프리 로드된 상태로, 보다 파워풀한 전화기가 판매되고 있습니다.이들 중 일부는 Java로 기술되어 있지만 전화 소유자가 실제로 얼마나 자주 사용하는지는 알 수 없습니다.
Microsoft 는 현재 출하되고 있습니다.Windows CE 및 모바일 장치, 셋톱 박스, PDA 및 Xbox 360에서 실행되는 NET Compact Framework.Microsoft 에서는도 제공하고 있습니다.리소스가 제한된 임베디드 개발자를 위한 NET Micro Framework.
또는 Novell은 단말기에 사용할 수 있는 Mono 버전을 서드파티에 내장하고 있으며, Xamarin은 Android 및 iPhone 개발을 위한 MonoTouch 프레임워크를 상업적으로 배포하고 있습니다.
Windows Phone 7은 네이티브 앱에 Silverlight를 사용하지만 Windows Phone 8은 C#과 XAML을 주요 언어로 사용합니다.
홈 엔터테인먼트 테크놀로지
Java는 디지털 텔레비전의 시장을 개척했습니다.이 시장에서는 프로그래밍과 함께 소프트웨어를 제공하거나 특정 셋톱 박스의 기능을 확장할 수 있습니다.예를 들어, TiVo는 "홈 미디어 엔진"이라는 기능을 가지고 있으며, 이를 통해 Java TV 소프트웨어를 적절한 TiVo 장치로 전송하여 프로그래밍을 보완하거나 추가 기능(예: 비즈니스 뉴스 프로그램의 개인화된 주식 티커)을 제공할 수 있습니다.
Java의 변형은 BD-J 인터랙티브 플랫폼을 통해 차세대 옵티컬 디스크 기술 Blu-ray에서 사용할 수 있는 공식 소프트웨어 툴로 받아들여지고 있습니다.즉, 모든 Blu-ray 옵티컬(광학식) 디스크의 메뉴, 게임, 다운로드 파일 등의 인터랙티브한 컨텐츠가 Java 플랫폼의 변종 하에 작성됩니다.
HD DVD(DVD의 고화질 후계기)는 자바를 사용하는 대신 XML, CSS, JavaScript 및 표준 웹 브라우저와 동등한 기술을 기반으로 마이크로소프트와 디즈니가 공동 개발한 HDi라는 기술을 사용했습니다.
BD-J 플랫폼 API는 iHD의 [17]400에 비해 8,000개의 메서드와 인터페이스를 가지고 있어 경쟁 제품보다 더 광범위하다.Microsoft는 iHD의 XML 프레젠테이션 레이어를 Windows Vista에 포함시킴으로써 추진하고 있지만, iHD는 Java 테크놀로지가 이미 [18]보급되어 있는 시장 부문에서는 아직 신참입니다.
다만, HD DVD 포맷이 Blu-ray를 위해 폐지된 것은, HDi가 옵티컬 디스크 포맷에서는 서포트되고 있지 않기 때문에, BD-J 포맷이 확실한 [19]승자가 되고 있는 것을 의미합니다.
운영 체제에 런타임 포함
.NET/모노
Windows 에서는, Microsoft 가 프로모션을 실시했습니다.를 포함하여 주력 개발[20] 플랫폼으로서 NET을 사용합니다.Windows XP Service Pack 2 및 3, Windows Server 2003, Windows Vista, Windows Server 2008 및 Windows 7의 NET 런타임.또한 Microsoft는 Visual Studio Express 개발 환경을 [21]무료로 배포하고 [22]Visual Studio 커뮤니티 개발 환경을 조직용으로 제한적으로 배포합니다.
.NET Framework 3.5 런타임은 Vista SP1 이전 버전의 Windows에는 프리 인스톨 되어 있지 않습니다.또, 유저에 의해서 다운로드가 필요하게 됩니다.이것은, 사이즈가 크기(의 경우는 65 MB 다운로드)로 인해 비판을 받고 있습니다.NET 3.5)[23][24]
어느 쪽도 아닙니다.NET 또는 Mono는 Mac OS X에서 즉시 설치할 수 있습니다.Mono 프로젝트는 C# 및 를 빌드 또는 실행하려는 Mac 사용자를 위해 무료로 다운로드하여 설치할 수 있습니다.NET 소프트웨어2008년 5월 13일 현재 Mono's System.창문들.Form 2.0은 API에 완전합니다(Microsoft System의 클래스, 메서드 등을 100% 포함합니다).창문들.폼 2.0), 시스템.창문들.Form 2.0은 Mac OS X에서 기본적으로 작동합니다.
C# 및 CLI는 무료 소프트웨어 Mono [25][26][27]Project를 포함하여 Linux 및 BSD 기반의 많은 운영체제에 포함되어 사용되고 있습니다.
이 포함된 결과입니다.Windows 및 Linux 배포판의 NET 또는 Mono 런타임, 양쪽에서 공통인 프로그래밍 인터페이스를 사용하는 비 GUI 응용 프로그램.NET 및 Mono는 C# 또는 기타 임의의 방법으로 개발할 수 있습니다.NET 언어를 사용한 후 운영체제 [28][29][27]설치의 일부로 이용 가능한 런타임 환경을 사용하여 많은 운영체제 및 프로세서 아키텍처에 도입합니다.양쪽 MicrosoftNET 및 Mono 프로젝트는 Ecma 및 ISO 표준 C# 언어 및 를 완전히 지원합니다.NET 런타임 및 마이크로소프트의 많은 비표준화.NET 프로그래밍 인터페이스는 [30]Mono에서 구현되었거나 개발 중에 있지만, 각 환경에는 구현되지 않은 많은 구성 요소가 포함되어 있습니다.
자바
Java에는 현재 Windows 버전이 포함되어 있지 않습니다.Windows XP SP1a에는 포함되어 있지 않습니다.
Java는 Mac OS X 10.0에서 시작하여 10.6으로 끝나는 모든 새로운 Apple 컴퓨터에 프리 인스톨 되었습니다.이후 Java 6은 애플 다운로드 [31][32]옵션입니다.Java 7 이후의 릴리스는 [33]Oracle에서 제공합니다.
Java에는 Hewlett Packard, IBM 및 Oracle을 비롯한 많은 상용 Unix 버전이 미리 설치되어 있습니다.2009년 6월 현재 Debian,[34] Fedora [35]9, Mandriva,[36] OpenSUSE,[37] Slackware Extra [38]및 Ubuntu 8.04[39] 디스트리뷰션을 OpenJDK에서 사용할 수 있으며, 이 디스트리뷰션은 완전히 무료 및 오픈 소스 [40]코드를 기반으로 합니다.2008년 6월 이후 OpenJDK는 Java SE 6 JCK의 모든 호환성 테스트를 통과했으며 완전한 호환성을 갖춘 Java 6 [41][42]구현이라고 주장할 수 있습니다.OpenJDK는 Eclipse, GlassFish, WildFly 또는 Netbeans와 같은 복잡한 애플리케이션을 실행할 수 있습니다.
Java용 운영체제 디스트리뷰터 라이선스(DLJ)[43]는 Linux 또는 OpenSolaris 기반의 운영체제 배포 문제를 완화하기 위한 Sun 이니셔티브입니다.
Java 가 컴퓨터에 디폴트로 인스톨 되어 있지 않은 경우는, Web 플러그 인으로서 유저가 다운로드할 수 있습니다.Java 플러그인의 크기 때문에 웹 플러그인 프로세스가 비판받고 있습니다.다른 플러그인과는 달리 Java 다운로드는 애플릿뿐만 아니라 전체 애플리케이션 및 동적 WebStart 앱을 실행할 수 있는 완전한 런타임 환경입니다.따라서 일부 웹 플러그인보다 다운로드 공간이 더 크게 인식됩니다.단, Java에 비해 널리 사용되는 다른 브라우저 플러그인은 크기가 더 큽니다.Java 6 JRE는 13MB이지만 Acrobat Reader는 33MB, QuickTime 19MB, Windows Media Player 25MB, 및NET Framework 3.0 런타임은 54 MB 및 입니다.NET Framework 3.5 런타임은 197MB입니다(x86, x64 및 IA-64용 통합 패키지이며, 각 부품은 약 60MB입니다).
2007년 5월 JavaOne 이벤트에서 Sun은 Java 6의 수명 동안 Java 도입 문제를 2개의 주요 업데이트로 해결한다고 발표했습니다(변경 내용은 Java 7로 유지되지 않습니다).여기에는 다음이 포함됩니다.
- 초기 2Mb 설치 공간과 온디맨드 방법론을 사용하여 섹션별로 나머지 9Mb를 다운로드할 수 있는 기능을 갖춘 새로운 소비자 JRE 에디션 도입.
- 드롭인 크로스 플랫폼 JavaScript 코드 개발. 웹 페이지에서 특정 애플릿 또는 리치 인터넷응용 프로그램을 실행하는 데 필요한 JRE를 설치할 수 있습니다(필요한 경우).
- JRE에 대한 업데이트 자동 다운로드 지원 향상
- JRE 프리로드 지원으로 Java로 작성된 애플릿 및 응용 프로그램이 거의 즉시 시작됩니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Microsoft와 Novell이 Windows와 Linux의 상호 운용성과 지원에 관한 폭넓은 콜라보레이션을 발표하다
- ^ "Statement on the blog of Mono project leader Miguel de Icaza regarding patent protection for Mono". 2006-11-04. Retrieved 2006-11-06.
- ^ Stallman, Richard (2009-06-26). "Why free software shouldn't depend on Mono or C#". Free Software Foundation. Retrieved 2009-07-02.
We should systematically arrange to depend on the free C# implementations as little as possible. In other words, we should discourage people from writing programs in C#. Therefore, we should not include C# implementations in the default installation of GNU/Linux distributions, and we should distribute and recommend non-C# applications rather than comparable C# applications whenever possible.
- ^ "Microsoft's Empty Promise". Free Software Foundation. 2009-07-16. Retrieved 2009-08-03.
Until that happens, free software developers still should not write software that depends on Mono. C# implementations can still be attacked by Microsoft's patents: the Community Promise is designed to give the company several outs if it wants them. We don't want to see developers' hard work lost to the community if we lose the ability to use Mono, and until we eliminate software patents altogether, using another language is the best way to prevent that from happening.
- ^ a b 마이크로소프트는 자유로운 세상을 받아들인다.
- ^ 마이크로소프트는 여전히 많은 사람들이 생각하는 것보다 더 많은 기술을 오픈 소스하고 있다
- ^ Microsoft의 오픈소스가 더 많습니다.NET 테크놀로지
- ^ F# 소프트웨어 재단
- ^ .NET 기초 프로젝트
- ^ Xamarin은 Microsoft와 파트너 관계를 맺고 있습니다.모든 장소에서 네트워크 사용
- ^ core: Home repository for .NET Core, .NET Foundation, 2018-01-14, retrieved 2018-01-14
- ^ 모노 어플리케이션?많이! OSNets
- ^ "Usage of server-side programming languages broken down by ranking". W3Techs.com. Retrieved 30 May 2015.
- ^ a b Java EE SDK 5 업데이트 2 JDK 다운로드 안 함 페이지(라이선스 계약 참조)[영구 데드링크]
- ^ 모노: ASP.그물
- ^ 모노: ASP.그물
- ^ "HD-DVD vs. Blu-ray, round 2". Archived from the original on 2007-03-08. Retrieved 2007-04-23.
- ^ 포맷 전쟁 - Blu-ray vs HD DVD
- ^ Zaharov-Reutt, Alex (2008-02-21). "Microsoft's HDi interactivity layer loses from HD DVD's death - but does it matter?". itwire.com. Retrieved 2008-08-27.
While many claimed that creating interactivity with HDi was much simpler than using BD-J, the fact that HD DVD will see few future releases beyond 2008 means that, whatever the enthusiasts position on the relative merits of HDi vs BD-J, the BD-J interactivity format is now the winner
[데드링크] - ^ 「플래그십」언어로서 C#를 참조하는 Microsoft 기사.
- ^ "Visual Studio Express". Archived from the original on 2011-06-12. Retrieved 2010-12-03.
- ^ Visual Studio 커뮤니티
- ^ "Dear Microsoft". 2008-01-09. Archived from the original on 2008-02-05. Retrieved 2008-02-03.
- ^ ".NET framework 3.5 size 166MB!". 2007-11-10. Archived from the original on 2008-02-05. Retrieved 2008-02-03.
- ^ Fedora는 Mono를 채용 - ZDNet UK
- ^ Debian Mono 패키지
- ^ a b Wikipedia에서는 모노를 사용하고 있으며, 모노는 Ubuntu/Debian에 통합되어 있습니다 - OSNews.com
- ^ "Fedora Catches Mono". Archived from the original on 2007-04-05. Retrieved 2007-04-19.
- ^ "SUSE 10.1 released". Archived from the original on 2006-12-11. Retrieved 2007-04-19.
- ^ "Mono – Plans". Retrieved 2008-12-23.
- ^ "Inside Mac OS X 10.7 Lion: Missing Front Row, Rosetta and Java runtime". AppleInsider. February 26, 2011.
- ^ "Java Downloads". Apple Inc.
- ^ "Information and system requirements for installing and using Oracle Java on Mac OS X". Oracle Corporation.
- ^ "Package: openjdk-6-jdk". debian.org. 2009-02-14. Retrieved 2009-02-16.
- ^ Wade, Karsten (2008-03-13). "OpenJDK in Fedora 9!". redhatmagazine.com. Archived from the original on 2008-04-21. Retrieved 2008-04-05.
Thomas Fitzsimmons updated the Fedora 9 release notes source pages to reflect that Fedora 9 would ship with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7. Fedora 9 (Sulphur) is due to release in May 2008.
- ^ Mandriva Java 패키지
- ^ "Package: OpenJDK". opensuse.org. Archived from the original on May 27, 2009. Retrieved 2009-06-01.
- ^ "Slackware Java package". Archived from the original on 2008-06-10. Retrieved 2018-10-31.
- ^ "openjdk-6 in Ubuntu". Retrieved 2008-04-19.
- ^ Reinhold, Mark (2008-04-24). "There's not a moment to lose!". Archived from the original on 2008-04-29. Retrieved 2008-04-19.
- ^ Sharples, Rich (2008-06-19). "Java is finally Free and Open". Archived from the original on 2008-06-20.
- ^ Angel, Lillian (2008-03-13). "OpenJDK to replace IcedTea in Fedora 9". Archived from the original on 2008-04-18. Retrieved 2008-04-05.
- ^ Java용 운영체제 디스트리뷰터 라이선스(DLJ)[영구 데드링크]
외부 링크
- C# 및 으로 이동합니다.MSDN에서의 NET 프레임워크
- ECMA-335 Common Language Infrastructure (CLI), 제4판(2006년 6월) - ECMA CLI 표준 무료 다운로드
- ISO/IEC 23271:2006 Common Language Infrastructure(CLI) 파티션 I ~ VI - 공식 ISO/IEC CLI 표준