OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 10 Декабрь, 2019 06:01

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




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 13:17 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Нашёл у Дейкстры хорошую формулу для забарывания сложности, привожу перевод:
Цитата:
формулирование точных определений регистрирует зарождающуюся сложность на ранних этапах (precise definition as a design principle acts as an indispensable early-warning system for complexity inadvertently creeping in)
В связи с этим возникла мысль - а не является ли строгий и минималистичный дизайн формальной системы Оберона наилучшим средством для такой регистрации? Ведь чем проще и понятнее (не примитивнее!) формальный аппарат, тем легче его применять, не отвлекаясь от проблемной области.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:13 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Проще для чего?

Проще формулируются задачи на обероне? Проще пишутся структуры данных и алгоритмы к ним? Проще применять уже написанный код?

Чем проще то? В поддержке кода? В написании компилятора и переноса на другие платформы?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:16 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Проще для регистрации сложности на ранних этапах. Написано же.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:33 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Иван Кузьмицкий писал(а):
Проще для регистрации сложности на ранних этапах. Написано же.


Регистрации чего? Есть проект, продумана архитектура. Спускаемся ниже, продуманы модули взаимодействия, ещё ниже продуманы структуры данных и алгоритмы. После наступает реализация. именно при реализации на обероне, вдруг увидят, что проект то не прост? Вся прелюдия до, бессмысленна?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:34 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Вы можете продумать архитектуру от начала и до конца, не приступая к программированию? Ну поздравляю, вы окончательно победили сложность, можно выписывать Нобелевскую премию :)

P.S. А если при реализации увидят, что "проект не прост", это говорит только об одном - архитектура не продумана, как ложно утверждалось в начале.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:40 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Нобелевскую мне, нобелевскую! :)

Я и не спорю, что программировать сложно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:43 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Как я понял. Если брать язык вроде си, нужно преодолеть костыли языка, держать в голове не только знание алгоритмов, но ещё и хаки языка для их обхода. Что, увеличивает сложность реализации.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:50 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Ну вот, теперь встаёт вопрос - как бороться со сложностью? Мы не знаем, что такое сложность, но у нас зато есть формальные знаковые системы (языки программирования) и эффективное воплощение формальной системы (компьютер).

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

P.S. Ну, Си был создан только для избавления от мучений на ассемблере. Так сложилось. А Оберон - тщательно спроектирован, в чём и отличие.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 15:03 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Иван Кузьмицкий писал(а):
Замыканий, итераторов и дженериков нет в Обероне, но значит ли это, что формализм Оберона не подходит для выражения проблем? Может так оказаться, что проблема в самом программисте, который привык итераторами мерять всё подряд.


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 15:06 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Иван Кузьмицкий писал(а):
Если программист при решении задачи пытается выразить проблемы с помощью некоего формализма, то можно подумать, что чем больше всяких ништяков напихано в этот формализм, тем круче.


Каждый ништяк служит какой то цели. Тот же for и while. Тема ништяков в языках обширна.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 15:11 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Вопрос лишь в том, сколько надо ништяков ввести в язык, чтобы смочь победить сложность окончательно. Поскольку комбинаторные взрывы никто не отменял, то можно предположить, что количество проблем растёт в прогрессии. А значит, и формальную систему надо усиливать до бесконечности, вводя в неё всё новые, условно говоря, итераторы.

А если не до бесконечности, тогда надо знать предел. Кто его знает? Дейкстра не знает, он откровенно сказал. Значит, будем опираться на практический опыт, запихивая в какой-нить питон всё новые и новые отработки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 15:20 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Иван Кузьмицкий писал(а):
Вопрос лишь в том, сколько надо ништяков ввести в язык, чтобы смочь победить сложность окончательно. Поскольку комбинаторные взрывы никто не отменял, то можно предположить, что количество проблем растёт в прогрессии. А значит, и формальную систему надо усиливать до бесконечности, вводя в неё всё новые, условно говоря, итераторы.


Получается, что с минимальным формальным аппаратом и возможностью его нарастить в конкретном проекте. Через, процедуры и модули, можно обуздать сложность в конкретном проекте. Но вытекает другой вопрос, как применять типовые структуры и алгоритмы в разных проектах. Как пример разрешение экрана, оно может быть больше или меньше, но обычно в гуи библиотеках используют менеджер позиции, который сам их расставляет. Есть одна абстракция создать, что то. С отсутствием такого менеджера, каждый визуальный объект, на разных разрешениях будет смотреться меньше или больше. И для разных разрешения требуется ручная подгонка.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 17:56 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Jordan писал(а):
Как пример разрешение экрана, оно может быть больше или меньше, но обычно в гуи библиотеках используют менеджер позиции, который сам их расставляет. Есть одна абстракция создать, что то. С отсутствием такого менеджера, каждый визуальный объект, на разных разрешениях будет смотреться меньше или больше. И для разных разрешения требуется ручная подгонка.
Ну да, забарывание таких моментов часто делается сугубо вручную, путём изготовления растров под каждое разрешение экрана.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 18:01 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Не то. Я о простых кнопках, а не картинках. Меняется маcштаб кнопок, диалогов и т.д Размер шрифта с последующей расстановкой элементов.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 18:29 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Это не я предлагаю, а гугл :) А всё остальное давно уже применяется.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 22:35 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Иван Кузьмицкий писал(а):
...а не является ли строгий и минималистичный дизайн формальной системы Оберона наилучшим средством для такой регистрации? Ведь чем проще и понятнее (не примитивнее!) формальный аппарат, тем легче его применять, не отвлекаясь от проблемной области.
И, кстати говоря, получается, что ранний этап регистрации сложности - ключевой момент. Чем раньше мы поймаем нарастание сложности, тем меньше требуется усилий. Поэтому минималистичный аппарат Оберона пригоден для этой цели более чем.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 29 Ноябрь, 2013 21:38 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4539
Откуда: Россия, Орёл
Иван Кузьмицкий писал(а):
Нашёл у Дейкстры хорошую формулу для забарывания сложности, привожу перевод:
Цитата:
формулирование точных определений регистрирует зарождающуюся сложность на ранних этапах (precise definition as a design principle acts as an indispensable early-warning system for complexity inadvertently creeping in)
Предваряйте процесс написания кода написанием документации на этот код...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 30 Ноябрь, 2013 09:26 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 348
Откуда: Россия, Стерлитамак
По моим субъективным ощущениям, если начинать писать код с комментариев, то затем значительно легче его писать (по сути это уже и есть обдумывание/проектирование кода)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 30 Ноябрь, 2013 12:47 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Иван Кузьмицкий писал(а):
Ну вот, теперь встаёт вопрос - как бороться со сложностью? Мы не знаем, что такое сложность, но у нас зато есть формальные знаковые системы (языки программирования) и эффективное воплощение формальной системы (компьютер).
Создаётся такое ощущение, что борьба с излишней сложностью постепенно превращается просто в борьбу со сложностью. В оригинале речь шла о некотором компромиссе ("..., but not simpler").


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 30 Ноябрь, 2013 13:10 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
igor писал(а):
Иван Кузьмицкий писал(а):
Ну вот, теперь встаёт вопрос - как бороться со сложностью? Мы не знаем, что такое сложность, но у нас зато есть формальные знаковые системы (языки программирования) и эффективное воплощение формальной системы (компьютер).
Создаётся такое ощущение, что борьба с излишней сложностью постепенно превращается просто в борьбу со сложностью. В оригинале речь шла о некотором компромиссе ("..., but not simpler").
Дейкстра утверждает, что ни концепции сложности, ни полезной теории сложности нет. Это значит, что мы не можем формально сказать, где сложность излишняя, а где не излишняя. Стало быть, надо уходить от складывающихся ощущений и бесполезных чувственных образов в сторону формализации. И только оттуда начинать рассуждать про сложность.


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

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


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

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


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

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