УНИВЕРСИТЕТ ИТМО
Кафедра «Технологии программирования»



Главная

Новости
 Новости науки
 Важное
 Почетные доктора
 Инновации
 Культура
 Люди
 Разное
 Скартел-Yota
 Стрим
 Смольный
Учебный процесс
 Образование
 Дипломы
 Курсовые проекты
 Лабораторные работы
 Учебные курсы
 Визуализаторы
 Unimod-проекты
 Семинары
 Стипендии
Наука
 События и факты
 Госконтракты
 Статьи
 Диссертации
 Книги
 Презентации
 Свидетельства
 Сотрудничество
Исследования
 Автоматы
 Верификация
 Биоинформатика
 Искусственный интеллект
 Генетические алгоритмы
 Движение
 UniMod
 Роботы и агенты
 Нейронные сети
 ФЦП ИТМО-Аалто
 Разное

О нас
 Премии
 Сертификаты и дипломы
 Соревнования по программированию
 Прорыв
 Автографы
 Рецензии

Беллетристика
 Мотивация
 Мысли
Медиа
 Видео
 Фотографии
 Аудио
 Интервью

English
 Home

 Articles
 Posters
 Automata-Based Programming
 Initiatives
 Projects
 Presentations
 UniMod
 UniMod Projects
 Visualizers


Поиск по сайту

Яndex



   Главная / О нас / Переписка с К.Лапшиным (версия для печати)


Переписка с К.Лапшиным



После публикации статьи "Транслитерация и как правильно её надо программировать" на сайте http://alex.ezhiki.ru, в которой описан подход к решению этой задачи с использованием конечных автоматов, ее автор, Александр Бабаев получил следующее письмо:


Ну что тут можно сказать, подождем, почитаем следующие статьи.

Но, честно говоря, отношусь я ко всему этому крайне скептически.

Кто еще кроме уважаемого г-на Шалыто сотоварищи использует этот термин? Ладно, черт с ним с термином, кто еще этой тематикой занимается? Конкретных фактов хочется, а не абстрактных утверждений, что вот Сименс в 96 году что-то такое начал делать.

Сайт на котором все ссылки по теме только на публикации одного автора, говорит о том что либо вся бурная деятельность развернутая в данной предметной области совершенно не признана никем в мире, ну либо что автор крайне не терпим.

Вообще если есть уверенность что это действительно новое слово, если есть желание нести его в массы, то я бы посоветовал попытаться спозиционировать технологию. Выявить проблему в существующем "классическом" подходе, в общих чертах объяснить, как именно предложенная технология будет эту проблему решать. Кстати, само слово технология уже подразумевает что-то зрелое, конкретные реализации, методики и т.п., а из сайта складывается впечатление что все это глубокое теоретизирование оторванное от жизни.

Главный же поводом для сомнений наверное такой: было бы это и в самом деле новое слово, о нем уже давно кричали на всех углах. За последние лет 5-10 появилось много новых интересных методологий, новых подходов (те же design patterns, refactoring, unit testing, extreme programming, generic programming, functional programming). Они очень быстро завоевали популярность в программистской среде. А тот факт, что г-н Шалыто с 91 года активно работает, но до сих пор не может привести ни одной ссылки кроме как на свои публикации, вызывает определенные подозрения.

Прошу прощения если я был немного резок, просто очень часто видел как это бывает в научной среде. Люди, пытающиеся сделать видимость, что их идеи очень важны в реальном бизнесе, производстве, на поверку оказываются совершенно неизвестными за пределами кафедры. Если я ошибся в своей оценке, то прошу не судить строго, а просто привести еще штук несколько ссылок на других авторов по данной теме. И опять же если я ошибся, то запросто могут ошибиться и другие, а значит стоит в будущих статьях развеять данные сомнения. Кирилл Лапшин. public@lapshin.net


Уважаемый господин Лапшин!

Посмотрите, пожалуйста, на сайте http://is.ifmo.ru раздел "Проекты". Сейчас там 10-12 проектов на автоматах, через месяц будет 20-25. И так далее...

С наилучшими пожеланиями А. А. Шалыто


Уважаемый г-н Шалыто!

Я выбрал наугад один их проектов - лифт. Не знаю насколько он репрезентативен, но хочу поделиться с Вами впечатлениями. Чем дальше тем больше убеждаюсь, что громким именем switch-технология, Вы называете реализацию конечных автоматов (finite state machine), так ли это, или я что-то упускаю?

Ваша реализация со буквенно-цифровыми наименованиями автоматов, состояний, событий (A0, x63 и т.п.) на мой взгляд, совершенно не читабельна. Я понимаю что у вас есть документация, диаграммы переходов, и т.п., но это не повод жертвовать читабельностью кода, как мне кажется. Впрочем, такой код вполне можно генерировать автоматически из диаграммы, и тогда не важно насколько он читабелен, однако в этом случае он должен быть спрятан в реализации класса, а не быть частью его публичного интерфейса.

Буду очень признателен если вы прольете свет на вопрос о связи Вашего подхода с конечными автоматами. Также, если бы Вы могли указать на публикацию, которая бы вкратце могла ответить на вопрос что же такое switch-технология, чем она отличается от стандартных подходов, таких как например формализация задачи конечным автоматом и реализация автомата с помощью паттерна State из "Design Patterns", был бы очень Вам благодарен.

С уважением, Кирилл Лапшин.


Уважаемый Кирилл!

Спасибо за внимание к сайту. Вы посмотрели раздел "Проекты", а теперь посмотрите разделы "Статьи", "Последователи" и "О нас".

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

Я молодой профессор, но очень старый разработчик. Я более 30 лет работаю над созданием сложных управляющих комплексов. И я хочу, чтобы программное обеспечение разрабатывалось и корректировалось так же, как и аппаратура. Это у нас называется провести изменения комплектно по всем документам, которые его захватывают. При таком подходе даже через десятилетия новые люди средней квалификации могут легко вносить изменения в старые проекты. А в ситуации, имеющей в настоящее время в программировании, только мучиться с ними, требуя от новых людей более высокой квалификации, чем она была у разработчиков. Это долгий разговор...

По поводу автоматов. В последней книге Хопкрафта в главе "Автоматы" написано: автоматы распознают цепочки, а полтора года назад один из самых выдающихся моих студентов говорил, что на автоматах делаются стиральные машины. Цель моей деятельности - заполнить автоматами реализацию сложных поведений для всех задач от цепочек символов до стиральных машин и от всех вычислителей от микроконтроллеров до сложных серверов. У меня это получается.

Вы не пробовали, случайно, разработать гипертекстовый формат для скинов, в котором разработчики используют автоматы вместо скриптов? www.crystalplayer.com Скоро будет выложена документация в русскоязычном варианте.

Я организовал движение за открытую ПРОЕКТНУЮ документацию, а JavaDoc и Вы, например, говорите о программной документации. А нужно ведь и то и другое.

И последнее: дело не в автоматах, дело в стиле программирования: выделяются состояния явно, или они неявно реализуются на флагах. Отладку поведения программы вести в терминах автоматов или в терминах переменных? И много чего другого.

Скоро на сайте is.ifmo.ru появится много разных подходов к совместному использованию автоматов и объектов, но не все программируют объектно (не пробовали программировать контроллеры с 2K памяти объектно?).

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

Думаю, что Ваше высказывание:
> Люди, пытающиеся сделать видимость что их идеи очень
> важны в реальном бизнесе, производстве, на поверку оказываются совершенно
> неизвестными за пределами кафедры.
все-таки относится не ко мне, так как в моем положении и в моем возрасте делать какую-нибудь ВИДИМОСТЬ нет необходимости. Вступайте лучше в движение за открытую проектную документацию и применение автоматов в програмировании.

Как Вы понимаете, за 12 лет работы по этой теме предположения, аналогичные Вашему, я уже слышал.

С приветом, Шалыто.


© 2002—2024 По техническим вопросам сайта: alexvatyan@gmail.com