Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 23 сен 2018, 03:05

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: 18 июн 2016, 11:54 
Не в сети
Аватара пользователя

Сообщения: 896
Откуда: Днепропетровская обл.
ОТЧЁТ
о выполнении программы дорасчёта в интересах
ООО “МЕГАПОЛИС” ПС 110 кВ О-55 Восточная-1

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

prospero78 писал(а):
В какой-то момент настало чуть ли не разочарование во всей программной индустрии. Перебрать несколько языков программирования, и получить вот такое… Как вообще хоть что-то работает? Может это всемирный заговор? ))) По необходимости пришлось привлекать FreePascal. В нём есть развитая IDE, есть построитель документации, типизация, классы, ООП, и всякие приятные плюшки, что так радуют модных программистов.

Перенос кода с python прошёл очень быстро. Уже было понимание архитектуры того, как должно быть, была родная графика, был менеджер проекта что весьма здорово облегчает жизнь. И может всё так бы и осталось, работало уже на 90% функционала, но и здесь повылазили косяки с которыми совладать было крайне тяжело. Например, при переноса проекта из папки в другую папку и подчистки папки с объектными модулями проект перестал собираться с криками “циклическая ссылка”. Несколько раз пришлось на уровне интуиции определять, в чём же дело на самом деле. Периодически, уже в скомпилированной программе вылетал SEGFOLT, либо ошибка деления на ноль при операциях с числами с плавающей запятой. Понавтыканные предусловия и проверки не помогали и это был тупик. Программа дорасчёта на FreePascal могла отработать две недели, а могла упасть и через три часа. Поведение -- непредсказуемо.

Пришлось печально выдохнуть и зафиксировать на полях: какое же гауно, это современное программирование. НИЧЕГО нормального и доступного под рукой нет… Это просто печально… Да ассемблер по сравнению со всякими C++, Хаскелями и питонами кажется образцом инженерной мысли. Правда, со всеми вытекающими… ,)

BlackBox у меня лежал в загашнике примерно с 2005 года. Я как-то посмотрел-повертел… Штука занятная, оставляет впечатление чего-то непривычного, необычного и правильного. Ну, повертел да положил до более нужного момента. Была у меня и русифицированная школьная сборка (до сих пор лежит), университетская, сборка Гельмута Цинна, Ивана Денисова “РедБокс”. В-общем, выбор был. Я не стал рисковать, что-то где-то докручивать, а взял то, что люди делают что называется “для себя” -- сборку Ивана Денисова. Стабильная, с русифицированным меню, такой же документацией. Я когда читаю по английски, вроде понимаю. Но когда тоже самое читаю по русски -- вылазят всё время какие-то нюансы, на которые в англоязычной версии как-то не обращаешь внимание. Трудности перевода.

BlackBox та ещё вещь в себе. От таких мощных вещей миллион леммингов отучает не менее мощно. Может бы я и не стал пытаться реализовать решение на Компонентном Паскале, но с учётом полученных шишек, внутри себя -- и раньше, и сейчас всё больше сидит чувство уверенности, что есть в этом всём что-то очень правильное, фундаментальное. Это на столько мелочи, что и формализовать не возьмусь. Но эти мелочи решили всё. В качестве инфраструктурной фишки могу назвать форматированную документацию, картинки, примеры после символа “.” в тексте исходного модуля. Питон может лишь похвастаться документацией модуля/процедуры/класса в форме плоского текста в тройных кавычках. А кодировка плавает от программиста к программисту…. Это просто жуть. Установленный формат документов BlackBox, конечно, вносит свою сложность, но это инкапсуляция сложности на порядок большей.

Есть ещё один приятный момент: много-документный интерфейс выполнен в BlackBox отлично. Совмещает в себе и редактор кода, и средство представления документации, и средство вывода результатов работы программы. Машина, которая сама себе на ходу меняет колёса. Я такое последний раз видел на ZX Spectrum в BetaBasic (1988 г., на всякий случай). Ну, и отдельного упоминания прямо сейчас заслуживают встроенные средства отображения графики.

6500 строк кода на FreePascal я умудрился перенести за 14 дней на Компонентный Паскаль. Похожие названия не должны вводить в заблуждение. Современный FreePascal, как и FreeBasic -- это ещё один клон С++. Имеющий свои особенности, ограничения, но в главном -- ну просто два брата близнеца. Поэтому, перенос имел значительную долю творческого подхода. Что-то где-то упростил (из-за более простой и ясной структуры), что-то где-то нарастил. ASSERT великолепно обеспечивает отслеживание логики исполнения программы и именно там, где это надо программисту. Перенос кода доставил удовольствие)

Сейчас код составляет около 9к строк. Вся эта сложность осталась в управляемых и обозримых границах. Ещё всё-таки надо доделать кое-какие мелочи, но смотря на цифру непрерывного времени работы программы дорасчёта “8 дней 17 часов”, я думаю, что можно говорить о техническим успехе.

987 телепараметров обрабатываются строго и точно в заданный интервал времени со скоростью в 48 раз выше, чем это позволяет сделать python3. Имхо, я достиг поставленных целей, и могу не опасаться, что посреди ночи истерично заорёт рабочий мобильник, нарушая мой заслуженный сон.
Читать полностью

prospero78 благодарность за столь красочно описанную историю, да ещё и с картинками. :-)


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 18 июн 2016, 12:08 
Не в сети
Администратор
Аватара пользователя

Сообщения: 169
prospero78 писал(а):
6500 строк кода на FreePascal я умудрился перенести за 14 дней на Компонентный Паскаль.

:) Лентяй!


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 26 мар 2018, 14:46 
Не в сети

Сообщения: 180
Zorko писал(а):

ссылка битая...


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 27 мар 2018, 08:43 
Не в сети
Аватара пользователя

Сообщения: 896
Откуда: Днепропетровская обл.
Я сообщил Валере, но похоже, что статья утеряна. Если вдруг где-то всплывёт, размещу.


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

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


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Тех.поддержка phpBB