LINUX.ORG.RU

Metaprog: универсальная графическая среда программирования [в разработке] часть 7

 , , ,


1

3

FAQ

0. Где отсутствующие примеры и пункты FAQ? Как вообще читать эти темы?

Чего нет в этой части - есть в прошлых. Для того, чтобы понять идею Метарпога, не обязательно читать тысячи комментариев из всех тем. Необходимый минимум собран в заголовках тем. Читайте заголовки и ссылки в них. Кстати, обновляется только заголовок последней темы, если эта тема уже не последняя - она не обновляется. В более новых темах пункты FAQ могут обновляться и в случае расхождения действительна более новая версия.

10. Примеры выдают варнинги при компиляции (у кое-кого еще и сегфолтятся)

Решено вводом неанонимных структур, если идет обращение к данным из сишных инклюдов.

12. Зачем ты пытаешься сделать «графический C» (используя подходы к разработке, структуры данных и прочее из C, но в виде блоксхем)?

Потому что я хочу программировать именно в графике и мне нравится Лабвью, но не нравятся ограничения его бекенда, обусловленные в основном копирастией. Хочется иметь возможность программировать не только на высоком, но даже на самом низком уровне (драйвера, ядра ОС, микроконтроллеры итп) и оперировать указателями, как в Си, но делать это в графике, а не в тексте.

13. Есть же first order logic, лямбда исчисление и т.д. Ты бы изучил для начала альтернативы, может для данного вида представления имеются лучшие подходы?

Мне очень тяжело дается восприятие кода в тексте. Когда нельзя потыкать-пощупать, а только сиди и читай чертов текст с мануалами и понимай каждую чертову синтаксическую конструкцию. После Лабвью я уже не смогу полюбить ни один текстовый язык, разве что Си и ассемблеры, но только в качестве бекенда для Метапрога. Если бы были графические среды для перечисленных понятий - еще бы потыкал и попробовал, а так - не считаю нужным насиловать себя чтением стен текста. К тому же, с производительностью у всяких сложных концепций как правило намного хуже, чем у простого низкоуровневого Си, а простоты программирования они тоже как правило не добавляют.

Примеры

Предыдущие см. в прошлых темах

Metaprog: универсальная графическая среда программирования [в разработке]

Metaprog: универсальная графическая среда программирования [в разработке] часть 2

Metaprog: универсальная графическая среда программирования [в разработке] часть 3

Metaprog: универсальная графическая среда программирования [в разработке] часть 4

Metaprog: универсальная графическая среда программирования [в разработке] часть 5

Metaprog: универсальная графическая среда программирования [в разработке] часть 6

Неанонимные структуры

В этом простом примере с открытием окошка на 10 секунд давние читатели увидят очень важное изменение. Транслятор стал использовать имена структур и типов из инклюдов вместо анонимных структур. Здесь есть вставки сишного кода, так в некоторых местах было проще, чем переделывать на графике, читая текстовый код. Вставки подписаны по-украински. При желании пиктограммы можно и к ним рисовать, но они - всего лишь временные костыли, так что заморачиваться с рисованием не вижу смысла.

Главная функция:

https://i.postimg.cc/8kJdT96h/image.png

Открытие нового окна:

https://postimg.cc/kBX6rB0P

Та же диаграмма в видео:

https://streamable.com/jqng1

Видно всплывающие подсказки, в конце удаляется и снова проводится один из проводков.

Начало рисования SDL, то что должно делаться каждый цикл в нуклеаре:

https://postimg.cc/tYS199bZ

Вставки, как видите, могут принимать и даже возвращать аргументы, как вставка обработки событий SDL возвращает running. Потом этот проводок с running будет подключен к главному циклу.

Кстати, что мешает мне сейчас сделать главный нуклеаровский цикл, ведь циклы ж уже готовы? Смотрите на этот скрин:

https://i.postimg.cc/65N2KMQz/image.png

Почти такой же пример, только есть цикл и нету sleep (чтобы можно было полюболваться на окошко 10 секунд). Что тут не так? Схема правильная, но надо еще научить транслятор ставить «тупиковые» ветки, берущие начало в цикле, в пределах цикла по-умолчанию. Сейчас код nk_end и малювання SDL оказываются за пределами тела цикла, буду это исправлять. Где-то там же находится ключ к полному налаживанию ветвления через if и switch.

Сам код:

https://pastebin.com/f5PDfi77

Использовать сишные имена типов и структур удалось благодаря многоязычным строкам, которые внедрялись для русских, англичан и прочей не понимающей украинский публики. Если в названии типа есть строка на языке «С», вместо примитивного типа (или тела структуры из примитивных типов) ставится сишный идентификатор типа из инклюда.



Последнее исправление: metaprog (всего исправлений: 15)
Ответ на: комментарий от cluge

Это не правда. В АСУТП как-раз таки выстрелило. Никто ни на какие Си и, упаси господи, на ST, не переходит. LAD и FBD во все поля. Не в защиту автора.

anonymous
()
Ответ на: комментарий от metaprog

категорически настаивал на том, чтобы я взял его как бекенд

Настаивать? Больно уж надо. Предлагать предлагал, да.

не имеет даже сетевых сокетов!

«Не имеет сетевых сокетов» и «не поддерживает сокеты как first-class objects» — это разные вещи. Си их тоже не поддерживает, если что. Но можно подключить сторонние библиотеки. В реде так же.

Три месяца это не срок для такого сложного проекта

Ну так зачем разбрасываться громкими заявлениями про месяц-другой от 26 апреля?

Но ни у кого ведь не поворачивается язык обвинить Линуса в некомпетентности

Потому что Линус уже тогда знал и умел больше, чем ты научишься за всю свою жизнь. У тебя же цель — «софт делать, а не учиться»…

rebforce
()
Ответ на: комментарий от rebforce

Месяц-другой не означает один месяц, да и два месяца тоже не означает. Разработка идет медленнее, чем хотелось бы, и точных сроков я назвать не могу, но работа идет.

Кстати, тебе не дает покоя мой «месяц-другой», а мне - твой концепт «Антиметапрога» за неделю, тоже было 26 апреля:

Metaprog: универсальная графическая среда программирования [в разработке] часть 4 (комментарий)

Ссылки на сообщения кидай, а не скрины, все равно их уже никто не удалит.

metaprog
() автор топика
Ответ на: комментарий от anonymous

Не в защиту автора

А почему бы и не в мою защиту, а?

metaprog
() автор топика
Ответ на: комментарий от anonymous

LAD и FBD во все поля

И получается ужасная багованная хрень, которую трудно сопровождать. Которая авторами с трудом понимается через месяцы после создания.

на ST

А вот на сопровождения кода на ST можно посадить вчерашних студентов и они будут мгновенно выполнять новые хотелки заказчиков.

cluge
()
Ответ на: комментарий от metaprog

Зато ред есть в отличие от метапроги. И на нем есть примеры. У него есть концепт. И он работает в отличие от...опять же

anonymous
()
Ответ на: комментарий от metaprog

Какие именно из моих утверждений нуждается в доказательствах?

то, что ты написал протокол. вскукарек «я сделяль но выкладывать не буду» - не доказательство

anonymous
()
Ответ на: комментарий от metaprog

Месяц-другой не означает один месяц, да и два месяца тоже не означает.

а сколько? напиши диапазон (желательно закрытый и конечный)))). [12-100]? вот мы и пришли к проблеме кучи

anonymous
()
Ответ на: комментарий от cluge

Код на лад и фбд просто сопровождать. Потому что код простой. Типичная технологическая установка - это сотни, тысячи простых связей. Простое преобразование для аналоговых блоков, простая логика вроде два из трех итд. Есть конечно отдельные блоки со сложной логикой, но она вполне вписывается в тот же фбд. На ST, С, SCL тоже пишут, правда редко. Но, как правило, не смотря на небольшой объем - код просто ужасен, его невозможно сопровождать. Сталкивался со скриптами на С(WinCC7). Это просто тихий ужас. Вчерашних студентов никто на технологическую установку не пустит. Максимум прибор прокачать. Там хоть код простой и кто угодно разберется, важен опыт. Остановить установку на процессинге - это полнейший _. Не забываем еще и про ПАЗ, где ты головой отвечаешь за каждое изменение.

Другое дело что подобный подход неприменим в разработке ПО - т.к. логика ПО гораздо сложнее.

anonymous
()
Ответ на: комментарий от metaprog

За 3 месяца можно было хотя бы концепт выкатить. не говоря уже про скрины, видео и примеры простых алгоритмов. Собссно с этого начинается вообще все.

Да: - рисовать код, который проще написать - это не концепт
- мультиязычные строки (чтоб ты под ними не подразумевал) - это не концепт
- версионные типы (опять же хрень, которая известна только твоим тараканам в голове) - это тоже не концепт

Нагенерить код из готовых в лабвью компонент - тоже не концепт.

anonymous
()
Ответ на: комментарий от metaprog

Ну и нахрена он тогда? Концепт - это то, что делают ДО выхода и что можно сделать и за 3 месяца, и за 1, избежав тысячестраничного срача. Вообще непонятна позиция модераторов по этому вопросу. Вся эта клоунада пованивает на весь ресурс.

anonymous
()
Ответ на: комментарий от rebforce

Каким нах боком одно к другому вообще? Тайпдеф - это подстановка типов. Подстановка, понимаешь? Как оно тебе поможет реализовать протокол?

Может, он имел в виду определения структур, которые по сети передаются. Хотя в современном Си это давно уже делается без всякого typedef.

hobbit ★★★★★
()
Ответ на: комментарий от throwaway764354

Ну вот все ржали над Microsoft, какие они криворукие, как у них все через жопу и т. д. И что они ушли с рынка? Нет, процветают. То есть где-то там на дне корпорации сидят эти рабы и доводят все это дикое говно до рабочего состояния.

+1.

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

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Код на лад и фбд просто сопровождать.

Такое чуство, что мы живем в параллельных реальностях?

тысячи простых связей

Иногда далеко не простых.

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

Смотря кто и как его пишет. Если следовать стандартам и утврежденным в конторе правилам написания кода, то даже очень легко.

cluge

anonymous
()
Ответ на: комментарий от hobbit

Но такой ценой, что [сам автор] будет выть от ужаса.

Считай, корпорации уже заинтересовались.

anonymous
()
Ответ на: комментарий от anonymous

корпорации уже заинтересовались.

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

anonymous
()
Ответ на: комментарий от anonymous

Такое чуство, что мы живем в параллельных реальностях?

В моей реальности(завод с переработкой ~5млн.тонн нефти в год; Siemens, Yokogawa, Honeywell, DeltaV, TREI, Schneider) всё именно так.

Иногда далеко не простых.

Что там сложнее? ПИД? Каскад? Последовательность для клапанов? Всё легко описывается на фбд/лад. То же самое и с конвеерами, системами регенерации, кранами и прочей лабудой.

Смотря кто и как его пишет. Если следовать стандартам и утврежденным в конторе правилам написания кода, то даже очень легко.

За всё время ни разу не видел нормальный код на С в АСУТП, ни на своем заводе, ни на других, ни на месторождениях. На ПАЗе вообще никогда не видел ничего кроме LAD/FBD.

В начале карьеры я тоже думал «зачем везде эти дебильные схемы, текстом же проще итд». Но со временем убедился в том, что я был не прав.

anonymous
()
Ответ на: комментарий от liksys

Подожди пока Пайк его откроет.

anonymous
()
Ответ на: комментарий от ossa

Так как автор любит посылать в ..., то KissMyAssProg

Владимир

anonymous
()
Ответ на: комментарий от metaprog

Само по себе написание кода узким горлышком не является, его любой олень из буткемпа за 2 недели осваивает. Вся сложность в алгоритмах, структурах данных. Если бы твой инструмент работал бы с **высокоуровневой** спецификацией, делая бесмысленными всякие leetcode и hackerrank (в силу того, что спецификация легко задаётся, а на выходе - высокоэффективный код) и знание/умение писать алгоритмы в целом, был бы разговор. Синтез кода, кстати, область активных исследований (хотя результат пока непрактичен и не очень пригоден для реального использования). Или были бы другие идеи меняющие процесс, облегчающие какие-то конкретные аспекты. Но «как C, только в виде блоксхемы» - этого мало.

anonymous
()
Ответ на: комментарий от metaprog

тренарный оператор

Это из секс-шопа?

Кроме шуток, что это такое, с чем его едят и где применяют? Я готов учиться, только объясняй.

balsoft

Deleted
()
Ответ на: комментарий от hobbit

Может, он имел в виду определения структур, которые по сети передаются. Хотя в современном Си это давно уже делается без всякого typedef.

А когда это нужно было, или что пришло сейчас?

Deleted
()
Ответ на: комментарий от metaprog

ни у кого ведь не поворачивается язык обвинить Линуса в некомпетентности

Ты не Линус, маня. Срач Линуса и Танненбаума вообще не сравним с тем цирком с конями, что ты устраиваешь тут. У них было столкновение красивой теории (ранние микроядра) и суровой практики (монолит/модули). В твоем же случае есть столкновение практики (существующее текстовое программирование) и твоих влажных фантазий (не осилил текст и поэтому считаешь, что графика лучше). Плюс, у Линуса было соответствующее образование и опыт, а у тебя оно на нуле. Линус аргументировал; ты - нет.

Он был выпущен в 2011 году - и что?

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

Обвинять меня в медлительности

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

некомпетентности

... которая является твоей совокупной характеристикой - ты не знаешь базовой теории, не имеешь практики, и делаешь космические заявления.

концептов

Рассказывает тот, у кого нет ни одной концепции.

liksys ★★★★
()
Ответ на: комментарий от hobbit

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

liksys ★★★★
()
Ответ на: комментарий от liksys

Сцать против ветра, отрицая текстовое программирование, не будет никто.

Уже поссали. До винды все спокойно сидели в надежной и привычной текстовой консоли. Это корпорации раскрутили дичайший графический интерфейс со всякими там говорящими скрепками и собаками. И до сих пор ничего надежного и привычного так и не сделали - сейчас вот веб поковырают еще немного и что-нибудь новое выкатят. А нормальные люди как в консоли сидели так и сидят, ничего принципиального с тех времен не поменялось.

throwaway764354
()
Ответ на: комментарий от ossa

NoTextProg

MalyuvalkaProg

Так как автор любит посылать в ..., то KissMyAssProg

AssLab тогда уж. Коротко, со вкусом и намекает на названия известных аналогов :)

hobbit ★★★★★
()
Ответ на: комментарий от throwaway764354

До винды гуй тоже был, и было понятно, что это удобно для повседневного использования. Так что нет ничего удивительного в том, что гуй сейчас везде. Это заслуга далеко не только микрософта

liksys ★★★★
()
Ответ на: комментарий от Deleted

Я уже плохо помню си древних времён, но что-то там было, что чтобы использовать имя типа структуры во многих местах, нельзя было просто написать struct, надо было именно что с typedef комбинировать.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Главное, чтобы суть правильно отражало.
Можно и так - «Краткость - сестра таланта».

Владимир

anonymous
()
Ответ на: комментарий от liksys

У корпорацией есть интерес популяризировать только те средства, которые так или иначе приемлет большинство

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

Кроме того, всем понятно, что кодовую базу (прости хоспади) метапрога брать никто не будет

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

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Как бы ТС вразумить, чтобы он пользу другим принес.
Вообщем то ведь он в целом наверное хочет пользу другим принести?
Или банально биткоинтов нахватать любой ценой?

PS: Его бы энергию, да в мирных целях.

Владимир

anonymous
()
Ответ на: комментарий от Deleted

Я вспомнил. Но это немного не про то. В Си (в отличие от C++), если я объявлял структуру как struct, потом, при объявлении переменных этого типа приходилось опять писать struct Any a вместо просто Any a. Вот если сразу написать typedef struct Any {} то можно писать Any a. Да, давно я на чистых сях не писал.

Но да, ко всяким описаниям протоколов это уже имеет крайне косвенное отношение...

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Как бы ТС вразумить, чтобы он пользу другим принес.

Думаю, только жизненным опытом. И хорошо, если он свой проект скорректирует, а не просто разочаруется и забьёт.

Вообщем то ведь он в целом наверное хочет пользу другим принести?

Я тоже стараюсь предполагать добрые намерения. :)

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Вот если сразу написать typedef struct Any {} то можно писать Any a.

typedef не так работает. Да и сейчас нужно тоже struct в начале писать, ничего не изменилось.

Deleted
()
Ответ на: комментарий от liksys

До винды гуй тоже был, и было понятно, что это удобно для повседневного использования.

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

Я, думаю, есть решение гораздо проще. Выскакивает из угла собака, виляет хвостом и открывается комикс-облако с консолью. Захотел найти файл - find -name, захотел календарь - cal, захотел анекдот cowsay - передовые чат-бот технологии.

throwaway764354
()
Ответ на: комментарий от anonymous

Мы, корпорации, уже 30 лет пытаемся такое сделать.

Я джадцать лет жду такую прогу.

Как ты под анонимом пишешь? У меня капча все время говорит - неправильный код. Хорошо хоть кто-то акк выложил.

throwaway764354
()
Ответ на: комментарий от throwaway764354

я хз. я с телефона пишу, тут капча вообще - просто галочка I'm not a robot и все. Никаких картинок нет, ни кода.

anonymous
()
Ответ на: комментарий от hobbit

И хорошо, если он свой проект скорректирует, а не просто разочаруется и забьёт.

Мне его скриншоты напоминают игруху Factorio. Ему в геймдев надо, там такое инди сейчас очень популярно.

throwaway764354
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.