Вдохновленнный читаемой нынче книгой My Job Went to India: 52 Ways to Save Your Job решил покорять новые горизонты. Наткнулся несколько дней назад на вводную статью о wxRuby и сегодня решил попробовать. Оказывается это не так страшно.
Что понравилось:
- Под Windows ставится просто. После инсталляции не требует никаких настроек. Кодишь, запускаешь – работает.
- Документация, как всегда у wxWidgets, позволяет решить все вопросы.
- Синтаксис… на вид – вменяемо (учитывая что для меня это новый язык программирования, минимальное приложение получилось создать минут за 15).
- Есть бесплатные средства разработки.
Что не понравилось:
- Бесплатные средства разработки немного…. унылые. Скорее напоминают просто текстовый редактор с подсветкой синтаксиса и возможностью запуска скриптов.
- Без интеллисенса тяжело 🙂
- Хочу документацию в CHM, а есть только в HTML что не очень удобно
И вот… минимальное приложение. Как оно получилось:
# -*- encoding: utf-8 -*- require 'wx' class HelloFrame < Wx::Frame def initialize super(nil, :title => 'Hello World!') panel = Wx::Panel.new(self) sizer = Wx::BoxSizer.new(Wx::VERTICAL) panel.set_sizer(sizer) button = Wx::Button.new(panel, :label => 'Press me') text = Wx::TextCtrl.new(panel, :value => 'Sample', :style => Wx::TE_MULTILINE) sizer.add(button, 0, Wx::EXPAND | Wx::ALL, 5) sizer.add(text, 1, Wx::EXPAND | Wx::LEFT | Wx::RIGHT | Wx::BOTTOM, 5) evt_button(button.get_id, :on_button_click) end def on_button_click Wx::MessageDialog.new(self, "Hello world!", "Test", Wx::OK).show_modal end end class HelloApp < Wx::App def on_init frame = HelloFrame.new frame.centre frame.show end end app = HelloApp.new app.main_loop()
Немного странно называются классы, без префикса “wx”, зато с неймспейсом. Немного странным кажется способ привязки обработчиков событий. Очень понравилась возможность указывать значения только необходимых параметров. По сравнению с wxJavaScript мне wxRuby кажется более приятным т.к. все работает без дополнительной настройки. Сравнения по скорости работы пока не проводил. Есть поддержка wxAUI, wxGCDC/GdiPlus, Document/View, GLCanvas, что очень приятно.
Вместе с wxRuby поставляется довольно большое количество примеров, которые могут помочь разобраться как в синтаксисе так и в особенностях использования API.
4 Comments
Begemot
Почему руби, почему не питон? так просто что попалось, или все-таки есть причины?
Евгений aka SmileGobo
А не подскажите где про wxJavaScript почитать?
T-Rex
http://www.wxjavascript.net/
Больше так особо ресурсов не видел по нему специализированных. Вобще довольно интересная штука.
T-Rex
Просто решил попробовать что-то новое. А тут как раз на днях прочитал о wxRuby, вот, так сказать, решил сделать тест-драйв. 🙂