войти зарегистрироваться

Блог компании .тостерСрочно в номер!

Непредвиденные ситуации случаются у всех — от них не застрахован абсолютно никто. Форс-мажор случился и у нас: в ходе подготовки конференции тостер {ruby} выяснилось, что по непредвиденным обстоятельствам два участника конференции, а именно: Скотт Чакон (GitHub) и Блейк Мизерани (Heroku), не смогут вылететь из Сан-Франциско и принять участие в нашем эвенте.

Но так как мы не лыком шиты и очень вас любим, мы так же понимаем, что заплатив за билет вы ожидаете от нас отличного мероприятия. И мы его подготовим — в сверхсжатые сроки (фактически, за один день), с помощью отличных ребят из Evil Martians, нашли замену Скотту и Блейку. Под катом мы расскажем о том, кто согласился порадовать нашу публику своей темой 10-го февраля в Москве.

RubyСравнение производительности JRuby 1.7 на OpenJDK b147 и YARV 1.9.3p0

После вот этого поста, сообщающего о сногсшибательном увеличении производительности JRuby в версии 1.7 при работе на OpenJDK 7u2 в 3 раза относительно предыдущих релизов.

Припоминая относительную тормознутость и прожорливость JRuby в 2009м, и вот такую статистику от Programming languages shootout, я решил дать JRuby очередной шанс.

Сравнение не претендует ни на точность измерений, ни на всеобъемлемость тестов, а лишь призвано выяснить, догнал ли JRuby YARV по производительности, или нет. На старт, внимание,

RubyУскорение JRuby в три раза после установки JDK 7u2

Команда разработчиков JRuby настоятельно рекомендует всем установить последнюю версию OpenJDK 7u2 (OpenJDK 7 update 2), которая значительно доработана по сравнению с июльским релизом JDK 7 GA (General Availability). Среди прочего, сделана важная оптимизация в подсистеме invokedynamic. Поскольку JRuby 1.7 активно использует эту подсистему, то разработчики специально придерживали выпуск 1.7, дожидаясь этого апдейта. Собственно, официальный релиз 1.7 не произошёл до сих пор, но предварительную сборку для тестирования можно скачать здесь.

При использовании JRuby 1.6.x после апгрейда с Java 6 на Java 7 вы увидите прирост скорости JRuby-приложений примерно на 10-30%, а в случае с JRuby 1.7 — примерно в три раза!

Разработчики просят тех, кто не заметил никакой разницы в производительности, зарегистрировать сообщение в баг-трекере. Очевидно, это какой-то баг, который постараются исправить к официальному релизу JRuby 1.7.

Это ещё не всё. Для будущего OpenJDK 7u4 запланирован новый оптимизатор invokedynamic, и ребята из OpenJDK говорят о возможности ещё большего увеличения производительности.

Ruby on RailsКакой Ruby вы предпочитаете использовать для Rails 2.3 проектов?

Проголосовало 144 человека. Воздержалось 166 человек.

Персональные блоги 8 июня — встреча Java-разработчиков с участием Ренделла Томаса

8 июня в Минск приедет Randall Thomas – опытный разработчик, архитектор и директор по развитию компании EngineYard. Это, пожалуй, крупнейшая компания в мире, которая разрабатывает cloud-платформы для Ruby on Rails-приложений. Вы спросите, каким боком они имеют отношение к Java?.. Отвечаю: Рэнделл расскажет нам об open source-проекте JRuby — Java-имплементации языка Ruby. Первоначально JRuby разрабатывался в SUN Microsystems, после чего его разработчики перешли в EngineYard.

Фактически, JRuby прозволяет связать вместе два языка программирования: Java и Ruby. Рэнделл подробнее представит эту интересную технологию, а также выскажет свои мысли по поводу будущего Java. Warning! Не исключены горячие дискуссии!

Также на встрече выступит Сергей Бушик, который в своем докладе «Opening a fabulous world of Cassandra» расскажет о NoSQL-ных базах. Речь пойдет о концепции NoSQL и Cassandra, парадигме key-value, column-oriented системах, чтении и записи данных в Cassandra – connectivity, настройке производительности и конфигурации, интеграции Cassandra с Hadoop. Сергей – опытный специалист в области разработки web-ориентированных приложений и web-сервисов, архитектуре многоуровневых систем и дизайна, в частности он разрабатывал дизайн ряда проектов для Cassandra.

Вход на мероприятие бесплатный.
Необходима предварительная регистрация тут.
Начало мероприятия – 18.00
Регистрация участников на месте – с 17.30
Адрес: г.Минск, ул. Котовского 14, корпус 9, аудитория 9-12 (Минский Институт Управления).

Персональные блоги Jython vs Groovy vs JRuby vs …

Господа, внезапно — сабж!? Вопрос вызван тем, что какое-то довольно продолжительное время я был вдалеке от Java-технологий, писал на C++ и Python (и продолжаю писать), но один из курсов университета (конкретнее — component based software development) будет требовать либо одного из JVM-based языков (Java отпадает за неинтересностью) либо .NET языков (отпадает по определению так как Windows у меня нет и не будет). Немного изучив вопрос, пришел к выводу что:
  1. Преимущества в пользу Jython — по большому счету, это Python, который я хорошо знаю и люблю, с возможностью использовать Java классы. Но, если верить слухам, сейчас он почти не развивается. Хотя опять же, кому верить-то?
  2. Преимущества Groovy — новый язык, активно развивающийся, комбинирующий в себе достоинства многих языков и парадигм (тот же Python и Ruby в них входят). Недостатки — новый язык, активно развивающийся ;-) Сравнительно мало документации и кода по сравнению с Python
  3. Преимущества JRuby… я что-то весь в затруднениях, но все о нем говорят. Полная совместимость с Ruby, да. Но Руби я все равно не знаю, так что учить с нуля, так же как и Groovy.
А какие еще мнения есть? Я пока еще не совсем понял, что именно мне нужно для этого курса (хотя ясно, что это что-то должно поддерживать хорошую умную компонентную модель для работы в распределенных средах), но язык, в конце концов, вторичен — хочется чего-то интересного, нового и необычного (не сказать “странного”). Кто что думает? Вопрос довольно практический, потому что 18 января надо начинать писать курсовой проект на этом языке, который я выберу — а его надо еще и изучить хотя бы минимально до этого момента ;-)

Пока начал играться с Groovy и он мне, в принципе, нравится — но возможно, я упускаю что-то существенное, ограничивая себя этим языком?

Всем хабралюдям заранее спасибо за мнения!

Персональные блоги JavaOne 2009, конференция

С 1 по 5 июня в Сан Франциско проходила конференция JavaOne.

Удивительно, что на Хабре об этом ни слова! Возможно это потому, что за Джавой с точки зрения веб-разработчиков закрепились сервлеты и JSP (а может просто потому, что на хабре Java не очень популярна).

А ведь там было на что посмотреть, было что послушать, было с кем поговорить и было что потыкать! Ну и разумеется, памятные сумки, майки и кепки =)

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

Если вам это было бы интересно, вы все еще можете зацепить небольшой кусочек:
java.sun.com/javaone
и посмотреть видеозаписи с основных заседаний (http://java.sun.com/javaone/2009/general_sessions.jsp)

На конференции много говорили о
Cloud platforms (облаках и всем что с ними связано)
Free & open (опенсорсе)
Mobile development (мобильниках)
Operating systems and platforms (операционках)
RIA and scripting ( небедных интернет приложениях и скриптинге)
и о будущем джавы и ее последователях

О модности cloud платформ можно узнать именно на таких конференциях. «Облака», символизирующие что-то большое белое и пушистое, но не гигантскую крысу-альбиноса, на слуху почти везде. Концепция замены датацентров на гибкие cloud-решения обсуждаются как минимум в двух аудиториях. В этом секторе в основном доминируют
  • Amazon EC2 (их представителей не видел, хотя были другие ребята с Амазона)
  • Google Apps
  • Microsoft Azure
  • Sun Cloud Platform

Мне удалось побывать на одной лабе по Sun Cloud Storage, где можно было самолично написать небольшую прогу, которая оперирует с файлами на Sun Cloud Storage (к слову, с точки зрения API, совместимому с Amazon S3).

Что касается «облачных» преимуществ для разработки веб-сервисов и приложений, основной упор ставится на
  • гибкость (хочешь плюшку — возьми с полки),
  • масштабируемость(плюшки уменьшаются и увеличиваются в размерах по требованию)
  • и экономность (платите только за откушенную часть плюшки)


Как выяснилось, Джава идет на встречу и другим языкам программирования. Проект Da Vinci Machine позволил портировать другия языки программирования на платформу Java. Примечательно, что jRuby уступает по производительности лишь последней версии Ruby 1.9.

Кстати, если, как и я, считаете, что на Java нужно писать слишком много кода для выполения простых задач, попробуйте Groovy!

Ну а теперь самое интересное!

Если вы думаете, что под RIA платформами всегда будут подразумеваться Flash, Flex и Silverlight, а Java будет представлена лишь старыми «добрыми» апплетами, обломитесь! На этой конференции анонсировали релиз JavaFX 1.2.

Наверное, такая вещь заслуживает отдельной статьи хотя бы потому что JavaFX долго почивала в разработческих недрах. В рамках конференции ей тоже уделялось немало внимания.

Что такое JavaFX в двух словах без лишних терминов? Это платформа (язык + то, на чем она работает) с возможностью создания красивых графических приложений =) И поскольку он работает на той же JVM, можно использовать все доступные библиотеки Java. В итоге получается универсальная платформа для дестопов, веба, соток, блю-рей проигрывателей, двд-выигрывателей и всего, где есть JVM (надеюсь, в недалеком будущем)

По синтаксису JavaFX напоминает Java, Actionscript… и почему-то JSON (уж больно похож на него декларативный формат описания объектов)

На JavaFX можно создавать не только красочные цветастые интерактивные апплеты, но и совершенно безобразные и уродливые вещи, кои получились у меня в ходе лабы :D Ну, просто неудобно делать графические вещи без визуального редактора… зато межплатформенно…

Павильон
Ну и на последок, в огромном зале были размещены точки с представительствами самых разных именитых и не очень контор, названия которых я не помню, и возможно даже и не выговорю. Там тоже проводились небольшие семинарчики, демонстрации, розыгрыши и раздача халявы. У стенда JavaFX можно было поиграть в забавные игры на самых различных устройствах (перчатках-манипуляторах, сотках, блю-рейном проигрывателе).

Адоб демонстрировали PixelBender и взаимодествия Flex и BlazeDS с остальными. В другом отделе можно было попробовать установить openSolaris и получить фирменную майку и значок (пионерский подход). А в перерывах можно было поиграться в Quake и постучать на Rockband =D

У стойки Amazon можно было решить небольшую задачку и получить фигурку нинзя-кодера.

//Что делает эта функция?
int ninja_loop (int num ) {
if (num & num-1 == 0) return 0;

for (int arc = 1; (num &= num-1); arc++) {
// ninjas loop differently
}

return arc;
}

// Достоверность не гарантирую, так что можете сильно не париться =))


Среди всех прочих был и стенд некой фирмы, которая занималась защитой ПО и прочего от копирования (DRM и прочие). Возле стенда дежурил пожилой мужичок, который явно скучал от одиночества.

Некоторые пророчат, что эта конференция была последней в связи с недавним приобретением компании Sun конторой Oracle, с чем многие выступавшие там не согласны. Но как бы то ни было, я надеюсь, что в следующем году будет JavaOne 2010 и у меня будет повод написать еще один пост.

P.S.: Удивительно, но больше половины людей на лабах сидели с маками о_О
Еще там были общедоступные терминалы, которые работали по карточкам. Из Sun Virtual Box'a на выбор можно было загружать openSolaris, Ubuntu 9.04 или Windows-7.

RubyRuby is not Rails

Последнее время о Ruby начали думать только как о Ruby on Rails. Но в мире Ruby ещё много красивых и иногда уникальных вещей. Поэтому, в целях борьбы с предрассудками, хочу вкратце рассказать о отличных и необычных Ruby-проектах.

РазработкаJava.next: Общие принципы языков нового поколения

Java.next: Общие принципы языков нового поколения


Это первая часть серии статей насчёт Java.next. В первой части я собираюсь рассмотреть общие принципы, которые разделяют языки Java.next.

Я выбрал четыре языка, которые вместе и назвал «Java.next»: Clojure, Groovy, JRuby, and Scala. На первый взгляд, эти языки совершенно разные. Clojure — это Lisp. Groovy — это «почти Java». JRuby обладает красотой Ruby, и использует мощь Rails. Scala, в отличие от других языков, настаивает на том, что нам нужна статическая типизация.
НЛО прилетело и опубликовало эту надпись здесь.