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

Ну и чего такого критически важного я не знаю?

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

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

Разработке Метапрога мое незнание не особо-то и мешает. А когда мешает - можно спросить на ЛОРе.

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

Вот тебе твое ООП

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

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

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

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

если ты не знала

О, пробито новое дно. Попытка сменить пол собеседника на женский, думая, что это оскорбление. Все чудесатее и чудесатее!

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

Ничего что я задал вопрос по ООП и готов учиться? Но не выходя из ЛОРа и на русском или украинском. Желательно кратко.

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

Какие проблемы ООП решает и какие создает вместо них?

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

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

почему кто-то тут должен на тебя безвозмездно тратить своё время? в век интернета, когда вся информация для ответов на твои вопросы доступна и гуглится за секунды? и с чего вдруг ты решил учиться, если совсем недавно говорил, что тебе это не нужно, а нужно писать софт?

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

Разработке Метапрога мое незнание не особо-то и мешает

Еще как мешает. За два месяца осилить только циклы и полтора примерчика - это рекорд. Я за два месяца сделал на коленке железку для прототипа IP-KVM, выучил JS, написал на нем вебгуй, бекенд на питоне, сервер для кодирования видео на сях и инструмент для сборки оси на мейкфайлов. Вот это - пример нормально потраченного времени. А ты только срешься и в стрелочки вдупляешь.

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

с каких пор это оскорбление? душа агендерна!

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

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

готов учиться

ХА-ХА-ХА-ХА-ХА-ХА-ХА-ХА-ХА-ХА-ХА-ХА

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

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

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

Ну так Метапрог пилил бы после работы

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

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

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

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

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

а сессия и подготовка к пересдаче в сентябре (с таким то отношением к чтению текстов и учитывая отсутствие «интерактивных обучалок» вряд ли без этого обойдётся)

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

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

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

Биткоин-кошельки публичны. Ноль. Но много «донатов» в виде подсказок и полезных советов, в основном от Котечки (но и от других тоже по мелочи). Популярность и потенциальные девелоперы. В общем, темы на ЛОРе себя оправдывают.

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

И все преодолевается

Конечно. Правда, только при умении и желании самому работать с информацией. А у тебя нет ни того, ни другого.

Ноль

Что и требовалось доказать.

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

Да ладно, он и так помогает подсказками.

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

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

Веб-морда пишется на JS/HTML/CSS без альтернатив - ну, кроме надстроек над ним, которые я не брал, потому что ES6 вполне самодостаточен и я хотел сделать код, отдаваемый клиенту, читабельным глазами.

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

Си нужен там, где питона недостаточно, нужна максимально возможная производительность и микросекундная точность. Единственная альтернатива тут C++ или Rust. Первый не добавлял в моих задачах ничего, чего я бы не мог сделать на Си, а второй недостаточно зрел.

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

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

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

накой черт метапрог, если ты* владеешь Си?

* Абстрактный «ты», понятно, что конкретно ты ничем не владеешь.

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

Расскажи-ка лучше

Расскажи-ка лучше что ты под этим подразумеваешь? Уже давно понятно, что у тебя какие-то свои особые термины, которые никто кроме тебя не понимает

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

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

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

и имена типов и функций.

Даааа, поэтому ты предлагаешь их рисовать. Тебе уже 100 раз сказали, что ничего нового ты не придумал. Ты придумал НАРИСОВАТЬ код, который можно написать. Причем быстрее в разы.

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

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

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

Что такое версионный тип, тукан? Версионность может быть у данных. И даже версионнасть может делиться на типы, но это не версионные типы. А как насичет ПОДтипов, а? Метапрог так может? Нет? Тогда это полное фуфло и должно быть закопано.

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