LINUX.ORG.RU

Старт пятничного треда

 , , ,


1

6

Привет, ЛОР!

Сегодня видел статью на Хабре про D и кросс-платформенный GUI для него. Аналогичную статью не так давно видел для Go. Думаю скоро и для Rust что-то будет «взлетать» из нужных батареек (да, для меня GUI нужен, а Qt я не люблю). Возник вопрос - что-то из них взлетит или нет, какой язык какую нишу сейчас занимает, какую нишу какой язык может занять.

Еще вопрос к любителям D - в чем его профиты? Я так и не увидел, чем он лучше Go, Rust.

★★

Последнее исправление: silver-bullet-bfg (всего исправлений: 1)

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

Ему (GC) надо будет говорить - вот эта «переменная» - для тебя, следи за ней! С кучей ограничений как с такими «переменными» работать.

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

Там же вроде нет runtime reflection

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

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

При чем здесь runtime reflection? Так же как и в C#, указатели за которыми надо следить определяются на этапе компиляции. Когда адресная арифметика запрещена и привести int к void* нельзя в принципе, никакой runtime reflection для GC не нужен.

Rust вполне сочетается с GC, еще год назад у них был сахар для выделения памяти в GC и модный thread-local сборщик, однако они решили что borrow checker с точечным RC/Arc покрывает все юзкейсы GC.

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

собственно, как в лиспе. или как в том же D — выделить вручндобавить в gc_roots, ну и указатели: управляемые gc, и не управляемые (FFI, например). а в это время в GoLang пытаются добавить precise GC.

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

собственно, там RC/Arc вместо GC. не совсем GC, но с учётом семантики владения/одалживания его может быть достаточно.

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

повторю ещё раз мой point: для программы вроде int main(){return 0;} , собранной статически — все эти остальные 20k, 50k, 600k, 1.400k — это балласт и не нужно (muda, mura, и т.п. по-японски).

тут даже какой-нить пурбасик, компилируемый через fasm — будет нести меньше балласта.

зачем там в статическом бинарнике балласт до main (заполнение и разбор argc, argv, env и прочих _atexit)? зачем там балласт типа конструкторов и деструкторов и инициализация исключений — если всё одно оно не используется ???

и не важно скодогенерирован этот балласт руками или кодогенератором — всё одно оно не используется. поэтому языки с более гибким рантаймом и «действительно не платишь, если не используешь, а не как в С++» более гибкие, конфигурируемые и LEAN_AND_MEAN и вообще Ъ.

ну или нужен «достаточно умный конпелятор» чтобы весь этот неиспользуемый мусор выкидывать. ну или линкером баловаться с gc-collect-sections.

но тут вылазит минималистичность рантайма языка: например в том же D1/Amber можно было заменить стдлиб. Phobos на танго или на более минимальный std.object. был пример с ручным управлением памятью где рантайм был ещё более минимальный, правда с таким рантаймом не работали: масивы, хеши, рефексия и тайпинфо, ну и другие фичи языка. в D2 этот рантайм Phobos стал ещё менее минимальный. хотя в статическом хелловорде этот балласт занимает не более 200k.

в GoLang этот «минималистичный рантайм» всё равно должен поддерживать интерфейсы и GC, каналы и горутины — то есть не такой уж и маленький.

в RustLang самый минималистичный — действительно не платишь, если не используешь, а не как в Си++ (все эти 1.4M в clang и меньше в g++). каналы и «rust-рутины», то есть green threads которые запускаются через spawn сделаны через дополнительную библиотеку, а не в стд. либ., ну и «типа GC на RC/Arc» — тоже доп. библиотекой. и в целом модель памяти более вменяемая — см. Си-машина, раст-машина.

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

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

ACE_Acceptor сойдет в качестве реального юзкейса?

О5 детсадовские сливы, и в каком месте это реальный юзкейс?

Я тебе не буду рассказывать про понятие контекста, про:

Написать свое, но при этом быстрее.

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

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

И да, кукаретинг аля «нам надо реализовать то-то потому что я так решил» не канают.

Давай, я жду.

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

Нет, не хочу.

Обосраться - это единственное, что ты можешь.

Это не я везде грожусь показать «анскильным лалкам» как код писать надо.

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

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

На что я получаю ответ:

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

А ну ок, куллстори.

Можешь не оправдываться.

Т.е. ответить тебе нечего, и правильно. В отличии от нулёвой курочки на лоре -я помню что я и как говорил, а вот балаболочка нет.

Пошёл поискал в теме мои обещания и не нашёл? Молодец - твой удел обосраться.

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

Понимаю, что бесполезно, но начнём с банального - контейнеры.

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

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

Шаблон это средство построения обобщённой реализации, которая не применима - применима его сведённая к частному случаю форма. Т.е. контейнер не имеет применение.

Сведённый к частному случаю шаблон - это нихрена не шаблон.

Применение шаблона это «облегчение» в написании этих частных случаев, в теории конечно.

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

Тем более разные данных просто не ложаться на шаблонны.

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

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

Остались только инты. Да и то они нахрен никому не нужны.

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

Собственно как и остальные стл-контейнеры.

Шаблонный тип там нужен чисто для кастыля-итератора. Т.е. нужность определяется только самой же абстрактной шаблонной парашаинтерфейсом. А не реальной потребностью.

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

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

А теперь ты мне пишешь юзкейс не как абстрактное говно, а как реальное его применение. Собственно как и балаболка выше.

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

Вот одно из твоих (или персонажа, которого ты косплеишь) ранних обещаний

Яж тебя уже обоссал и не раз. Тебе ещё надо?

Давай ещё раз повторим в фекалемокание. Обещание где там? Покажешь?

Или о5 будешь кукарекать, что оно там, но ты его не покажешь?

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

Тыж со мною не разговариваешь? Чтож начал, небось наврал?

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

в RustLang самый минималистичный — действительно не платишь, если не используешь, а не как в Си++ (все эти 1.4M в clang и меньше в g++).

Жжешь, собака:

~$ cat ./test.rs 
fn main() {
    println!("Hello World!");
}
~$ rustc ./test.rs 
~$ nm ./test | wc -l
1700
~$ du -h ./test
584K    ./test
~$ ldd ./test
        linux-vdso.so.1 =>  (0x00007ffc83d15000)                                                                     
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f024fc30000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f024fa12000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f024f809000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f024f5f3000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f024f229000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f02500bb000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f024ef20000)
~$ cat ./test.cpp
#include <stdio.h>

template<class T>
void foo() {}

int main() {
    
    printf( "Hello World\n" );
}
~$ gcc ./test.cpp
~$ nm ./a.out | wc -l
34
~$ du -h ./a.out 
12K     ./a.out
~$ ldd ./a.out 
        linux-vdso.so.1 =>  (0x00007ffd4f0aa000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0432ea7000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0433299000)

«действительно не платишь», LOL.

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

Яж тебя уже обоссал и не раз

Ты обоссался, лалка.

Обещание где там? Покажешь?

Не вопрос. Вот оно:

подожи полгодика и мы сравним мою реализацию и гццешную.

Два года прошло. Где твоя убийца сишки, нулина?

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

ACE_Acceptor сойдет в качестве реального юзкейса?

О5 детсадовские сливы, и в каком месте это реальный юзкейс?

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

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

Сделай вывод в std::cout и влинкуй libstdc++ статиком.

Так речь шла о другом, а именно о том, надо или нет платить за то, что не используешь. Вот в С++ легко и просто получить бинарник в около 10К, который используя _стандартную_ функцию выведет Hello World. И это будет реальный и переносимый на все платформы код на С++. А что же в Rust?

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

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

Вот в С++ легко и просто получить бинарник в около 10К, который используя _стандартную_ функцию выведет Hello World. И это будет реальный и переносимый на все платформы код на С++. А что же в Rust?

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

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

Ну, на Rust. по крайней мере, уже пишут приложения для bare metal. Так что утверждение может быть неверным, но ничего упоротого в нем нет.

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

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

Так я не против - покажи без статичной линковки. О том же разговор и шел.

Ну, на Rust. по крайней мере, уже пишут приложения для bare metal. Так что утверждение может быть неверным, но ничего упоротого в нем нет

«bare metal» бывает очень разным. Вот как под ATmega328, например, что-то напишут, тогда и можно будет говорить о реальном минимализме.

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

Вот как под ATmega328, например, что-то напишут

8 бит? Это вряд ли. Но есть куча других моделей микроконтроллеров.

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

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

Золотые слова.

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

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

все эти остальные 20k, 50k, 600k, 1.400k — это балласт и не нужно (muda, mura, и т.п. по-японски).

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

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

rustc -O -C prefer-dynamic foo.rs

~$ rustc -O -C prefer-dynamic ./test.rs
~$ du -b ./test
8976    ./test
~$ ldd ./test
        linux-vdso.so.1 =>  (0x00007ffdcffee000)
        libstd-4e7c5e5c.so => /usr/lib/rust/rust-nightly/lib/libstd-4e7c5e5c.so (0x00007f2c8675f000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2c86395000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2c86190000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2c85f72000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2c85d6a000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2c85b53000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f2c87144000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2c8584b000)
~$ cat ./test.cpp 
#include <iostream>

int main() {
    std::cout << "Hello World\n";
}
~$clang++ -Os ./test.cpp
~$ du -b ./a.out 
7888    ./a.out
~$ ldd ./a.out 
        linux-vdso.so.1 =>  (0x00007fff097b2000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f0de8f4a000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f0de8c42000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f0de8a2b000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0de8661000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0de9281000)

Уже лучше, но хуже чем С++. Это при том, что rust использует тот же самый llvm на плюсах.

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

Вот как под ATmega328, например, что-то напишут, тогда и можно будет говорить о реальном минимализме.

Можешь попробовать для армов :).

$ rustc ./hello.rs --emmit llvm-ir
$ llc -march=cpp ./hello.ll
$ arm-none-eabi-g++ hello.cpp
true_admin ★★★★★
()
Ответ на: комментарий от true_admin

можешь попробовать для армов :).

Это я и так знаю, благодаря llvm, но специализированных компиляторов, коих большое количество для С и С++, для rust нет и не факт, что когда-нибудь будут.

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

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

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

Мне, правда, llvm не нравится. Ни синтаксисом ir, ни какчеством библиотек для генерации этого ir. Но это гораздо лучше чем ничего.

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

использует тот же самый llvm на плюсах.

А плюсы используют ведро и рантайм, который написан на Си - т.е. плюсы не нужны/плюснутые облажались!

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

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

Уже лучше, но хуже чем С++

1100 байт на хелловорлде - это ничто.

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

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

Rust завелосипедил свой рантайм. И да, это правильно.

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

Rust завелосипедил свой рантайм

Но используют llvm, который на плюсах! Т.е. эталонное ниасиляторство!1

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

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

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

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

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

Суть именно не в использовании готового шаблонного говна, а в написании его.

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

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

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

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

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

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

Вам бы самому не мешало сперва показать хоть что-то, что позволило бы считать вас разработчиком ПО, а не LOR-овским аналитиком. Смогёте?

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

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

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

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

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

Его юзают не потому что это быстрее/лучше/совместимей/модней - нет.

Суть юза llvm"а в убогости новоязычкаписателей. llvm дал возможность любому школьнику высрать говяный ast/ir, ибо ничего иного он не может и свалить всё на llvm.

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

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

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

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

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

И что мы даём этим «экспертам», этой ЦА? Правильно прототип, который типа работает быстро на примитивной параше. Т.к. эти эксперты не понимаю нихрена в теме - их просто обмануть и они не понимают как это работает и где подлог.

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

Адепты, никогда не видевшие нормального кода(чего стоит тот жабист, который снял c int xor(int a, int b) { return a ^ b;} в жабке 1килохор и считает, что это норм) орут, что наш недоязычек догоняет сишку, кидая тебе бенчмарки. В которых внимание - не юзается ни одно киллерфича, а вообще юзается биндинг к сишной либе - привет бенчгеймы.

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

Правда пацанам никто не сказал, что тот же калидоскоп из тутора не быстрее крестов на примитивном общем коде. И никогда он быстрее не станет, а если станет, то станет быстрее и шланг и ещё сотня недоязычков.

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

А русте и подавно. И максимум что рустопитушки осилят - это биндинг к сишному рантайму. А уж нормальная компилтайм/рантайм реализация ООП/компилтайм параши дак вообще невыполнима для бездарей.

Вон в крестах safe_cast() в говнище тормазное - за 20лет не осилили.

Т.е. руст всегда будет говном и до крестов никогда не доплывёт, ибо недавно. А адепты так и будут орать.

В общем, свой тёплый ламповый рантайм это прикольно

Это нужно и показатель, что пилильщик не обезьяна.

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

но если он ни с чем не совместим то грош ему цена.

А нахрен ему быть с чем-то совместимым?

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

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

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

Вы не пробовали более четко формулировать свои мысли на русском языке?

Было всё чётко и ясно сформулировано и ты мне не осилишь показать нечёткости в моей формулировки.

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

Вам бы самому не мешало сперва показать хоть что-то, что позволило бы считать вас разработчиком ПО, а не LOR-овским аналитиком.

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

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

И твои жалкие пытки сливам мне мало интересны.

Мне не нужно придумывать

Т.е. ты можешь только кукарекать, а за слова отвечать не умеешь?

шаблонами пользуюсь каждый день

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

Вот из недавнего, как раз для компактности кода.

Это «некомпактность» исходит из проблем в твоём коде и ты её героически решаешь, но это лишь рефактоинг говна. Оно не вызвано какими-то реальным потребностями - это банальное написание обобщённой обёртки, которая изначально предполагает шаблоны.

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

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

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

А когда говоришь пацам - «давайте уберём это условие» и начинается натьё и ко-ко-ко.

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

И ты мне уже что-то сможешь предъявить, когда твоя обёртка реально даст хоть какой-то профит, а не просто «я хочу обёрточку».

Поэтому давай - придумывай задачу, покажи нужность шаблонов.

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

Было всё чётко и ясно сформулировано и ты мне не осилишь показать нечёткости в моей формулировки.

Не-не-не, объяснить вам, что вы не умеете адекватно высказывать свои мысли, я точно не сумею.

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

Вам ужу ничего не нужно доказывать. С вами все понятно и очевидно.

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

Думаете, что читая ваши потоки сознания кто-то поверит, что вы умеете программировать?

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

Rust гарантирует отсутствие алиасинга указателей.

Что значит «гарантирует»? void * str, * a = str, * b = str; не работает?

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

Пример оптимизаций в студию.

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

Не-не-не, объяснить вам, что вы не умеете адекватно высказывать свои мысли, я точно не сумею.

Мне ничего не надо доказывать, эти жалкие сливы и ничтожные потуги.

Вы не пробовали более четко формулировать свои мысли на русском языке?

Т.е. утверждение в том, что я формулирую свои мысли не чётко.

Ты же не просто так его кукарекнул? Ведь не просто для того, чтобы не ответить, когда сказать нечего и оправдать это типа «я тебя не понимаю»?

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

Вам ужу ничего не нужно доказывать. С вами все понятно и очевидно.

А что конкретно понятно и очевидно ты конечно же не скажешь по причине, что «всё понятно и очевидно»?

Вам показали несколько примеров кода

Один.

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

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

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

И о5 утверждение в том, что не отслеживаю. На основании чего выдвинуто это утверждение, примеры будут?

Конкретные цитатки с пояснием в чем там заключается моё «неотслеживание».

Думаете, что читая ваши потоки сознания кто-то поверит, что вы умеете программировать?

Меня не интересует вера всяких нулей, которые сливаются на раз-два и юлят как 5-летки.

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

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

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

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

Что значит «гарантирует»?

На объект может быть не более одного мутабельного указателя. Кроме того если взят мутабельный указатель, то иммутабельный уже взять не выйдет (тут могу ошибаться, но вроде так).

Пример оптимизаций в студию.

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

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

Т.е. утверждение в том, что я формулирую свои мысли не чётко.

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

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

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

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

На основании чего выдвинуто это утверждение, примеры будут?

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

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

У вас денег не хватит, чтобы заказать у меня написание ТЗ.

И ты очень просто доказываешь, что я чего-то там не умею.

Очевидные вещи не нуждаются в доказательствах.

Всё просто. Докажи. Вперёд.

Это вы тут выступаете против шаблонов. Вот и докажите хоть что-нибудь. Покажите, например, аналог ACE_Reactor-а без шаблонов. Или boost.multi_index. Или хотя бы std::vector или std::array.

eao197 ★★★★★
()

TrueTsar1C

Истинный Царь Один Эс в треде! Все на пальмы!

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

Не, ты мне покажи конкретные примеры.

Засунуть содержимое переменной в регистр и читать/писать её там сколько душе угодно.

Какбэ если аутист передаёт переменную через указатель - это его проблема.

Ну и да, Что этому может помешать? Инлайн/рестрикт/руки не осилился?

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

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

Я уже выше ставил тебе диагноз и всё объяснял:

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

А теперь ещё раз.

Не всегда. Написать свое, но при этом быстрее. За счет шаблонов, за счет средств абстракции, за счет много чего еще.

Это был инициатор контекста, далее мой ответ был исходя из этого контекста - «Написать своё, но при этом быстрее». И тут высираешься ты - тебе всё популярно объяснили.

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

У вас денег не хватит, чтобы заказать у меня написание ТЗ.

Это так мило, когда нищий школостудент кукарекает про деньги.

Очевидные вещи не нуждаются в доказательствах.

Эти детсадовцы, эти балаболы. Этот хлебушек.

Это вы тут выступаете против шаблонов.

Рили? Приведёшь примерчик?

Вот и докажите хоть что-нибудь.

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

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

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

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

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

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

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

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

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

Ядреная трава.

Прежде чем получить право кого-либо называть «школостудент"ом, не соизволите ли продемонстрировать какой-либо свой код, который вы сочтете достойным демонстрации публике? Дабы ваш уровень можно было оценить не по игре словами на LOR-е.

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

Ты как первый раз на ЛОР. Этож царь! Хотя есть мнение, что это какой-то препод из ПТУ, вынужденный учить дебилов паскалю, сам ничего не добившийся. И посему умеет разговаривать только о говне. В общем, он не умеет в код, он умеет только в кукарекинг.

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

Ты как первый раз на ЛОР.

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

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