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)

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

Т.е. если дятел написал факториал рекурсивно

Факториал должен быть в стандартной библиотеке! Вот отрисовку HTML криво написать нельзя, ее просто вшили.

При том, что современный веб - именно что приложения с тоннами JS.

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

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

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

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

Ввели бы что нибудь вшитое, быстрое, сразу бы на это все перешли.

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

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

Цивилизация построена на этом.

Да, постоянно вижу как мажоры работают, день и ночь на заводе!

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

Вшитое и очень быстрое уже есть - ванильный жс.

Но там ничего нету, как реактивные приложения делать то? А виджеты свои?

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

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

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

Очень просто - берешь и делаешь (c)

Я не против фреймворков как таковых, я против использования фреймворков без понимания того, как они работают. Если у вас реально большое и сложное приложение с кучей функционала и контента и при этом по объективным причинам ему не место на десктопе - пользуйтесь фреймворками, но в разумных пределах. А когда вместо 15 строк джаваскрипта подключается 7 фреймворков с 150МБ зависимостей, получается классическое «200 метров жабаскрипта грузят текста 300 байт»

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

Мажоров очень мало.

Их и не может быть много, как ты себе это вообще представляешь? Всем напечатать ящик денег?

Когда их количество превышает санитарные нормы, происходит революция

Ну это у тебя «Вера в справедливый мир».

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

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

Вот гипотетически программировать станет раз в 10 проще. Куда денутся кодеры?

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

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

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

А когда вместо 15 строк джаваскрипта подключается 7 фреймворков с 150МБ зависимостей

Например?

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

На лабвью работы нет по той же причине, по которой её нет на брейнфаке. По вашей логике на 1С работы быть не должно - там разберется любой бухгалтер за двадцать минут, но 1С-интегратор - довольно высокооплачиваемая (хотя и безперспективная) профессия.

Вот гипотетически программировать станет раз в 10 проще. Куда денутся кодеры?

Сменят профессии на смежные. Как будто раньше такого не происходило.

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

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

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

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

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

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

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

пролетарских революций

Поменяли одних буржуев на других, наес!

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

Ладно, проехали. Я сюда пришел по техническим вопросам.

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

Никуда, что бы написать производительный сервер нужно очень многое знать на низком уровне, как metaprog тут поможет? Знания о устройстве всего на низком уровне нужны будут все равно!

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

Правильно. Программисты-профессионалы никуда не денутся. А вот джава, сишарп и прочие макаки куда пойдут?))

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

Останутся поддерживать текущие проекты, не переписывать же им 1000500 строчек, и сейчас вон есть программисты на COBOL, новых проектов на нем конечно же нет, но старое поддерживать нада!

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

Хорошие программисты уйдут на «лёгкое» программирование, плохие останутся легаси поддерживать. Самые плохие пойдут переучиваться в другую сферу.

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

А затягивает! Есть что обсуждать, не только Метапрог, кстати, но и вообще языки программирования. Узнаю много нового.

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

Зашел бы на сайт, поизучал! Там много чего интересного-хорошего, но сам по себе он конечно же полное нинужно.

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

Идиоты из NI имели десятки лет и целую команду специалистов, но даже не сделали Лабвью «само на себе»!

Если вокруг тебя идиоты, значит ты центровой.

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

Хотя чем то похоже, но там как бы Enum + Структура сразу...

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

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

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

enum из разных типов, с ума сойти! Но лучше все же мои структуры условного выбора типа. Я думаю в Метапроге делать фиксированные списки не толко из целых чисел разной разрядности, но и строк.

Кстати, я вкрутил пронумерованные списки (enum) в Метапрог. Теперь могу выбирать значения:

https://i.postimg.cc/PNGVFNMP/gio.png

metaprog
() автор топика

Третья тема уже скоро закончится. Где обещанный пример HTTP-сервера? Он ещё ожидается?

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

Plasma 4 (где-то раз в месяц)

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

Plasma 5 ранних версий пару раз в месяц

ещё одна бетка

KWin определенной версии сегфолтился при каждом запуске с моей видюхой

ну вы поняли

Kdenlive

ну вы поняли

KDevelop

оно что ещё живо?

https://albert.com/

оно?

А как вы понимаете, что у вас память течет или не течет?

элементарно: если после долгого использования без перезагрузок, памяти всё ещё хватает с избытком, значит, не течёт

Plasma текла через неделю работы нещадно

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

https://doc.rust-lang.org/nomicon/leaking.html

почитаю

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

Спасибо за напоминание и интерес. Еще работы, на самом деле, хватает. Надо сделать ветвления и циклы.

К сожалению, не все идет так быстро, как хотелось бы, но рано или поздно будет.

Кстати, сейчас работаю над указателями на функции, а там уже и до асинхронного сервера недалеко.

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

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

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

Ага! Сервер будет передавать запрос в функцию, а сам цикл (event-loop) будет скрыт от программиста, что в принципе сильно упрощает усе! Хотя можно думаю и свой написать, но зачем?!

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

Зайдём с другой стороны. Ты уже пробовал на своём поделии создавать программы в десяток экранов? В сотню?

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

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

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

Нет. Это будет после переноса кода Метапрога с Лабвью на Си. Но асинхронный сервер, думаю, можно будет еще до того попытаться сделать.

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

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

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

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

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

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