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)

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

Он.

Ну так он тоже за редкими исключениями не вылазил, целыми темами обстреливал.

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

Ахах. Меня вот кстати еще очень забавляют люди которые пишут что то в стиле «Я вашу матушку сношал», а потом когда ты им «тыкаешь», они говорят что это ты быдло, потому что надо на вы, а остальное как бы во внимание их не входит.

Deleted
()

я правильно понимаю, что это уже седьмой тред о штуке, которую никто в глаза не видел/тыкал/смотрел код?

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

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

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

Видео с ней есть выше. А likesys и rebforcer не совсем здоровы наверное.

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

Ринат:

Могу (подсказать). Но лучше буду троллить

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

Баба Ликсуся, в первый раз:

Не надо ему давать объяснения, пусть сам все ищет.

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

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

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

Да это хуже прямых оскорблений!

Наверное они в домике.

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

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

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

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

хочешь бесплатных консультаций онлайн, а учиться не настроен

А что тут такого? Я пилю Метапрог, мне нужны подсказки здесь и сейчас. А ты мне что посоветовал? Читать книжки и досконально изучать текстовые языки, не хватало мне забивать мозги всякой ху ерундой.

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

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

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

Дамы и господа, пациент сам дал себе исчерпывающий диагноз.

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

Наконец-то нормально работают циклы!

https://pastebin.com/8LMENrkh

Это та самая диаграмма со старого скрина:

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

Теперь тупиковые ветки (nk_end и «малювання SDL») тоже остаются в теле цикла. Теперь осталось внедрить тот же механизм управления тупиковыми ветками для условий (if, switch) и можно будет приниматься за разработку Метапрога на «самом себе».

А как делать два и больше таких нуклеаровских окошек? Через pthreads, libevent или GIO?

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

Но лучше буду троллить

Чё?!? Ты этот текст правда воспринял на полном серьёзе?

Человек элементарно устал, что ты попытки дать тебе наводку на ответ (на самом деле, это куда более высокоуровневая помощь, чем разжевать и положить в рот) принимаешь за троллинг, и ему оказалось проще сказать «да, я троллю», чем пытаться достучаться до твоего сознания. Ты же по прежнему ничего не понял и сразу схватился за жопопосылатель.

Читай «Как правильно задавать вопросы» Реймонда. Там почти все твои косяки в общении на ЛОРе выведены один к одному. (Хотя я уже догадываюсь...)

Не надо ему давать объяснения, пусть сам все ищет.

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

Дайте человеку рыбу, и он получит пропитание на день, научите его ловить рыбу, и он получит пропитание на всю жизнь. Хочешь в процессе написания Метапрога каждый день клянчить рыбу? Тогда есть некислый шанс, что ты его никогда не напишешь.

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

Консультации консультациям рознь. Консультации нулевого уровня «вот тебе готовый ответ, приходи за следующим» могут сослужить тебе же медвежью услугу: ты не сможешь ни на одном диспуте уверенно объяснить, чем Метапрог лучше текстовых языков, поскольку ты их толком не знаешь.

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

Дайте человеку рыбу, и он получит пропитание на день, научите его ловить рыбу, и он получит пропитание на всю жизнь. Хочешь в процессе написания Метапрога каждый день клянчить рыбу? Тогда есть некислый шанс, что ты его никогда не напишешь.

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

А если для каких-то моментов будет нужно знание Си (или других текстовых языков) - этим будут заниматься специалисты. Я ведь сделаю разработку Метапрога коллективной как только будет готовый редактор диаграмм с функционалом совместной работы над проектами. Тогда вместо спрашивания подсказок на ЛОРе буду уже давать запросы на метапроговские функции, тыкать «маяки» на диаграммах итд итп.

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

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

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

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

А как делать два и больше таких нуклеаровских окошек? Через pthreads, libevent или GIO?

На чём надо писать, чтобы появился исходный код программы на сишке? На питоне, джаве или хаскелле? Такой же уровень абсурда.

Прочесал твой исходник через Ctrl+F «window». Мда. Кажется, окно создаётся не через api нуклеара, а напрямую через sdl:

SDL_Window * metaprog_tratata = SDL_CreateWindow(...);
...
SDL_GL_CreateContext(metaprog_tratata);
.

Потом nuklear «цепляется» к этому окну через вызов nk_sdl_init(metaprog_tratata);. Так что ищи блоки своей диаграммы, где дёргаются эти функции и делай новые окна по этому образцу.

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

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

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

когда я сделаю Метапрог мне уже не нужны будут текстовые языки

если для каких-то моментов будет нужно знание Си (или других текстовых языков) - этим будут заниматься специалисты.

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

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

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

открою тебе секрет. Знание синтаксиса текстового языка это процентов 5 всей разработки. Твоя мегапрога никак не поможет решать задачи, если ты не умеешь их решать. Она не научит тебя алгоритмам или умениям работать со сторонними библиотеками. Ты даже с простейшим примером libevent справится не смог, потому что накосячил с данными.

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

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

А, точно. В нуклеаре нет всяких сложностей с колбеками и event loop. Я уже и забыл как окошко создавал пока пилил циклы:)

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

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

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

Я о сишном бекенде задумался тогда когда Лабвью мне перестало хватать. Пыха, питон и джаваскрипт ничем не лучше Лабвью (лучше по открытости и портированности, но намного хуже по производительности). Опять же, только о сишном о бекенде. Ручками код на Си я почти не пишу, разве что правлю костыли-вставки там где это проще чем вникнуть и переделать на самом Метапроге.

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

Штирлиц как никогда был близок к провалу.

В том виде, в котором делает его ТС, графическое программирование нужно только детям и недоучкам, как и он сам. Зачем нужен недоучка в любом проекте - решительно не ясно.

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

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

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

В том виде, в котором делает его ТС, графическое программирование нужно только детям

детям - нет. Детям нужно что-то типа Scratch. Отличная штука для вникания в алгоритмы.

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

Каких окон? Именно нуклеаровских? Ну добавь еще один nk_begin после первого.

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

Тогда только недоучкам. Учитывая, что недоучки сами по себе не нужны - делаем вывод, что метапрог (человек и пароход) не нужен.

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

Это я сделал даже без гугления и вникания в код.

Но ты написал бред какой то, без обид. %)

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

Боюсь недоучкам тоже сильно специфическим :D Я уже ни раз говорил, что метапрог ничего нового не несет. Это просто рисование текста. То есть недоучки и без него, и с ним не осилят даже строку перевернуть с консоли.

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

Чё?!? Ты этот текст правда воспринял на полном серьёзе?

Он серьезен, правда.

Человек элементарно устал

Не каждый в нашем мире исус.

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

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

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

Так они уже прошли. Остались только те, кто тут развлекается.

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

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

Ты спрашиваешь могу ли я сделать что то, но для начала ответь, сделал ли что нибудь ты?

ЧТД

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

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

Так прикол в том, что я знаю Лабвью и успешно пилю на нем то что мне надо. Даже лабвьюшный прототип Метапрога. И никаких проблем с алгоритмами и сторонними библиотеками (кроме того, что на Лабвью их мало и приходится многое делать с нуля).

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

Ты даже с простейшим примером libevent справится не смог, потому что накосячил с данными.

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

А вообще ты ведешь себя как типичная SJW истеричка, только в сфере разработки.

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

Почему то ты решил, что тебе все вокруг должны.

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

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

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

ЧТД

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

Дык ты же перевел libevent в текстовый вид, какие траблы? Не совсем думаю будет понятно читающим.

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

Это означает, что ты можешь идти на все четыре стороны, кловун. Подразумевается, что без меня. Тебе в твоем спецклассе русский язык совсем не преподавали?

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

А может ты пойдешь? Я уже, кажется, назвал целых два адреса. От Котечки толк проекту есть, в отличие от тебя.

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

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

Никаких он правил не меняет и никому не нужен.

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