LINUX.ORG.RU

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

 , , ,


2

3

Не нравится - проходите мимо. Нравится - помогайте проекту.

Дополнительно:

Структуры условного выбора типа

Примеры

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

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

Структура

Структура GtkWidgetClass с кучей членов-указателей на функции:

https://i.postimg.cc/bwTrb1r1/2.png

Слева - члены структуры, справа - подсказки к выходам структуры, всплывшие при наведение мышью. Там можно прочитать имена членов структуры. Здесь я буду брать прототипы для функций, вызываемых по перечисленным событиям (фишка gtk+).

Да, большая и на экран не вмещается. После релиза эта проблема будет решаться перемещением видового экрана по диаграмме и зумом (как в играх-стратегиях или при просмотре фоток под зумом).

Она же в текстовом виде: https://pastebin.com/TeTsSMQz



Последнее исправление: CYB3R (всего исправлений: 12)

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

Короче

Тут нужно еще обсуждение на страницу))

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

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

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

А вдруг? Или видео-плеер, как его на imgui сделать то? Вот в Gtk кинул виджет GtkVideo на форму и играй себе!

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

Вот эту часть из C++ брать точно не стоит. Огромная часть утечек и сегфолтов именно из-за этого дурацкого полу-ручного управления памятью.

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

Gopher

Как там, в 90-ых?

почему ты сидишь тут

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

там же только текст, как ты любишь. Никаких картинок!

Я нигде такого не говорил. Видимо шизофрения не только у автора темы.

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

Как там, в 90-ых?

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

Я нигде такого не говорил. Видимо шизофрения не только у автора темы.

Но ты же говоришь что текст хуже текста с картинками.

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

Мне нравилась версия из прошлого треда! Где я был учитель киевского лабвиевского университета.

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

Тут собрались просто обычные программисты и вы. У меня математика не то что не профессия - я её с вуза уже почти забыл :)

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

А вы меня как то принижаете зато, сомневаетесь в моей личности!

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

Но ты же говоришь что текст хуже текста с картинками.

Ладно, сделаем скидку на твой уровень интеллекта. Это был переделанный бородатый анекдот.
А ты думаешь до метапрога не было похожих языков? Были и есть. Но никому не нужны. Про причине убогости самой концепции. Детали вторичны.

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

Ладно, сделаем скидку на твой уровень интеллекта.

Но это же ты глупый, уже 100 раз обсудили почему другие языки с графикой не взлетели, они были совсем другие, ну прям СОВСЕМ, это как говорить что если ассемблер под PDP-11 не взлетел (знаю что взлетел), то и JavaScript не взлетит.

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

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

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

(потому что оба это текстовые языки!)

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

зачем делать программу, если можно на тулкитах (которые будут заюзаны в этой будущей программе) сделать gui, без этой будущей программы, в чем смысл?

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

ОП делает аналог LabVIEW (но совсем другой!), вот он будет на gtk3, а ты о еще каких то программах, подпиши что есть что, так будет понятнее...

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

Вообще не в тему, лол. Аналогов нет!

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

Ты просто не хочешь воспринимать новое! Отвлекись от компьютера, поразмышляй над этим!

И все? Пффф...а я ждал развернутой аргументации.

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

Две личности в теле - двойная сила, двойная мощь! ШУЕ! Про рептилойдов еще что нибудь придумайте.

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

Про рептилойдов еще что нибудь придумайте.

Ну шизофрения-то не у меня.

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

Автоматического free не будет. Но в интерфейсе создания диаграмм будут предупреждения об утечках памяти.

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

зачем аналог, если есть LabVIEW? Я как понял он хотел визуализировать создание gui для Си. Так зачем тогда gtk,goobject и т.д, в чем фишка?

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

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

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

Деструктор может содержаться в функции, которая использует массив и free его за ненадобностью. Но есть и случаи когда все не так просто, работающих с массивом функций много и free надо ставить вручную.

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

зачем аналог, если есть LabVIEW?

Он закрытый и ограниченный!

Я как понял он хотел визуализировать создание gui для С

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

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

Графическое представление полезно

1. когда нужно объяснить концепцию работы кода, какой-то аспект или абстракцию. Но не весь код! т.е. в этом случае от представления никто не ждет точности. Главное - описать идею Детали, Штирлиц, додумайте сами (С). В этом случае графически могут быть использованы любые «концепты»: Data Flow, Work Flow, State Transition, Connectivity и еще Бог знает что, что можно в графы уложить и будет иметь наиболее простой вид. Т.е. это еще не код (или уже не код). Нарисовали (руками), посмотрели, поняли, можно выбрасывать

2. Анализ структур данных или связей. Генерируется из чего-то существующего дабы использовать граф для выявления какой-то лишней связности, зависимостей или их отсутствия, выявления кластеров и пр. анализа, на который способны графовые алгоритмы. Также. ОДин раз нарисовали (автоматом), посмотрели, поняли, можно выбрасывать.

3. Нишевые (не претендующие на полноту) визуальные представления «лапши» для (радио-)любителей схемотехники (аудио, видео, любой процессинг — PD, Faust, Blender, LabView,...). Там signal/data flow вполне органичен, юзабелен. Полнота специально обрезана ради выразительности 99% кейсов. Там не нужны указатели на функции и, тем более, рекурсия и лямбды. Тут граф живет долгой жизнью. но построение Diff-а графа затруднено (для VCS). Много академических статей на эту тему, но нигде красивого решения я не видел. Может подскажете.

4. Детские языки программирования типа Scratch. С этим все ясно. Полнота есть, но юзабельность для большого кода страдает. Используются как трамплин в «текстовые» языки.

5. Параллельное представление кода в виде графа по мере написания текста программы (Видел такое для ДРАКОНа). Мне лично польза не ясна. Граф растягивается по вертикали при росте кода и наглядность тут же теряется. Граф же рисуется ради наглядности, а не ради графа, а кода больше на экране помещается.

Автор, оставь затею. Если тебе LabView поможет Си изучить и углубиться серьезно в программирование и вообще в CS, то возможно, имеет смысл продолжать. А лучше, потрать время на учебу. У тебя впереди еще минимум 8 лет образования. Прочитай для начала Бытие. Хотя-бы до вавилона.

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

Очень интересна реализация определения утечек

Особенно несколько страниц назад его спросили про valgrind. Он сказал что не знает что это. :)

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

free в функциях это зло, я вот думал как в C++, если переменная больше не используется то там автоматически компилятор вставляет free, ну я просто объясняю, там система сложнее, надо сделать возможность напрограммировать расширение для metaprog, помечаешь переменную и она в конце функции удаляется... А может и не надо это, ладно, потом.

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

Прочитай для начала Бытие

Вместо этого у него есть книжка Just For Fun)) 21 век...

Графическое представление полезно

Точка!

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

free в функциях это зло

Исключение это специальные функции, типа g_socket_close(GSocket*) которая удаляет структуру и все что у нее внутри!

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

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

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