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)

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

я на Лабвью делаю весьма сложные программы

Пока что мы увидели два хелловорлда, взятый с гугла квиксорт и так ни разу и не заскриненый метапрог. Doesn’t make your point.

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

Что помешает работать так же в визуальной среде?

То, что VCS плохо дружат с файлами, для которых нельзя провести построчное сравнение.

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

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

Как показали всякие эксперименты ide one и cloud ide по одновременному редактированию одного куска кода, это жутко неудобно. Да даже парное программирование, когда вроде бы сидишь рядом с партнером – уже ужас.

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

А ты мне что за это? Странные люди, только хлеба и зрелищ требовать умеют. Скажи спасибо что вообще пишу сюда и идеями делюсь. Ладно если б еще попросил тот, от кого есть толк проекту (есть тут и такие, например Котечка), а от анонимусов толку около 0. Только модераторам жизнь усложняют, говно тереть за ними.

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

У него будет СВОЯ VCS! на СВОЕЙ бд! Дада, вот прям с релизом...лет через 300

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

Спасибо, что веселите нас всех уже третий тред.

PS: лучше бы вы открыли свой сабреддит и там занимались всем этим делом. Регистрация на реддите – вообще плёвое дело, зато удобнее общаться и фич гораздо больше.

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

и не поспоришь

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

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

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

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

Объясни детям что такое указатели и нуль-терминированные строки. Именно с ними и работают показнные примеры.

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

У вас очень странное определение «достойных». Вам скинули реально используемые дракон и UML, а вы начали плеваться и поливать говном (как обычно). Зато нужный в лабораторках для студентов и паре компаний для настройки оборудования NI лабвью вы почему-то боготворите.

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

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

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

А ты мне что за это? Странные люди, только хлеба и зрелищ требовать умеют.

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

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

https://postimg.cc/xqbqZWBN

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

Вся суть визуального программирования прямо от ТС. Дать схему и объяснить, что на ней изображено.

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

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

Кстати, на Лабвью работают, например, всякие измерительные железки в ЦЕРНе и не только, но я не пиарщик NI, чтобы вам об этом рассказывать.

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

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

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

Скажи спасибо что вообще пишу сюда и идеями делюсь.

лицемерие 80-лвл

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

А сравнить, сколько кода в ЦЕРН текстового и сколько железяк на Лабвью проще вы не пробовали? Всякому инструменту - своё место. Графическое программирование удобно в некоторых нишах, где оно иногда и используется. Вы же пишете универсальный, а посему бесперспективный и бесполезный проект. Найдите ему нишу, и пишите для этой ниши, при этом выкладывая исходники и делясь идеями - и всё будет хорошо.

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

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

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

Объясни детям что такое указатели и нуль-терминированные строки. Именно с ними и работают показнные примеры.

вон hobbit уже рассказывал про LOGO

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

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

Я вот пробовал Лабвью - ужасное тягание туда-сюда мышки, которую я вообще не привык трогать, страшные схемы, светлая тема без возможности её сменить, ну и как вишенка на торте стремные пиктограммы, из которых без документации вообще не понятно, что функция делает.

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

Объясни детям что такое указатели и нуль-терминированные строки. Именно с ними и работают показнные примеры.

Нет, с ними работает сишный компилятор. Ты же просто текст генеришь для него.

Примерно как в жж у одного юзера:

#define НАЧЕЛ      {
#define КОНЧЕЛ     ;}
#define ТИПА       int
#define ВДРУГ      if (
#define ТАДА       )
#define НИХРИНА    else
#define ВЗАД       return
#define КАГДИЛА    (
#define ЙО         ;

Ну а чо, у тебя то же самое. Из стрелок и названий функций в квадратике - сишный код. Никаких новых возможностей не добавляется (твой код в картинках один к одному соответствует сишному).

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

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

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

Я не «пишу» программы. Вообще. Я только собираю схемы.

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

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

TIOBE не показатель. Хотя да, иногда оно может быть и полезно, я не спорю, но точно не для ЯП общего назначения.

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

Нужно самому попробовать то же Лабвью

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

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

Так не работает. Ты описал сейчас write-only код, прямо как есть. Ты пишешь - тебе понятно, остальные читают - не понятно.

А пример отличный, одна функция и та требует пояснений. И даже с ними схема нечитаема. Есть пример сложного проекта, о которых ты тут говорил? Я уверен, привести пример верхнеуровнено представления такого проекта не проблема, ведь все детали будут скрыты.

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

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

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

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

Он небось всё в одной здоровой схеме фигачит. Через две недели уже не вспомнит, как оно работает.

Ты пишешь - тебе понятно, остальные читают - не понятно.

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

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

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

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

там можно будет такое вытворять...

Что даже сам автор потерялся в возможностях :)

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

Я же правильно понял, что у тебя нет опыта реализации, например, северного или десктопного ПО? Сложные проекты это какое-то специализированное ПО или вообще не ПО, для которого Лабвью и придумывали? Может быть какой-то ембебед или типа того?

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

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

Ну куплю я это ваше лабвью. Скиньте уже схему!

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

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

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

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

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

Так это ты втянул, ну ладно, к чему это вообще? Я же просто ответил. Metaprog позволяет оперировать не только текстом, это расширяет само понятие кода!

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

Извини за непонимание, быть может, элементарщины, но попрошу кое-что уточнить.

В общем случае несоответствие аргументов грозит UB.

Что такое UB? Что-то связанное с буфером?

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

Как ты это определил?

Если ты сам будешь вызывать такую функцию, то допустимо передавать в неё любое количество аргументов. Главное, чтобы объявление функции было в том же модуле трансляции. Если функция будет вызываться из другого модуля трансляции, то UB.

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

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

Что такое UB?

Неопределенное поведение

Как ты это определил?

если в скобках для аргументов пусто void func(); то функция может принимать сколько угодно аргументов разных типов. функция которая не принимает аргументов записывается как void func(void);

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

Что такое UB? Что-то связанное с буфером?

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

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

Что такое UB

UB - это когда компилятор имеет право сам решить, что ему делать в данной ситуации, потому что вы написали код, который подпадает под определение Undefined Behaviour (т.е. поведение, не определенное стандартом). Компилятор может например соптимизировать что-то до такой степени, что ваш код перестанет работать.

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

Так это ты втянул, ну ладно, к чему это вообще?

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

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

Что такое UB?

Undefined behavior. https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5.

Как ты это определил?

По виду. void function_name() { } это функция, которая принимает произвольное число аргументов. В Си++ это поменяли, и там это функция, которая не принимает аргументов.

Где задействуется модуль трансляции?

Компилятор за один раз компилирует один файл. Вот этот один файл и есть единица трансляции.

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

Вообще-то за это с автора можно начинать стричь купоны. В ВУЗе (в данном случае скорее в школе, но не важно) учителям платят деньги, а вы бесплатно стараетесь.

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

школьник или в лучшем случае студент первого-второго курсов

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

который не знает вообще ни одного ЯП

Это чувствуется. Однако, я видел, что творят с экселем с инженеры без значения ЯП. Так что, если ТС мастерит в первую очередь для своей работы, может получиться отличный инструмент.

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

Будешь делать metaprog бесплатно?

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

Он небось всё в одной здоровой схеме фигачит. Через две недели уже не вспомнит, как оно работает.

Не совсем так. Около 100 диаграмм разной сложности, но некоторые действительно огромные (зума в интерфейсе действительно не хватает - в играх давно есть, только в Лабвью нет).

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

костыли для автора, чтобы напрямую сишный код не писать (и не учиться)

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

Лабвью меня в этом плане реально спасло.

И еще - я все в своих лабвью-программах могу называть на своем языке, в любом другом текстовом языке - фигушки (только 1С, и то на русском, а не украинском).

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

Я тоже видел, что творят с экселем люди без знания ЯП. Кроме них их творения никому не нужны, потому что в них ничего не понятно. Уже пару раз переносил в скриптецы эксельные таблицы на 15 листов с кучей формул, когда подрабатывал эникеем. Скрипты получались короче, работали быстрее и вроде как были понятны колеегам (но менее удобно было данные вводить, это да)

Довольно схоже с текущим случаем, не находите?

PS: а откуда у вас впечатление про опыт работы? У меня вот ощущение, что человек, имеющий хоть какой-то опыт, не будет сходу обгаживать то, в чём вообще ничего не смыслит.

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

но менее удобно было данные вводить, это да

Так скрипты же можно в самом экселе, разве нет? Там, правда, вижуал бейсик. Но какая разница, скрипты они и в Африке скрипты.

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