OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 11:11

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




Начать новую тему Ответить на тему  [ Сообщений: 95 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
СообщениеДобавлено: Пятница, 14 Февраль, 2014 10:37 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
У меня, как у модератора, явное ощущение, что все поток сознания начатый с сообщения Madzi (viewtopic.php?p=85455#p85455) вообще тут не по теме.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Февраль, 2014 15:32 

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

Почти весь форум об обероне, что ещё обсуждать? :wink:


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Февраль, 2014 16:48 

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

К*M*N вас не зацепило?

Тут имелось ввиду простая мысль. Что, данные наборы контейнеров используются часто. Хранение, чтение и запись информации. Прочитали, обработали, сохранили. Как минимум, в большинстве случаев STL предлагает оптимальные контейнеры для хранения и простой обработки.

Никто не мешает обрабатывать данные своими алгоритмами.

Экономия 90% как раз в написании этих контейнеров.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2014 02:48 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Jordan писал(а):
Экономия 90% как раз в написании этих контейнеров.
Это понятно. Я про другое - разве вы 90% своего рабочего времени занимаетесь написанием контейнеров? Сильно вряд ли. Если потребность новом в контейнере возникает редко, то относительно неважно, буст вы используете или что-то другое. Всё равно процент времени, ушедшего на контейнер, будет маленьким. А выигрыш и совсем неразличимым. Конечно, всё меняется, если вы только и делаете, что шаблонизируете алгоритмы - но тогда, может, проще что-то "в консерватории подправить"?


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

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

Пример GLIb, библиотека контейнеров и алгоритмов на си. Свою функцию выполняет, но делает настолько всё небезопасно и костыльно. Так как в языке нету средств, для нормальной реализации. Особенно коробит, работа с массивами. Сама идея непрерывной памяти выброшена, есть массив указателей. На каждый указатель выделяется память. Отсюда и обход массива, ещё более не эффективен, постоянные кэш промахи.(обращение идёт через [i]->поле)

Всё эти void* обычно локализуют в функциональности конкретной реализации. На паскале, такая реализация будет не лучше.

У каждого программиста, есть свой файлик с реализациями, своих структур из которой он копирует реализацию. Но сам способ реализации STL интересен.

1. Встроить в язык шаблонизатор. Получается STL
2. Обойтись средствами языка. Повальный void*
3. Внешние тулзы для генерации обобщённого кода.
4. Копипаст.

Все эти способы работают, лучше хуже другой вопрос.

Иван Кузьмицкий писал(а):
проще что-то "в консерватории подправить"?


Не уловил, вы о чём?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2014 10:34 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2014 11:01 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2014 11:02 

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

Если от этого отойти, ну копипастишь ты алгоритм, ну и скопипать освобождение ресурсов и освободи где надо. Элементарно же. Нет, получаем серьёзные удобства. Так же и с обобщённым программированием, получаем плюшки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2014 11:06 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2014 11:07 

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


Подождите, но каждое наращивание языка, поддаётся правилам и описанию. Контроль есть.

Иван Кузьмицкий писал(а):
Я о том, что если у вас нет жизни без буста, то что-то вы неправильно спроектировали. Зачастую всего лишь хорошее продумывание избавляет от многих головняков уже на старте. А тоска по шаблонам, она пустая. Бросьте вы это дело.


Угу, бывает тоскливо когда смотрю исходники других проектов на С++. Но я не унываю.
Какие есть книги, которые можно почитать по архитектуре? Но более применимые в современном программировании. Не книги 70-80ых годов. Обычно как ни скачаешь, везде С++ в с паттернами, фабрики и т.д Слишком высокий уровень.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2014 11:09 

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


Подождите, но каждое наращивание языка, поддаётся правилам и описанию. Контроль есть.
На оберспейсе пилят сразу два компилятора оберона. Почему не сразу С++? Правила есть, контроль есть, возьми и запили что нужно. Но нет, что-то в консерватории не то :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2014 12:37 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Jordan писал(а):
Сборщик мусора полезная и удобная фича. Создаёт некий постулат, забудьте об утечке памяти, я всё сделаю.


Угу, вот именно со сборкой мусора начинаются интересные вещи.
В применениях, где объём памяти под динамические объекты начинает превышать 16Гб (по сообщениям "Одноклассников", допустим), она жрёт более 50% времени (если на Java).
Ведь те, кто делал ту же Java, должны были предполагать, что за ростом производительности (что сгладило расходы на сборку мусора) пойдёт рост ОЗУ до такого предела, когда затраты на любой алгоритм сборки будут расти нелинейно. Но нет - оставили в языке только динамические строки\массивы\объекты, которые добавляют безумное количество мусора.
И самое главное - что из-за таковых особенностей языка очень сложно (если возможно) написать какое-то библиотечное управление памятью, которое позволяет работать с выключенным сборщиком (на пулах повторно используемых объектов, допустим; или хранить деревья данных типа DOM в объектах с итерируемым доступом вместо прямого доступа) - всё равно любая локальная переменная породит мусор (ну да, потом изобрели безумно сложные HotSpot-ы, которые умеют догадываться, что можно разместить на стеке. А потом латают дырки в этих безумно сложных оптимизациях).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Февраль, 2014 12:39 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Jordan писал(а):
Какие есть книги, которые можно почитать по архитектуре? Но более применимые в современном программировании. Не книги 70-80ых годов. Обычно как ни скачаешь, везде С++ в с паттернами, фабрики и т.д Слишком высокий уровень.


Рекомендую в обязательном порядке Эрика Эванса "Предметно-ориентированное проектирование. Структуризация сложных программных систем".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 21 Февраль, 2014 19:01 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 473
Илья Ермаков писал(а):
...но какого-то массового прыжка отрасли к уровням абстракции Haskell-ей, Скал и прочего - не будет. Поиграются, это займёт свои ниши - но и только.

Мэйнстрим-прыжки к а-ля Haskell-абстракциям пока больше вредны, чем полезны. К примеру, запись какого-нибудь linq-выражения или выкрутаса в стиле:
" xs.iter().chain(ys.iter()).fold(0, (a, b) => a + b) "

может иметь непредполагаемые (программёром) эффекты, например, куча скрыто создаваемых временных коллекций объектов. Да и в самих исходных абстракциях далеко не всё гладко (особенно в Скале). Насчёт тех же коллекций, как основной фундамент, только вот сейчас потихоньку начинают, наконец-то, к ним подходить со здравым смыслом, как в Reducers Кложуры.

Илья Ермаков писал(а):
Угу, вот именно со сборкой мусора начинаются интересные вещи...

Здесь неплохая подборка проблем java (в т.ч. влияющих и на мусорщика). В дополнение, когда-то читал блог одного из разработчиков jboss насчёт особенностей потрохов жабских серверов приложений: из-за отсутствия в языке контроля изменчивости объектов часто перед вызовом метода делаются копии объектов, что в немалых масштабах кода также приводит к проблемам мусора, причём изначально никто никогда об этом не задумывался, а сейчас полный рефакторинг проектов невозможен (да и нецелесообразен, и так полно других граблей).

В общем, на сегодня отрасль в попытках простоты далека от мудрости, всего лишь чушь выше "хуже воровства".


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

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


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

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


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

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