УНИВЕРСИТЕТ ИТМО | ||||
Главная / О нас / Переписка с К.Лапшиным
(версия для печати)
Переписка с К.ЛапшинымПосле публикации статьи "Транслитерация и как правильно её надо программировать" на сайте 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 лет работы по этой теме предположения, аналогичные Вашему, я уже слышал.
С приветом, Шалыто.
| ||||
|