Интернет магазин китайских планшетных компьютеров



Компьютеры - Сравнение C Sharp и Java - Использование

24 апреля 2011


Оглавление:
1. Сравнение C Sharp и Java
2. Реализации
3. Использование



Сообщество

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

Несмотря на существование Mono, C# тесно привязывает разработчиков к платформе Microsoft. Таким образом, пользователь программного обеспечения, написанного на .NET, часто не имеет выбора в использовании различных компонент системы. Это приводит к так называемому vendor-locking, при котором производитель стороннего ПО может диктовать покупателю практически любые условия на поддержку внедренного проекта. В то время, как пользователь приложения Java, как правило, может сам выбрать поставщика дополнительного ПО.

Популярность и развитие

Java старше, чем C# и построена на большой и активной пользовательской базе, став lingua franca во многих современных областях информатики, особенно таких, где задействованы сети. Java доминирует в курсах программирования американских университетов и колледжей, и литературы по Java сегодня намного больше, чем по C#. Зрелость и популярность Java привели к большему числу библиотек и API на Java, чем на C#.

В отличие от Java, C# — язык относительно новый. Microsoft изучила существующие языки, такие как Java, Delphi и Visual Basic, и изменила некоторые аспекты языка для лучшего соответствия нуждам некоторых типов приложений.

В отношении Java можно услышать критику, что она медленно развивается, в ней не хватает некоторых возможностей, которые облегчают модные шаблоны программирования и методологии. Язык C# критикуют в том, что его разработчики, возможно, слишком спешат угодить сиюминутным течениям в программировании ценой фокусировки и простоты языка. Очевидно, проектировщики Java заняли более консервативную позицию по добавлению крупных новых возможностей в синтаксис языка, чем в других современных языках — возможно, не желая привязать язык к течениям, которые в долгосрочной перспективе могут завести в тупик. С выпуском Java 5.0 эта тенденция во многом была нарушена, так как в ней ввели несколько крупных новых возможностей языка: цикл типа foreach, автоматическое заворачивание, методы с переменным числом параметров, перечислимые типы, обобщённые типы и аннотации.

C#, в свою очередь, развивается быстрее, гораздо слабее ограничивая себя в добавлении новых проблемно-ориентированных возможностей. Особенно эта тенденция проявилась в версии C# 3.0, в которой, например, появились SQL-подобные запросы.. Проблемно-ориентированные дополнения к Java рассматривались, но, по крайней мере на сегодняшний день, были отвергнуты.

Рынок

С момента появления C# он постоянно сравнивается с Java. Невозможно отрицать, что C# и его управляемая среда CLR многим обязаны Java и её JRE.

Можно спорить, является ли разработка C# в какой-то степени результатом признания Майкрософтом того, что среда управляемого кода, где лидирует Java, имеет множество достоинств в растущем сетевом мире, особенно при появлении интернета на устройствах, отличных от персональных компьютеров, и при растущей важности сетевой безопасности. До создания C# Microsoft модифицировала Java, с тем чтобы добавить возможности, работающие только на ОС Windows, нарушив таким образом лицензионное соглашение Sun Microsystems. Пока Microsoft находилась на второй фазе своей бизнес-стратегии, известной как «Embrace, Extend, and Extinguish», развитие J++ было остановлено иском, поданным Sun’ом. Будучи лишённой возможности разрабатывать клон Java с нужными ей свойствами, Microsoft создала альтернативу, которая больше соответствовала их потребностям и видению будущего.

Несмотря на такое беспокойное начало, становится всё более очевидным, что два языка редко конкурируют друг с другом на рынке. Java доминирует в мобильном секторе и имеет много приверженцев на рынке веб-приложений. C# получил хорошее признание на рынке настольных приложений Windows и благодаря ASP.NET, C# также является игроком и на рынке веб-приложений.

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

Для обоих языков имеется набор библиотек, предоставляющих возможности построения интерфейса пользователя для настольных приложений. В случае Java это мультиплатформенные библиотеки Swing и SWT, а также ряд менее распространённых. В принципе, любая из них позволяет создавать кроссплатформенные настольные приложения на Java.

Для C# на платформе Windows основной библиотекой, реализующей графический интерфейс пользователя в настольных приложениях, является Windows.Forms, принадлежащая Microsoft и реализованная только для Windows, а для прочих платформ — gtk#, выполненная в рамках проекта Mono. Попытки свободной реализации Windows.Forms предпринимались и предпринимаются, однако они, в силу закрытости оригинала, неизбежно страдают вторичностью и неполнотой, вряд ли могут конкурировать с реализацией от Microsoft и потому могут применяться разве что для запаздывающего портирования Windows-приложений на другие платформы. Разработки, изначально базирующиеся на Windows, строятся обычно на Windows.Forms, и их перенос на другую платформу становится затруднительным. Разработки на C# в среде Mono, использующие gtk#, переносимы, но их существенно меньше.

В силу особенностей языка ручное использование графических библиотек Java несколько более затруднительно. Архитектура графических библиотек Java более сложна для понимания начинающего разработчика, в то же время, это заставляет его развиваться в профессиональном плане. C# за счёт наличия встроенных средств событийного программирования скрывает от разработчика детали обработки событий и некоторые другие моменты, облегчая разработку интерфейса. На платформе .NET изначально широко использовались визуальные построители интерфейса. Всё это даёт возможности для быстрой разработки интерфейса настольных приложений при невысокой квалификации программиста.

В последние несколько лет Sun Microsystems сконцентрировалась на еще более широком внедрении Java на рынок настольных приложений. В версии платформы JRE 6 акцент сделан на улучшение взаимодействии с графическим окружением пользователя. Последняя версия JVM от Sun включает множество улучшений для создание интерфейса пользователя. В частности, прозрачные формы и окна непрямоугольной формы. Последние версии интегрированных сред разработки для Java также включают значительно улучшенные графические построители интерфейса пользователя.

C#, наравне с Java, постепенно становится популярным на нескольких операционных системах на основе Linux и BSD. Реализация проекта Mono была юридически безболезненным процессом, поскольку CLR и язык C# стандартизированы Ecma и ISO, и любой может их реализовывать, не беспокоясь о правовой стороне дела. В то же время, следует отметить, что написанное приложение под средой Windows может иметь значительные проблемы запуска под другой ОС.

Серверные приложения

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

На этом рынке широко используются и поддерживаются оба языка, вместе с комплектом инструментов и сопровождающих продуктов, имеющихся для JavaEE и .NET.

Мобильные приложения

J2ME Micro Edition) имеет очень широкую базу на рынках мобильных телефонов и КПК, где только самые дешёвые устройства лишены KVM. Программы на Java, включая множество игр, встречаются повсеместно.

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

Передовые технологии

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



Просмотров: 4616


<<< Сервлет
OpenOffice.org Draw >>>