LINUX.ORG.RU

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

 , , ,


2

3

FAQ

0. Где отсутствующие примеры и пункты FAQ? Как вообще читать эти темы?

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

10. Примеры выдают варнинги при компиляции (у кое-кого еще и сегфолтятся)

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

11. Как выглядит факториал в графическом представлении?

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

(пока что на Лабвью)

Примеры

Находятся в прошлых темах. Компилировать исходники нужно так:

gcc ./test.c -o ./test $(pkg-config --cflags --libs gtk+-3.0)

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

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

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

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

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

Прототип чата:

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

Показывалка языка локализации через seltocale (кстати, у кого что показывает?)

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

Прототип чата с прокруткой:

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

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

Удачи повторить это на диаграммах, лол.

Это тип сверхсложный неповторимый проект?

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

Ороро. Говно или не говно, а код на его любимом Си он игнорировать не сможет.

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

Что ж, неплохо. Веб-сервер с функционалом трансляции видео. Ты не пиз пустозвон, как многие другие критиканы, но ничего сверхсложного и неповторимого в этом проекте нет, я простенький веб-сервер на Лабвью делал. Метапрог намного сложнее, но ладно, не будем уж меряться письками сложностью проектов.

И все же, почему Гитхаб, подконтрольный M$, а не, скажем, Sourceforge?

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

C для него всего лишь средство трансляции диаграмм, выбран потому что синтаксис простой и учить много не надо для написания helloworldов, тем более знает он его в лучшем случае наполовину учитывая вопросы про различие между операторами "." и "->". в остальном же это всего лишь текстовый язык неудобный и устаревший не идущий ни в какое сравнение с паутиной линий и квадратиков в будущем графическом метапроге.

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

Как-то так. Из текстовых языков Си самый мне понтный, но даже чтение кода нуклеара тяжеловато мне дается:)

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

Метапрог намного сложнее

Не, не сложнее.

почему Гитхаб

Потому что я не испытываю предубеждений перед коммерческими инструментами и не страдаю фанатзимом.

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

А еще Си выбран потому что ближе всего к машинному коду, на нем куча библиотек, системные вызовы UNIX и вообще самый оптимальный выбор по быстроте, кросплатформености, возможности оптимизации. «Переносимый ассемблер». Ну еще плюс мнение Линуса, что ничего лучше Си нет.

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

Потому что я не испытываю предубеждений перед коммерческими инструментами и не страдаю фанатзимом.

Виндой не пользуешься?

Я кстати, пользуюсь, но только старая добрая ХР на виртуалке для Лабвью (пока не готов Метапрог).

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

Виндой не пользуешься?

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

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

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

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

Многие игори без костылей уже работают на линуксе. Но не все пока что:(

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

Игоры приносят положительные эмоции, очевидно же.

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

я простенький веб-сервер на Лабвью делал.
Метапрог намного сложнее

Лол

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

если работаешь за компом то ещё и отдыхать там же в той же позе это слишком. у нас наконец то наступила хорошая погода почти 30 градусов и дома очень трудно усидеть хотя как назло дел полно по работе и сессия. великая местная «река» протекающая по так называемой «набережной» в центре города, которую каждый год отделывают зачем то вместо того что бы превратить этот вонючий ручей в подземный, практически полностью высохла. на одной из улиц конкретно так прорвало канализацию постройки 1960 года и в неё вроде провалился трактор. зато стадионы и чемпионаты а теперь нюхают говно которым воняет по всей деревне. и всё это говно стекает в русло этого пересохшего ручья и в итоге прямо в центре города протекает ручей с говном. хаха. так что только за город отдыхать. на днях катались на велосипеде в поле целый день. когда я попал домой если бы передо мной поставили стакан мочи я бы выпил залпом)) никакая наркота не даст такого кайфа как выпить 2 литра воды после такой прогулки.

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

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

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

там много текста и совсем нет картинок. думаю автору не понравится.

iluha16 ()

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

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

если бы передо мной поставили стакан мочи я бы выпил залпом))

А если бы был выбор между этим и постоянным программированием на мегапроге в течение оставшегося года?

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

придётся пить, эту паутину мне распутать не под силу

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

придётся пить

только вещества. И чем тяжелее, тем лучше для распутывания.

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

Имхо, в инженерии чего-либо в целом, надо «сначала RTFM, потом делаю», причём очень важно понимать что делаешь.

К тому же я точно также обучаюсь в процессе при написании чего-либо на текстовом ЯП. При работе с лабвью ты точно также задаёшь вопросы про «как сделать это на гтк», по нуклеару. В текстовых ЯП по ходу работы тоже появляются вопросы такого рода.

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

я простенький веб-сервер на Лабвью делал

Между «простеньким веб-сервером» и «production ready веб-сервером с многопоточностью и закрытыми „дырками“ разница настолько огромна, что просто жесть. Метапрог в текущем состоянии явно проще чем этот проект.

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

Кстати, мне далеко не сразу пришли в голову мысли про WebUSB, за который ты так топишь. Ты же вроде игнорируешь огромную проблему экосистемы js - на одного rebforce, который знает что делает и имеет широкий кругозор приходится стая js макак, у которых получается говно, зато ПОЛУЧАЕТСЯ! В руках нормальных людей работа с usb из js может быть полезна (опять же, можно запилить библиотеку на С++ для NodeJS, а не пихать в браузер (гуй в браузере, просто логику на бекенде на локалхосте). А в руках поехавших это жесть: раз есть в хроме, значит есть и в электроне. Мне становится жутко когда я представляю железо, драйвера на которое написано только на электроне (не забываем про наличие проприетарных приложений на электроне). Уж лучше «макака говнячит драйвер на сишке», чем «макака говнячит драйвер на электроне».

Опять же, можно бизнес логику крутить на бекенде, который хоть на clojure, хоть на С++, хоть на реде и использует сишную библиотеку для работы с usb. И интерфейс на js, раз так хочется именно чтобы управлялось через браузер.

Не дай бог нам мира, где для работы мыши и клавиатуры нужен драйвер на электроне, который крутится в фоне! Сишный systemd просто манна небесная по сравнению с таким ужасом!

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

Не дай бог нам мира, где для работы мыши и клавиатуры нужен драйвер на электроне, который крутится в фоне! Сишный systemd просто манна небесная по сравнению с таким ужасом!

Так и будет, если не будет Метапрога, опирающегося на Си или что-то уровнем пониже (LLVM IR, ассемблер, машинный код...). Драйвера мыши и клавы будут жрать по гигабайту и зависеть от electrond, но такие как rebforce скажут, что ничего страшного, ведь это фигня на фоне 64 гб ОЗУ.

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

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

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

Валгринд-то увидит. Вот только если 50 метапроговских функций склеились в один main(), информацию, в какой именно функции из 50 произошла ошибка, я не получу.

А если бы каждая метапроговская функция порождала одноимённую сишную — увидел бы.

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

Вот ползёт по крыше Человек-паук,

Сам себе тихонько улыбаясь...

(не моё)

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

Уж лучше «макака говнячит драйвер на сишке», чем «макака говнячит драйвер на электроне».

не факт. у макаки на C больше шансов испортить память и допустить переполнение каких нибудь буферов. C значительно менее толерантен к делетанству чем js.

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

Драйвера мыши и клавы будут жрать по гигабайту и зависеть от electrond, но такие как rebforce скажут, что ничего страшного, ведь это фигня на фоне 64 гб ОЗУ.

на самом деле это всем выгодно:

- программистам надо производить меньше работы
- производители железа могут бесконечно наживаться на продаже нового мощного железа
- пипл хавает
iluha16 ()
Ответ на: комментарий от arturianec100

Ну в моём случае WebUSB нужен не для того, чтобы его на десктоп пихать, а для реализации той функциональности, которая раньше была шиндовс-онли, вообще для всех (даже для Android-смартов с OTG) без необходимости этим всем что-либо ставить, только доступ к USB-устройству со стороны браузера подтверждать.

Электрон же (в том виде, как он есть сейчас) — как по мне, вообще ошибка эволюции, ибо всё, что он позволяет делать, можно сделать и стандартным хромиумом с вот такой вот здоровенной вязкой флагов командной строки, но при этом просто запустив проект локально в обычном браузере. Где added value, я вас спрашиваю? Те же OWA/PWA-спецификации выглядят куда выигрышнее и не принуждают пользователя с каждым приложением тянуть отдельную копию браузерного движка. Вот за ними и будущее, а костылидзе вроде электрона, надеюсь, отправятся фтопку вслед за Prism, Webian Shell и подобными.

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

В том и суть. Пора ломать этот порочный круг, ИМХО это надо делать через визуальное программирование. А ты как думаешь?

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

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

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

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

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

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

В последнее время single core perfomance с большим трудом наращивают, для реально тяжёлых задач обязательно пилят многопоточность или даже масштабируемые микросервисы. Если даже драйвера буду такими тяжёлыми, то придётся по ядру на каждый процесс грубо говоря. Даже NodeJS с его тотальной асинхронностью однопоточный, я читал истории про 8 инстансов NodeJS одновременно чтобы использовать все ядра. Не уверен насколько это актуально сейчас.

Кстати, в amd ryzen threadripper (это линейка) есть флагман на 32 ядра и 64 потока. Выяснили, что винда (даже серверная) физически не может использовать больше 16 ядер одновременно (захардкодить ТАКОЕ!), а линукс, живущий в том числе на суперкомпьютерах, спокойно использует все ядра как ни в чём не бывало.

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

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

Те же OWA/PWA-спецификации выглядят куда выигрышнее

Сначала надо прорекламировать начальнику эти варианты, рассказать что это быстрее работает, разработка идёт так же, как и для электрона (совместимость на уровне исходного кода) и делать дистрибутив приложения (в смысле как дистрибутив libre office, а не как дистрибутив линукса) так же легко как и в электроне, тогда и могут начать закапывать электрон. Начальнику потому, что его же проталкивают менеджеры, а не здравомыслящие линуксоиды.

Вот только пока у корпораций есть живые большие проекты на електроне (vs code, skypeforlinux) (живые - компания вкладывает кучу ресурсов и получает свой профит в том или ином виде) отправление электрона в топку откладывается надолго.

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

Значит надо заменить vs code и skype опенсорсными альтернативами. Надеюсь, через год Метапрог и метапроговский мессенджер будут готовы к этому.

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

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

Если не трогать стратегию, копирасты могут запилить своё ВП, с электроном и макаками «разрабатываю не на том, что устоялось, а на том, что модно». При желании могут даже сишку испоганить чтобы жрала больше джавы. Именно поэтому «бардак в голове - корень всех зол».

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

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

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

Значит надо заменить

Мысль другая. У них давно куча опенсорсных альтернатив. M$ вкладывает бабло в эти программы - вкладывает бабло в «долгой жизни электрону». Социальная инженерия.

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

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

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

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

Даже виде есть альтернатива в виде Линукса. Им не пользуются не только из-за тотальной рекламы винды. Еще и из-за засилия консоли, о чем я не раз писал. Классическая винда (хр, 7) по гую на голову выше Линукса. Вот прекратят поддержку 7, перестанет новый софт и новое железо на ней работать - обязательно будут те, кто не захочет хавать говно (10) и перейдут на Линукс.

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

Дети спокойно ориентируются в Scratch. Unreal Engine Blueprints тоже зашли огромной толпе народа. Не суди о визуальном программировании только по работам ТСа.

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

Те, кто плюётся от десятки, УЖЕ перешли на мак или линукс, а если не перейдут - есть якори, из-за которых будут жрать говно через «не хочу». Все новые процы уже только под вынь 10 или юниксы (mac,linux,bsd...)

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

тотальной рекламы винды

А ещё инерция, «привык» и «почти не сижу за компом, мне пофиг».

Вот у бабушки внук виндузятник - она сидит на винде, внук линуксоид - она сидит на линуксе (лично ставил знакомой бабушке линукс на комп для телика. За год обратилась за помощью только 1 раз. Проблему решил заменой батареек в клавиатуре. У неё же есть и обычный ПК с виндой. Брат-игроман часто ходит и чистит от вирусни. Я с линуксом разучился бороться с вируснёй).

arturianec100 ()
Ограничение на отправку комментариев: