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 (комментарий)



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

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

Заждался?

Нет, он мне не нужен.

донат

Я бы, может, и подонатил, если бы увидел какие-то пруфы и внятные концепции. Их нет.

что-то тебе доказать

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

Циклы, не циклы, структуры, не структуры... Это все шелуха. Как говорит твой любимый Линус - stop talking, show me the code. Реальный код, а не примитивные примеры.

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

Нечем возразить - объяви оппонента в кривлянии. Ай ладно, с траллями невесело спорить, не буду мешать, продолжай.

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

Циклы, не циклы, структуры, не структуры... Это все шелуха.

Для тебя процесс разработки Метапрога - шелуха? Сразу бы сказал. В заголовке написано: в разработке. Читать умеешь?

Как говорит твой любимый Линус - stop talking, show me the code. Реальный код, а не примитивные примеры.

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

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

Зачем мне с ним говорить, что я вынесу для себя из этого разговора? Он меня чему-то научит? Нет. Я узнаю от него что-то новое? Нет.

Он быстро скатился к кривлянию и нелепым обвинениям в троллинге, так что конструктива с ним явно не получится.

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

liksys ★★★★
()

Ну как можно увидеть он просто немножко поехавший, и не может принять что то новое для себя. Его нельзя сдвинуть с позиции «графическое программирование эта плохо, деды в тексте писали!», когда я ему скинул пример где оно применяется успешно, он просто решил вытеснить плохую информацию из головы и заблочил меня %)

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

многие люди до тебя все это делали не просто так

Кто до меня сделал полностью графическую среду программирования? Только копирасты из NI плюс еще MyOpenLab (появившийся недавно недоделанный клон Лабвью на джаве). Ни Лабвью, ни MyOpenLab не позволяют оперировать указателями и программировать на столь же низком уровне, как текстовый Си.

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

Ну это как переубеждать суеверного человека, или наоборот. У меня дела поинтереснее есть %)

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

Сразу бы сказал

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

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

Сколько задонатил, сколько дал подсказок по Си, гтк, нуклеару итд итп?

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

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

Кто до меня сделал полностью графическую среду программирования?

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

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

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

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

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

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

Сделать свой, новый, с нуля. А универсальность будет за счет сишного бекенда, что тут непонятного? Да, в подробностях даже я не знаю что в конце концов будет, так как все диктуется практикой. Мне вот много чем не понравился гтк (ООП, CSS, явно костыльный способ рисования диаграмм на GtkFixed) - решил попробовать нуклеар, и чем больше пробую - тем больше нравится.

Циклы и прочую фигню можно сделать в процессе

Так и делаю:)

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

Есть понимание цели («мета» по-украински «цель») в общих чертах, только детали не все ясны, но это все прояснится в процессе.

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

«Не учите меня жить, лучше помогите материально»

раз ты выложился в интернеты - готовься к критике. Не хочешь критики - сиди на локалхосте

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

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

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

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

Как только появляется возможность использовать текст, все переходят на него.

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

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

А универсальность будет за счет сишного бекенда

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

Есть понимание цели («мета» по-украински «цель») в общих чертах

В общих чертах - это не понимание, а блуждание в потемках.

«Не учите меня жить, лучше помогите материально»

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

игнораст хуже анонимуса

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

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

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

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

Кстати насчет разработки. Нуклеар по простоте напоминает мой лабвьюшный прототип. Например, в прототипе, как в нуклеаре, все данные по рисованию окна собраны в одну структуру (кластер). И никакого ООП:)

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

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

Какими?

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

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

Смотри примеры.

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

Или подожди большего.

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

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

хотя уже обсуждали возможность использовать LLVM AST вместо Си (но это все уже после выхода альфы).

Я говорил про замену CastXML %) Заменить С можно на LLVM IR, но наверное лучше ассемблер сразу.

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

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

мегаэлементы, которые заменяют сразу тонну кода

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

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

Потрудись

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

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

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

метапроговские подфункции

Ценности не представляют. Макросы и их производные известны десятки лет. Это не нововведение. Что еще?

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

Заменить С можно на LLVM IR, но наверное лучше ассемблер сразу.

Посмотрим. Возможно, будет сразу несколько опций - и Си, и LLVM, и ассемблер.

Кстати, Лабвью использует LLVM.

http://www.ni.com/tutorial/11472/en

Там еще говорится про оптимизации диагармм (DFIR) до компиляции в LLVM. Насколько я знаю, Лабвью не позволяет видеть пользователю результаты DFIR-оптимизаций, а было бы очень даже полезно! Когда будет что-то подобное в Метапроге - обязательно надо будет иметь возможность видеть промежуточные результаты.

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

Ты хочешь, чтобы твою работу сделали за тебя?

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

Да, и в этом главная прелесть опенсорса. Почти все ядро Линукс сделали за Линуса другие контрибьюторы. И у меня уже кандидаты в контрибьюторы есть. Как только будет альфа Метапрога, позволяющая совместную работу хотя бы по допилке «самой себя», они присоединятся по полной, а пока что

или, как минимум стояли рядом и показывали пальцем, куда тыкать

Это уже есть и этому посвящены все 6 тем.

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

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

Че за рофлы, если кому то проект нужен то конечно же он присоеденится, это лучше чем писать с нуля самому.

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

Почти все ядро Линукс сделали за Линуса другие контрибьюторы

У него была идея и рабочий прототип. В отсутствие вменяемых альтернатив с адекватной лицензией, людям понравилось ковырять маленькое простое ядро. У тебя же в альтернативах весь остальной текстовый мир, причем ты не можешь даже показать, чем твоя поделка лучше, чем какой-нибудь богом забытый %langname%. Еще раз, на всякий случай: «графическое программирование сделает все понятнее» - не доказательство, а голословное утверждение человека без реального опыта разработки.

Это уже есть и этому посвящены все 6 тем.

Такими темпами ты далеко не уедешь.

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

Программирование не в тексте.

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

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

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

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

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

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

которого выперли из 9 класса

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

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

На самом деле

На самом деле хрен отвертишься, демагло.

любил графику и рисовал птичек

Ты в прошлом треде сам признался, что наоборот, рисовал графику и… Отличная компашка вырисовывается, прямо инвестиционный рай. Вангую, и 7 тема не за горами, если модераторы не решатся прекратить это скаммерское безобразие.

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

Меня это вообще все несказанно веселит. Я читаю эти треды в метро, когда езжу на работу. Особенно вот это вот:

И у меня уже кандидаты в контрибьюторы есть

Котечка, ага. Всем контрибьютерам - контрибьютер! Воинственное невежество похлеще, чем у ТС.

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

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

а зачем им switch case? это лишняя конструкция легко заменяемая с помощью if else if ... else. к тому же автор не любит учить что то дополнительно, вспомнить хотя бы как он ругался на node->value и почему не пишут (*node).value спрашивал.

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

Котечка, ага. Всем контрибьютерам - контрибьютер! Воинственное невежество похлеще, чем у ТС.

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

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

не о тебе речь. если вспомнить как автор ругался по поводу node->value и спрашивал почему не пишут просто (*node).value логично предположить что автор так же будет возмущаться по поводу switch и скажет зачем он нужен если есть if else. в этом я с ним отчасти соглашусь т.к. сам крайне редко использую эту ограниченную конструкцию и предпочитаю if else.

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

Что бы строить таблицы переходов же. Еще можно делать конструкции:

switch(..) {
case A:
	puts("1");
	break;
case B: puts("2");
case C: puts("3");
	break;
case D:
	puts("4");
}

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

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

iluha16
()
Ответ на: комментарий от Deleted
if (x == A) {
  puts("1");
} else if (x == B) {
  puts("2");
} else if (x == C) {
  puts("2");
  puts("3");
} else if (x == D) {
  puts("4");
}

такое же количество строчек однако если впоследствии придётся добавить что то типа else if (someFunc(x) % 4 == E) в моём коде это сделать легко а тебе придётся рефакторить потому что switch ограниченная конструкция с урезанными возможностями. именно по этой причине я и избегаю ей пользоваться потому что несколько раз сталкивался с описанной ситуацией.

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

А если строчек больше? Копипастой заниматься?

однако если впоследствии придётся добавить что то типа else if (someFunc(x) % 4 == E)

И как по этому таблицу то строить?)

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

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

какую таблицу?

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

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

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