LINUX.ORG.RU

Метапрог-прототип, версия 5

 , ,


1

2

Следующий релиз

Метапрог-прототип, версия 6 + будильник на Метапроге

Скачать:

https://www71.zippyshare.com/v/flBFevsS/file.html

В архив добавлены скомпилированные ехе: теперь прототип Метапрога и Метапрог онлайн можно запустить без LabVIEW, в том числе под линуксом через Wine (скрин: https://ibb.co/0XTVx6F инструкции: Метапрог-прототип, версия 5 (комментарий)).

Из других изменений: решены проблемы с массивами в структурах, исправлено несколько багов, проведена небольшая оптимизация отрисовки. В Метапрог онлайн добавлена автоматическая zip-архивация и деархивация пакетов с диаграммами. Добавлен индикатор прогресса - отображается при заливании и скачивании пакетов, а также при упаковке диаграмм в пакеты в Метапроге.

Из нереализованного - схождение данных из двух и более веток условий. Подробнее:

Метапрог-прототип, версия 4 (комментарий)

Условные схождения будут сделаны уже в 6 версии. Скорее всего, это - последняя нереализованная крупная функция прототипа Метапрога. После ее воплощения планирую начать делать раскрутку/бутстрап/«Метапрог сам на себе» с полной отвязкой от LabVIEW.

Запись интерактивной обучалки и создание сишной вставки для стандартной библиотеки Метапрога

https://streamable.com/rgk86

Выход из записи обучалки (под конец, когда происходит ее сохранение на диск) по кнопке Esc.

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

Предыдущий релиз прототипа:

Метапрог-прототип, версия 4



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

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

Так это у него работа - писать метапрог?

Ато. Так что никаких проблем быть не может.

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

Сейчас он расскажет, как метапрог каждый день забирает компуктер домой с работы )

Даже если забирает, «продукт» создан в нерабочее время на служебном ПАК.

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

Ну учитывая, сколько лет Лабвью и сколько в неё бабок вложили — логично. Но концепция, по скриншотам, по крайней мере, похожая.

hobbit ★★★★★
()

Ну чо, пацаны, 30ю страницу добьём раньше появления следующей версии прототипа?

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

Даже если забирает, «продукт» создан в нерабочее время на служебном ПАК.

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

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

Ну чо, пацаны, 30ю страницу добьём раньше появления следующей версии прототипа?

Если только корпорации не похитят нашего метапрога ( Никитин Максим, для СБУ).

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

Даже если забирает, «продукт» создан в нерабочее время на служебном ПАК.

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

И сам продукт «метапрог» будет считаться собственностью работодателя.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от AntonI

Квадратное уравнение к матану относится примерно так же как собачий вальс к концертам Чайковского.

Ну справедливости ради, по одной из версий «Собачий вальс» написал Шопен…

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

И сам продукт «метапрог» будет считаться собственностью работодателя.

Насколько я понял текст лицензии, то всё созданное в Лабвью по сути является собственностью National Instruments.

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

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

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

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

hobbit ★★★★★
()

Эх, столько всего накатали, поток постов погуще, чем в предыдущих тредах (постов в минуту).

Имхо, обсуждение точных наук в этом треде вне контекста метапрога (как программы, а не личности) - тот ещё генератор флуда.

Я заметил, что почти все активные участники метапрог тредов - хейтеры метапрога (или просто недолюбливают). Большинство тех, кто искренне считает, что у ТСа «что-то да получится» (Владимир-аноним, я, hobbit…) - почитывают треды, но мало пишут, знают, что «чем меньше пишешь в тред на лоре, тем больше времени ТС уделяет метапрогу». Да, котечка исключение - он активный защитник, а не пассивный заинтересованный наблюдатель.

Однако часто критики метапрога выделяют конкретный недостаток реализации ТСа и натягивают сову на глобус экстраполируют на всё визуальное программирование (далее – ВП).

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

Итак, на конкретное решение какого-то уравнения каким-то методом ТСом через ВП ему поставили претензию: фи, какая большая схема, на питоне это в три (четыре, пять, не важно) строки решается. Формулируем проблему: недостаточная выразительность на примере задачи решения уравнения.

Проведём небольшую декомпозицию. Многие без какого-либо понимания любят совать MVC куда попало. Однако здесь такое разделение вполне уместно. Разделяем ЯП на слои: представление, логику и структуры данных (далее - СД). В си представление - текст, логика и СД описаны в стандарте, каждая реализация дополняет своими нюансами реализации. В метапроге представление - диаграмма, логика и СД - взяты у си (как говорит царь - «всё своровал»). Более того, генератор сишного кода писал ТС, значит логика и СД метапрога - подмножество си, которое знает ТС. Назовём представление лицом, а логику + СД – семантикой.

Заявляю, что неудовлетворительная выразительность идёт не от представления (текст или графика), а от семантики этого ЯП. Ведь фраза «ЯП X выразительнее, чем ЯП Y» не кажется нам абсурдной, даже с учётом того, что оба - текстовые.

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

И снова вспоминаю упрёк liksys: «ты лишь дёргаешь готовые кубики, но не в силах сделать свои». Но для этого нужно понимать разницу между low level и high level. Именно глубокое понимание этой разницы составляет основу аргументов царя «этот бенч бенчит не питон/раст/джаву/…, а си» и всё в таком духе, что рвёт шаблоны оппонентам царя.

Но ТС повторяет отнекиваться «не хочу читать талмуды по текстовым ЯП». На уместные возражения, что это применимо к программированию в общем, а не завязано на текстовое представление программы – всё то же шаблонное «в лабвью есть ооп, но я его не использую, раз в создании такой сложной программы, как метапрог, мне это не понадобилось, значит никогда не понадобится». Удивляюсь, как при такой предсказуемости ответов ТСа liksys’у до сих пор не надоело прикалываться над ТСом.

Ща приведу пример, как та же инкапсуляция может помочь для решения проблемы «слишком большие диаграммы».

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

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

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

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

То есть когда человек пишет «Покупай лицензию если лох, если не можешь скачать с торента» это косвенный намёк?

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

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

«Покупай лицензию если лох, если не можешь скачать с торента»

Я в общем то согласен, хоть и имею лицензию на Windows 10 for Workstation (всего 439 $).

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

Однако часто критики метапрога выделяют конкретный недостаток реализации ТСа и натягивают сову на глобус экстраполируют на всё визуальное программирование (далее – ВП).

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

Заявляю, что неудовлетворительная выразительность идёт не от представления (текст или графика), а от семантики этого ЯП.

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

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

Ну так и квадратное уравнение тоже великие математики своего времени первыми решили:-)

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

Более того, генератор сишного кода писал ТС, значит логика и СД метапрога - подмножество си, которое знает ТС.

Я в этом сильно сомневаюсь, и в его модулях есть куча возможностей связанных с си:

  1. LabVIEW C Generator Module
  2. Возможность впинлюрить библиотеку на СИ

Пока нет исходников, всё это вызывает сомнения.

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

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

This. Причем я не утверждаю, что у графического программирования общего назначения вообще нет будущего. Его нет лишь в том виде, в котором оно пыталось взлететь ранее, и в виде прямого отображения императивных алгоритмов. Если помнишь, несколько тредов назад я даже подробно разжевывал ТСу суть этой претензии: для того, чтобы графическое программирование взлетело, нужен абсолютно новый подход, новые концепции, новые абстракции, которые лишь за несколькими графическими фигурами будут скрывать тонны шаблонного кода. Может, что-то вроде графического пролога, только сильно более продвинутого. Может, что-нибудь завязанное на машинлернинг. И когда я спрашивал, какая же идея у ТСа, он отвечал незатейливо: программировать как на Си, но в графике. Думаю, озвучивать выводы будет излишне.

Удивляюсь, как при такой предсказуемости ответов ТСа liksys’у до сих пор не надоело прикалываться над ТСом.

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

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

Не умеет даже в рекурсию, обсуждалось еще в первых темах же.

Исходники давай, там посмотрим что может, а что нет. Что не может можно с боку прикрутить.

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

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

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

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

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

Где? Просто ради интереса, может пропустил.

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

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

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

Хоспаде, как же антиметапрогеры тупят.

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

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

Я очень терпеливый.

Проиграл чет.

А вот котечка, например, у меня забанен

Охотно верю, но отвечать на твою ложь я не перестану конечно же %)

insw
()
Ответ на: комментарий от insw
[del@thinkpad govno]$ file метапрог/масив.ctl 
метапрог/масив.ctl: National Instruments, LabVIEW File,

Исходники в бинарном проприетарном формате под GPL распространяться не могут.

PS масив

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

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

Да и правда бинари одни, ну ничего, найдётся то у кого винда есть и запустит. Если делать нечего будет, накачу триал винду+лабвью в виртуалку, наверняка найдётся много лулзов.

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

Итак, стандартная библиотека является ключевой особенностью любой среды разработки в широком смысле (ЯП + рантайм + компилятор + ОС + либы). Вполне логично, что «какой громоздкий вызов функции» может относиться к критике stdlib ЯП, но не самого ЯП (в чём, кстати, часто плавают оппоненты царя). Вспомнил, когда я давным-давно читал книгу по джаве (я был школьником), в оглавлении нашёл главу – интерфейсы. Я думал, что будут разбирать «как сделать окно, кнопки и т.д.». А оказалось, что это разбор class A implements B. Понадобились месяцы (учитывая, что основные занятия другие), чтобы подсознание и сознание потихоньку поняли, что значит «интерфейс класса/модуля/бибилотеки в широком смысле».

Допустим (я не знаю как на самом деле) Гвидо считал, что работа со строками в си неудобна. Инкапсулировал работу со строками в класс str. Что это значит? Придумал вариант, как одни и те же задачи решать меньшим количеством кода. А весь сишный код скрыл - это детали реализации, если будете дёргать напрямую - будете стрелять себе в ногу и вопить «питон говно, при работе со строками вместо ексепшенов вся программа падает в сегфолт». Собственно именно благодаря инкапсуляции (сокрытии небезопасного кода внутри в частности) (и не только) вообще возможна ситауция «программа кинула exception, заллогировала его и продолжила работу, а не упала с segfault». Любой Васян мог бы очень легко уронить весь браузер (или хотя бы вкладку), js бы хейтили абсолютно все, если бы js не инкапсулировал бы детали реализации.

Смутно помню, как ТС критиковал инкапсуляцию типа «нельзя посмотреть внутрь, нельзя вызывать приватные методы (функции), зачем такие ограничения?». Есть unsafe api (функции, при вызове которых можно легко прострелить себе ногу) и wrappers (обёртки, функции, при вызове которых определённая задача решается быстрее + при их вызове чуть ли не гарантируется, что не прострелишь себе ногу). Сколько же копий сломано на эту тему в растосрачах! Так вот – реальная логика часто реализуется внутри unsafe api, а 95% прикладных программистов вызывают wrappers, которые инкапсулируют unsafe api так, чтобы была «защита от дурака». Однако unsafe api всегда предоставляет бОльшие возможности, необходимые для специфических ТЗ. Я не проверял, но вангую – ВСЕ блоки в лабвью являются обёртками. Иначе бы метапрог падал бы на каждый чих.

Возвращаемся к проблеме «мало выразительности». Её нередко решают инкапсуляцией «многословного апи» во внутренности «лаконичного апи». Например, через паттерн проектирования «фасад». Разберём часть статьи из википедии про него «по косточкам».

Шаблон фасад (англ. Facade) — структурный шаблон проектирования, позволяющий скрыть сложность системы путём сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы.

«структурный шаблон проектирования» – это про структуру объекта. Это связано с «внутренностями» типов данных. Объектом в широком смысле может быть сишный FILE, сишный char*, и, конечно же, любые «свои» типы данных. ТС не отказывается от лабвьюшных «кластеров», делает их через сишные структуры - значит «структурный шаблон проектирования» уже применим к лабвью и метапрогу.

«позволяющий скрыть сложность системы» – «сложность» в программировании - бездонная тема, ограничимся «делается в одну строку, а не 20»/«делается в диаграмму из 3-х блоков, а не 30»

«внешних вызовов к одному объекту» – в широком смысле это может быть любой вызов любой функции. Хоть сишный fwrite, хоть один блок «написать строку в файл» на диаграмме.

«делегирующему их соответствующим объектам системы» – это сложная тема, но творит чудеса – через тот же fwrite можно писать в консоль, в файл на разделе с файловой системой ntfs, ext4, reiserfs, tmpfs… и при этом не заботиться о том, чем на самом деле является этот файл.

Проблема

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

«унифицированный интерфейс» – один fwrite работает с любой фс.

«разрозненных реализаций» – много возможных фс, много возможных бекендов для компилятора, метапрога…

«с подсистемой» – миллион возможных значений слова.

«если нежелательно высокое связывание» – для вызова fwrite нужно делать #include "reiser4fs.h" (явное или неявное) и так для каждой фс в ОС? Нет? Значит избежали высокого связывания. Есть планы портировать метапрог на линукс, винду, андроид и прочее? Надо избежать связывания с библиотеками, специфичными для отдельных платформ (в данном контексте каждая ОС - платформа).

Решение

Определить одну точку взаимодействия с подсистемой — фасадный объект, обеспечивающий общий интерфейс с подсистемой, и возложить на него обязанность по взаимодействию с её компонентами. Фасад — это внешний объект, обеспечивающий единственную точку входа для служб подсистемы. Реализация других компонентов подсистемы закрыта и не видна внешним компонентам. Фасадный объект обеспечивает реализацию GRASP паттерна Устойчивый к изменениям (Protected Variations) с точки зрения защиты от изменений в реализации подсистемы

«Определить одну точку взаимодействия с подсистемой — фасадный объект, обеспечивающий общий интерфейс с подсистемой, и возложить на него обязанность по взаимодействию с её компонентами» – например, явно описать FILE, fopen, fwrite и прочее.

«Реализация других компонентов подсистемы закрыта и не видна внешним компонентам» – при написании fwrite можно не догадываться о существовании файловых систем, отличных от ntfs. Вся реализация тщательно скрыта – инкапсулирована. Не надо миллион инклудов всех возможных фс.

«Фасад — это внешний объект, обеспечивающий единственную точку входа для служб подсистемы» – через один единственный FILE можно работать с любой фс.

«Фасадный объект обеспечивает реализацию GRASP паттерна Устойчивый к изменениям (Protected Variations) с точки зрения защиты от изменений в реализации подсистемы» – разработчики фс, ядра, иксов, вяленого переколбасят весь код, а прикладные программы продолжают также работать даже без перекомпиляции. Но если переколбасить stdlib, с которой у любой программы высокая связанность (например glibc) и не оставить старую версию – конец света, ни один init не запустится, что говорить о прикладухе.

От себя добавлю, что вместо больших подсистем типа фс или библиотек могут быть и банальные функции. В данном контексте блок диаграммы «сохранить диаграмму на диск» – фасад для функций сериализации диаграмм в какие-то форматы и функций записи данных на диск. Чтобы связывать проводами два блока, а не 20. Что является + к выразительности (что для текста, что для диаграмм).

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

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

Для любого ТЗ с помощью паттернов строят хоть какую-то архитектуру, даже неявно (вспоминаем мой тезис про «неявно использует различные вариации паттернов»). И уже потом эту (говно)архитектуру реализовывает на конкретном ЯП (текстовом или визуальном). Даже при дедлайне всегда представляем, что именно будем говнякать в ударном темпе. Паттерны характерны для ЯП текстовых, диаграммных, звуковых, ВРных, пахнущих – это именно семантика, которая в том или ином виде поступет в наши органы чувств.

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

Да и правда бинари одни, ну ничего, найдётся то у кого винда есть и запустит.

Ты можешь прочесть чуть ниже (две строки после ссылки), и узнать что метапрог можно запустить под вайном...

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

Я не хочу ничего запускать, я хочу исходники посмотреть, они же под GPL.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от shpinog

Широкая публика видела исходники, генерируемые метапрогом. У всех facepalm, зато никто не сомневается, что это сделано именно ТСом.

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

Ты можешь прочесть чуть ниже (две строки после ссылки), и узнать что метапрог можно запустить под вайном…

Я могу посмотреть исходники labview(.vi) под метопрогом?

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

Можешь это сам и проверить.

Нет не могу, ибо нужен runtime labwiev. Но даже если бы захотел, последний runtime не устанавливается в wine и падает, так что метапрог издох.

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

Широкая публика видела исходники, генерируемые метапрогом. У всех facepalm, зато никто не сомневается, что это сделано именно ТСом.

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

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

gcc кстати неплохо так это все оптимизирует, лишних переменных не остается.

Очень, очень не плохо ! Целых 40 сисколов, санный hello world !

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

Это ограничение подхода ТСа, а не ВП.

Речь про подход ТСа. Он не может писать удобные обёртки, потому что тогда придётся оборачивать всё, и пункт с доступностью сишных библиотек вылетает в трубу.

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

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

И все же я не из любителей их читать.

Потому что у Вас дислексия?

Потому что я предпочитаю почитать/посмотреть/поиграть что-то поинтереснее. Мир не заканчивается на паттернах ООП и кодстайлах текстовых языков.

Квадратное уравнение к матану относится примерно так же как собачий вальс к концертам Чайковского.

И то и то классика. Да и квадратное уравнение я все же вспомнил.

П. С.: так много написали за вечер, что вряд ли смогу на все ответить.

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

Я играюсь с ардуинами. И да, пока не готов Метапрог - вынужден писать на ардуинном диалекте С++. Удовольствие для мазохиста.

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

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

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

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

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

Ты правда считаешь, что connect — единственная такая функция? Чтобы сделать удобнее, придётся руками переписывать почти что всё. Все функции, которые не являются чистыми. И всё, нет больше преимущества автоматического импортирования существующих библиотек.

Из нх можно наделать более высокоуровневые блоки и уже на них творить по-настоящему.

… а стиля нет. Ты просто пытаешься копировать Си.

Концепция «Си с плюшками» себя оправдывает, спросите у С++ кодеров.

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

Метапрог тоже не дает соединять проводки несоответствующего типа к терминалам.

Если бы ты хотел меньше ограничений, уже давно бы освоил и Си, и ассемблер, и машинные коды.

Для это я и делаю Метапрог.

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

Более сложная система, которая упрощает обращение с Си.

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

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

Это нынешний прототип Метапрога. Но можно и прямо компилировать в машинный код.

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

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

Думаем делать, скорее всего через готовые функции из gcc/clang. Но это позже.

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