LINUX.ORG.RU

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

 , , ,


3

6

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

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

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

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

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

Чисто технические. По Си, библиотекам итп. А поучать не по делу - «не учите меня жить, лучше помогите материально».

Примеры

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

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

Собственная метапроговская функция

Метапрог не только умеет вызывать сишные функции, но на нем можно и свои делать. Функция для открытия слушателя (listener) на нужном адресе и порте и ее схема:

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

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

У функции есть своя пиктограмма.

Открытие окошка

Этот пример открывает окно. Там же есть асинхронный вызов (на завершение):

https://i.postimg.cc/zGhHKQNv/image.png

Инициализация (отдельная функция, инлайнится еще на уровне метапрога в главную диаграмму):

https://i.postimg.cc/JnpsRVN6/image.png

Асинхронная функция на завершение:

https://i.postimg.cc/WpfdKVbt/image.png

Все это генерирует такой код (опять же - не для эстетов, а для скармливания gcc):

https://pastebin.com/T3Bu5Qy6



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

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

Это еще не самое главное. Мне больше взрывает мозг ООП в гтк. Хотя асинхронные вызовы - это все же плюс.

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

Упс, не ответил

Да, видел как течёт, но пока не видел, как падает.

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

А где мои исходники в твоем репе?

В *твоем* репе.

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

Есть там один ваш исходник, с универсальной заменой линкед листу. А шлак, который генерирует ваша поделка, я не хочу вставлять в этот сборник веселья. Оно заслуживает отдельного репозитория. Хотя, наверное, вставлю парочку примеров «как не надо делать» в виде отдельных файлов.

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

Мне больше взрывает мозг ООП в гтк.

Программирование - инженерная профессия. Без фундаментальных знаний сядешь в лужу.

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

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

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

Может и переделаем, если захочется. После релиза.

Все же 30 мегабайт - ерунда против куда большего выжирания памяти моим прототипом в Лабвью. Он запросто жрет гигабайт из-за массивов с номерами кликабельных объектов, номерами линий итп, а все из-за отсутствия графического ускорения (без выжирания оперативки оно бы лагало до невозможности).

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

Если вам нужно графическое ускорение для IDE, пускай даже со стрелочками и линиями вместо текста, у меня для вас очень плохие новости. Не просто так вам советовали теорию подтянуть.

Ну а гигабайт памяти – это ерунда, вон на Java приложения почти столько же кушаю~OH SHI

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

Ну и в чем эти плохие новости? Гтк его не поддерживает что ли?

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

Все равно понадобятся диалоги открытия или закрытия файла, а тут без gtk никак! Gtk3 относительно много кушает, но альтернатив то особо и нет.

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

В юникс хейтер хендбук жаловались что в 80х часы на xlib кушали 2мб памяти.)

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

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

И вот только что:

Я понял почему глазки в XFCE жрут 30 мегабайт оперативной памяти. Потому что мой хеллоуворлд с лейблом на Метапроге жрет столько же.

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

Да, это просто по сути первая по-настоящему здравая мысль ОП за три треда. Именно поэтому она в цитатнике – это как пикантная вишенка на тортике.

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

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

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

Тут уже мои цитаты собирают, хотя я даже не плачу за это. Даже еще не будучи знаменитостью уровня Линуса Торвальдса:)

А насчет скатывания программирования в гумантиарщину кое-что вспомнилось:

https://habr.com/ru/post/442112/

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

Что там будет под капотом, ни одна живая душа уже не поймет. Команда «хреновина» интерпретируется в абзац с описанием, который интерпретируется в ключевые слова, который интерпретируется в набор векторных обозначений, который интерпретируется в какой-нибудь С, который скомпилируется в…

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

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

Просто я задумался — а не стали ли наши ЯПы уже чем-то таким? Чуть более умным эквивалентом фразы «компьютер, сделай хреновину». Кучей формализованных протоколов для электричества, про которое мы уже забыть забыли. Штукой, которая все сильнее рвет нашу связь с механической реальностью.

Я часто слышу фразу: «Фил, отступись, хватит думать обо всякой чепухе». Но блин, будь проклят тот день, когда на Хабре напишут «хватит думать».

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

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

Просто я задумался — а не стали ли наши ЯПы уже чем-то таким?

Давно, даже ассемблер ненастоящий, внутри x86 процессоров другой процессор.

Но блин, будь проклят тот день, когда на Хабре напишут «хватит думать».

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

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

В Метапроге (и в Лабвью) думать надо еще как, а делать - еще больше. Но думать и делать по делу, а не учить языки и как оно пишется в тексте.

Вот сейчас мудрю как все будет с рисованием в cairo. Перерисовка при каждом обновлении экрана не будет для него проблемой?

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

Вроде бы signal draw вызывает только когда нужно перерисовать окно системе, а просто так 60 раз в секунду оно не вызывается, надо вроде что то добавлять для этого, ну это легко все поправить потом.

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

Мне нравится цитата из мультсериала «Angry Beavers» (у нас шёл под именем «Крутые бобры»). Там один из персонажей изрекает:

не стоит бегать, если не видишь, куда бежать

Если её рассматривать в отдельности, достаточно ёмкая мысль. Заставляет задуматься.

Но в самом сериале никакой глубины не вкладывалось. Просто комедия с элементами абсурда.

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

внутри x86 процессоров другой процессор

На самом деле, внутри x86 — x87!

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

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

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

и с тобой мы вроде тоже неплохо беседу вели

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

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

Алиса Яндексовна так уже работает. Правда, набор команд ограничен. :)

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

Да шо уж там, ELISA именно так и работала! Только набор команд ограничен.

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

Где-то месяца через два-три все эти темы удалят. Сейчас не удаляют, потому что нужен какой-то полигон для петросянства.

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

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

Мне жаль вас разочаровывать, но это не программирование.

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

Всегда будет необходимость «поднять капот» и «поработать напильником».

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

Месяца через два-три уже и релиз альфы надеюсь успеть.

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

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

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

Программистами станут лощеные гуманитарии с «высокими вербальными способностями, коммуникативными навыками и умением быть няшей в команде»

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

q0tw4 ★★★★
()

Кто-нибудь уже спрашивал уже?

Ты бородат?

i-rinat ★★★★★
()

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

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

Как ворд хуже текса, а окна хуже командной строки.

Тем не менее, в эпоху копроэкономики побеждают именно ворд и окна. :(

Поэтому я не исключаю, что что-то, похожее на продавливаемое автором, тоже в итоге победит. Правда, вряд ли именно в авторском исполнении — он сам себе вредит наивной логикой «я хочу своим Z заменить X и Y, но изучать X и Y не буду, ведь через два месяца у меня уже будет Z». Вытеснение с рынка делается не так. :)

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

Определите «статический анализатор» и «тайпчекер». В языках с сильными типами они настолько близки, что грань стирается.

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

Окна хуже командной строки

2019 год на дворе! Это стеб такой?))

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

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

Линуск должен стать намного удобнее винды во всем! Тогда на него и пересядут.

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

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

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