LINUX.ORG.RU

Метапрог-прототип, версия 7 + графические диалоги на Метапроге

 , ,


0

3

Скачать (перед запуском читайте !Русский.txt или !Українська.txt):

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

Новая версия принесла несколько новых фич интерфейса пользователя. Добавлено выделение прямоугольником для вырезания и копирования части диаграммы (в прошлой версии было только копирование и вставка одного блока по щелчку колесом мыши). После копирования куска диаграммы (с проводками с данными и жесткими последовательностями) его можно вставить кликом колесом мыши на пустом месте диаграммы. Есть план реализовать в будущий версиях также создание подфункций из выделенного куска - аналог Create SubVI из LabVIEW (так была сделана немалая часть функций в прототипе Метапрога).

Однако самая интересная фича новой версии - сериализация в base64 координат блока на диаграмме с цепочкой функций. Этому есть как минимум два возможных применения. Можно «ткнуть пальцем» на нужный блок (меню блоки - ткнуть пальцем на блок). Будет сгенерирована строка такого вида:

metaprog_debug:AAAAAAAAAAAAAAAHAAAAAFBUSDAAAAAEAAAAAAAAAAAAAAAAAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAU4fPk6Ov87ejqIO3gIOfg7+jy4PUAAAAK0+rw4L/t8fzq4AAAABXh8+To6/zt6Oog7eAg5+Dv8O7x4PUAAAAH0PPx8ero6VBUSDEAAAAxcmVsIAAr0LHRg9C00LjQu9GM0L3QuNC6INC90LAg0LfQsNC/0LjRgtCw0YUubXBiZBNiCtNfkRABAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAT9rPr7vfo8evu4ujpIOSz4Ovu4wAAAArT6vDgv+3x/OrgAAAAFPbl6+736PHr5e3t++kg5Ojg6+7jAAAAB9Dz8fHq6OlQVEgxAAAANXJlbCAAA25rYwAq0YbRltC70L7Rh9C40YHQu9C+0LLQuNC5INC00ZbQsNC70L7Qsy5tcGJkP/rfBI32qgEAAAADAAAAB01QTCAyLjAAAAAHTElDRU5TRQAAABDy5erx8u7i6Okg5LPg6+7jAAAACtPq8OC/7fH86uAAAAAQ8uXq8fLu4vvpIOTo4Ovu4wAAAAfQ8/Hx6ujpUFRIMQAAAC9yZWwgAANua2MAJNGC0LXQutGB0YLQvtCy0LjQuSDQtNGW0LDQu9C+0LMubXBiZFbEp7cIT2gBAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAV5+Dv8/HqIOKz6u3gIE51a2xlYXIrAAAACtPq8OC/7fH86uAAAAAU5+Dv8/HqIO7q7eAgTnVrbGVhcisAAAAH0PPx8ero6VBUSDAAAAAWAAEAAgNua2MNbmtjIGluaXQubXBiZFQc/+kgVZgBAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAO+PDo9PIg7fPq6+Xg8CsAAAAK0+rw4L/t8fzq4AAAAA748Oj08iDt8+rr5eDwKwAAAAfQ8/Hx6ujpUFRIMQAAADpyZWwgAANua2MAL9GW0L3RltGG0ZbQsNC70ZbQt9Cw0YbRltGPINC90YPQutC70LXQsNGAKy5tcGJkaxMcpv873AEAAAAAUFRIMAAAAAQAAAAAdcftGC2ZsAE=:metaprog_debug

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

Вместо тысячи слов:

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

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

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

https://postimg.cc/hQVLBcHp

Дебаг-строку выводит оранжевый блок.

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

Для компиляции надо скачать https://sourceforge.net/projects/tinyfiledialogs/

Распаковать в папке с Си-файлом так, чтобы работал соответствующий инклюд.

Код:

https://pastebin.com/5NW30tQx

Введя нужное число, закрываете окошко. После ввода часа и минуты в консоль будет выведено время срабатывания. Теперь будильником можно пользоваться и для повседневных нужд (звук пронзительный, хорошо слышный, sound.wav больше не нужен), однако завершать его работу надо еще через диспетчер задач или Ctrl+C в консоли, когда не идет звук. Также нет проверки введенных чисел, если введете не то число - будильник никогда не сработает.

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

Предыдущая версия:

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



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

Если ты в своём будильнике их устранить не осиливаешь

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

что уж говорить про обычные программы.

Которые практически все с утечками. Особенно это заметно в софте, написанном на высокоуровневых ЯП со сборщиком мусора. Покажи мне хоть одну сложную программу, в которой ГАРАНТИРОВАННО нет ни байта утечек.

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

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

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

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

У меня тоже. И что интересно, при его создании ни одного байта не было сделано на основе визуального программирования.

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

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

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

если debian то gnome-clocks (кстати гном он не тащит за собой, несмотря на названия)

если ты под XFCE сидишь, то в панеле есть дефолтный Xfce Timers..

Иии все они сильно лучше твоей хеловордной полелки.

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

Кстати, чтоб все было честно, то давай расскажи, что мне ввести после app-get install, чтоб увидеть твою поделку у себя.

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

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

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

а вот это кстати аргумент да, но @metaprog просил простой, то что вы показываете это слишком сложно.

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

Ну нельзя же так… нечестно говорить о честности в обе стороны…

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

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

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

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

Для компиляции - первая строка в моих трансляциях-исходниках. А если чего-то не хватает - подбирай сам или у меня спрашивай.

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

не, я просил apt-get причем на своем дебиан, а не компилировать. Тыж плакался, что тот же alarm-clock «пад убунту!!!111». ну и к томуж тут уже приводили выхлопы валгринда. зачем мне «всякое дерьмо в дом тащить»?

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

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


if(metaprog_instance_0_3560345070488020993__structure_constant_6184720867747722241_0.dynamic)
{
free(metaprog_instance_0_3560345070488020993__structure_constant_6184720867747722241_0.pointer);
}
else{ // вот это очень смущает, вы готовы ручаться что  это 
}     // не наступит никогда?
;

у ваших массивов есть индексирование или весь массив из себя по сути представляет вот это?


struct metaprog_instance_0_3560345070488020993__structure_definition_6184720867747722241_0 {
size_t size;
unsigned char *  pointer;
char dynamic;
};

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

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

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

а где мелодия которая будет играть вновь и вновь? тут еще требуется доработка, надо все это зациклить по условию и добавить плеер с приятной музыкой, вот тогда «скриптуха» + утилитка диалог(хз на чем она) победит.

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

Да и отвязка от консоли и компиляция кроме линукса еще и под винду (не WSL) не помешала бы.

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

Не хочешь - не компиляй, это ж экспериментальный софт.

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

Благодарю за фидбек. Ваше мнение очень важно для нас

#!/bin/sh

set -ex

TIME=$(zenity --forms --add-entry="ЧАС" --add-entry="МИНУТА" --separator=':')

echo 'mpg123 --loop -1 melodia.mp3' | at "$TIME"
provaton ★★★★★
()
Ответ на: комментарий от abcq

Ну это уж очень какой-то простой тест с единичным выделением и высвобождением

Но утечек нет. Библиотечные вызовы - только malloc и free.

у ваших массивов есть индексирование или весь массив из себя по сути представляет вот это?

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

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

Не работает. Мой будильник без mp3 работает. В версии на константах от wav работал, но теперь он не нужен. Кстати, используется то же zenity.

И, опять же, баш, а не Си. Где компиляция под винду без WSL?

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

Вот это для метапрога в моем исполнении будет стоит 200$

За бесплатно опенсорс пилить анскильным проФФесорам не дано?

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

Сфигали я должен для Вас что то пилить?

Так что там с легированием переходов в транзисторе, обустройства помещений для работы с силанами или хотя бы расчета провода? Необучаемый дворник метапрог, корчащий из себя Великого Практика, увидел много незнакомых слов и привычно слился?

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

Вот графический будильник, бипающий без wav файлов в цикле пока не нажмешь Enter!

#!/usr/bin/env bash
TIME=$(zenity --forms --title "Будильник" --add-entry="Час" --add-entry="Минута" --separator=':')
JOBCODE=$(
cat <<EOF
zenity --notification --text "Вставай проклятьем заклейменный!";
while ps -p $$ > /dev/null; do
	pactl load-module module-sine frequency=440;
	sleep 0.3;
	pactl unload-module module-sine;
done
EOF
)
JOBCODE=$(echo $JOBCODE | at "$TIME" 2>&1 | awk -F"job " '{ print $2 }' | cut -d" " -f1)
read
atrm $JOBCODE
По моему Метапрог-Будильник выглядит в сотню раз проще и понятнее, да и работает лучше - https://i.postimg.cc/gd7RZD9Q/image.png

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

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

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

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

Так что там с легированием переходов в транзисторе, помщений для работы с силанами или хотя бы расчета провода?

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

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

Понадобится - прошарю и посчитаю.

При том что Вы квадратное уравнение решить не можете? Не прошарите и не посчитаете, это куда сложнее чем выучить пяток текстовых ЯП.

по переходам формулы, насколько я знаю, нехитрые,

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

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

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

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

Да, это вариант… особенно если решение лежит за пределами диапазона [-100, 100] и варьировать надыть параметров эдак пяток.

Тут наверное понадобиться компьютер помощнее. Ой, у нас же нет компьютера - метапрог как раз его «придумывает»… упс;-(

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

При том что Вы квадратное уравнение решить не можете?

Могу.

это куда сложнее чем выучить пяток текстовых ЯП

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

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

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

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

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

И, опять же, баш, а не Си

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

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

Могу.

Как тут все видели - нет.

А ты-то прошаришь и просчитаешь все на свете.

Я то не утверждал что все могу, в отличии от Вас:

Если б мне довелось придумывать с нуля компьютер вместо них, то я сам бы за них все что надо придумал:)

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

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

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

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

Вы мне кстати так и не ответили по поводу проскипаного else и условия и ему предшествующего if, это если честно какой-то говнокод прямо конкретный, по сути если этот if не сработает то free не наступит и выполнится ветка else ничего не делающая и все это зависит от открытой переменной dynamic которую даже вы маслаете в этом маленьком примере несколько раз один раз инициализируя структуру, второй копируя в нее другую переменную в которую уже копируете 1 через операции присваивания, что кстати по сути тоже говнокод, смысл в этих присваиваниях через переменную, почему было сразу нельзя проинициализировать структуру с возведенным в 1 dynamic? И это увы не единственная переменная которая заводится просто так для того, чтобы вам было удобнее писать прослойку в виде метапрога, понятно дело что компилятор умный он это все подчистит за вами, но увы использовать этот выхлоп как часть исходников для проекта на С нереально уж слишком говнище.

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

Лол, найс тебя порвало. Я думаю самое время напомнить что ты так ничего и не смог ответить гениальному котечке - Метапрог-прототип, версия 6 + будильник на Метапроге (комментарий).

Правда потом было еще смешнее:

stasolog: в самом простом свитч вообще удален будет, так как тип будет известен в compile-time.

Antonl: До-до, с реализацией СУВТ ТС-а - обязательно! Вы еще упоротее чем пытаетесь казаться.

stasolog: Побежал оправдываться бездарь - https://godbolt.org/z/X24aCY.

Antonl: Дианочка, слив засчитан

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

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

Так вы хоть гляньте в реализацию тут нет нихрена специфического что нельзя заменить на С

даже единственный захудалый класс


class clok
  {
    //private:
  public:
    int hh,mm,ss,dd,mmm,y;
    Mat a;

   // public:
    void get();
    void display();
    void pass(tm *a);
    void alarm(clok &c);
  };

и тот работает как структура все публичное. Побожтесь, это и есть С, такое даже язык не повернется С++ называть.

кстати этот будишьник - тоже типичный образчик говнокода :3 Но за-то простенько в один файл не более 200 строк кода и то делатель этого даже слишком много написал можно было еще короче.

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

Дианочка, Вы вообще то у меня в игноре, но я таки отвечу - не могу смотреть на Ваши невыносимые муки.

После Вашего эпического факапа с FMA («я вообще не понимаю где это может понадобиться»(с) Дианочка) говорить с Вами стало вообще не о чем. Увы… И как то пофик что Вы тут пишете - таких лулзов как то метапрога от Вас нет, сплошной унылый троллинг. Бай.

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

В Лабвью тоже есть ООП с классами, и мне доводилось щупать код с этим. Черт побери, нельзя обращаться к приватным полям, только через методы - ужас!

Ты кстати не ответил нужны ли деструкторы в плюсах - я слышал, что в ООПнутых ЯП есть деструкторы.

(c)

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

Я то не утверждал что все могу

Можешь только книжечки штудировать и учить то, что сделали ДО тебя. Что-то сам изобретать - не можешь. Если есть доказательства обратному - в студию.

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

Знаю. В основном литография и планарная технология по кремнию. Из говна и палок без материальной базы и кучи сотрудников реализовать тяжеловато, но в принципе понятно. Да, я не знаю конкретных подробностей технологии хлорсилановой эпитаксии (а ты кстати знаешь?), но мне это и не нужно. Меня больше интересует что же можно сделать такого, чего еще не делали, чего еще нет в так любимых тобой книжках. И тут я уже на голову выше тебя. Это видно хотя бы по тому, что ты предпочитаешь принимать языки программирования какими они есть и говнокодить на интерпретируемом скриптушном недоязыке. А я не хочу жрать это говно и изобретаю Метапрог, транслирующийся прямо в Си и работающий с сишной скоростью, но при этом не сложнее в программировании, чем скриптушное Лабвью.

слив засчитан

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

Судя по Вашим комментариям Вы просто жалкий клоун, как и Диана. Я бы не доверил Вам даже укладку шпал, дворник это потолок Вашего карьерного роста

Да-да, было уже такое:

I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)

Well, I probably won't get too good grades even without you: I had an argument (completely unrelated - not even pertaining to OS's) with the person here at the university that teaches OS design. I wonder when I'll learn :)

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

Дианочка, Вы вообще то у меня в игноре

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

После Вашего эпического факапа с FMA («я вообще не понимаю где это может понадобиться»(с) Дианочка)

Фейковая цитата, эти слова относятся к твоим вопросам по операциям сложения/умножения/деления СУВТ. Зря ты и это не заигнорил, опять по штанине потекло %)

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

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

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

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

Конечно, это не спасает от сложных случаев, но в 99% ситуаций думать о памяти тебе не придется.

И таки да, утечки люди стараются искоренять. Мой код не течет, я его на это очень тщательно тестирую.

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

Языки со сборкой мусора как раз и обеспечивают отсутствие утечек.

Один из языков со сборкой мусора это Java. Только память в приложениях на Java постоянно течет, часто например серверные приложения рекомендуют перезапускать после того как они уперлись в лимит памяти, сборщик мусора то не работает, помогает только убийство процесса и перезапуск %) Помощь от сборки мусора просто неоценимая конечно, и ведь сколько памяти можно потратить, ресурсов процессора там, классно же, а? Не говоря уже о дополнительных сложностях. Совершенно не понимаю почему ОП и котечка не хотят в метапрог вшивать GC!

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

по поводу проскипаного else и условия и ему предшествующего if,

Сори, забыл. Посмотри диаграммы. Там условие - динамический массив, то есть тот, который в принципе подлежит free. Если это была константа - free не будет. Делать free на константы ж нельзя!

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

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

Вообще по мне так это идеальная система сборки мусора. Единственное чем, может быть, надо ее «усложнить» - это (отключаемая, конечно же) опция автопростановки блоков освобождения памяти. Или просто генерация предупреждений о неосвобожденной памяти там-то и там-то с указанием на блоки.

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

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

Вообще-то если говорить о сравнении производительности работы с такой структурой и обычной нуль-терминированной строкой, то отличие будет явно в мою пользу. Функции strcat, strcpy и прочие работающие с нуль-терминированными строками сканируют ВСЮ строку на заветный нуль чтобы узнать из размер в то время как с метапроговским массивом надо всего лишь обратиться к элементу структуры. И чем длиннее строка - тем больше выигрыш (представь себе сканирование гигабайтной строки в поисках нуля), да еще и можно спокойно использовать байт «0».

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

Вообще-то наоборот предполагается использовать сишные функции как сырье для Метапрог-проектов. Но и использование Метапрога для работы над в основном сишными проектами тоже в принципе возможно.

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

сплошной унылый троллинг

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

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

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

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

Дианочка, Вы вообще то у меня в игноре

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

После Вашего эпического факапа с FMA («я вообще не понимаю где это может понадобиться»(с) Дианочка)

Фейковая цитата, эти слова относятся к твоим вопросам по операциям сложения/умножения/деления СУВТ. Зря ты и это не заигнорил, опять по штанине потекло %)

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

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

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

Языки со сборкой мусора как раз и обеспечивают отсутствие утечек.

Один из языков со сборкой мусора это Java. Только память в приложениях на Java постоянно течет, часто например серверные приложения рекомендуют перезапускать после того как они уперлись в лимит памяти, сборщик мусора то не работает, помогает только убийство процесса и перезапуск %) Помощь от сборки мусора просто неоценимая конечно, и ведь сколько памяти можно потратить, ресурсов процессора там, классно же, а? Не говоря уже о дополнительных сложностях. Совершенно не понимаю почему ОП и котечка не хотят в метапрог вшивать GC!

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

Думаешь, по стилю изложения не ясно, что это котечка писал? Я даже не буду читать этот бред до конца, не то, что отвечать.

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

Ну в общем вам надо явно обстряпать это как нормальный С код, такая трансляция увы бесполезна, это очень опасный код который 100% приведет к поломкам, разве что вокруг него приличный фасад писать, но проще просто выкинуть это и написать самому нормально.

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

Да не я просто про то, что котечкина аргументация как обычно такая «липкая» на что ТС и ведется, по факту котечка прав, утечка возможна и в менеджмент коде, но то что такие утечки отлавливаются в разы проще чем в С он умалчивает, тот еще стервец :)

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

Вот и все, никакого ответа, только попытка как то от него отделаться. Помножено. И так будет всегда.

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

Помножено

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

И так будет всегда

А вот тут соглашусь. Твой уровень, который будет всегда - работа с крикливыми вонючими бомжами.

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

утечка возможна и в менеджмент коде

А я о чем в исходном сообщении писал? Что не спасает в сложных случаях.

такие утечки отлавливаются в разы проще чем в С

This.

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

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

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

ну да, забыл это упомянуть что ваши слова друг другу не противоречат, но котечка как обычно делает вид как будто это не так. @котечка вы еще тот озорник ;), но хватит пудрить мозги бедному @metaprog

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

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

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

Доказать правтоу, конечно же. Я не обязан верить тебе на слово, что Котечка несет бред (а ты, стало быть, Истина В Последней Инстанции).

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

по факту котечка прав

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

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

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

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

Спасибо за развернутый ответ, теперь я все понял, и обязательно исправлюсь!

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

https://habr.com/ru/post/132500/

И вообще, разве кто-то писал, что в яве идеальный сборщик мусора? Ты сам это придумал.

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

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

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

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

Вот тут я для разнообразия отвечу.

https://habr.com/ru/post/487116/

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

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

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

Особенно хорошо GC там работает в многопоточных программах, ну ты понял

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

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

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

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

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

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

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

В расте ручной пердолинг с расстановкой lifetime'ов. Компилятор ничем не управляет, просто ограничивает все что только можно, из за чего постоянно приходится прибегать к unsafe. Сразу видно эксперта, знаний ноль, зато метапрог приплести смог.

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

Жду когда они перейдут на очередную модную скриптуху, главное на C/C++ ничего не писать, а то ведь напишут, и все, работа кончится. А так всегда есть чем заняться, хочешь GC тюнингуй, хочешь опции к компилятору rust'а подбирай, короче прогресс можно подвигать.

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

Да, помню твое классное опровержение:

Твой котечка - дурачок. Да еще и безграмотный, к тому же. Потоки в питоне есть... ... Они не могут работать одновременно ...

%)

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

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

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

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

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

Так я же уже все пояснил как и @liksys. Ошибки есть везде даже в менеджмент коде, хоть он и берет на себя львиную долю рутины, но если за рулем идиот он себе обязательно дерево найдет. Любой крупный проект имеет ошибки. Только на менеджмент коде писать и приятнее и безопаснее чем на С. Да и вообще вот это ваше приложения надо перезапускать, давайте конкретные приложения и их код и ситуацию когда его надо перезапустить, а то так и я все тоже самое могу сказать про любой язык и приложение и буду прав, это извините меня не аргументация так-то :)

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

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

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

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

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

Так ты это все и делаешь, по большей части троллишь )

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

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

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

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

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

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

Периодический запуск гц - другая проблема, для которой требуются уже другие решения

Отказаться от сборщика мусора в рантайме.

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

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

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

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

А местами оверхед даже «отрицательный»: обычную нуль-терминированную строку надо проходить целиком циклом while, чтобы узнать ее длину, в то время как в метапроговском массиве достаточно обратиться к элементу структуры, обозначающему размер. Чем больше строка - тем больше выгода. И если по строке надо таки пройтись - в нуль-терминированной строке тебе надо идти тем же циклом while и кроме основной операции еще и обязательно сравнивать каждый байт с нулем, а в метапроговском массиве можно проходиться циклом for (ведь длина уже известна), который лучше поддается оптимизации и даже есть возможность параллелизации выполнения. Конечно же, это все можно сделать и средствами чистого Си вручную, но в Метапроге это будет намного удобнее.

не думаю, что мне имеет смысл дочитывать остальной бред

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

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

а дальше бредовуха про кунчика

Я не шучу.

маленькие шаги для одного человека и большие для всего человечества

Ну так аналогов метапрога еще не существует, разве это не шаг вперед? Или прогресс это когда сервер дискорда (еще и клиент на электроне) переписывают с одной скриптухи на другую?

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

А учится и не нужно, нужно софт делать. Мне кажется та фраза гениальна. Человек может реально хотеть что то сделать, но все эти мануалы на пару гигабайт отбивают все желание. Я например делал несколько заходов в программинг, потому что хотел написать кое что, но мне попадались под руку Java, C# и другие ужасные вещи, я читал про эти классы, конструкторы, и просто не мог понять кто же это мог придумать, и зачем? Я же просто хочу сделать программку!

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

а я увы не в теме ваших терок за дискорд

Ну выше была статья почему дискорд перешел с Go на Rust. То есть ушли от GC, ну почти. Ты предложил переписывать на С критичные части, я дал ссылку где рассказывается как прекрасны вызовы C-кода из Go.

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

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

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

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

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

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

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

А с доказательствами у тебя не айс

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

Делаем вывод, что у тебя и котечки не айс с головой.

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

Опять троллите

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

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

Дело не в знаниях, а в ненужных абстракциях.

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

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

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

Тем не менее это не делает ни то, ни другой язык плохими.

Ну я на подобное и не намекал, плохи они по другим причинам %)

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

Можно пойти дальше, и дойти до того что причин использовать Rust вместо С++ нету, лайфтаймы уже завезли в clang, пакетный менеджер microsoft уже сделал, анализаторы завезли...

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

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

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

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

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

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

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

1. Скипаем неудобные вопросы и неудобные ответы

2. Объявляем все словесным поносом

3. Считаем себя Непогрешимой Истиной В Последней Инстанции

Я лучше с уважаемыми физиками в этом треде пообщаюсь

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

metaprog
() автор топика
Ответ на: комментарий от metaprog
  1. Скипаем неудобные вопросы и неудобные ответы
  2. Объявляем все словесным поносом
  3. Считаем себя Непогрешимой Истиной В Последней Инстанции

Ты так самокритичен.

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

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

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

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

клоун… дворник это потолок Вашего карьерного роста… паразит

Ребят, ну может, хватит уже?

ТС ведь действительно реально считает, что его преследуют злые «антиметапрогеры», которые боятся за будущее текстовых языков программирования и своё место в этом будущем. :))) И чем больше обидных кличек ему будут клеить — тем больше он в своём убеждении укрепяются. Он рассуждает как большой ребёнок (а может, даже и совсем не большой, но это нюансы).

Предлагаю оставить ТСа в покое. И комментировать только конкретные вопросы и высказывания и только по существу. Или просто игнорировать, если комментировать нет желания/смысла. Так он либо быстрее слепит что-нибудь, что можно обсуждать, либо забьёт. Оба результата на мой взгляд можно считать положительными. :) Пусть у человека будет рабочая обстановка…

На 90% комментариев ТСа в этом треде лучший ответ — молчание. На оставшиеся 10% можно ответить, если охота поделиться знаниями (но можно и не отвечать).

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

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

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

Лично мне по существу надоело, потому что он не умеет слушать.

Ну тогда можно просто не комментировать. :)

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

И чем больше обидных кличек ему будут клеить — тем больше он в своём убеждении укрепяются.

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

Да, с ним в общем говорить уже не о чем - он перестал быть даже смешным.

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

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

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

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

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

осталось сделать что-то сродни карго для С++ из коробки

C++20 с модулями уже вот вот должен релизнуться, дальше уже остается подождать, пока в компиляторы это запихнут (в шланге уже есть превью) и популярные библиотеки переедут на модули, и тада уже нормальный ПМ не заставит себя долго ждать.

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

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

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

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

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

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

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

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

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

А всякие разные make?

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

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

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

Да, в общем согласен - gcc -M еще надо правильно приготовить. Мне иногда лень и при сборке крупного проекта на первый анализ зависимостей уходит секунд 5-10…

То есть разговоры идут о том, что бы это все засунуть под капот компилятора и забыть? Включая вынесение шаблонов в хидеры, все эти танцы с extern/static и пр. костыли?

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

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

Про технические детали я не могу сказать я не интересуюсь особо экосистемой С и что у них там на переднем краю разработок, надеюсь тут есть люди которые мейнят с/c++ и живо этим интересуются, а то бывает так что мейнить то мейнят, а продолжают писать на условном С++11

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

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

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

In a C-based language, it is hard to build tools that work well with software libraries, because the boundaries of the libraries are not clear. Which headers belong to a particular library, and in what order should those headers be included to guarantee that they compile correctly.

Это отсюда

Собсна для меня это пока что главная фича модулей, то что они позволят запилить нормальный tooling для крестов, определяя библиотеки на уровне самого языка, а не перекладывая эту задачу на костыли.

vcpkg кстати неплох (я его даже советовал где-то), но всё равно это просто набор костылей, и он не отменяет необходимость возиться с кривым cmake (если кроссплатформенное приложение, в родном виндовом msbuild оно просто работает).

За другие фичи модулей пока не скажу, т.к. меня от крестов отталкивает именно ужасающий тулинг. То ли дело Go с Растом, cargo build и всё, одинаково без проблем соберётся как на венде, так и на линуксе.

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

этот vcpkg есть на всех популярных платформах

Да. https://github.com/microsoft/vcpkg/blob/master/docs/index.md

Windows, Linux, Mac (FreeBSD и Android, не официально, но умеет тоже)

поддерживает версионность кода

Да, это же git, в папке с библиотекой можно уйти на заданный коммит, если нужна какая-то старая версия библиотеки, а не последняя

вытягивает зависимости автоматом по конфигу

Зависимости сам вытягивает.

Установка происходит глобальная(для конкретной папки с vcpkg, может быть несколько таких папок для разных проектов с разными версиями одних и тех же библиотек): Выглядит примерно так:

C:\Dev\vcpkg\vcpkg.exe install boost-math:x64-windows

если напишешь свой скрипт, который будет парсить текстовый файл, то можно и не в ручную а для конфига. В отличие от Nuget, или cargo, которые компилируют каждый раз все зависимости для проекта. vcpkg собирает зависимости глобально.(можно иметь несколько папок с vcpkg, если нужны разные версии библиотек)

умеет собирать кроссплатформенный код?

Это пакетный менеджер, а не система сборки. CMake умеет собирать кроссплатформенный код.

cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=C:\Dev\vcpkg\scripts\buildsystems\vcpkg.cmake -S . -B build.x64
fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 7)
Ответ на: комментарий от fsb4000

В отличие от Nuget, или cargo, которые компилируют каждый раз все зависимости для проекта.

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

Да, это же git, в папке с библиотекой можно уйти на заданный коммит, если нужна какая-то старая версия библиотеки, а не последняя

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

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

то есть конфига и его разбора в инструменте из коробки нет? Я должен как и в случае написания билд скриптов на том же питоне их все же писать?

Это пакетный менеджер, а не система сборки

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

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

хуже всего когда такое чудо выбивается в начальники

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

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

vcpkg он вообще в сторонней папке находится и никак не связан с вашим проектом. Он устанавливает зависимости в свою папку. И у него просто есть cmake скрипт который говорит cmake где искать зависимости вместо стандартных мест…

vcpkg\scripts\buildsystems\vcpkg.cmake

Вот тут можно прочитать про костыли если нужно указывать не просто название библиотеки, а конкретную версию: https://github.com/microsoft/vcpkg/issues/1681 (все эти git махинации производятся над папкой vcpkg, а не вашего проекта)

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

Ну в общем в принципе я вас приблизительно понял, надо будет почитать что за зверь такой, но пока действительно выглядит как еще один костыль, только может чуть более современный :) спасибо за ликбез.

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

Почему же про другой? Оно думает что все может прошарить, а то что оно сходу не знает/понимает то вообще не нужно.

Для него есть только два мнения - его и неправильное. Все несогласные не соглашаются с его правильным мнением из каких то своих корыстных интересов, а иначе почему они не согласны с правильным мнением?!

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

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

C++20 с модулями уже вот вот должен релизнуться

Ой, неужели наконец-то решились? А то я то же самое слышал перед C++17…

P.S. Погуглил, нашёл пример экспортируемого хеллоуворлда. Но меня бы заинтересовал пример модуля с классом: сохраняется ли там разделение на определение и реализацию, или свалили их в кучу, как в C#/Java. Мне бы хотелось первый вариант, конечно…

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

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

Тем, что её нет.

В плюсах есть раздельная компиляция в объектные модули, дополненная костылями из говна и палок на препроцессоре из начала 70-х. Это — не модульность. #include — это всего лишь включение одной стены текста в другую стену текста, единицей языка оно не является. Препроцессор делает из стен текста набор мегастен, компилятор эти мегастены преобразует в кучку объектных файлов, подставляя для каждой функции первый попавшийся прототип, потом в дело вступает компоновщик, пытаясь разрешить все неразрешённые имена. Из какой стены текста что взято, он не знает, он тупо шарит по библиотекам.

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

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

Дополню, что нормальные модули были, скажем, в Турбо Паскале (который тут принято презирать) уже году так в 1990-м. Ещё можно на Java посмотреть, она помоложе и поинтереснее…

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

ну там тоже разброд и шатание в том как поддерживать модульность и куча инструментов для этого, но в принципе все лучше с/с++ в этом плане.

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

Ой, неужели наконец-то решились?

Ну, во всяком случае обещают в этом месяце выкатить.

разделение на определение и реализацию

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

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

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

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

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

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

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

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

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

Дык злые антиметапрогеров всех распугали! На самом деле его упоротость перебила его харизму. Он просто не туда зашёл, в песочнице у подъезда вся школота была бы его.

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

а руст так и в этих задачах почти ни чем не уступает С

Уступает по скорости, библиотекам, переносимости...

лайфтаймы это только будущее с++, в русте «они» уже есть из коробки

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

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

Важно же, во первых rust делают анскильные лалки, которые не могут даже -ffast-math поддержать, во вторых rust строится на llvm, а значит шагнуть дальше C/C++ просто не может, ну нету такой возможности, тем более он состоит из ограничений (возможностей).

осталось сделать что-то сродни карго для С++ из коробки

vcpkg

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

А что модули дадут? Ограничения? Не знаю зачем это ПМу.

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

а руст так и в этих задачах почти ни чем не уступает С

Уступает по скорости, библиотекам, переносимости…

там есть слово «почти», ну в любом случае наверное это пока самая близкая альтернатива С.

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

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

Важно же, во первых rust делают анскильные лалки, которые не могут даже -ffast-math поддержать, во вторых rust строится на llvm, а значит шагнуть дальше C/C++ просто не может, ну нету такой возможности, тем более он состоит из ограничений (возможностей).

Повеяло монархическим душком :)

vcpkg

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

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

Возвращаясь к теме треда, можно еще рассказать ТС что в паскале не нультерминированные строки с длинной внутри строки

А какой там тип для длинны?

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

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

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

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

Из Lazarus Wiki.

ShortString имеет фиксированную максимальную длину, определяемую программистом (например name : String[25];), но при этом ограниченную 255 символами. Если длина переменной типа ShortString не указана явно, то длина устанавливается равной 255. В этом типе нет счетчика ссылок.

AnsiString имеет переменную длину, ограниченную значением High(SizeInt) (которое зависит от платформы) и доступной памятью. В этом типе есть счетчик ссылок.

WideString имеет переменную длину, как и тип AnsiString, но состоит из символов WideChar вместо символов Char. Данный тип совместим со строковым типом BWSTR и в нем нет счетчика ссылок.

UnicodeString похож на тип WideString, но тип UnicodeString является управляемым типом и содержит счетчик ссылок, в то время как WideString является совместимым с типом BWSTR, который совместим с COM и не содержит счетчик ссылок.

В итоге есть строка на с лимитом на 256 байтов, и строки со счетчиками ссылок всякими...

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

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

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

Ну волшебства не бывает, тут либо так, либо эдак.

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

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

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

И отсутствие этих знаний не мешает мне программировать на Лабвью и прототипе Метапрога. Для этого надо знать сравнительно немного: систему типов (деление числовых типов по видам и разрядностям), структуры, юнионы, указатели, массивы и дополнителньые удобные плюшки как СУВТ и версионированные форматы. Это все несложно и при должной простоте интерактивных гайдов осваивается так же легко как игра-стратегия даже 10-летними детьми, никогда в жизни ранее не программировашими. Лабвью я освоил, не прочитав ни одной книги по нему. В этом мне очень помогает контекстная справка, однако нормальных обучалок для новичков там все же нет - копирастам из NI все же надо зарабатывать на фирменных курсах (хоть я и обошелся без них) и сертификациях знаний по Лабвью (я и без того царь Лабвью).

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

В Лабвью это делать почти не приходится.

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

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

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

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

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

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

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

А как лучше? Таненбаум Линусу предлагал микроядра вместо монолита, а что же предложишь из своих Сакральных Знаний ты, о Высшая Мудрость?

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

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

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

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

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

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

Лучше тогда уж Метапрог. Сишную систему типов и концепт управления памятью там знать все равно желательно, но почти ничего поверх этого. Никаких ООП, классов, методов, инкапсуляций, интерфейсов, ФП, монад и прочего мусора. И в Метапроге, так же как и в сишке, получаешь ровно то, что собираешь. Никаких сборщиков мусора и прочего подобного бреда в рантайме.

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

Повторюсь ещё раз для читающих Невнимательно - если делать от баллы то не спасёт Никакой Инструмент. А вы в первых темах свой проект позиционировала вроде как для всех. А теперь получается что нужно уметь управлять памятью. Те кто это умеют - как правило умеют и в си

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

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

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

Он рассуждает как большой ребёнок (а может, даже и совсем не большой, но это нюансы).

Я не укушен текстовой скриптухой и могу как ребёнок сказать что-то вроде: «а король-то голый».

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

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

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

Те кто это умеют - как правило умеют и в си

Да, но в Метапроге это будет проще.

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

Никаких сборщиков мусора и прочего подобного бреда в рантайме.

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

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

А зачем учиться абстракция ради абстракций? Один раз понять что это и не более того. Ну и да - вы сами на данный момент создаете именно абстракцию причём с отнюдь не очевидным поведением. Ибо стрелки это одно а их реализация совсем другое

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

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

В самом Метапроге система управления зависимостями пока очень простая: при экспорте меню в систему контроля версий пакуются все элементы меню (могут быть любые файлы), если это диаграмма - пакуются дополнительно еще и все ее метапроговские зависимости (диаграммы и типы).

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

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

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

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

У вас теперь уже просто «текстовая скриптуха». Сильный ход

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

И отсутствие этих знаний не мешает мне программировать на Лабвью и прототипе Метапрога

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

Знания помогают не просто писать программы, а писать программы которые элегантные и эффективные.

То же GUI:

можно ничего не знать и рисовать в Builder,

а можно знать MVC паттерн, или MVP, или MVVM, или MVU.

Программа нарисованная в Builder и программа котороя корректно реализует паттерн Model View Update просто несравнимы по надёжности и эллегантности. Model View Update можно легко юнит тестить, это просто божественно, узнать методику которая позволяет тебе делать GUI приложение к которому можно писать юнит тесты. Которая позволяет сохранять состояние и легко сделать кнопку которая по желанию пользователя отправит например последние 100 состояний разработчику. Так что если пользователь найдёт баг, больше никаких мучений с воспроизведением бага, это автоматически.

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

Программировать без знаний возможно, ты не уникален, что можешь программировать без знаний.

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

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

А зачем учиться абстракция ради абстракций? Один раз понять что это и не более того

Ага, и постоянно учиться и переучиваться, разве не так устроено современная индустрия ИТ?

вы сами на данный момент создаете именно абстракцию причём с отнюдь не очевидным поведением

Очевидным. Все транслируется «в лоб» на Си. В этом меня упрекали, но я считаю это именно достоинством Метапрога.

Ибо стрелки это одно а их реализация совсем другое

Какие еще стрелки?

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

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

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

Вот еще немножко Ваших цитат, из них получается великолепный диалог:

– ты можешь построить простейшую паровую машину без матана, но атомоход без него уже не построить
– Атомный реактор - это почти как паровой котел, только вместо дров - таблетки с ураном/плутонием (с)@metaprog
– Если бы не заслуги Тьюринга, Шокли и прочих «прохвессоров»…
– Если б мне довелось придумывать с нуля компьютер вместо них, то я сам бы за них все что надо придумал! (с)@metaprog
– Так что там с легированием переходов в транзисторе?
– по переходам формулы, насколько я знаю, нехитрые (с)@metaprog
– Тебя попросили решение квадратного уравнения..
– Императивная логика, конечно, не айс для МАТАНА. (с)@metaprog

Занавес. А вот это

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

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

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

Ага, и постоянно учиться и переучиваться, разве не так устроено современная индустрия ИТ?

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

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

Дворник, курьер, посудомойка… И то лишь там куда не добрался прогресс и нищенская где оплата труда - как раз случай ТС. Не зря он так донаты клянчит, хотя бы 10 баксов.

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

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

В любой работе есть место творчеству».

С. Довлатов

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

Хе, щас было видео - в мск дворник на сегвее снег чистил.

Но у нас эпизодически кто то мусор оставляет в подъезде или в урну у подъезда кидает. Так участкового привлекали, запись камер смотрели - так и не определили. В общем дворники нынче не те..

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

А как лучше? Таненбаум Линусу предлагал микроядра вместо монолита, а что же предложишь из своих Сакральных Знаний ты, о Высшая Мудрость?

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

Относительно паттернов тоже сто раз говорили, но еще разок выше сказал @fsb4000 тут

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

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

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

могу как ребёнок сказать что-то вроде: «а король-то голый».

Вот именно, что как ребенок. На аргументацию твоих знаний не хватает.

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

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

Я вижу какой говнокод получается у проФФесиональных программистов, особенно в последние годы. Даже опенсорс катится по наклонной. Даже Thunar из последнего дебиановского XFCE падает, да и в целом в гткшных приложениях багов полно - и это вроде еще и самое стабильное из мейнстримных DE, так и думаю рано или поздно запилить свое на Метапроге. Об индусах, оккупировавших M$ и скативших винду в полное зондов говно, я вообще молчу - Биллу Гейтсу должно быть стыдно за продолжателей его дела.

То же GUI: можно ничего не знать и рисовать в Builder, а можно знать MVC паттерн, или MVP, или MVVM, или MVU.

Это какой ЯП и какая среда?

Программа нарисованная в Builder и программа котороя корректно реализует паттерн Model View Update просто несравнимы по надёжности и эллегантности. Model View Update можно легко юнит тестить, это просто божественно, узнать методику которая позволяет тебе делать GUI приложение к которому можно писать юнит тесты. Которая позволяет сохранять состояние и легко сделать кнопку которая по желанию пользователя отправит например последние 100 состояний разработчику. Так что если пользователь найдёт баг, больше никаких мучений с воспроизведением бага, это автоматически. Я просто хочу чтобы ты сделал какое-то реальное приложение и почувствовал всю боль, которая приходит при поддержке пользователей и изменение требований к приложению.... Паттерны лишь уменьшают боль, которая у тебя будет при разрабатывании большого приложения, дебаггинга, или написания тестов.

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

Программировать без знаний возможно, ты не уникален, что можешь программировать без знаний.

С приходом визуального программирования все слишком круто поменяется в сравнении с текстовыми ЯП.

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

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

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

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

Есть отличная цитата, из удаленных в Почему ООП стало более популярным и соответствующие языки и технологии программирования чем то же ФП? - так arturianec100 отвечал царю:

Вот что ты со мной сделал??? Теперь когда я вижу пропаганду очередной скриптухи, вместо «вау», у меня «бл@, выкатили ещё один недоязычок! Несколько лет назад все жужжали, что надо учить скриптуху Х, а теперь хайпят скриптуху Y. Все знания по Х оказались мусором и выкидываются на помойку. „Индусы“ повторяют, что это норма для it, но эта пропаганда не работает, когда понимаешь фундаментальность сишки. Вся та сишная база и паттерны на её основе актуальны уже более 40 лет (да, появился gnuc, который стал „современным Си“, но это развитие тех старых концепций).» Однако мерзко осознавать каким мусором является большое количество it-шных вакансий.

Те, кто знают Си, уже больше 40 лет могут не переучиваться. А Метапрог использует в своей основе те же «вечные» сишные концепты: структура, юнион, указатель, енум и куча числовых типов разных видов и разрядностей. Все, база готова! И она будет гарантированно актуальной еще многие десятилетия, если не больше.

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

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

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

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

Это тот опыт который накоплен программистами за более чем пол века активного программирования

В тексте. Он плохо годится для визуалки.

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

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

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

С приходом визуального программирования все слишком круто поменяется в сравнении с текстовыми ЯП.

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

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

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

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

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

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

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

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

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

Опять «межпланетный шахматный турнир» :)

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

Ему про это говорили раз 50 человек 7 как минимум, я не шучу. Ничего не поменялось…

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

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

Да не вопрос. Вопрос лишь в простоте освоения. Вот в Лабвью это дается легко из-за оформления библиотек (в том числе для работы с железом) в удобные меню. А в ардуинах, которые программируются на плюсах, без курения Reference и мануалов нихрена не сделаешь. И это довольно-таки простые примеры.

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

Вопрос лишь в простоте освоения.

Сложные вещи не будут простыми в освоении. То что Вы освоили в программировании это примитив, да и его то Вы толком не асилили.

«5х5=25, 6х6=36 значит 7х7=47 и не лезьте ко мне со своей таблицей умножения!» - это как раз Ваш с Дианой и @fsb4000 случай.

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

То что Вы освоили в программировании это примитив, да и его то Вы толком не асилили.

Гуй-приложение, сеть, сервер, трансляцию в Си и импорт инклюдов на этом «примитиве» сделать можно. А тебе слабо? Ты ж у нас супер-кодер, спецкурс преподаешь. Или все же не программист? Либо крест сними, либо трусы надень.

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

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

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

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

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

давайте обсуждать конкретную реализацию и технические детали

Чего именно? Будильника или квадратного уравнения решаемого методом ньютона?;-)

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

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

Метапрогра же :) Рано или поздно найдется тот кто приведет его хотя бы к С (¬‿¬)

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

Опять «межпланетный шахматный турнир» :)

Это не просто мечта - это мета-мечта.

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

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

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

Вы идеальная пара ❤ Antonl даже косплеит твой страус-стайл избегания вопросов, просто якобы добавляете меня в игнор, и проблемы нету, вы уже не трусливые неучи! Мастера аутотренинга, мне даже представить трудно как это может работать.

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

Интересно, а почему уважаемую публику не интересует, что в Яве не один сборщик мусора? Какой котечка имел в виду? И какое приложение?

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

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

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

Большая часть айти-«образования» - не более чем фабрика макак.

Мне лень гуглить. Я прекрасно программирую на Лабвью и Метапроге, не зная что такое «консистенция».

Императивный, декларативный, функциональный. Lingua Latina non penis canina. Да-да, я прекрасно программирую на Лабвью, не зная значения всех этих заумных словес.

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

Я, например, сделал прототип Метапрога, Линус - ядро линукса, Столлман - Emacs

(c) @metaprog

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

Потому что по итогу это все равно в разряд ненужно будет отправлено

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

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

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

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

И какое приложение?

Не вспомню, можешь поискать в гугле, или даже на лоре.

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

Простите, но вы ошибаетесь. No-op нужен совсем не для этого.

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

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

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

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

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

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

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

А ты, я смотрю, не только голову в песок прячешь

Этим тут занимаешься только ты

не отвечая на неудобные вопросы

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

еще и кляузы строчишь

А ты не устраивай клоунаду.

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

Так мой вопрос и был про это. Откуда уверенность?

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

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

Так вот, откуда такая уверенность, что абстракции «нинужны»?

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

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

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

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

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

Ну согласно этой их «логике» метапрог ненужен тем более - и будильник и решение квадратного уравнения делаются 100500 способами влет без всякого метапрога, и любой из этих способов лучше метапрога;-)

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

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

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

Так мой вопрос и был про это. Откуда уверенность?

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

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

Факт что в текущем виде пока ничего полезного из себя этот проект не представляет

Прототип экспериментальный. Если ты этого не понимаешь - тебе в этих темах делать нечего.

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

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

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

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

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

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

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