Архив номеров
Форум
Контакты

Java vs .NET: почему .NET

.NET превалирует над Java в сегменте малого и среднего бизнеса.

Различия, достоинства и недостатки каждой из платформ проистекают из исходных различий в идеологии Java и .NET. Идеологию Java можно выразить фразой «написано однажды, работает везде», а идеология .NET заключается в максимально полном использовании ресурсов платформы, на которой работает среда выполнения .NET. В результате возможности Java ограничены усредненным набором функций API виртуальной машины, и программистам на Java недоступны все функции той или иной платформы, на которой выполняются приложения. В случае с .NET среда выполнения предоставляет доступ к специфичным возможностям Microsoft Windows, позволяя приложению тесно взаимодействовать с операционной системой и пользоваться всеми преимуществами платформы Windows, например прозрачно работать с COM-объектами, службами Window (без S?) (в частности, Active Directory), кроме того, пользователь имеет дело с удобным и привычным графическим интерфейсом Windows. Разумеется, при использовании Java можно «докопаться» до возможностей платформы, но зачастую это требует написания большого количества нетривиального кода.

Еще одно идеологическое различие между Java и .NET состоит в том, что первая изначально создавалась для одного языка программирования — Java. В то время как .NET была спроектирована с учетом поддержки неограниченного количества языков программирования за счет реализации общеязыковых сред инфраструктуры CLI и выполнения CLR, накладывающих определенные правила на используемые в языке типы и вызовы функций, позволяющие взаимодействовать коду, написанному на разных языках программирования, поддерживающих CLI. Таким образом, на настоящий момент существует порядка 30 известных реализаций языков программирования для платформы .NET, в то время как поддержка других языков на Java находится на этапе зарождения и весьма скудна.

В контексте применения .NET или Java в решениях для бизнеса интеграция с наиболее распространенным офисным пакетом является весьма существенным аргументом. За счет использования привычного интерфейса и приложений, входящих в Microsoft Office, можно в значительной степени упростить работу конечного пользователя с системами документооборота и управления ресурсами. Благодаря возможности прозрачно использовать COM-объекты, .NET приложения могут с легкостью взаимодействовать с объектной моделью Microsoft Office. А начиная с версии Microsoft Office 2003 можно создавать расширения для Microsoft Office с помощью .NET.

Не менее важна доступность средств разработки. Для .NET имеется интегрированная среда разработки Visual Studio, позволяющая писать приложения, задействуя весь функционал платформы .NET и Microsoft Windows. В Visual Studio существуют встроенные средства для отладки настольных и Web-приложений, включая отладку кода клиентских скриптовых языков, выполняемых в Web-браузере, и отладку приложений для мобильных устройств с использованием программных эмуляторов. Более того, есть несколько редакций среды разработки Visual Studio, обладающие расширенным набором возможностей для различных ролей участников проекта, таких как архитектор, разработчик, специалист по тестированию и разработчик баз данных. Вместе с серверным решением для обеспечения процесса разработки программного обеспечения Team Foundation Server данные инструменты позволяют писать высококачественные приложения в весьма сжатые сроки.

Модели компиляции и выполнения Java и .NET приложений достаточно схожи – в обоих случаях в результате компиляции получается некоторый промежуточный код (байт-код в Java и код на промежуточном языке MSLI в .NET), который затем обрабатывается средой выполнения. Для повышения производительности используется модель компиляции в машинный код по мере необходимости — just-in-time compilation (JIT). Производительность .NET-приложений для большинства задач значительно превышает производительность Java-приложений за счет того, что в .NET компиляция JIT реализована на уровне методов, а в Java — на уровне классов. Даже если для работы приложения требуется вызов лишь одного определенного метода в классе, то в случае с Java произойдет полная компиляция промежуточного кода класса, что приводит к выполнению лишней работы и снижению общей производительности.

Платформа .NET является, пожалуй, самой быстроразвивающейся платформой для разработки приложений на настоящий момент. Компания Microsoft инвестирует огромные средства в развитие новых технологий, призванных унифицировать доступ к данным, создание и взаимодействие с распределенными приложениями, разработку богатых пользовательских интерфейсов и приложений, ориентированных на решение бизнес-задач. Недавно были выпущены новые компоненты под общим названием .NET Framework 3.0 (www.netfx3.com), включающие в себя:

  • Windows Presentation Foundation (WPF) – компоненты для создания графического интерфейса с использованием специального XML-подобного языка XAML, призванные сделать возможной реализацию самых смелых идей в области дизайна графического интерфейса пользователя, а также максимально разделить работу дизайнера интерфейса от работы разработчика;
  • Windows Communication Foundation (WCF) – компоненты для унификации создания распределенных приложений, позволяющие абстрагироваться от конкретного протокола и формата передачи данных, используя единую модель для создания приложений, взаимодействующих между собой с применением различных технологий;
  • Windows Workflow Foundation (WF) – набор компонентов для программной реализации бизнес-процессов, предоставляющих возможность изменения бизнес-процесса специалисту предметной области, не обладающему знаниями технологий разработки.

Для облегчения разработки Ajax-приложений были выпущены Microsoft Ajax Extensions (http://ajax.asp.net), позволяющие легко внедрить Ajax-функциональность в существующие Web-приложения на платформе .NET, а также в значительной степени упростить создание клиентских скриптов, выполняющихся в Web-браузере. Кроме того, в недалеком будущем планируется выпуск финальной версии революционной технологии, унифицирующей доступ к данным за счет использования интегрированного языка запросов (LINQ), который позволит единообразно связать источники реляционных данных с объектной моделью приложения (http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx). Конечно, уже имеется большое количество наработок по взаимодействию Java-приложений с компонентами .NET 3.0, а также Ajax-библиотеки для Java и множество решений третьих фирм для доступа к данным. Однако в случае.NET все решения поставляются одним производителем вместе с самой платформой и полноценно интегрируются между собой, чего не всегда можно достичь при использовании набора компонентов сторонних производителей для Java.

Поскольку большинство современных настольных компьютеров работают под управлением операционной системы Microsoft Windows, сообщество пользователей Windows и разработчиков для этой операционной системы воистину огромно. В связи с этим регулярно появляются оригинальные решения сообщества, которые могут быть интегрированы с решениями, создаваемыми для Windows. В то же время значительную часть сообщества разработчиков на Java составляют приверженцы UNIX/Linux-платформ, многие из которых сильно различаются между собой. Поскольку платформа .NET тесно интегрируется с Windows, то опыт, накопленный сообществом пользователей Windows, полноценно переносится на базу .NET. Для разработчика под Windows в значительной степени проще перейти к использованию платформы .NET, чем Java, и возникает банальная проблема поиска кадров и обучения сотрудников при попытке создавать и поддерживать Java-приложения на платформе Windows. Преимущества Microsoft-ориентированной инфраструктуры в этом случае связаны даже не столько с опытом пользователя операционной системы Windows, сколько с наличием полного спектра легко интегрируемых решений Microsoft – от офисных пакетов, серверов приложений и баз данных до мощных CRM- и ERP-приложений.

В итоге на сегодняшний день .NET позволяет максимально повысить производительность разработчика, что в конечном итоге сказывается на возможностях скорейшего реагирования ИТ-инфраструктуры на быстро меняющиеся условия бизнеса. И .NET превалирует над Java в сегменте малого и среднего бизнеса.
Но жесткая конкуренция между Java и Microsoft .NET идет на пользу обеим платформам: развиваются базовые функции платформ, вводятся улучшения в языки программирования и создаются новые технологии. Так, язык Java заимствовал у языка C# расширенные возможности цикла for (foreach в C#), автоматическую упаковку и распаковку объектов, типобезопасную реализацию перечислений, переменное количество аргументов функций (ключевое слово params в C#) и мета-атрибуты. В свою очередь платформа .NET заимствует и улучшает идеи, появившиеся при разработке Java.



Обсуждение статьи
Логин:
Пароль:
Регистрации на сервере не требуется. Если у вас есть форумный логин, вы можете использовать его.
Если нету, то вы можете зарегистрироваться на forum.itspecial.ru
Обсуждение этой статьи на forum.itspecial.ru
Для отправки сообщения введите код, указанный на картинке
Заголовок
Сообщение

Guest guest@gameland.ru Отправлено: 13.05.2009 10:34:35
RE: Java vs .NET: почему .NET
Жесть.... довольно много ошибок. 1. Промежуточный язык у M$ - M$IL, CIL, IL 2. Девиз Java работает не всегда, даже очень не всегда... и лагает на самых простых задачах. 3. Работу на всех платформах и совместимость возможностей языков обеспечивает - CLS. 4. Недавно вышел уже дот нет 3.5 сп1 5. Недавно выйдет дот нет 4.0
Guest guest@gameland.ru Отправлено: 13.05.2009 19:27:41
RE: Java vs .NET: почему .NET
Это старые номера Спеца, еще 2007 года...
Guest guest@gameland.ru Отправлено: 14.05.2009 13:52:59
RE: Java vs .NET: почему .NET
ASP.NET скрипт интернет магазина: http://advantshop.net/
Guest guest@gameland.ru Отправлено: 15.05.2009 16:27:08
RE: Java vs .NET: почему .NET
Нафига нужен дотНет если он только под винду? Под винду и на С++ можно написать.
Java по крайней мере в разных операционках поддерживается. Лично запускал один и тот же код в винде, линухе и солярке. А с dotNet такое возможно?
Guest guest@gameland.ru Отправлено: 18.05.2009 20:24:14
RE: Java vs .NET: почему .NET
Java очень богатый язык, поскольку мохно создавать разные классы с теми же методами хотя они будут считаться как разные. А в этом .NET рамает.
Guest guest@gameland.ru Отправлено: 11.07.2009 17:00:36
RE: Java vs .NET: почему .NET
"Производительность .NET-приложений для большинства задач значительно превышает производительность Java-приложений за счет того, что в .NET компиляция JIT реализована на уровне методов, а в Java — на уровне классов. Даже если для работы приложения требуется вызов лишь одного определенного метода в классе, то в случае с Java произойдет полная компиляция промежуточного кода класса, что приводит к выполнению лишней работы и снижению общей производительности."

Это неправда по меньшей мере для Sun HotSpot. 1) Компиляция там не JIT, а динамическая 2) объектом компиляции может быть даже цикл (т.н. on-stack replacement), если динамический компилятор решает, что это целесообразно. В большинстве случаев компилируются отдельные функции. И, насколько могу судить, классы целиком не компилируются никогда 3) компиляция кода (без последующей рекомпиляции) - это разовая задержка, которая не сказывается на производительности "разогретого" приложения. Поэтому сам факт однократной компиляции чего бы то ни было не говорит о производительности программы при длительном времени жизни оной.

Дмитрий
Guest guest@gameland.ru Отправлено: 26.02.2010 11:41:25
RE: Java vs .NET: почему .NET
Ребята, не видитесь, обе платформы очень хороши, а это просто агитация за платформу .NET, вон даже сайт на APS написан. У Java есть свои огромнейшие плюсы, даже не упоминается Hibernate или Spring. Если .net так крут, то почему же специалистов по Java требуется больше и средний оклад у них больше, даже в США?

Просто думайте, что больше вам нравится, то и учите.
Хотя конечно лучше выучить обе платформы)
Guest guest@gameland.ru Отправлено: 13.05.2010 4:45:52
RE: Java vs .NET: почему .NET
nice site! I like this site very much replica watches All popular Replica Tag Heuer, Breitling. fake oris watch as they wish.
Guest guest@gameland.ru Отправлено: 21.06.2010 13:34:54
RE: Java vs .NET: почему .NET
ASP.NET и Java - наиболее перспективные из всех платформы, но Microsoft сильнее Sun, думаю в перспективе asp.net выиграет. http://www.advantshop.ru/
Страницы: << 1 2 >>

Теги: .NET, Java, программирование


Keywords: zPOSTz zMAIN_THEMEz z10096z
Для Авторов: edit Lock delete Lock

Автор: Гайдар Магдануров, эксперт по технологиям разработки программного обеспечения
Дата: 12.05.2009 14:13:37©


Другие материалы номера
Java для SMB: Удобство решения определенных задач
JavaOne 2007. Репортаж с конференции
Небезопасная безопасная Java
Новое - хорошо забытое старое: уязвимость Java-приложений
Будьте бдительны: Java-мидлеты
Сервер приложений и JavaBeans: современная альтернатива клиент-серверной технологии
Золотая рыбка GlassFish: сервер приложений от Sun с открытым исходным кодом
Искусственный интеллект на страже: применение самоорганизующихся карт для анализа инцидентов ИБ
Биометрическая идентификация в масштабах компании
Проблемы совместного доступа к данным в Oracle
IT-практикум: Delphi и AutoCAD. Организация связи двух популярных программных комплексов
Корпоративные сетевые хранилища данных
История одной сети
Дженнифер Трелевич: безопасность — одно из неубиваемых достоинств мэйнфреймов
Языки, которые мы потеряли
Серверные системы для SMB – приоритетное направление производителей?
Электронный документооборот для SMB
Рынок информационной безопасности России
Обработка и анализ информационных потоков: системы поддержки принятия решений

В этом разделе
Борьба с утечками информации
Директор подразделения Technical Sales, CA EMEA East: безопасностью нельзя управлять бессистемно
Безопасность и удобство: золотая середина
Константин Гавриленко: как и в медицинской практике, болезнь легче вылечить на начальной стадии
Общая проверка безопасности при проведении внутренних аудитов
Внутренний vs внешний: аудит безопасности
Интервью с экспертом Softline
Сертификация: ИТ-безопасность
Сертификация: администратор БД
Сертификация: программист
Сертификация: системный администратор
Особенности национальной сертификации
Золотая рыбка GlassFish: сервер приложений от Sun с открытым исходным кодом
Сервер приложений и JavaBeans: современная альтернатива клиент-серверной технологии
Будьте бдительны: Java-мидлеты
Новое - хорошо забытое старое: уязвимость Java-приложений
Небезопасная безопасная Java
JavaOne 2007. Репортаж с конференции
Java vs .NET: почему .NET
Java для SMB: Удобство решения определенных задач
Круговорот документов: система автоматизации документооборота Docs Vision
Внедрение ERP на практике: описание примера внедрения системы Microsoft Dynamics AX
Корпоративные ­информационные системы
Борьба с утечкой информации через USB/Ethernet-порты
АнтиDoS: защита от DoS-атаки средствами маршрутизатора


Хакер | GameLand | Мобильные компьютеры | Купи Камеру | Total Football | All Hockey | Onboarg Magazine | Хулиган | Sync
Total DVD | DVDxpert | Maxi Tuning | (game)land company | GamePost | Свой Бизнес


Rambler's Top100