Cчетчик со страницы Getting Started на момент публикации статьи
С минуты на минуту случится то, чего ждали очень многие, и я в том числе. А именно: компания ObjectArts полностью открывает исходники и выпускает язык и среду разработки Dolphin Smalltalk под открытой лицензией MIT!
О проекте
DolphinSmalltalk — это среда разработки на собственном диалекте Smalltalk для Windows. Ключевыми особенностями является тесная интеграция с нативными виджетами и подсистемами операционной системы, включая COM и ActiveX, и приятный глазу графический дизайн.
Долгое время Dolphin Smalltalk был доступен в двух вариантах: условно-бесплатная ограниченная версия (community edition) и платный пакет для профессиональной разработки. Последний давал доступ ко всем функциям, включая продвинутые редакторы и публикацию приложений в standalone режиме, однако стоил около четырехсот долларов, что, по понятной причине, устраивало далеко не всех.
Похоже, что компания таки одумалась (или терять стало нечего) и решила выпустить ПО на волю. Под катом краткое описание среды разработки и размышления на тему open source будущего Dolphin Smalltalk.
Возможности среды разработки
Практически любой диалект Smalltalk предоставляет возможности, которые нынче принято считать «джентельменским набором» любой современной IDE. Dolphin Smalltalk не является исключением.
IDE предоставляет как обычные возможности, вроде code assist, навигации по коду и встроенного отладчика, так и средства, специфичные для Smalltalk: поддержку тестов SUnit, управление публикацией приложения (упаковка, вырезание лишних классов), WYSIWYG редактор интерфейсов и многое другое. Мне нравится возможность поиска по всему содержимому проекта, включая классы, методы и комментарии, доступная в тулбаре любого окна.
Навигация
Разбираясь с незнакомым кодом на традиционных языках мы открываем файлы исходных текстов и читаем их подряд. Smalltalk организован несколько по другому. Вместо простыни исходных текстов мы имеем иерархию классов и списки их методов. Значительное время проводится именно в изучении иерархии классов, которая в Dolphin представлена довольно аккуратным Class Browser-ом.
Отладка
Отладка динамических языков всегда была проще, чем кропотливая работа с креш дампами. В Smalltalk это вынесено на уровень выше. При отладке приложения мы можем не просто наблюдать каждый шаг работы программы, но и взаимодействовать с объектами в диалоговом режиме. Помимо тотальной интроспекции программы Dolphin предоставляет возможность буквально ткнуть в любой элемент окна и мгновенно получить все его свойства и содержимое в окне инспектора.
Часто бывает так, что при написании программы многие методы приходится оформлять заглушками, поскольку времени на все про все не хватает. Если в ходе выполнения традиционной программы управление доходит до заглушки, то нам остается только вывести сообщение в лог или вывалиться по ассерту, если дальнейшее выполнение программы невозможно.
В Smalltalk мы можем «помахать кулаками после драки»: когда виртуальная машина обнаруживает, что требуется вызвать отсутствующий в данном классе метод, то выполнение программы приостанавливается, а машина спрашивает программиста о дальнейших действиях. В этом месте мы имеем возможность доопределить метод прямо по ходу выполнения программы и продолжить выполнение, как ни в чем не бывало. Это может быть очень полезно, когда программа сложная, и приходится долго трудиться, чтобы полностью воспроизвести ситуацию.
Что это даст нам, простым смертным?
Если все будет действительно так, как заявлено, то сообщество получает отличный инструмент для быстрой разработки и прототипирования софта под Windows. Меня, как пользователя Linux, разработка под Windows не очень интересует. Тем не менее, я считаю, что это событие можно использовать и в своих целях.
В первую очередь я обратил бы внимание на внутреннее устройство виртуальной машины, которая к слову считалась весьма быстрой еще во времена Windows XP, хотя, насколько я знаю, JIT они не используют.
Если существует техническая возможность портирования Dolphin Smalltalk на другие ОС, можно ожидать появления дружественных к неподготовленному пользователю сред разработки на Smalltalk. Большое количество кода было написано в рамках интеграции с ОС. Другим средам, таким как Pharo это может быть на руку.
Наконец, удобная среда разработки с большим количеством встроенной документации и великолепным иллюстрированным туториалом может быть полезна начинающим и способствовать развитию самого языка Smalltalk.
В комментариях прошу делиться своими мыслями и предложениями.
UPD: На гитхабе появились репозитории Dolphin и DolphinVM.
А напоследок, маленький опрос:
Автор: Halt