LINUX.ORG.RU

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

 , , ,


4

3

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

FAQ

1. Где скачать?

Релиза еще не было. Идет разработка, темы посвящены ей. Есть сделанный на LabVIEW прототип (его работа показана в примерах).

2. Почему не открыт код LabVIEW-прототипа Метапрога?

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

3. Почему не Дракон, MIT App Inventor, Unreal Blueprints?

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

4. Чем плохи LabVIEW или MyOpenLab?

LabVIEW пропиетарный, а MyOpenLab - хоть и опенсорсный, но какой-то недоделанный (пытался у себя запустить - выдало джава эксепшоны). Да-да, опенсорсный «клон» LabVIEW написанный на джаве! LabVIEW хотя бы на C++, а это все же меньшее зло. Обе эти системы даже не сделаны «сами на себе» в графике. Они даже не пытаются претендовать на универсальную замену всем текстовым языкам, хотя LabVIEW могло бы, если бы не тупость копирастов. Эти системы написаны на текстовых языках, их код (даже если б LabVIEW был опенсорсным) невозможно редактировать, ни разу не обращаясь к текстовым языкам. Метапрог изначально предполагает полный отрыв от текста и текстовых языков, за исключением Си как бэкенда. И то пользователям никогда не придется иметь дело с текстовым Си за исключением блоков сишных вставок (для особых случаев типа арифметических операций, ассемблерных вставок итп).

5. Почему как бэкенд выбран именно Си?

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

6. В Си указатели и ручное управление памятью. Это же так сложно!

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

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

Пункт 6 касается разработки программ, то есть исполняемых файлов и библиотек. Для задач типа браузерных/игровых скриптов, разумеется, будут свои подмножества Метапрога без указателей.

8. Почему в Метапроге будут предпочитаться бинарные форматы и чем это лучше?

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

http://zone.ni.com/reference/en-XX/help/371361R-01/glang/flatten_to_string/

http://zone.ni.com/reference/en-XX/help/371361R-01/glang/unflatten_from_string/

Что-то подобное будет и в Метапроге. При открытом коде никаких сложностей с чтением бинарных файлов не будет.

9. А как будет обеспечиваться совместимость со старыми файлами, сетевыми протоколами итп, если будет изменен тип?

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

Примеры

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

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

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

Прокручиваемая и выделяемая строка с автопереносом

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

https://pastebin.com/SWJJwvvC

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

Скрины подфункций в следующем примере.

Тот же пример, но покрасивее

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

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

На сей раз не поленюсь сделать скрины и объяснить их суть.

В подфункциях есть три вида контейнеров с данными: константа (стала, constant), контроль и индикатор (сверху вниз):

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

Значение константы задается прямо в диаграмме. В Си константа превращается в объявление переменной с инициализатором. Контроли и индикаторы в теле подфункции превращаются в терминалы, к которым можно подключаться в «вызывающей» функции.

Сама подфункция «главное окно»:

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

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

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

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

Подфункция для подцепки асинхронных функций:

https://i.postimg.cc/3r0rYVCS/image.png

Добавить объект в контейнер:

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

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

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

Делаем лейбл (и любой другой нужный виджет) прокручиваемым:

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

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

https://pastebin.com/16bq1Jbs

Этот код делает ровно то же самое, что и предыдущий, а различия - чисто косметические, связанные с уборкой функции под капот и некоторыми доработками транслятора диаграмм в Си.

Каст типов и тактическая победа над нуль-терминированными строками

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

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

Беззнаковое 32-битное, означающее размер массива (темно-синий провод) кастуется в знаковое 32-битное (светло-синие провода и пустая константа, задающая тип). Функция gtk_text_buffer_set_text в качестве размера строки берет беззнаковое, а не знаковое, как принято - видимо, чтобы через "-1" говорить, что строка нуль-терминированная. Но из-за этого вместо 4 гб строки туда можно подать лишь 2 гб - аж в 2 раза меншье! Что за люди?

Тем не менее, с нуль-терминированными функциями в текстовых полях покончено - и это победа!

https://pastebin.com/hQRMSZ1s

Также там был изменен текст. В остальном пример соответствует скринам выше.

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

И, кстати, больше никакого ручного проставления всяких скобок, «;» и прочих текстовых разделителей.

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

Кстати про типы: вы же сами хвастались про (void*) и всё такое – значит ли это, что указателями можно будет жонглировать по полной? Если да, то привет сотням ошибок, которых не будет видно в диаграммах.

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

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

Да, так же как в чистом Си. Я не хочу каким-либо образом обрезать его возможности в графическом Метапроге. Если же в каких-то ситуациях неопределенные указатели (или вообще указатели) не нужны - можно будет выделить специальное подмножество Метапрога.

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

Почему не видно? Неопределенные указатели можно специально подсвечивать, если надо.

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

Так-то миникс сейчас очень популярная ОС, с вероятностью 40-50% она прямо сейчас запущена у вас на ПК

Мертвым грузом в Intel ME? :D

RedEyedMan4 ★★★★★ ()

Как оно вообще все работает? Непонятно же ни хрена. Посмотрел образец Hello, world. Если print('Hello, world!') занимает столько места, то что будет с более-менее сложными вещами? Чем группировка блок-схем в одну мегасхему лучше классов и модулей? Все равно на этапе разработки архитектуры более-менее сложных вещей нужно схемы рисовать. Но в коде они зачем нужны-то? Вы утверждаете, что разработка будет доступна даже тем, кто с программированием на Вы. Но такой человек, если он понимает английский, может просто открыть исходный код и прочитать текст! Я, например, не знаю, как ведется работа с операторами и указателями на C. Но я могу понять, что делает код хотя бы просто по названию функции. Блок-схема алгоритмов, безусловно, полезна. А блок-схема кода мне что даст? Что вообще такое 18, 68, 632? Схемы электрической цепи напоминает. Уж лучше псевдокод тогда.

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

Ага, в качестве прошивки для шпионского зонда. Таненбаум, наверное, бьется в экстазе. xD Кстати, BSD лицензия-то, насколько я понял, не нарушена. Поэтому смело пихайте чужой BSD-код в свой проприетарный зонд. И имя автора указать не забудьте :) А GPL v.3, кстати, тивоизацию не допускает.

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

В ООП, судя по всему, такой же оверхед по передаче данных между объектами.

В общем случае — ерунда. Точнее, зависит от реализации. В C++ класс как таковой - это всего лишь структура, у которой класс видимости по умолчанию не public, а private. Обычная структура. Если есть виртуальные функции, то как тебе уже объяснили, добавляется таблица виртуальных методов, т.е. прямой вызов функции заменяется косвенными. Это сущие копейки.

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

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

И как тебе уже писали, в том же Linux используется ООП, смоделированное на чистом Си. :)

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

в графических диаграммах ошибки и какие-то недоделки гораздо более очевидны, чем в стене текста.

А вот это пока — твоё частное мнение, которое ещё предстоит доказать опытом на проектах хотя бы чуть-чуть сложнее калькулятора. Я вот пока считаю, что в диаграмме этих проводков гораздо проще, чем в тексте, навертеть так, что сам чёрт ногу сломит. Тебе ниже написали:

Если print('Hello, world!') занимает столько места, то что будет с более-менее сложными вещами?

Подумай об этом.

hobbit ★★★★★ ()

Свежий взгляд

Вчера мы с коллегой готовились встречать ночь перед 7 мая, слегка выпили, и я рассказал ему про Метапрог (коллега на ЛОР не ходит, хотя Linux Mint пользуется). Он подумал и выдал два тезиса:

1) в принципе идея вполне жизнеспособная, есть же всякие электрические и прочие схемы, почему бы не быть схемам для программирования;

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

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

P.S. При этом на работе человек пишет вообще на дельфях. :) Тем не менее, его мнение в каких-то местах оказалось довольно близко к тому, что тут говорил любитель Ребола.

Подумай.

hobbit ★★★★★ ()
Ответ на: Свежий взгляд от hobbit

О чем я и пишу уже три треда – автор не слушает, ему только сишечка нужна. Вот ФП ложится на схемки очень хорошо, не зря же эрланговцы развлекаются ГП.

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

Что такое «прототип»? proof-of-concept? Так тогда его можно показать уже, судя по обсуждению. Чтобы люди могли потыкать и сказать, что можно улучшить.

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

Возьмём абстрактного программиста. Например меня. Ты — лидер проекта, но не посмотрев на код metaprog-а я не могу составить своё мнение о том, готов ли я присоединиться к разработке. Я не могу составить своё мнение ни о тебе, ни о реальной полезности и нужности проекта лично мне. Как устроена архитектура? Я не знаю, пока не увижу код. А доверять людям на слово я не привык. Скинуть денег? Ну так аналогичная ситуация. Где гарантия, что ты доведёшь дело до конца?

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

ОК, будет bootstrapping. Но почему не показать проект до? ОК, вариант «компилятора» на LabView будет заброшен, но это никак не объясняет почему нельзя показать код сейчас, разве нет? Кому надо, тот поставит себе LabView и посмотрит. Если его устроит, он начнёт тебе помогать и дело пойдёт намного быстрее. Да и дельных советов прибавиться.

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

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

Если это троллинг — то я буду аплодировать стоя.

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

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

Ну судя по тому какую ахинею он несет(аж цитатник уже есть) это - единственное объяснение. Либо продолжение весеннего обострения.

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

Я исхожу из чисто практических соображений. Что я смогу с Haskell/Erlang того, чего не могу на Лабвью? Не думаю, что многое. А с сишечкой я смогу и юзерспейс, и ядро, и модули ядра, и драйвера, и ардуины и прочие микроконтроллеры.

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

Докажи намерение контрибутить - открою. Не докажешь - жди раскрутки и после нее присоединяйся. Надеюсь к середине-концу лета успеть сделать прототип Метапрога «сам на себе».

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

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

Ты же понимаешь, что «докажи намерение — открою» — это не ответ на вопрос «Почему не открыть?»

потенциальных лабвью-контрибуторов тут не видно

Не думал, что это потому, что исходники закрыты?

еще их учить надо

  1. Код же визуальный, по твоим же словам, понятен легко.
  2. При нормальной архитектуре проекта в текстовых языках можно разобраться с кодом без сторонней помощи, просто изучив код. Как, тогда, дела с визуальным, если нужно проводить обучение?
  3. А сам LabView кому надо подтянет, даже если на момент появления желания не умел, не думал об этом?
Quickern ()
Последнее исправление: Quickern (всего исправлений: 1)
Ответ на: комментарий от denton

print('Hello, world!') занимает столько места

Там функция fwrite, а не printf, к ней подходит аж 4 аргумента. К тому же, один из примеров пишет еще и в файл. В текстовом исполнении она была бы не меньше.

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

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

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

Блок-схема алгоритмов, безусловно, полезна. А блок-схема кода мне что даст?

Код в графическом, а не текстовом представлении.

Что вообще такое 18, 68, 632?

Где ты выдрал «18» непонятно, б8=беззнаковое 8-битное, б32=безннаковое 32-битное.

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

У тебя есть Лабвью? Ты его намерен купить или спиратить? Насколько ты им владеешь?

Ответ на твой вопрос: пока что не считаю нужным открывать код лабвьюшного прототипа. Почему - не вижу смысла.

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

У тебя есть Лабвью? Ты его намерен купить или спиратить?

Общее рассуждение следующее: для просмотра кода хватит триалки. А дальше вопрос только в том, что я описал выше. Купить — не большая проблема.

Насколько ты им владеешь?

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

Почему - не вижу смысла.

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

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

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

Українською мовою володієш? На русский переводить прототип не буду, а мультиязычных названий в Лабвью нет.

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

Еще кто-то готов поставить Лабвью ради работы над Метапрогом?

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

П. С.: для работы лабвьюшного прототипа есть несколько специфических требований. Винда на виртуалке и Линукс на основной машине. Виртуалка с виндой (начиная от хр) есть? Еще нужно именно LabVIEW 2013, не больше и не меньше. Не больше, так как для предыдущих версий Лабвью сохранять умеет плохо.

Стоит ли игра свеч? Есть ли здесь люди, готовые заморачиваться с Лабвью или лучше самому все доделать?

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

П.П.С.: те черти три шкуры дерут за Лабвью, почти 400 баксов за год базовой подписки. Кстати, в базовой версии есть только поддержка винды, за умение работать на линуксе плати 3-5 тысяч баксов. И только 2018, выбрать 2013 нельзя. Так что кроме торрентов вариантов нет.

http://www.ni.com/en-us/shop/labview/select-edition.html

Тебя это еще не отпугнуло?

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

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

Что я смогу с Haskell/Erlang того, чего не могу на Лабвью?

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

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

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

Ну или если хочется 90000% универсальности (которой не будет) и при этом низкоуровневости и легкости, то тогда уж раст, но с ним нужно разбираться как с сишечкой (ну разве что чуть попроще благодаря адекватному компилятору и статанализу), и там опять императившина, которая со схемками не очень сочетается.

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

У меня есть виртуалка с виндой 10, и лабвью как раз в ней валяется (правда не уверен, что 2013). Поставить триал 2013 – не проблема. Скинь уже исходники.

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

А не триал? Мне неинтересно, если в исходники только посмотрят. Мне интересно только если с ними будут работать и контрибутить.

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

Если там прям вау-гениально-мне нравится, то я закину денег. $10 сейчас, ещё $15 после релиза, как обещал. А схемки вазюкать у меня пока что нет времени.

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

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

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

Будет обязательно. Если слишком уж затянется - тогда открою лабвьюшные исходники.

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

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

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

Из твоего же замыленного примера на мове. Ты уверен, что через 5 лет будешь все эти циферки помнить?

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

Ничего не поделаешь, иногда люди работают в команде, причем, интернациональной. Уж лучше лишний раз в словарь залезть, чем писать class Slozhenie. Да и английский лучше освоить, пока не поздно, иначе как осваивать новые технологии, алгоритмы, библиотеки?

б8=беззнаковое 8-битное, б32=безннаковое 32-битное

По-твоему, тип данных указать важнее, чем нормальное название/предназначение процедуры? Ты код для киборгов пишешь?

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

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

Как ты собрался быстро переключаться между 100500 своих диаграмм? Или в одну все зарядишь? В IDE у меня хотя бы есть слева названия классов/функций. А здесь что будет? Предпросмотр, как у картинок в файловом менеджере? :)

Код в графическом, а не текстовом представлении.

Он что, понятнее от этого стал?

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

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

Хорошо, хорошо, ты меня уделал. Ну не буду же я тут юродивым всяким объяснять, что когда человека отправляют во внезапную командировку на другой конец планеты, то остальное какбэ отходит на второй, а то и на десятый план, ага. Хорошо, ты выиграл. ЧТО ДАЛЬШЕ?

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

Молодец, так держать. Вот только скриншот твоего поста у меня тоже имеется. И если ты все эти два месяца будешь только смотреть, как «часики тикают», то продуешь вообще по всем фронтам.

А меня, как и себя, можешь объявлять кем угодно, вон, в любой психушке Наполеонов хватает.

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

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

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

Знаешь, с тобой шо в шахматы с голубем играть

Зачем играть с голубем в шахматы? Это заведомо глупо.

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

Что я смогу с Haskell/Erlang того, чего не могу на Лабвью? Не думаю, что многое.

На эрланге вон народ потоковое видео обрабатывает.

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

И если ты все эти два месяца будешь только смотреть, как «часики тикают»

А ТС про те два месяца (из которых один уже прошёл) уже и не говорит:

Надеюсь к середине-концу лета успеть сделать прототип Метапрога «сам на себе».

Может получиться так, что после ещё пары коррекций сроков окажется, что быстрее было (например) таки подучить Java, допилить MyOpenLab и уже после этого спокойно переписывать её «саму по себе», тем более, что к этому процессу других людей подключить куда проще, чем когда прототип прибит гвоздями к огороженному LabVIEW :)

Ну нравится пилить одному — пускай пилит. Вдруг сделает?

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

саму по себе

Опечатка, «саму на себе», конечно же.

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

Ты уверен, что через 5 лет будешь все эти циферки помнить?

Зачем мне их помнить? Это всего лишь размеры массивов (строка в Си - массив), ставятся автоматом.

Да и английский лучше освоить, пока не поздно

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

как осваивать новые технологии, алгоритмы, библиотеки?

Самим создавать. Пускай они заимствуют у нас, а не мы у них. На самом деле, очень-очень малая часть технологий в программировании достойна заимствования. Си и Линукс достойны. А вот без всяких джав, питонов, джаваскриптов, nodejs и electron мир был бы куда лучше.

иногда люди работают в команде, причем, интернациональной

В Метапроге будут многоязычные строки. У англичанина будут все названия на английском, у украинца на украинском, у русского на русском.

В IDE у меня хотя бы есть слева названия классов/функций. А здесь что будет? Предпросмотр, как у картинок в файловом менеджере? :)

И то, и другое, несколько режимов показа списка функций, типов итп.

Как ты собрался быстро переключаться между 100500 своих диаграмм? Или в одну все зарядишь?

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

Код в графическом, а не текстовом представлении.

Он что, понятнее от этого стал?

Для меня лично да.

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

Самим создавать. Пускай они заимствуют у нас, а не мы у них. На самом деле, очень-очень малая часть технологий в программировании достойна заимствования. Си и Линукс достойны. А вот без всяких джав, питонов, джаваскриптов, nodejs и electron мир был бы куда лучше.

Да? И с дискетками друг к другу в гости ходили бы до сих пор? Хотя не, там уже перфокартами попахивает.

джав, питонов, джаваскриптов, nodejs и electron

Ты хоть что-нибудь знаешь из перечисленного тобой? Как ты составил такое мнение о них?

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

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

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

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

За это время от тебя что-то рабочее и жизнеспособное появилось?

У меня за неполных 2 месяца около 50 скринов диаграмм и несколько компилирущихся примеров. А вот ты ничем кроме одного-двух скринов без компилируемого кода пока похвастаться не можешь - даже консольным хеллоуворлдом.

Хорошо, ты выиграл. ЧТО ДАЛЬШЕ?

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

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

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

Имхо, делать ПО не для себя, не за деньги, а чтобы доказать, что кто-то не умеет делать ПО - слабая мотивация. Если это пишется не за недельку. У ТС есть хотя бы «ЗАЧЕМ» - мотивация пилить месяцами, а ты сделаешь максимум прототип, так как дальше нужна мотивация типа «я верю в визуальное программирование, моё решение на базе RED - то, что нужно». Гениальные навыки и знания * нулевую мотивацию = нулевой результат.

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

Среди правил демагога есть же reductio ad Hitlerum, вот и у поциента наблюдается периодическое reductio ad Electronum. Замечено, что в дискуссиях на таких вот ресурсах какое-то тупорылое ничтожество рано или поздно обязательно приведёт в пример электрон, который здесь ну вообще ни к селу ни к городу.

Естественно, он ничего из этого не знает, а мнение составляет по публикациям сомнительных «авторитетов» и лоровских кукаретиков.

И да, иногда хочется вернуться во времена перфокарт, когда на ЭВМ оформляли допуски. Ну или просто выдавать на ПК права, как на вождение транспортных средств. Вот тогда мир стал бы действительно намного чище.

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

У меня за неполных 2 месяца около 50 скринов диаграмм и несколько компилирущихся примеров.

Д – Достижение. У чувака с MD OS Ice, помнится, тоже «скрины» были…

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

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

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

Самим создавать. Пускай они заимствуют у нас, а не мы у них. На самом деле, очень-очень малая часть технологий в программировании достойна заимствования. Си и Линукс достойны. А вот без всяких джав, питонов, джаваскриптов, nodejs и electron мир был бы куда лучше.

Да? И с дискетками друг к другу в гости ходили бы до сих пор? Хотя не, там уже перфокартами попахивает.

Речь шла о технологиях в программировании, а не железе и реальных вещах. Хотя вот даже если говорить о железе: свои технологии и наработки в Украине (да и России тоже) херятся, только импортируем интеловские процессоры и китайское железо. И это привело к тому, что монополист Intel оху начал внаглую пихать всякие зонды типа ME и уязвимости типа Spectre и Meltdown (которые вполне себе могли специально пихнуть, а не по незнанию). Архитектура процессора должна быть предельно простой, открытой, с прямым управлением кешем и вместо интеловских спекулятивных выполнений полагаться на программные оптимизации, обеспечиваемые компилятором.

джав, питонов, джаваскриптов, nodejs и electron

Ты хоть что-нибудь знаешь из перечисленного тобой? Как ты составил такое мнение о них?

Бенчмарки, личное использование софта, написанного на этих языках и фреймворках, чтение исходников. При всей ущербности по части призводительности эти технологии НЕ проще в освоении, чем чистый Си - знаю на личном опыте. Еще хабр почитываю на досуге: https://habr.com/ru/post/427181/ - давай, расскажи мне, как весь этот зоопарк говнотехнологий упрощает жизнь.

Кстати, на чем сам программируешь?

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

Ну или просто выдавать на ПК права, как на вождение транспортных средств. Вот тогда мир стал бы действительно намного чище.

А ещё право на пищу, жилище и дыхание тоже нужно оформлять в ФГУП ВСУ РОСПИЩЖИЛДЫШИНСПЕКЦИЯ, обязательно перед этим проходя проверку на отсутствие психических заболеваний, гастрита, венерических заболеваний, туберкулеза и астмы (а то как бы чего не вышло). Вот мир чище бы стал, правда?

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

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

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

Бенчмарки, личное использование софта, написанного на этих языках и фреймворках, чтение исходников

Т.е. вы при этом упорно отказываетесь видеть недостатки в C? Даже после личного использования сегфолтящегося говна и чтения исходников с goto?

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

Ну и весь старый софт естественно элементарно перенесется на эту архитектуру!!! УРА ТОВАРИЩИ!!!

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

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

P.S. А вообще надо калибровать детектор юмора иногда…

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