Программирование для корпораций и open source: java way / jungle framework as example




Скачать 42.24 Kb.
НазваниеПрограммирование для корпораций и open source: java way / jungle framework as example
Дата публикации11.04.2013
Размер42.24 Kb.
ТипДокументы
odtdocs.ru > Финансы > Документы

    Программирование для корпораций и open source: java way / jungle framework as example (Руслан Шевченко, GradSoft Ltd)

Открытое ПО уже давно стало неотъемлимым элементом инфраструктуры, хотя вокруг возможности жизнеспособных экономических моделей до сих пор ведутся жаркие споры.

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

Итак, что же предоставяет собой типичное J2EE приложение, которые занимают 90% рынка разработки:

Приложение = (Платформа + Бизнес-логика), (Средства разработки)

Платформа:

  • Реляционную БД (MySQL, Postgres [HSQL for tests])

  • О/R mapping (Hibernate, TopLink (Oracle-> Eclipce))

  • Контейнер приложений

    • Web + IOC (Jetty, Tomcat, Grizzly)/(Spring)

    • J2EE (JBoss, Jonas, Glassfish)

  • ПО отображения

    • JSF, gwt,



Стек платформы: все открыто, стандартизировано.

Выгодно разработчикам:

  • низкий барьер входа на рынок

  • унифицированное обучение.



Бизнес-логика:

  • Объекты предметной области

  • Person, Organization, итд



Стек бизнес логики: как правило закрыт. Собственно основное бизнес преимущество - экосистема

Среда разработки:

  • IDE

    • NetBeans + Eclipse - 80% рынка. IDEA < 7

    • Profilers: NetBeans, простые / YourKit, Jprofiler ($)

    • Analyzers: PMD, FindBugs, JavaChecker / Jtest .

    • Testing: Junit, HttpUnit,

Такая модель существует уже достаточно долго, что бы можно было сделать некоторые выводы

Платформа:

  • коммерческие элементы платформы оказались вытеснены открытым кодом

  • этот же процесс вытеснения происходит для средств разработки

  • финансирование происходит следующим образом

    • бизнес-модель подписки (RedHat, Spring, Sun)

    • финансирование научным сообществом (Jonas, PMD, FindBugs)

    • заметных элементов инфраструктуры без поддерживающей коммерческой либо научной организации нет

  • концентрация разработок вокруг нескольких основных крупных фирм.

Доминирующей моделью использования Open Source в коммерческого программировании является использование стандартных открытых библиотек. В открытый доступ как правило добавляются бибилиотеки общего назначения (элементы платформы) в индустрии считается 'хорошим тоном' публиковать библиотеки общего пользование как Open Source.

Мы, кстати, тоже при разработке все платформенные компоненты публикуем в проекте Jungle: http://redmine.gradsoft.ua/projects/show/jungleplatform

Характеристика рынка компонент платформы (уже говорил на FOSS 2008)

+

  • существует равновесие,

  • комбинация Java/Web доминирует на рынке разработки, если верить TIOBE language index

  • стандартизация выгодна как разработчику, так и клиенту

-

  • рынок 'голливудского' типа (победитель получает все.)

  • отсуствие финансирования инноваций (трагедия общин) .

  • конкуренция идей приводит к тому, что не реализуется ни одна из них

Пример -- развитие языка:

После появления Java 1.6 в сообществе обсуждалась необходимость следующих изменений в системе типов языка Java:

  • Замыкания (Closures было предлоено несколько конкурирующих схем [BGCA, CICE, FCM] 1-я реализация была в 2004.)

  • 'Овеществленные типы' Reified Generic

  • Свойства. (Properties)

И если на счет первых двух были дискуссии, то необходиимость в какой-то форме реализовать поддержку свойств была очевидна.

Однако Sun решил не включать никаких изменений в систему типов, мотивируя это именно ресурсными ограничениями.

Попытка прямого привлечения open source community к разработке Java 7 была сделана в проекте coin, результаты которого тоже очень неоднозначны. Coin (цент) – это небольшие изменения, наподобие разрешения использовать строки в switch операторе или использование синтаксиса кваратных скобок для работы с коллекциями. Одним из таких изменений был multicatch, позволяющий избежать повторений при обработке нескольких различный исключений. Он вощел в короткий список но ... не был спланирован ко включению в Java 7, опять-же из-за ресурсных ограничений.

Шквал критики, обрушившийся на разработчиков Sun после объявления перечня новшеств в JDK заставил последних выступить с достаточно резкими заявлениями, обвиняя сообщество в пассивной критике.

В результате, если мы попытаемся сравнить Java и С# 'side by side' то получим результат вроде

следующего:




Java7

C#

Annotations

+

+

Erasure generic

+

+

Reief generic

-

+

Properties

-

+

Closures

-

+

Multi-line strings

-

+

Tuples

-

+

Values

-

+

Operator overloading

-

+

Extension Methods

-

+

Type inheritance

Limited

+

Можно спорить о необходимости каждого отдельного свойства, но бесспорно что при приблизительно одинаковыз стартовых позициях языков, сейчас разработка на С# эффективнее чем на Java за счет того, что выразительная мощность Java не позволяет создавать интерфейсы типа LINQ.

Но – тем не менее, если смотреть на долю разработок на Java и на С#, то доля разработок на java по статистике растет, несмотря на очевидное техническое отставание. Впрочем это может быть и просто лаг задержки.

^ Java умерла: да здраствует JVM

Значительной часть Java сообщества разделяет мнение, что основное достоинство Java-платформы это не язык сам по себе, а JVM и библиотеки. Соответсвенно для Java можно оставить роль низкоуровневого программирования (этакого С for JVM) а для прикладного программирования избрать более современное средство.

На JVM реализовано более 200 высокоуровневых языков программирования, в том числе основные скриптовые языки, такие как PHP, Python, Ruby, как и языки со статической типищзацией (Axiom C, Fun, Scala).

Использование JVM в качестве среды исполнения позволяет при проектировании языка не заниматься вопросами связанными с организацией сборки памяти или реализацией станадртной библиотеки. Скорость работы интерпритируемых языков на JVM сравнима со скоростью работы их С-шных реализаций (а Jruby работает быстрей, чем оригинальный Ruby)

В качестве языка, который выступит заменой Java для задач общего применения чаще всего называют язык Scala (http://www.scala-lang.org/) поддерживаемый EPFL.

Итого

История Java показывает нам как сильные, так и слабые стороны экосистемы, основанной на открытом ПО: с одной стороны использовать открытое ПО для платформы всем удобно, с другой стороны недофинансирование 'общей части' снижает темпы развития технологий. С третьей – использование этой 'общей части' в науке может компенсировать это снижения темпов.

Добавить документ в свой блог или на сайт

Похожие:

Программа gsoc впервые была запущена в 2005 году, тогда в ней приняли...
В докладе рассказано о инициативах Google Summer of Code и Highly Open Participation Contest для поддержки Open Source проектов....

Отчет о работе учебно-научной лаборатории открытого программного...
Лаборатория открытого программного обеспечения и мобильных платформ (Open Source & Linux Lab) основана в 2007 году на кафедре Математического...

С чего начинается open source проект?
Этот вопрос приобретает особое значение

Teos (tnu education Open Source)
Описание модуля регистрации, авторизаци и восстановления пароля пользователей в системе

Разработка Open Source программного обеспечения для незрячих (Denis Kirin)
Поэтому для обеспечения взаимодействия пользователя с компьютерной программой используют специальные средства, это либо синтезаторы...

Linux com Everything Linux and Open Source An introduction to OpenOffice org Basic
Для чего нужно встраивать язык программирования в ваш текcтовый процессор? Именно для того, чтобы автоматизировать часто выполняемые...

Общество с ограниченной ответственностью «Барнаульская сетевая компания»
«Заявитель», в лице Error: Reference source not foundError: Reference source not foundError: Reference source not found, действующего...

У вас уже есть офисная мини-атс или вы только планируете ее покупку?
Атс или вы только планируете ее покупку? Думаете о предоставлении новых возможностей для повышения эффективности работы сотрудников?...

О. Л. Садов ОАО линукс инк sadov@linux-ink ru
Свободное Аппаратное Обеспечение (сао) — явление, получившее распространение сравнительно недавно и еще не имеющее своего четкого...

Применение Open Source в курсе «Методы и Средства Анализа данных»
В начале учебного года встала задача создать курс, который давал бы студентам знания по методам анализа данных и навыки использования...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница