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)
Ответ на: комментарий от throwaway764354

Ему в геймдев надо

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

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

Ты про его скрины? Так тож LabView. Свое он пытается на нуклере (до этого был гтк) запились, но что-то мне подсказывает, что дальше выбора очередного тулкита ничего никуда не пойдет.

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

Могу спорить, что аффтар не осилит рассказать, что тут нарисовано.

Посмотри Factorio, люди за это деньги платят и добавки просят.

Я просто думал, он свое сделал.

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

Забавная игрулька. гляжу и под онтопик есть. Надо купить.

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

Штирлиц стоял на своём. Это была любимая пытка Мюллера.

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

Или банально биткоинтов нахватать любой ценой?

This. Только биткоинов, а не биткоинтов. Иной причины данной клоунады не наблюдается.

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

рекурсивная ф-ция рисования арки с рандомным выбором внутреннего контента из массива указателей на struct

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

Инкапсуляция - это методология взаимодействия процедур, относящимися к записи некоторого типа с данными в этой записи и только.

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

не, в этом случае он бы не посылал так часто в жопу потенциальных инвесторов. тем более выше писалось что собрать удалось ровно 0 биткоинов за все 7 сезонов то.

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

А, этот елбодоб под «протоколом на тайпдефах» имел в виду объявление полей данных через typedef struct вместо простого struct? Ну сказочный елбодоб же.

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

Хений не сказал что он имел ввиду, поэтому ввиду он мог иметь что угодно, как показали 7 тем

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

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

У нормальных людей, елбодобина ты махровая, это выражение именно это и означает.

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

Оно и заметно, меж тем я тебе, елбодобине махровой, уже отвечал по этому поводу: устаканен — не значит опубликован. И да, без форс-мажоров жизнь проходит только у тех, кто абсолютно по жизни бесполезен. Но перед полнейшим ничтожеством вроде тебя оправдываться не намерен.

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

Тони Хоар, Эдгар Дийкстра и Никлаус Вирт в корне с тобой не согласны.

В программировании должна быть дисциплина.

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

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

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

а в программировании что надо знать такого чтобы программировать? Только базовые понятия типа ветвления, циклов, функций, типов и отличать оперативную память от жесткого диска. Ну и плюс баовые принципы протоколов типа TCP/IP и детали, с которыми имеешь дело. Что кроме упомянутого мной нужно знать, чтобы кодить, если среда графическая и изучения синтаксиса не требует?

Те, кто пишет софт, от которого зависят жизни людей, с тобой не согласятся.

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

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

4.2. У меня аватарки отключены, и без них ЛОР выглядит гораздо чище. Более того, он при этом становится юзабельным даже на смартфонах. Не надо никаких «приложений», которые навязывает бедным посетителям большинство говносайтов. Просто ЛОР работает на смартфонах и всё.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

У меня так

||habrastorage.org/webt/
||habrastorage.org/getpro/habr/post_images/
||habrastorage.org/getpro/habr/avatars/
||youtube.com/embed/
www.youtube.com##DIV[class="feed-item-container browse-list-item-container yt-section-hover-container compact-shelf shelf-item branded-page-box vve-check clearfix"]
www.youtube.com##DIV[class="style-scope ytd-shelf-renderer"]
www.youtube.com##DIV[class="branded-page-v2-container branded-page-base-bold-titles branded-page-v2-container-flex-width branded-page-v2-secondary-column-hidden"]
www.sql.ru##A[href="http://www.sql.ru/forum/pt"]
www.sql.ru##A[href="http://www.sql.ru/forum/interbase"]
www.sql.ru##A[href="/forum/ibexpert"]
www.linux.org.ru##DIV[class="userpic"]
www.linux.org.ru##IMG[class="photo"]
habr.com##DIV[class="default-block"]
habr.com##DIV[class="dfp-slot__banner" ]
habr.com##script
habr.com##yatag
habr.com##DIV[class="dfp-slot dfp-slot_top is_visible" ]
habr.com##.default-block__header
habr.com##.megapost-teasers
habr.com##.promo-block__content
www.youtube.com##.style-scope.ytd-guide-renderer
anonymous
()
Ответ на: комментарий от rebforce

А, этот елбодоб под «протоколом на тайпдефах» имел в виду объявление полей данных через typedef struct вместо простого struct?

Я, по крайней мере, интерпретировал именно так. Ну туманно человек выразился, мало ли.

Только биткоинов, а не биткоинтов. Иной причины данной клоунады не наблюдается.

Ну вот не надо додумывать за других самый плохой вариант.

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

Мне его скриншоты напоминают игруху Factorio.

Не поверишь, но за эти 7 тем кто-то её уже вспоминал. (Возможно, даже ты.)

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от liksys

Он необучаемый.

Ой, ну да ладно гнать-то. Просто молодой и самоуверенный. И ещё не упёршийся в свой потолок. Такое со многими бывает.

Причём, что самое печальное, бывает не с худшими. Нулевая макака просто пойдёт на работу и будет исполнять то, что начальник скажет. И будет обижаться, если начальник ему не разжевал всё до косточки, а пошлёт читать Страуструпа. А вот у тех, у кого есть голова, желание что-то делать, но нет опыта — у этих да, есть заскоки и упрямство. Зачастую выбешивающее.

Два-три месяца трындежа на ЛОРе ни разу не критерий (не)обучаемости. Вот когда он сделает что-то условно рабочее и начнёт распространять, а люди начнут отвергать (мягкий вариант — начнут требовать то, что ему 100 раз предлагали сделать на ЛОРе, но он гордо отказывался), тогда и посмотрим. Ну или наоборот, он осознает сложность разработки, ему это надоест, и он решит пересмотреть подходы...

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

ТС изобрел для себя маленькую «вселенную» /что касаемо разработки/ и ему в ней уютно.
Предположим он разработает а-ля ЛапшуВиевер.
Как он из LabView перенесет в него свою «лапшу»?

Владимир

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

Ой, ну да ладно гнать-то. Просто молодой и самоуверенный. И ещё не упёршийся в свой потолок. Такое со многими бывает.

С данным персонажем больше подходят следующие цитаты:

«Бич человека — это воображаемое знание»

и

«Быть в восторге от самого себя и сохранять незыблемую уверенность в собственном уме — это несчастье, которое может стрястись только с тем, кто или вовсе не наделен умом, или наделен им в очень малой степени»

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

Если бы это произошло впервые, это можно было бы спустить на тормозах, а сейчас уже понятно, что это не «туманное выражение», а совершенное непонимание терминологии, которую аффтар считает «нинужной», ибо там «греко-латинские заумные словеса», к которым и слово «протокол» тоже относится, кстати. У этого тов. Выбегалло терминология совершенно своя, ибо в общепринятую он не въезжает и въезжать не хочет и даже искренне не понимает, зачем. Эффект Даннинга-Крюгера во все поля.

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

А вот у тех, у кого есть голова, желание что-то делать, но нет опыта — у этих да, есть заскоки и упрямство.

есть голова

заскоки и упрямство

does not compute

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

Как он из LabView перенесет в него свою «лапшу»?

Он об этом уже задумывался, но всю глубину проблемы ещё не осознал.

Видимо, он хочет сгенерить Метапрог из Лабвью, а уже в сгенерённом Метапроге всё вручную перерисовывать. Ну или формат отреверсить, если получится. :)

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

Ну что же, автор здесь, вероятно, он прочтёт твои пожелания. :)

Кстати, будет забавно, если это занятие окажется для него более приятным, чем читать чужой текстовый код. :)

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

LabView предоставляет программисту обширный API.
И более того логика «лапшевидных» программ опирается на этот API.
Очень даже разумно.
А ТС строит дом начиная с крыши не имея при этом ни фундамента, ни стен.
И в результате может получить - «воздушный замок».

Владимир

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

А ТС строит дом начиная с крыши не имея при этом ни фундамента, ни стен.

Ну да.

Я (и не только я) уже предлагал ТСу взять за основу какой-нибудь MyOpenLab, вероятно, с допиливанием. Не хочет.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Среда программирования LabView помогает решить определенную нишу задач.
Интересно для какого еще рода задач «лапшевидное» программирование будет уместно /скажем разрабатываем API для работы с сетями, 2D, 3D, .../?

Владимир

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

А ТС строит дом начиная с крыши не имея при этом ни фундамента, ни стен.

Я тут цитировал одного товарища («Бич человека — это воображаемое знание»)

Приведу ещё одну его цитату:

«Если хочешь излечиться от невежества, надо в нем признаться»

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

Будут треды №8, №9, №10 и так далее. А метапрог будет по-прежнему только в его воображении.

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

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

Если какой-нибудь программист-самородок напишет, например, опенсорсный аналог SketchUp, я не буду предъявлять этому человеку претензию, что он не въезжал в чьи-то заумные словеса, применил нестандартную терминологию (как вот тут у некоторых бомбило, что в MyTetra комментарии на русском, при том, что контрибутить туда никто из разбомбленных, разумеется, не собирался), а скажу спасибо. Ну а поправить косяки можно, на то он и опенсорс.

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

Толковый доклад: СПО. Кризис среднего возраста? (Анатолий Якушин, OSEDUCONF-2013) К сожалению, я знаю только видео, текстовой расшифовки нет. Но мысли интересные.

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

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

А если metaprog не все договаривает /строит из себя просточка/?
К примеру разрабатывает «втихаря» и фундамент и стены или использует какой-либо готовый /кстати он говорил, что его API будет опираться на Linux libraries/.
То мы все попадет в ранг «хаятелей» классного разработчика.

Впрочем ныне сам на себя «дурь напускает».
Видно ему так нравится.

Владимир

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

Интересно для какого еще рода задач «лапшевидное» программирование будет уместно /скажем разрабатываем API для работы с сетями, 2D, 3D, .../?

На этот вопрос ответа у меня нет.

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

К примеру разрабатывает «втихаря» и фундамент и стены или использует какой-либо готовый

И одновременно несет вот всю эту безграмотную ересь тут на форуме? Тогда это шизофрения.

Впрочем ныне сам на себя «дурь напускает».

Дак известный приём. Чем признать, что сказал глупость и признаться в собственном невежестве, свести все к окровенному фарсу в стиле «ахаха, как я вас затролил, а вы повелись. А на самом-то деле я огого! но не показываю этого, потому что тут гнилая публика»

Видено стотыщ раз. Скучно.

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

Похоже вы правы.
Искренне считает свой подход к разработке правильным.
Надеюсь это просто заблуждение.

Владимир

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

Те, кто пишет софт, от которого зависят жизни людей, с тобой не согласятся.

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

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

И одновременно несет вот всю эту безграмотную ересь тут на форуме? Тогда это шизофрения.

это не шизофрения а совсем другое заболевание: dissociative identity disorder.

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

Вот сменил бы ТС «пластинку», то ему бы и помощь многие оказали.

Владимир

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

Отнюдь не наброс. Просто одно дело, когда аналог SketchUp пишет программист-самородок, и совершенно другое — когда его почти не пишет, но очень громко о нём визжит студент-самодурок. Даже если по терминологии первый не обладает исходными знаниями, то он по крайней мере поймёт, что ему хотят донести. Второй — никогда. Он органически на это неспособен.

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

Есть надежды на то, что пациент этот опыт с таким подходом когда-либо вообще получит?

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