DRAKON.SU

Текущее время: Вторник, 24 Апрель, 2018 17:06

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
СообщениеДобавлено: Воскресенье, 11 Октябрь, 2009 20:11 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Ну, время покажет, кто прав. Лично моё "теоретическое" физмат-образование вкупе с 9-летней непрерывной практикой программирования (практически все типы ПО) и 6-летней педагогической говорит мне, что "крутые практики", "рефакторинги" и проч. - просто шарлатанство и мыльный пузырь.

Смешно считать теоретиком, например, Дейкстру или Хоара, или Хансена. Людей, которые спроектировали и реализовали столько систем (класса ОС, например). И хорошая образованность просто позволяла им видеть за деревьями лес и выделять принципиальные вещи и математизированные методы работы.

Уважаемый Геннадий Николаевич, Вы не знаете и не хотите знать, какой фон понимания стоит за теми утверждениями, которые кажутся Вам "предметами богословского диспута". Та же математика, столь Вами нелюбимая, позволяет чётко видеть существенные вещи, которые у практика просто "замылены", "размазаны", не выделены и не осмыслены.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 11 Октябрь, 2009 21:47 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Илья Ермаков писал(а):
Та же математика, столь Вами нелюбимая,
Откуда у Вас это утверждение?
Илья Ермаков писал(а):
Смешно считать теоретиком, например, Дейкстру или Хоара, или Хансена.
Да, каждый из них внес свой теоретический вклад, но мы не знаем примеров широкого применения ПО ими сделанного.
Именно безвестные программисты, восприняв все многообразие идей, выполнили отбор и синтез практики программирования. Именно программисты практики создали и развивают промышленное программирование в постоянно изменяющейся обстановке. Именно они создали все широко используемое ПО. Именно с практиками, у молодых программистов происходит становление их как программистов.

К практикам и студентам у Вас можно наблюдать отношение: "ниже плинтуса", "просто шарлатанство и мыльный пузырь.", "сводит скулы", "Надо кого-то линейкой по рукам".

Относительно Вашей практики. В практике программирования: нет ответственности за результат и использование, сделано и с глаз долой. В практике преподавания: всегда можно сказать - неспособный студент.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 11 Октябрь, 2009 22:12 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Цитата:
Да, каждый из них внес свой теоретический вклад, но мы не знаем примеров широкого применения ПО ими сделанного.
Именно безвестные программисты, восприняв все многообразие идей, выполнили отбор и синтез практики программирования.


Какой "практики"? За ту, которая распространена, нам должно быть стыдно перед нормальными инженерами из нормальных отраслей. Безответственность, халтура, отсутствие дисциплины и контроля качества, необразованность - вот что у нас в ИТ творится.

Следует ясно понимать, что эта ситуация временная. Вызвана резким бумом 90-х - широким распространением ПК, и т.п. Потребность в программистах возникла большая, образование выпускать столько подготовленных инженеров просто не могло. Если мы посмотрим на технологии, то увидим повсеместный откат назад. Потому что приходящие новички были в принципе не знакомы с тем, что было наработано на "больших машинах" и для больших задач; и сами шли по тем же граблям (пройденным в отрасли ещё в 60-х) - через Бейсики всякие, и т.п. Возьмите практически любой раздел - технологии создания хороших языков (а концепция хорошего языка уже сложилась в 80-м; если бы тогда были предложены С++, Perl и проч., то специалисты просто бы покрутили пальцем у виска), технологии ОС (люди, работавшие на наших машинах типа БЭСМ-6 и Эльбрус просто плечами пожимали на Юникс - ну что за детская поделка)...

Такая оценка ситуации - не моя личная. На разных конференциях, общаясь с разными старыми специалистами, я слышал от них именно такое мнение.

Романтизация необученного программиста ПК - это как романтизация ковбоев на Диком Западе. Ну, были такие крутые парни, скакали по прериям - ну и что... Ну, крутые, молодцы, всё своим умом... Ситуация такая была, все в программисты дунули.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 11 Октябрь, 2009 22:15 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Геннадий Тышов писал(а):
Относительно Вашей практики. В практике программирования: нет ответственности за результат и использование, сделано и с глаз долой. В практике преподавания: всегда можно сказать - неспособный студент.


Что Вы знаете о моей практике?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Октябрь, 2009 18:44 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Цитата:
Взять глыбу мрамора и отсечь от нее все лишнее. Огюст Роден

К вопросу о стиле программирования - "Скульптор".
Вложение:
StilSkulptor_1.png
Вложение:
StilSkulptor_2.png


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Октябрь, 2009 18:58 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Уважаемый Геннадий Николаевич.

Было бы интересно увидеть не пример-"слепыш", а конкретный алгоритм такого вида.

Ручаюсь, что одно из двух:
1) Если это будет вычислительных алгоритм, то можно будет предложить (= аккуратно формально вывести) красивый и понятный вариант без break и continue (последовательность условий в начале цикла с отдельными выходами вниз я не считаю за break).
2) Если это будет цикл типа обработки каких-то событий (в графическом интерфейсе и т.п.), то его надо будет почикать на ветки и переключения по адресу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Октябрь, 2009 19:00 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Прошу прощения. Невнимателен.

Та схема, которую Вы предложили, вообще не имеет отношения ни к break, ни к continue.
У Вас же действие одно - и оно глубоко внутри. Вы из него не выпрыгиваете.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Октябрь, 2009 19:04 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
У Вас получается самый обычный

Код:
WHILE условие & условие & .... условие DO
   IF условие THEN
      действие
  END
END;
(* И действия по окончанию цикла: *)
IF .. THEN
 
ELSIF ... THEN


END;


Как видите, никаких break. Но текстом выглядит громоздко, т.к. после цикла приходится повторять некоторые проверки условий.
Для таких случаев Дракон очень выразителен (и я это демонстрировал на примере линейного поиска), т.к. позволяет явно указать исходы, в силу которых завершился цикл (на ложности какого условия).

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 15 Октябрь, 2009 08:40 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
Илья Ермаков писал(а):
Такая оценка ситуации - не моя личная. На разных конференциях, общаясь с разными старыми специалистами, я слышал от них именно такое мнение

Вот именно. Я к ней, например, присоединяюсь полностью.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 15 Октябрь, 2009 19:57 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Это у Вас корпоративный, вузовский подход.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 23 Январь, 2010 18:46 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Тема имеет продолжение от 22.01.2010 в закрытом для посетителей разделе "Список форумов » Разное » Отвлеченные темы » Опять двадцать пять" в теме "Стиль "Скульптор" и "Снова о методах".
Смотрите http://forum.oberoncore.ru/viewtopic.php?p=40791#p40791.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Февраль, 2010 00:31 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Поскольку уважаемый Пётр Алмазов опять поднял эту тему (viewtopic.php?f=62&t=2353&start=0), глянул ещё раз на его текстовые варианты (которые глубоко не копал прошлый раз по причине совершенной непрозрачности).

Нашёл циклы, "границы которых скрыл ДРАКОН".
Оказывается, в этих "прояснённых" циклах Петру пришлось употребить булевы переменные, которые стоят в условии и которым внутри в нужных местах присваивается значение.

Между тем, хорошо известно, что "обычные" задачи (вычислительные алгоритмы) можно построить "по Дейкстре" и без явных выходов, и без введения доп. булевых переменных (что есть такой же хак, как и явные выходы). Здесь же не получилось даже у уважаемого Петра Алмазова. Которого предупреждали об "особенностях управляющих алгоритмов - автоматной логике", но он её в итоге "не заметил". Хотя ему не хватило структурного управления - и пришлось вводить эту неструктурность явным образом, через доп. переменную управления.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Февраль, 2010 08:00 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 66
Откуда: Москва
Да на Драконе рисуйте, не заморачивайтесь.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 07 Апрель, 2016 15:27 

Зарегистрирован: Вторник, 22 Сентябрь, 2015 20:43
Сообщения: 74
LKom писал(а):
Владимир Шелехов писал(а):
Всякое функциональное требование записывается в следующем виде:
<условие 1>, <условие 2>,…, <условие n> --> <действие 1>, …, <действие m>
На форуме программирование в соответствии с такими функциональными требованиями описано Геннадием Тышовым 27 Сентябрь, 2009 - http://forum.oberoncore.ru/viewtopic.php?p=35027#p35027. Техника программирования получила наименование: стиль - Скульптор, т.е. отсекаем все лишнее и производим отделку, обработку оставшегося материала..
Если и есть какая-то аналогия, то очень далекая. Я разделяю исходные принципы, сформулированные Геннадием Тышовым, но лепим с ним мы разные вещи.

Пару слов о дискуссии на этой ветке Форума.

Здесь Дракон выигрывает за явным преимуществом. Исходная программа Ильи Ермакова добротна и смотрится органично. Тогда как программа, изнасилованная структурным программированием, -- версия Петра Алмазова -- безобразна. И это вроде бы всем понятно, кроме Петра, который всем хамит с идиотской уверенностью в своей правоте, характерной для некоторых глубоко верующих в структурное программирование.

Чтобы поединок Дракона был честным, необходимо зеркально переписать программу Ильи Ермакова на Фортран или другой специальный язык для автоматного программирования. Языки Си и Паскаль здесь не годятся; на этом поле Дракон будет переигрывать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу Пред.  1, 2, 3, 4, 5

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2018, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB