Содержание сайта
Главная Новичку Цитаты Реализации Статьи Документация
Компании Программы Ссылки Обсуждение Обсуждение 2 Гостевая

Dolpin Smalltalk интервью, часть I

Andy Bower, создатель Dolphin Smalltalk любезно согласился ответить на вопросы о своем продукте.

V: Привет
A: Привет, что ты хотел бы узнать о Dolphin?
V: Прежде всего, спасибо за такой превосходный продукт. Я думаю, у него есть много шансов стать популярным среди русскоязычных разработчиков.
A: Это хорошо.
V: Несколько общих вопросов о Dolphin. Весь Object Arts это ты и Блэр (Blair McGlashan)?
A: Да. Изначально Dolphin был разработан командой из пяти разработчиков в моей предыдущей компании Intuitive Systems. Потом мы покинули эту компанию и основали Object Arts, после чего команда сократилась до меня и Блэра.
V: Dolphin это ваш единственный продукт? Вы еще занимаетесь какими-нибудь проектами?
A: Dolphin наш главный проект. Временами мы выполняем допонительную консультационную работу, которая заключает в себе использование Dolphin. Например, существует пакет бизнес-правил, который использует Dolphin в качестве IDE и мы поддерживает эту систему. Мы все время рассматриваем возможности создания других продуктов на основе Dolphin, но еще ничего не было сделано в этом направлении.
V: Как выглядит ваш обычный рабочий день: 1. Задолго до выпуска очередной версии, 2. Перед самым выпуском, 3. Сразу после выпуска?
A: Хм... Ну, мы оба обычно начинаем работу в 9:00 и заканчиваем по-разному в зависимости от внешних (семейных) обязательств. Я полагаю, мы тратим час-два в день на переписку и поддержку, и остальное время уходит на программирование и исправление ошибок. Обычно я заканчиваю около 18:00. Перед выпуском мы имеем склонны работать допоздна, впрочем, как и после релиза (так как в новом релизе проблемы неизбежны). Однако, мне нравится брать выходной довольно быстро после релиза, если получается.
V: Сколько времени ты тратишь на парное программирование с Блэром?
A: В отличие от XP, мы обычно не программируем в паре пока не появится какая-либо проблема, в которой мы можем друг другу помочь. Тем не менее, мы постоянно обмениваемся идеями.
V: Как-то ты сказал, что продажи Dolphin-а удвоились в 2001-ом году относительно 2000-ого. Сохранился ли рост в 2002-ом?
A: Мне кажется, я не говорил такого. На самом деле в 2000-ом и 2001-ом продажи увеличились на 40% относительно предыдущих лет. В 2002-ом уровень продаж вырос на 10% относительно 2001-ого.
V: Есть ли у вас зарегистрированные пользователи из стран СНГ?
A: В данный момент я не вижу таких в базе данных по продажам, но я уверен, что должно быть несколько, так как мы получали письма от людей из домена .ru. Мы имеем несколько продаж в восточно-европейских странах, например, в Словении.
V: Хорошо, теперь давай перейдем непосредственно к Dolphin-у.
A: ОК.
V: Относительно долгосрочных планов... Собираетесь ли вы поддержать другие операционные системы?
A: Нет. Нашей целью было стать "лучшими в семействе" средств разработки под Windows. Если мы начнем создавать портабельные системы, мы слишком распылим свои усилия и прийдем к конкуренции с другими производителями Smalltalk, такими как VisualWorks. Я до этого работал над портабельными средствами разработки и знаю какой объем усилий требуется чтобы сделать что-то, что работает идентично на разных платформах. Для меня лучше быть преуспеть в том что мы делаем в одной нише, чем создать некоторый наибольший общий делитель для многих платформ.
V: Звучит разумно.
A: В конце концов, по крайней мере в данный момент, мы должны суметь извечь прибыль из Windows платформы. Если мы не сможем это сделать, я не думаю, что поддержка Linux или Mac сильно нам поможет.
V: Понятно, следующий вопрос... Как насчет создания динамического компилятора?
A: Сейчас у нас нет планов по созданию JIT-компилятора. Мы знаем, что существует множество других вещей, которые мы можем проделать с интерпретатором Dolphin-а (в основном улучшения в сборщике мусора и обработки блоков), которые могут ускорить выполнение, вероятно, процентов на 40. На самом деле Dolphin 6 будет содержать улучшения для блоков (и может быть также для GC, я не уверен).
A: Есть несколько областей, где более медленный Dolphin может вызвать проблемы. Однако, в целом мы находим, что Look & Feel продукта на самом деле намного быстрее, чем некоторые JIT системы, наподобие VisualWorks. Частично из-за использования native widgets и также частично из-за очень быстрого механизма внешних вызовов.
A: Хотя Dolphin выглядит медленным в микро-бенчмарках, когда дело доходит до реальных приложений, это перестает быть проблемой.
A: Более вероятно, что мы бы захотели использовать чужой JIT-компилятор, чем писать свой собственный с нуля. Здесь я говорю о возможном будущем использовании .NET и Microsoft Common Language Runtime.
V: Я абсолютно с тобой согласен насчет отзывчивости пользовательского интерфейса Dolphin-a. Правда многие программисты судят языки по целочисленным бенчмаркам...
V: Что если какой-нибудь сторонний разработчик напишет компилятор для Dolphin-а, реализуете ли вы необходимы модификации в виртуальной машине для полноценной интеграции?
A: Я предполагаю, что невозможно написать хороший JIT-компилятор без переписывания всей VM. Наиболее вероятной возможностью было бы, если бы кто-нибудь создал альтернативную VM, которая работала бы с существующим набором байт-код инструкций.
V: ОК, насчет блочных замыканий (block closures)...
V: Насколько изменилась виртуальная машина, есть ли улучшения в скорости?
A: Новые "полные" блочные замыкания в Dolphin 6 вызвали достаточно большие изменения в VM. Одно из серьезных преимуществ новых блочных замыканий, является то, что блоки могут быть использованы в большем числе случаев, чем раньше, без необходимости держать огромные цепочки объектов. Прежде мы должны были быть внимательными при использовании блоков в некоторых ситуациях во View Composer в случае, когда они держали большии цепочки живых объектов внутри View. В D6 это уже не проблема.
A: Блэр говорит мне, что производительность посылки сообщения улучшена на 35% в D6. Также, целочисленный тест был на 27% быстрее, но это плохо написанный тест, потому что он записывает значение во внешнюю переменную блока. Среднее замедление относительно VisualWorks 7 упало с 3.94 до 3.16.
V: Отлично...
V: Существуют планы мигрировать к direct-pointer architecture/generational gc?
A: Как я уже сказал, да, возможно мы доработаем сборщик мусора и это может включать использование прямых указателей. Мы еще не имеем жестких планов когда это может быть сделано.
V: Хорошо, давай уже завершим с низкоуровневыми вещами...

Продолжение следует

17.03.2003, Владимир Лешкевич.




Есть комментарии? Пишите.