Smalltalk по-русски
среда, Январь 31, 2007
Интервью с Джиладом Брахой

На The Weekly Squeak Рон Тейтелбаум (Ron Teitelbaum) опубликовал интервью с Джиладом Брахой (Gilad Bracha).

Предлагаем вашему вниманию это интервью.

Джилад Браха - это легенда Объектно-ориентированного программирования. Он явялется соавтором спецификации на язык Java (Java Language Specification), внёс значительный вклад в разработку Strongtalk, который Sun выпустили под Open Source License.

Сейчас Джилад в Cadence формирует команду, вызывая всеобщее удивление тем, кого именно он нанял за последнее время. Элиот Миренда (Eliot Miranda) как раз покинул Cincom, чтобы присоединиться к Джиладу. Элиот хорошо известен как Мастер Smalltalk-разработки. Мы не можем не удивляться объединению в команду Джилада и Элиота. Я переговорил с Джиладом о Cadence, Smalltalk и об открытых исходниках.

Рон: Джилад, спасибо, что нашел время ответить на несколько вопросов. Я уверен, что у каждого в голове сейчас крутится вопрос "Чем же начали занимаются в Cadence?". Можешь рассказать нам хоть что нибудь о том над чем вы работаете? Разрабатываете ли вы на Java, Smalltalk, Strongtalk или вы создаёте нечто полностью новое?

Джилад: Cadence разрабатывает инструментарий для EDA - Electronic Design Automation. Его используют для разработки микросхем, плат и так далее. Почти все фирмы, разрабатывающие электронику используют тот или иной инструментарий от Cadence. Я не могу рассказать никаких подробностей о проекте, за исключением того, что это очень круто. Этот проект свёл вместе одновременно несколько вопросов, которые интересуют меня. В нём в значительной степени присутствует элемент дизайна языков. Специализированные языки (DSL) широко используются в EDA. В нём есть элемент формальных методов - EDA возможно единственная область, где формальные методы широко используются в коммерческих целях. И, наконец, в нём есть множество проблем связанных с ОО инфраструктурой. Суммируя - у меня бомба.

Сейчас для разработки мы используем Squeak. Однако, мы не привязываеся к конкретной среде. Если Strongtalk станет достаточно стабильным, мы можем задействовать его. Или что-нибудь другое. Мы открыты для выбора.

Рон: Можешь рассказать нам о своём отношении к разработке с открытыми исходникам вообще? Меня интересует твоё мнение о будущем этого движения, о том как бизнес относится к ПО с открытыми исходниками и бизнес-моделях для софтверных компаний, вовлеченных в разработку ПО с открытыми исходниками.

Джилад: "Открытые исходники" - это сложный вопрос и я не могу глубоко раскрыть его прямо сейчас. Я предпочитаю открытые лицензии, позволяющие коммерческое использование, в противовес фанатикам, желающим всё сделать бесплатным. Я считаю, что открытое и коммерческое ПО должны (и будут) продолжать своё существование вместе.

Качество массы открытых разработок - под большим вопросом. Squeak именно такой случай. В нём есть 5 способов сделать что угодно, но ни один из них не закончен и не доведён до совершенства. Документации почти нет. Так что, я разочарован. Тем не менее, я рад, что Squeak существует.

Чтобы разрешить такие проблемы, нужна модель, когда люди получают плату за разработку ПО - не за артефакты, а за услуги. Подписки, когда за регулярную оплату вы будете получать как исправления ошибок так и новые фичи, пока вы платите. Таким же способом можно оплачивать хранение, резервное копирование, доступ к сети и т.п. Думаю, это займёт много времени, но ПО как услуга - это будущее.

Рон: У Smalltalk длинная история, как ты хорошо знаеш. Множество талантливых людей работают с ST, и есть компании, использующие ST. Есть очень интересные проекты написанные на ST, такие как Seaside, Croquet, Sophie, Scratch, OLPC. Можеш рассказать нам, что ты думаеш о будущем ST с вершины своего опыта? Какие изменения нужны (если нужны), чтобы гарантировать его будущее?

Джилад: Я считаю, что ST-сообщество должно приделять больше внимания вопросам безопасности, модульности, развёртывания и интеграции с "внешним миром". Можно даже внести изменения в язык, чтобы обеспечить всё это.

Так же нужно сконцентрироваться на предоставлении действительно ценных решений. Нужна возможность продемонстрировать людям, как решать задачи, встающие перед программистами ежедневно. Есть необходимость отойти от сфокусированности на обучении детей. Я имею ввиду, что наше общество платит учителю? Как вы видите, общество не ценит обучение дошкольников - мы интересуемся этим только на словах. Конечно, это благородная цель, но, в конце концов, если ваш язык умрёт, то вы не сможете обучить никого.

Думаю, работа Ави Браянта (Avi Bryant) это пример того, что нужно делать: нечто, как Seaside и DabbleDB. Нам нужно больше подобных продуктов. Другой пример хорошего продвижения вперёд это Fscipt. Открытие ли "родных" окон, запуск ли скриптов, которые обращаются с ОС, или управление веб-приложениями - должно быть максимально лёгким. Посмотрите на огромную поддержку, которую имеет Ruby. Нужен нормальный исходный текст, формат "file-out" это позор.

Рон: Открытие Strongtalk вдохновила многих в ST-сообществе. Твоя работа будет как-то связана с Strongtalk или поддержкой открытой разработки?

Джилад: Словами делу не поможешь. Я действительно надеюсь, что Strongtalk взлетит, но это займёт некоторое время. Когда Strongtalk стабилизируется, мы вподне можем использовать его. Открытое сообщество только формируется вокруг Strongtalk. Девид Грисволд (David Griswold) координирует усилия. Я рад ответить на любые вопросы о системе проверке типов, системе "зеркал". Но сейчас жизненно необходимо стабилизировать ВМ. Кстати, тяжело найти людей с нужными знаниями и готовыми работать бесплатно. Но есть люди, которые хотят изучить развинутые ВМ и готовы выделить на это время и усилия. Из-за кривой обучения, это займёт больше времени, чем мы хотели бы. Хотя, эта технология слишком хороша, чтобы быть заброшенной.

Рон: Ты всё еще формируешь команду в Cadence? Сколько человек ты планируешь нанять? Чем вы будете заниматься - сфокусируетесь на ВМ и языковых проблемах или будете заниматься разработкой ПО для Cadence? Как команда развивается? Элиот счастлив?

Джилад: Да, мы всё еще ищем людей - как смолтокеров так и прочих. На даном этапе проекта, мы в основ ищем прикладных программистов. Знакомство с EDA, моделированием и формальными методами является плюсом - но нас больше интересуют навыки ОО-дизайна, талант, но прежде всего - хороший вкус. Я могу открыть вакансию на другие типы языков, если появится нужный человек. У нас отличная команда и я хочу чтобы так и было дальше, поэтому мы очень избирательны. Элиот и Василий восхитительны, и я думаю, у них есть причины быть счастливыми. Вот я - счастлив.

Ярлыки:

четверг, Февраль 10, 2005
Big talk with the creator of Smalltalk

В номере "ACM Queue" за декабрь/январь вышло интервью с Аланом Кеем.

Цитата:

В конце 60-х гг. Джин Сэммет (Jean Sammet) описывал около 3 тысяч языков программирования, живых на то время.
Цитата:
Внедрение языков программирования происходило зачастую случайным образом, и не однократно основной акцент делался на лёгкость реализации языка, а не на его возможности. Например, Бейсик никогда бы не был выявлен, потому что были языки подходящие лучше Бейсика для той цели. Таким языком был Joss - великолепный язык созданный раньше Бейсика. Но так вышло, что Бейсик работал на системе разделения времени GE, которая была создана в Дартмуте. И когда начали выдаваться лицензии на эту систему, то начал распространятся и Бейсик. Только потому, что он работал на этой системе, а не из-за каких-либо особых качеств.
Цитата:
Грубо говоря, большинство проблем в ИТ, которые мы имели за последние 25 лет, от того, что дизайнеры пытались вносить краткосрочные исправления, не думая о том, будут ли внесённые идеи масштабироваться, в случае их принятия.
Цитата:

Как только появляется нечто, развивающееся быстрее чем растёт подготовка людей, вы тут же сталкиваетесь с поп-культурой. Хорошо известно, что я пытался подавить Smalltalk в конце 70-х гг. Это были годы, когда Smalltalk был наиболее прекрасной системой в мире. Он позволял сделать что угодно более компактным и удобным способом, чем всё, что существовало до того. Но время шло. Как только мы узнавли больше и стали более претенциозными в отношении того, что мы хотели получить, оказалось что в Smalltalk есть возможности, которые не масштабируются в нужной степени. Например, возможности рефлексии. Smalltalk был одним из первых языков способных "увидеть" самого себя, однако сейчас известно, как реализовать рефлексию на всех уровнях намного лучше - значит мы должны реализовать так.

Через несколько лет мы узнали, что всё можно реализовать намного лучше. Объектная модель могла быть лучше, и т.д. И так, проблема в том - я считаю это относится и к Lisp и к Smalltalk, - что они стремятся пожирать своих детей. Я имею ввиду то, что Lisp и Smalltalk являются такими ошеломляющими средствами благодаря наличию у них мета-систем. Они способны решать задачи огромным количеством способов, чего не предоставляют языки с ранним связыванием. В результате, людям, которые любят Lisp или Smalltalk, трудно вообразить как может быть иначе.

Теперь вспомните пару фактов о Jave: в ней нет полноценной мета-системы. В Java есть проблема работы в двух, а не в одном режиме. Так, у неё есть не объекты, и объекты. В Java проблемы с динамикой. Зато у неё есть сборщик мусора. А что с того? Сборка мусора существовала задолго до того. Но это не слишком важное добавление само по себе.

В течениеи многих лет, SDK для Java реализуются на C++. Этим всё сказано.

Мы изучали Java очень детально в 1995 г., когда мы приступили к работе над реализацией, потому, что жизнено важно реализовать ядро языка. Менее всего в Java нам понравился реализации. Основано всё на старой идее, которая никогда не работала, что нужно иметь набор бумажных спецификаций, реализацию ВМ (виртуальной машины) по тем спецификациям, и, наконец, имть набор тестов, которые могут подтвердить соответсвие того, что мы только что реализовали. Так вот, такая схема никогда не приводила к полностью совместимым системам.

Технология, которую мы использовали для Smalltalk, заключалась в написании ВМ на самом Smalltalk. Таким образом, у нас всегда был симулятор ВМ на Smalltalk, который и являлся спецификацией ВМ. Вы можете отлаживать ВМ, и вы можете узнать, что будет делать ВМ в том или ином случае, просто "скормив" ей код, и все изменения в ВМ вы вносите изменяя симулятор. После того, как всё отлажено, вы нажимаете кнопку, и, без всякого вмешательства человека, будет сгенерирована математически корректая С-версия, которая будет работать на любой платформе, на которой вы её проверяли.

В результате, сегодня эта система, называемая Squeak, идеинтично работает на более чем двух десятках платформ. Java этого не умеет. А ведь что такое Интернет? Это необходимость идеинтичного выполнения на всём, что подключено к Интернету. Итак, Java, для меня, всегда нарушала одно из основных требований к разработке ПО в мире Интернета.

Как только мы поняли, что Java, скорее всего, не будет совместима между платформами, мы сказали, что мы создадим свою систему, которая будет абсолютно совместима между платформами, и мы сделали это.

Кто угодно может так сделать. Если бы профессионалы в Sun имели возможность исправить Java, то мир стал бы более приятным местом. Это не секретное знание. Это секретное знание для поп-культуры.

Цитата:
Это было для меня большим открытием, я был тогда в аспирантуре, когда я понял, что пол листа кода, в верхней половине страницы 13 в руководстве по Lisp 1.5 был Lisp на самом себе.
Цитата:
Smalltalk, в некотором смысле умер, как только настоящие программисты поняли, что он может быть полезен. Программисты изменили его по своему образу, и он начал терять свои возможности направленные на конечного пользователя.
Цитата:

Одна из мыслей, к которой приходят люди изучая расширяемые языки, это то, что невероятно тяжело сделать мета-систему лёгкой в использовании. Smalltalk-72 использовали дети. Вы всегда расширяете язык, даже не осознавая этого, просто создавая классы. В результате, вам не нужно пользоваться такими эзотерическими инструментами как компилятор компиляторов - Yacc или нечто похожее - только для того, что-бы что-то добавить в язык.

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

Ярлыки:

Популярные статьи
:: Smalltalk?!
:: Почему Smalltalk?
:: Great Leap Forward from Java to Smalltalk

Последние сообщения
:: [Squeak] Squeak "multi-vm"
:: [Squeak] Sophie переходит на Java
:: [Dolphin] Дельфин - жил, Дельфин - жив, Дельфин - ...
:: Pier 1.0.17 - CMS на Seaside. Людьми и для людей
:: Smalltalk и Все-Все-Все: Белка-Рыба наносит ответн...
:: Smalltalk и Все-Все-Все
:: [Squeak] Новый сайт Squeakland
:: [Squeak] Squeak для iPhone
:: [Squeak] SqueakDBX
:: [Squeak] Monticello 2

Архив
Предыдущие новости / Декабрь 2004 / Январь 2005 / Февраль 2005 / Март 2005 / Апрель 2005 / Май 2005 / Июнь 2005 / Июль 2005 / Август 2005 / Сентябрь 2005 / Октябрь 2005 / Ноябрь 2005 / Декабрь 2005 / Январь 2006 / Февраль 2006 / Март 2006 / Апрель 2006 / Май 2006 / Июнь 2006 / Июль 2006 / Сентябрь 2006 / Октябрь 2006 / Ноябрь 2006 / Декабрь 2006 / Январь 2007 / Февраль 2007 / Март 2007 / Апрель 2007 / Май 2007 / Июнь 2007 / Август 2007 / Сентябрь 2007 / Ноябрь 2007 / Январь 2008 / Март 2008 / Май 2008 / Июнь 2008 / Июль 2008 / Август 2008 / Сентябрь 2008 / Октябрь 2008

Atom Feed
Smalltalk по-русски


Powered by Blogger