Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Правовые вопросы [ править ]

.NET [ править ]

Проект Mono направлен на то, чтобы избежать нарушения каких-либо патентов или авторских прав, и, если они будут успешными, проект может безопасно распространяться и использоваться под лицензией GPL . 2 ноября 2006 года Microsoft и Novell объявили о совместном соглашении, в соответствии с которым Microsoft обещала не предъявлять иск Novell или ее клиентам за нарушение патентных прав. [1] Согласно заявлению в блоге руководителя проекта Mono Мигеля де Икаса , это соглашение распространяется только на Mono для разработчиков и пользователей Novell. [2] Из-за возможной угрозы патентов Microsoft FSF рекомендует людям избегать создания программного обеспечения, которое зависит от Mono или C # . [3] [4]

Соглашение Microsoft – Novell подверглось критике со стороны некоторых представителей сообщества открытого исходного кода, поскольку оно нарушает принципы предоставления равных прав всем пользователям определенной программы (см. Соглашение с Microsoft и Mono, а также патенты Microsoft ).

В ответ на соглашение между Microsoft и Novell Фонд свободного программного обеспечения пересмотрел свою Стандартную общественную лицензию GNU, чтобы закрыть лазейку, использованную Microsoft и Novell для обхода очень строгих и защитных положений GPL в отношении патентных сделок (которые Microsoft считает ограничивающими). [5] FSF также заявила, что, продавая купоны на программное обеспечение Novell Linux, механизм, с помощью которого Microsoft обходила лицензию GNU, она считает Microsoft поставщиком Linux и, таким образом, подчиняется полным условиям, изложенным в GPL. [5]

.NET пейзаж начал меняться в 2013 году, когда Microsoft решила с открытым исходным кодом многие из своих основных технологий .NET под Apache License , [6] с еще более подарены новообразованной .NET Foundation в 2014 году [7] с открытым кодом Технологии включают ASP.NET MVC , Entity Framework , Managed Extensibility Framework , инфраструктуру компилятора как услуги Roslyn (вместе с компиляторами C # и Visual Basic .NET ), компилятор функционального первого языка F # [8] и многие другие. [9] Microsoft и Xamarinобъявила о сотрудничестве с намерением повысить кроссплатформенную доступность .NET на Mac OS, Linux и мобильных устройствах. [10]

В июне 2016 года Microsoft выпустила .NET Core 1.0, которая представляет собой кроссплатформенную среду с открытым исходным кодом и упрощенную версию чистой реализации Windows. [11]

Традиционные компьютерные приложения [ править ]

Настольные приложения [ править ]

Хотя библиотеки Java AWT ( Abstract Window Toolkit ) и Swing не стесняются функций, Java изо всех сил пытается закрепиться на рынке настольных компьютеров. Sun Microsystems также медленно, в глазах некоторых, [ править ] для продвижения Java для разработчиков и конечных пользователей , таким образом , что делает его привлекательным выбором для настольного программного обеспечения. Даже такие технологии, как Java Web Start , которые не имеют аналогов в конкурирующих языках и платформах, практически не продвигаются. [ необходима цитата ]

С выпуском Java версии 6.0 11 декабря 2006 г. внимание рынка настольных компьютеров вновь сосредоточилось на обширном наборе новых инструментов для более тесной интеграции с настольными компьютерами. На конференции JavaOne 2007 года Sun сделала дополнительные объявления, связанные с настольными компьютерами, включая новый язык, нацеленный на использование Adobe Flash ( JavaFX ), новый облегченный способ загрузки JRE, который сокращает первоначальный размер до менее 2  Мбайт , и вновь обращает внимание на мультимедийные библиотеки.

Альтернативой AWT и Swing является Standard Widget Toolkit ( SWT ), который изначально был разработан IBM и теперь поддерживается Eclipse Foundation . Он пытается достичь улучшенной производительности и визуализации настольных приложений Java, полагаясь, где это возможно, на базовые собственные библиотеки.

В Windows популярная разработка для настольных ПК представляет собой Microsoft .NET, предоставляющую как Windows Forms (легкую оболочку для Win32 API), так и Windows Presentation Foundation и Silverlight. Благодаря интеграции .NET в платформу Windows, приложения .NET становятся первоклассными гражданами в среде Windows с более тесной интеграцией с ОС и собственным внешним видом по сравнению с Java Swing.

Вне Windows Silverlight можно переносить на рабочий стол Mac OS X. Mono также становится все более распространенным в системах с открытым исходным кодом и в системах свободного программного обеспечения из-за его включения [12] во многие среды рабочего стола Linux.

Серверные приложения [ править ]

Вероятно, это та арена, на которой две платформы ближе всего к тому, чтобы считаться соперниками. Java через свою платформу Java EE (также известную как Java Platform Enterprise Edition) и .NET через ASP.NET конкурируют за создание динамического веб-контента и приложений.

Обе платформы хорошо используются и поддерживаются на этом рынке. Из 1000 лучших веб-сайтов примерно 24% используют ASP.NET, а также 24% используют Java, тогда как из всех веб-сайтов примерно 17% используют ASP.NET и 3% используют Java. [13]

Некоторые из лицензионных соглашений Oracle, связанных с Java, для Java EE определяют аспекты платформы Java как коммерческую тайну [14] и запрещают конечным пользователям вносить вклад в стороннюю среду Java. В частности, по крайней мере одна текущая лицензия на пакет разработки Oracle Java EE содержит следующие условия: «Вы можете сделать одну архивную копию Программного обеспечения, но не имеете права копировать, изменять или распространять Программное обеспечение». - «Если принудительное исполнение не запрещено действующим законодательством, вы не можете декомпилировать или реконструировать Программное обеспечение». - «Вы не можете публиковать или предоставлять результаты каких-либо тестов производительности или сравнительных тестов Программного обеспечения третьим лицам без предварительного письменного согласия Oracle». - «Программное обеспечение является конфиденциальным и защищено авторским правом». [14]Однако, хотя на программное обеспечение Oracle распространяются вышеуказанные условия лицензии, справочник Oracle Java EE API был реализован по лицензии с открытым исходным кодом проектами WildFly (первоначально JBoss) и JOnAS .

Реализация Microsoft ASP.NET не является частью стандартизированного интерфейса командной строки, и, хотя среда выполнения и инструменты разработки Microsoft не подпадают под действие соглашений о секретности, сопоставимых с Java EE, официальные инструменты Microsoft не являются программным обеспечением с открытым исходным кодом или бесплатным программным обеспечением и требуют серверов Windows. Однако реализация кроссплатформенного бесплатного программного обеспечения ASP.NET является частью проекта Mono (за исключением веб-частей и улучшений веб-служб ). [15] Mono поддерживает ASP.NET 4.0, включая веб-формы, Microsoft AJAX и ASP.NET MVC. [16]

Встроенные приложения [ править ]

Мобильные приложения [ править ]

Популярная платформа Android для мобильных приложений Google основана на Java. Google внедрил специализированную виртуальную машину под названием Dalvik, чтобы оптимизировать выполнение кода Java для мобильных устройств.

Oracle предоставляет Java ME ; эталонная реализация для OEM-производителей мобильных устройств. Java ME состоит из различных профилей, которые являются подмножествами среды рабочего стола Java с дополнительными библиотеками, предназначенными для разработки мобильных устройств и телевизионных приставок. Java ME имеет очень большую базу на рынках мобильных телефонов и КПК , и только самые дешевые устройства теперь лишены KVM (урезанная JVM для использования на устройствах с ограниченной вычислительной мощностью). Программное обеспечение Java, включая многие игры, является обычным явлением.

Хотя многие функциональные телефоны включают JVM, они не всегда активно используются пользователями (особенно в Южной Африке). Первоначально приложения Java на большинстве телефонов обычно состояли из систем меню, небольших игр или систем для загрузки мелодий звонка и т. Д. Однако более мощные телефоны все чаще продаются с простыми предварительно загруженными приложениями, такими как словари перевода, отображение мирового времени (темнота / свет, часовые пояса и т. д.), а также калькуляторы. Некоторые из них написаны на Java, хотя, вероятно, неизвестно, как часто владельцы телефонов на самом деле их используют.

В настоящее время Microsoft поставляет .NET Compact Framework, который работает на Windows CE и мобильных устройствах, телевизионных приставках и КПК, а также на Xbox 360 . Microsoft также предоставляет .NET Micro Framework для разработчиков встраиваемых систем с ограниченными ресурсами.

В качестве альтернативы Novell предоставляет встраиваемые версии Mono третьим сторонам для использования на своих устройствах, а Xamarin коммерчески распространяет платформу MonoDroid и MonoTouch для разработки под Android и iPhone соответственно.

Windows Phone 7 использует Silverlight для собственных приложений, но Windows Phone 8 использует C # и XAML в качестве основных языков.

Технологии домашних развлечений [ править ]

Java нашла рынок в цифровом телевидении, где ее можно использовать для предоставления программного обеспечения, которое дополняет программирование или расширяет возможности данной телеприставки . У TiVo , например, есть средство под названием « Home Media Engine », которое позволяет передавать программное обеспечение Java TV на соответствующее устройство TiVo для дополнения программирования или обеспечения дополнительных функций (например, персонализированные биржевые тикеры в программе деловых новостей).

Вариант Java был принят в качестве официального программного инструмента для использования на технологии оптических дисков следующего поколения Blu-ray через интерактивную платформу BD-J . Это будет означать, что интерактивный контент, такой как меню, игры, загружаемые материалы и т. Д., На всех оптических дисках Blu-ray будет создаваться в рамках варианта платформы Java.

Вместо того чтобы использовать Java, HD DVD (несуществующей высокой четкости преемника DVD ) использовали технологию совместно разработанную Microsoft и Дисней под названием HDi , который был основан на XML , CSS , JavaScript и другие технологии, которые сопоставимы с используемыми стандартным веб браузеры .

API платформы BD-J более обширен, чем его конкурент iHD, с предполагаемым 8000 методов и интерфейсов, в отличие от iHD 400. [17] И хотя Microsoft продвигает уровень представления XML iHD, включая его в Windows Vista, iHD по-прежнему остается новичок в секторе рынка, где Java-технологии уже стали обычным явлением. [18]

Однако тот факт, что от формата HD DVD отказались в пользу Blu-ray, означает, что HDi больше не поддерживается ни в одном из форматов оптических дисков , что делает формат BD-J явным победителем. [19]

Включение среды выполнения в операционные системы [ править ]

.NET / Mono [ править ]

В Windows Microsoft продвинула .NET в качестве своей флагманской платформы разработки [20] , включив среду выполнения .NET в Windows XP Service Pack 2 и 3, Windows Server 2003, Windows Vista, Windows Server 2008 и Windows 7. Microsoft также распространяет Visual Бесплатная среда разработки Studio Express [21] и бесплатная среда разработки Visual Studio Community с ограниченным использованием для организаций. [22]

Среда выполнения .NET Framework 3.5 не предустановлена ​​в версиях Windows до Vista SP1 и должна быть загружена пользователем, что подвергалось критике из-за ее большого размера (загрузка 65 МБ для .NET 3.5). [23] [24]

Хотя ни .NET, ни Mono не устанавливаются с Mac OS X по умолчанию, проект Mono можно бесплатно загрузить и установить отдельно для любого пользователя Mac, который хочет создавать или запускать программное обеспечение C # и .NET. По состоянию на 13 мая 2008 года Mono's System.Windows.Forms 2.0 является API-полным (содержит 100% классов, методов и т. Д. В Microsoft System.Windows.Forms 2.0); также System.Windows.Forms 2.0 изначально работает в Mac OS X.

C # и CLI включены и используются в ряде операционных систем на базе Linux и BSD посредством включения бесплатного программного обеспечения Mono Project. [25] [26] [27]

В результате включения сред выполнения .NET или Mono в дистрибутивы Windows и Linux приложения без графического интерфейса пользователя, которые используют программные интерфейсы, общие для .NET и Mono, могут быть разработаны на C # или любом другом языке .NET, а затем развертывается во многих операционных системах и архитектурах процессоров с использованием среды выполнения, доступной как часть установки операционной системы. [28] [29] [27] И Microsoft .NET, и проект Mono полностью поддерживают язык C #, стандартизованный по Ecma и ISO, и среду выполнения .NET, а многие нестандартизированные программные интерфейсы .NET были реализованы или находятся в разработке в Mono, [30] но каждая среда включает в себя множество компонентов, которые не были реализованы в другой.

Java [ править ]

Текущая версия Windows не поставляется с Java; они перестали поставляться с Windows XP SP1a.

Java была предустановлена ​​на всех новых компьютерах Apple, начиная с Mac OS X 10.0 и заканчивая 10.6 , после чего Java 6 стала необязательной для загрузки Apple. [31] [32] Java 7 и более поздние версии предоставляются Oracle. [33]

Java предустановлена ​​со многими коммерческими разновидностями Unix, в том числе от Hewlett Packard , IBM и Oracle . По состоянию на июнь 2009 г. дистрибутивы Debian , [34] Fedora 9 , [35] Mandriva , [36] OpenSUSE , [37] Slackware extra, [38] и Ubuntu 8.04 [39] доступны вместе с OpenJDK, полностью основанными на бесплатных и открытый исходный код. [40] С июня 2008 года OpenJDK прошел все тесты совместимости в Java SE 6 JCK.и может претендовать на то, чтобы быть полностью совместимой реализацией Java 6. [41] [42] OpenJDK может запускать сложные приложения, такие как Eclipse , GlassFish , WildFly или Netbeans .

Лицензия распространителя операционной системы для Java (DLJ) [43] была инициативой Sun, призванной облегчить проблемы распространения операционных систем на базе Linux или OpenSolaris.

Если Java не установлена ​​на компьютере по умолчанию, она может быть загружена пользователем как веб-плагин. Процесс веб-надстройки подвергался критике из-за размера подключаемого модуля Java. В отличие от других подключаемых модулей, загрузка Java представляет собой полную среду выполнения, способную запускать не только апплеты, но и полные приложения и динамические приложения WebStart. Из-за этого предполагаемый размер загрузки больше, чем у некоторых веб-плагинов. Однако по сравнению с Java другие популярные подключаемые модули браузера имеют больший размер: Java 6 JRE - 13 МБ, но Acrobat Reader - 33 МБ, QuickTime 19 МБ, Windows Media Player 25 МБ, .NET Framework 3.0. время выполнения составляет 54 МБ, а время выполнения .NET Framework 3.5 - 197 МБ (это единый пакет для x86, x64 и IA-64; каждая часть имеет примерно 60 МБ).

На мероприятии JavaOne в мае 2007 года Sun объявила, что проблемы с развертыванием Java будут решены в двух основных обновлениях в течение срока службы Java 6 (изменения не будут сохранены в Java 7.) К ним относятся:

  • Внедрение новой потребительской версии JRE с начальным объемом памяти 2 Мбайт и возможностью загрузки оставшихся 9 Мбайт по разделам с использованием методологии по запросу.
  • Разработка подключаемого кросс-платформенного кода JavaScript , который можно использовать с веб-страницы для установки необходимой JRE для выполнения данного апплета или полнофункционального Интернет-приложения , если это необходимо.
  • Улучшение поддержки автоматической загрузки обновлений в JRE.
  • поддержка предварительной загрузки JRE, поэтому апплеты и приложения, написанные на Java, запускаются почти мгновенно.

См. Также [ править ]

  • Сравнение языков C # и Java
  • Язык программирования Java

Ссылки [ править ]

  1. ^ Microsoft и Novell объявляют о широком сотрудничестве в области совместимости и поддержки Windows и Linux
  2. ^ «Заявление в блоге лидера проекта Mono Мигеля де Икасы относительно патентной защиты Mono» . 2006-11-04 . Проверено 6 ноября 2006 . CS1 maint: обескураженный параметр ( ссылка )
  3. Столмен, Ричард (26.06.2009). «Почему бесплатные программы не должны зависеть от Mono или C #» . Фонд свободного программного обеспечения . Проверено 2 июля 2009 . Мы должны систематически принимать меры, чтобы как можно меньше зависеть от бесплатных реализаций C #. Другими словами, мы должны отговаривать людей писать программы на C #. Следовательно, мы не должны включать реализации C # в стандартную установку дистрибутивов GNU / Linux, и мы должны распространять и рекомендовать приложения, отличные от C #, а не сопоставимые приложения C #, когда это возможно. CS1 maint: обескураженный параметр ( ссылка )
  4. ^ «Пустое обещание Microsoft» . Фонд свободного программного обеспечения . 2009-07-16 . Проверено 3 августа 2009 . Пока этого не произошло, разработчики свободных программ по-прежнему не должны писать программы, которые зависят от Mono. Реализации C # все еще могут подвергаться атакам со стороны патентов Microsoft: Community Promise призван дать компании несколько преимуществ, если она того пожелает. Мы не хотим, чтобы упорный труд разработчиков был потерян для сообщества, если мы потеряем возможность использовать Mono, и пока мы полностью не откажемся от патентов на программное обеспечение, использование другого языка - лучший способ предотвратить это. CS1 maint: обескураженный параметр ( ссылка )
  5. ^ a b Microsoft захватывает свободный мир.
  6. ^ Microsoft по-прежнему открывает источники большего количества технологий, чем многие думают.
  7. ^ Microsoft открывает исходные коды большего количества своих .NET-технологий
  8. ^ Фонд программного обеспечения F #
  9. ^ Проекты .NET Foundation
  10. ^ Xamarin сотрудничает с Microsoft, чтобы распространять .NET повсюду
  11. ^ core: Домашний репозиторий для .NET Core , .NET Foundation, 14 января 2018 г. , получено 14 января 2018 г. CS1 maint: обескураженный параметр ( ссылка )
  12. ^ Моно-приложения? Изобилие !, OSNews
  13. ^ «Использование серверных языков программирования с разбивкой по ранжированию» . W3Techs.com . Дата обращения 30 мая 2015 . CS1 maint: обескураженный параметр ( ссылка )
  14. ^ a b Java EE SDK 5, обновление 2 Страница загрузки JDK отсутствует (ссылка на лицензионное соглашение) [ постоянная мертвая ссылка ]
  15. ^ Моно: ASP.NET
  16. ^ Моно: ASP.NET
  17. ^ "HD-DVD против Blu-ray, раунд 2" . Архивировано из оригинала на 2007-03-08 . Проверено 23 апреля 2007 .
  18. ^ Format Wars - Blu-ray против HD DVD
  19. ^ Zaharov-Реутт, Алекс (2008-02-21). «Интерактивный слой Microsoft HDi проиграл после смерти HD DVD - но какое это имеет значение?» . itwire.com . Проверено 27 августа 2008 . Хотя многие утверждали, что создание интерактивности с помощью HDi было намного проще, чем использование BD-J, тот факт, что HD DVD увидит несколько будущих выпусков после 2008 года, означает, что независимо от позиции энтузиастов относительно относительных достоинств HDi и BD-J, BD- Интерактивный формат J стал победителем CS1 maint: обескураженный параметр ( ссылка )[ мертвая ссылка ]
  20. ^ Статья Microsoft, в которой C # упоминается как «флагманский» язык.
  21. ^ "Visual Studio Express" . Архивировано из оригинала 2011-06-12 . Проверено 3 декабря 2010 .
  22. ^ Сообщество Visual Studio
  23. ^ «Уважаемый Microsoft» . 2008-01-09. Архивировано из оригинала на 2008-02-05 . Проверено 3 февраля 2008 . CS1 maint: обескураженный параметр ( ссылка )
  24. ^ ".NET framework 3.5 размером 166 МБ!" . 2007-11-10. Архивировано из оригинала на 2008-02-05 . Проверено 3 февраля 2008 . CS1 maint: обескураженный параметр ( ссылка )
  25. ^ Fedora принимает Mono - ZDNet UK
  26. ^ Пакеты Debian Mono
  27. ^ a b Википедия использует Mono; Mono интегрирован в Ubuntu / Debian - OSNews.com
  28. ^ "Fedora ловит моно" . Архивировано из оригинала на 2007-04-05 . Проверено 19 апреля 2007 .
  29. ^ "Выпущена SUSE 10.1" . Архивировано из оригинала на 2006-12-11 . Проверено 19 апреля 2007 .
  30. ^ "Моно - Планы" . Проверено 23 декабря 2008 . CS1 maint: обескураженный параметр ( ссылка )
  31. ^ «Внутри Mac OS X 10.7 Lion: отсутствуют Front Row, Rosetta и среда выполнения Java» . AppleInsider. 26 февраля 2011 г.
  32. ^ «Загрузки Java» . Apple Inc.
  33. ^ «Информация и системные требования для установки и использования Oracle Java в Mac OS X» . Корпорация Oracle.
  34. ^ "Пакет: openjdk-6-jdk" . debian.org. 2009-02-14 . Проверено 16 февраля 2009 . CS1 maint: обескураженный параметр ( ссылка )
  35. Уэйд, Карстен (13 марта 2008 г.). "OpenJDK в Fedora 9!" . redhatmagazine.com. Архивировано из оригинала на 2008-04-21 . Проверено 5 апреля 2008 . Томас Фитцсиммонс обновил исходные страницы примечаний к выпуску Fedora 9, чтобы отразить, что Fedora 9 будет поставляться с OpenJDK 6 вместо реализации IcedTea OpenJDK 7. Fedora 9 (Sulphur) должна быть выпущена в мае 2008 года. CS1 maint: обескураженный параметр ( ссылка )
  36. ^ Пакет Mandriva Java
  37. ^ "Пакет: OpenJDK" . opensuse.org. Архивировано из оригинала на 27 мая 2009 года . Проверено 1 июня 2009 . CS1 maint: обескураженный параметр ( ссылка )
  38. ^ "Пакет Slackware Java" . Архивировано из оригинала на 2008-06-10 . Проверено 31 октября 2018 .
  39. ^ "openjdk-6 в Ubuntu" . Проверено 19 апреля 2008 . CS1 maint: обескураженный параметр ( ссылка )
  40. ^ Рейнхольд, Марк (2008-04-24). "Нельзя терять ни минуты!" . Архивировано из оригинала на 2008-04-29 . Проверено 19 апреля 2008 . CS1 maint: обескураженный параметр ( ссылка )
  41. ^ Шарплз, Рич (2008-06-19). «Java, наконец, свободна и открыта» . Архивировано из оригинала на 2008-06-20. CS1 maint: обескураженный параметр ( ссылка )
  42. Ангел, Лилиан (13 марта 2008 г.). «OpenJDK для замены IcedTea в Fedora 9» . Архивировано из оригинала на 2008-04-18 . Проверено 5 апреля 2008 . CS1 maint: обескураженный параметр ( ссылка )
  43. ^ Лицензия распространителя операционной системы для Java (DLJ) [ постоянная мертвая ссылка ]

Внешние ссылки [ править ]

  • Переход на C # и .NET Framework в MSDN
  • ECMA-335 Common Language Infrastructure (CLI), 4-е издание (июнь 2006 г.) - бесплатная загрузка стандарта Ecma CLI
  • ISO / IEC 23271: 2006 Common Language Infrastructure (CLI), разделы с I по VI - официальный стандарт ISO / IEC CLI.