Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет ringill ([info]ringill)
@ 2006-10-24 19:41:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
VisualWorks Smalltalk
Мы с коллегой недавно использовали
Smalltalk для разработки небольшого приложения.
Вкратце, Smalltalk -- это (a) язык программирования и (б) среда разработки с
компилятором и отладчиком, работающая на виртуальной машине. Среда написана на Smalltalk, за исключением небольшого количества
примитивных вызовов.


Есть немало реализаций среды Smalltalk. Наиболее известные из них --
Dolphin,
Cincom
(VisualWorks)
,
MT,
Squeak.
Мы выбрали VisualWorks, по ряду причин:

  • Быстрая виртуальная машина;

  • Полнофункциональная версия бесплатна для некоммерческого использования (при этом коммерческая лицензия довольно «драконовская»);

  • Есть обёртка для Oracle (нет больше ни в одной реализации);

  • Для Windows поддерживаются механизмы внешних вызовов из динамических библиотек (DLL) на C, объектов COM Automation и .NET-сборок (assemblies);


VisualWorks поддерживает

практически все
современные платформы, однако мы вели разработку только под Windows, с использованием COM.



Общие впечатления от процесса разработки такие:

  • [+] Очень простой и выразительный язык. Термин «объектно-ориентированный» к нему подходит в значительно большей степени, чем к «раскрученным» C++, Java, C# и даже Python.

  • [+] Среда, в сравнении с теми же Visual Studio и Eclipse работает очень шустро. Все средства обзора и рефакторинга классов в наличии.

  • [+] Очень удобные отладчик и инспектор объектов. Особенно радует то,
    что адресное пространство у разрабатываемой программы общее со
    средой (при необходимости, саму среду можно модифицировать). С изменением
    кода «на лету» в процессе отладки нет никаких проблем.

  • [-] Все окна среды существуют не внутри «главного» окна,
    а сами по себе. В интерфейсе Windows нет виртуальных рабочих столов, и
    когда количество окон VisualWorks превышает 5, становится неудобно; у окон даже
    иконки одинаковые. Update: В репозитории Cincom есть пакет Windows Icons, который
    снабжает окна разных типов разными иконками.

  • [+] Есть удобное средство для проектировния GUI; сам язык как нельзя лучше подходит для программирования интерфейсов.

  • [-] Элементы интерфейса (widgets) -- собственные, а не «родные» системные. На последние
    планируется переход в будущих версиях.

  • [-] Поддержка COM неполна; например, нет возможности вставить в интерфейс OLE control. Есть библиотека SmallCom немецкой фирмы, но её бесплатная версия имеет
    чисто демонстрационную функциональность, и та у нас не заработала. Помимо отсутствия OLE controls, есть другое неприятное упущение.

  • [-] Поддержка Oracle неполна; авторы недоделали интерфейс для временных больших объектов (temporary LOB-s). Нам пришлось писать его самим.

  • [-] Поддержка .NET вообще «ниже плинтуса» -- ей не удалось воспользоваться, хотя мы пытались.

  • [+] Понравилось то, что вся разрабатываемая программа вместе со средой разработки и её настройками содержится в едином файле образа (image); это очень упрощает передачу проекта со всей инфраструктурой между
    машинами. С исходными текстами у VisualWorks своя кухня, которая, впрочем, не очень нарушает принцип. Для параллельной разработки в VisualWorks есть собственная система контроля версий под названием SToRE; нам она не потребовалась.

  • [-] Виртуальная машина не совсем стабильна; при аварийном закрытии теряется всё, что делалось
    со времени последнего сохранения образа. Сама по себе она «падает» редко, но с использованием
    низкоуровневых библиотек типа COM это становится проблемой, т.к. эти библиотеки работают в адресном пространстве среды.
    Update: исходники всё же можно восстановить через Tools->Change List, импортировав файл «.cha».

  • [+] Готовое приложение можно выпустить в виде монолитного исполняемого файла (single executable).
    Для этого сначала надо с помощью утилиты RuntimePackager сделать образ (runtime image), в котором будет только та часть среды, которая нужна для запуска приложения, а затем с помощью сторонней утилиты Resource Hacker запаковать
    образ и виртуальную машину VisualWorks в исполняемый файл.



(Читать комментарии) - (Добавить комментарий)


[info]eugenius_nsk@lj
2006-10-25 07:18 (ссылка)
> Windows Icons / ToolIcons
Как оказалось, существуют пакеты и под таким и под таким названием - причём с одинаковыми иконками :-) Причём ToolIcons имеет более раннюю дату публикации, но больший номер версии (0.0.0.9). У меня и тот и другой пакеты нормально загрузились на свежий image.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ringill@lj
2006-10-30 11:50 (ссылка)
На свежий у меня тоже загрузились, да.
А в Windows Icons есть иконка для отладчика, которой в ToolIcons нет.

(Ответить) (Уровень выше)


(Читать комментарии) -