Интеграция Java и Ruby/Python Igor Artamonov | www.artamonov.ru | igor@artamonov.ruwww.artamonov.ruigor@artamonov.ru.

Презентация:



Advertisements
Похожие презентации
Python как инструмент Data Mining Лекция 4.4 Инструменты Data Mining Зырянов Александр Олегович.
Advertisements

Компьютерные технологии в метеорологии (Java-технологии) Чукин В. В.
Разработка отладчика для программ на языке haXe и целевой платформы Adobe Flash 9 Выполнил студент 544 группыКрасько Н.Л. Научный руководительПлискин М.М.
Selenium: Начало.. Особенности WEB-приложений Множество браузеров, отличающиеся реализацией Отсутсвие строгих правил в HTML Различные конфигурации на.
Java Puzzlers Автор: Фофанова Мария Руководитель: Симончик Сергей.
Программы-браузеры в Интернете Сравнительный анализ Выполнил студент группы ИС-46 Кузяев Д.А. Руководитель работы: Дудина Т.И. ФГОУ ВПО «СарФТИ» САРОВСКИЙ.
Кроссъязыковый рефакторинг « Изменение сигнатуры метода » Медведев Максим Юрьевич, 445 гр. Руководитель : Громов Петр Александрович.
Многоуровневое мандатное управление доступом в многооконной графической среде ОС класса Linux Авторы: к.т.н., доцент Д. В. Ефанов * аспирант кафедры 36.
Интерактивная языконезависимая система поиска шаблонов и дубликатов в программном коде Куделевский Евгений Валерьевич, 545 группа Научный руководитель:
Использование Google Web Toolkit для разработки AJAX-приложений Илья Обшадко
Реализация индексного анализа для деревьев циклов любого вида сложности Выполнил : студент 818 гр. Юдин Павел Научный руководитель : к. т. н. Муханов Л.
DrupalCamp KIEV'09 Drupal Do А.Графов Август, 2009.
Работа с системой управления версиями при Agile разработке Малышкин Фёдор 25 апреля 2008.
EXtreme Programming XP Тема 2. XP Заказчики определяют: объем работ; приоритеты; композиции версий; сроки выпуска версий. Разработчики определяют: оценку.
Алгоритмический трейдинг c Python Денис Колодин ген. директор AlgoMarkets LLC Денис Колодин ген. директор AlgoMarkets LLC.
Разработка информационной системы управления документацией (Wiki-системы) программный проект по курсу «Базы данных» Скворцов А.Н. гр. 4081/4 Рытенков А.С.
Веб-фреймворк для Java платформы. Что такое Grails? Веб-фреймворк для Java платформы на языке Groovy Инспирирован RoR Open source. Активно поддерживается.
Теория языков программирования и методы трансляции Тема 8 Генерация кода.
1. Описание профессии 2. Виды деятельности 3. Места работы 4. Профессиональные навыки 5. Дополнительные особенности.
РАБОТА С ЭЦП (ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСЬЮ) В ПОДСИСТЕМЕ «ДОСТУП»
Транксрипт:

Интеграция Java и Ruby/Python Igor Artamonov | |

Зачем? Ускорение процесса производства ПО Повышение комфорта при написании кода Возможность модификации кода «на лету» Доступ к библиотекам стороннего языка

Jython Jython – реализация Python 2.1 (август 2001 г) Стабильная версия хорошо реализующая Python и его библиотеки. Есть компилятор в Java байткод. Прежнее название: JPython

JRuby Реализация языка Ruby (декабрь 2005) Молодой развивающийся проект Современная реализация Возможен запуск RoR

Поддержка в Java IDE Поддержка подсветки, дополнения и пр. есть в IntelliJ IDEA и Eclipse через дополнительные плагины. Есть проблемы при интеграции разных языков, т.е. дополнения и пр. при связи языков работаю некорректно. Проблемы при отладке, когда часть кода на одном а часть на другом языке. Плохо совместимы с такими вещами как CodeCoverage, Unit-тестами, профайлингом.

Производительность Была произведена проверка языков на двух алгоритмах: - Подсчет вхождений слова в текстовый документ - Вычисление числа из ряда Фибоначи. Данный тест на производительность довольно субъективный, но должен отображать общую тенденцию. По его результатам видно что jruby очень слаб для задач где множество простых арифметических действий.

Текущие проблемы - Jython Очень устаревшая версия базового языка, в результате чего большинство реальных программ не могут быть под ним запущены. Очень слабое развития проекта, лишь мелкие и редкие коммиты в SVN

Текущие проблемы - JRuby Неполная реализация Ruby и его библиотек, некоторые вещи ведут себя по разному в JRuby и Ruby Отсутствие компилятора в Java байткод. Проблема при использовании в Java классов расширенных в Ruby Низкая производительность

Заключение JRuby можно выбрать как язык облегчающий написание дополнительного функционала и инфраструктуры проекта Jython можно выбрать как язык реализующий в том числе часть важной функциональности, благодаря своей производительности и надежности, но нужно смирится с тем что невозможно будет использовать многие привычные техники. В любом случае данные языки нерационально использовать в основе реализации основных алгоритмов Для полноценной работы требуется большая работа по улучшению существующих IDE и дополнительных инструментов