|
|
|
|
5.128, Аноним (128), 13:24, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
Хз, работаю в банке, юзаем 17 жабу и кваркус (даже в нативку не собираем через грааль). На контейнер выделяем ~200 метров в хипе, с автоскейлингом кубера при всплесках RPS уходили в OOM пару раз в квартал. Если у тебя нет в проекте говнокода (по типу stateful бинов-синглтонов, где есть коллекции, в которых объекты накапливаются и никак не изымаются), то сборщик мусора тебе тупо не даст в OOM уйти. Тупо подфризит виртуальную машину на доли секунды, пока чистит (если пользоваться нормальными GC последнего поколения, типа Shenandoah).
| |
|
6.134, Аноним (-), 13:30, 07/09/2022 [^] [^^] [^^^] [ответить] [↓] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +3 +/– |
Ну а си прекрасен тем что в нем всего этого оверинжениринга - и его е...чих проблем - просто нет. Поэтому не надо делать мозг поколениями GC, фризить будет только при ж@порукости кодера, а это все же другое. И на 200 мегах в контейнере можно нехило так разогнаться. Конечно, бины с синглтонами лучше вон тем концептуалам оставить, а то можно и из сей яву случайно сделать.
| |
|
|
|
|
|
1.4, Аноним (4), 10:18, 07/09/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| –22 +/– |
Я вот лично не понимаю, какой толк сегодня писать на Си. Когда то Си был компромиссом между ЯВУ и асмом. Когда пишешь на асме код конечно получается более компактным, но при этом надо делать много лишней работы. Например думать о распределении регистров. А тут вроде как и на ЯВУ пишешь и код компактный и быстрый получается. Но о быстроте в наше время говорить уже нет смысла, т.к. любой компилятор умеет оптимизировать гораздо лучше, чем человек. Остается только компактность. Насколько я понимаю, в Си нет райнтайма как такового, из за чего код до сих пор может влазить в килобайты/мегабайты памяти. Но это же очень узкий круг девайсов. Это только для прошивок каких-то и микроконтроллеров.
| |
|
|
3.11, Аноним (4), 10:27, 07/09/2022 [^] [^^] [^^^] [ответить] [↓] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
Я писал на ассемблере очень много. Это сейчас в 64х битных процах дофига регистров. А раньше их было только 7. И естественно, что регистры - это самая быстрая память в компе. Так что желательно хранить как можно больше информации именно в них. Но постоянно думать о том, что же оставить в регистрах, а что выкинуть в память - это тот еще геммор. И в какой-то момент я просто осознал, что думаю об этой проблеме больше, чем собственно об алгоритме работы моей программы. Это неправильно.
| |
|
|
5.129, Аноним (129), 13:24, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +3 +/– |
Под логичный и симметричный RISC типа ARM програмить так то сильно приятнее чем под облепленого легаси урода с переусложненным набором команд типа x86 какого. При том вот именно x86-32 еще и по регистровому файлу и режимам адресации урод полный, в 64 битах немного попустило, но на нормальный проц оно похоже достаточно условно.
| |
|
|
|
|
5.158, Аноним (158), 14:41, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> Не совсем. Потому что, велосипеды существуют чтобы помочь проехать дальше, но не
> обязательно легче.
Это еще что, некоторые потом обнаруживают что единственно правильный вариант либы - оказывается не обязан быть единственно правильным. И вместо ацкого стдлиба можно и от сторонних лиц библ набрать. При том более подходящих под вон ту задачу.
| |
|
|
|
2.13, Аноним (15), 10:30, 07/09/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +6 +/– |
Реальность такова, что прогресс электроники заканчивается, а сложность вычислений растёт. Поэтому всю работу по оптимизации в очередной раз скинут на программиста, которому снова придётся выучить низкоуровневые языки и фреймворки. Посмотрите на OpenGL -> Vulkan, типичный пример как за счёт многократного увеличения сложности API удалось увеличить производительность на несколько десятков процентов.
| |
|
3.151, Аноним (-), 14:00, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> А crt.o тогда что такое?
Startup какой-нить. Он так-то опция, начиная с C99 режим freestanding регламентирован, и в нем может быть вообще совсем нихрена. Есть только один мелкий нюанс: у си есть все же некие ожидания от окружения. И вообще совсем без стартапа - окей, а эти ожидания как заимплементятся? В некоторых случаях можно выпендриться и сделать это прямо на си, однако этот кусок кода будет работать с нестандартными допущениями насчет среды выполнения, и это катит не на любом проце.
| |
|
4.205, аНОНИМ (?), 18:37, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
На stm32 стартап прекрасно пишется на самом си, на нём же пишется и например таблица векторов прерываний (помогает ещё и линкер тут со своими weak символами, естественно). Правда, интринсики из CMSIS нужны, ну так они везде нужны, и внутри себя они по сути - инлайновый асмовый код (точнее пара-тройка команд). Весь проект может не содержать ни строчки руками написанного асма.
| |
|
|
|
3.150, Анан00230 (?), 14:00, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +1 +/– |
Проблема не в том должен программист думать или не должен. Проблема в том что программист продолжает думать над задачами, которые уже по факту имеют хорошее типовое решение, ничем не отличающееся по качеству от того, над которым он усердно думает.
Это еще более-менее может быть понятно в образовательных целях, но когда это происходит на постоянной основе в production коде, вот тогда и появляется ощущение что вся индустрия it мягко говоря растрачивает интеллектуальные ресурсы попусту
| |
|
2.116, Ivan_83 (ok), 12:52, 07/09/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| –1 +/– |
Только вместо яву можно подставить что угодно, в мою молодость там было паскаль, потом делфи и вижал бейсик.
Всё сдохло, С остался.
У меня наверное четверть пакетов в системе на С, и сама система тоже.
XFCE, GTK - всё ещё на С.
Очень удобно когда можешь отдебажить кучу приложений и тут же их пофиксить.
Правда я и остальные диалекты понимаю, но плохо говорить. )
| |
2.203, аНОНИМ (?), 18:34, 07/09/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
Далеко не любой (точнее никакой не) компилятор умеет оптимизировать лучше человека. Пишем ну например реализацию какого-нить sha1 или sha256 на си на интринсиках из SHA-NI, и получается у нас медленнее чем ручно-асмовый код в openssl. Ручными (!) унроллами циклов и перестановками операций можно чуть поднять быстродействие, но всё равно будет медленнее openssl. Из той же оперы и какой-нить ffmpeg, где практически все иннерлупы жатия видео -- на асме.
| |
|
3.278, Аноним (277), 10:23, 08/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
Как бы это сказать? Какой-нибудь LTO иногда глобальным анализом может такое навернуть, что человек бы вообще не додумался бы. Возьмет и аннулирует 80% функции доказав что эта часть никогда не вызывается при использовании как тут. Да еще смержит с 2 похожими наполовину. Вручную так делать мало кто захочет - "хакерский" мегаоптимизнутый код читать будет невозможно. Но в кодогенераторе при оптимизации все это не проблемы человека уже.
Но да, в локальных горячих кусках компилер может и хрень сделать, асм или интринсики в этом сильно предсказуемее и зачастую лучше.
| |
|
4.303, Аноним (-), 20:21, 08/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
А эта конструкция точно имеет постоянное время выполнения, не зависящая от входных данных?
Если нет - оно будет дико течь тайминги, давая зеленый свет тайминг атакам всех мастей и направлений. Учитывая что SHA1 и так то на ладан дышит (коллизию на заказ подогнать стоит примерно ~$30k) - это такое знание древних которое уже не очень актуально стало. Ладно бы еще SHA256 оптимизили..
| |
|
|
6.358, Аноним (-), 12:36, 10/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> Эта конструкция при прочих равных исполняется быстрее эталонной из FIPS, поскольку уменьшено
> количество операций. Писалась она во времена, когда sha1 ещё считался приемлемым
> и повсюду работали варианты из комментария.
В крипто "быстрее" не единственный критерий успеха алгоритмов и его реализации. А по состоянию на сейчас вы занимаетесь тем что учите народ плохому, как делать не надо. Это ведет к "опенсорсу который вы заслужили" так то.
| |
|
7.368, n00by (ok), 13:37, 10/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
Если кто забыл начало ветки - так она началась с «зачем нужен Си, когда компиляторы умнее людей», а подветка - с оптимизаций sha1 путём раскрутки циклов и ещё какой-то механической по сути работы. А там выше я написал то, что каждый из экспертов по оптимизации мог бы прочесть например у Генри С.Уоррена. Может ли компилятор произвести такое преобразование? Вот что имеет смысл по теме. Насколько понимаю, sha1 не считается стойким криптопреобразованием более десяти лет, так что и говорить об алгоритме в этом контексте не приходится.
| |
|
|
|
|
|
|
|
|
|
|
|
|
7.370, n00by (ok), 14:39, 10/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| –1 +/– |
>> Автономные программисты Rosa Tresh впадают в ступор, когда alloca() вызывает переполнение
>> стека. Правда, они как раз оголтелые фанаты GNU, в смысле GPL.
> Опять все беды от росы? У вас програмер из росы жену чтоли
> увел?
Да, все твои беды от «росы». Именно из-за принадлежности к этой секте ты не осилил понять смысл ветки. Человек спросил о проблемах alloca(), я привёл пример из жизни. Твоим друзьям показали конкретную строку, а они не знали что с этим делать. Неделю. Я видел всякое, но нигде больше в одном месте не было столько глупых и неумелых, как там, так что других примеров у меня нет.
| |
|
|
|
|
|
|
|
|
5.280, Аноним (280), 10:31, 08/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> Я больше скажу. MS никогда C и не поддерживала. Только C++ с
> огрызком стандартной библиотеки C.
Ну как не поддерживала, DOS они на сях писали, как и винды во многом, так что вьюжлси таки си умеет. Просто потом их на плюсоту потянуло и на си они забили. А так глядя на скорость работы винды и линуха с большими иерархиями файлов, например - простите но винду клинит в разы хуже, и мысль что у них офигенное ядро получилась на этом фоне чего-то не убедительна.
И вообще, линуксоид может отстроить себе ядро на не очень крутой машине. Удачи в обычном домашнем окружении винду или какой-то ее кус вообще отребилдить без мытарств, даже если б вам сорц и дали.
| |
|
6.287, n00by (ok), 11:45, 08/09/2022 [^] [^^] [^^^] [ответить] [↓] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
У Виндоса ядро офигенное получилось для того времени. Когда оперативной памяти было мало, экзешники там быстрее отображались в память и её экономили, не генерируя лишних грязных страниц. Ныне памяти в разы больше, данные с накопителя быстрее читать большим блоком, тогдашние оптимизации как бы вредят.
| |
|
7.360, Аноним (-), 12:58, 10/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> Не знаю, на чем они там DOS писали, но компилятора C у них никогда не было.
Да что ты? А что такое было, допустим, Microsoft C 80? :)
> MSVC - это компилятор C++.
Он видимо вырос из какого-то сишного предшественника. Давным давно был вот какой-то именно майкрософт, именно си. Да и название "вьюжл си" как бы намекает. А то что там потом и плюсы появились - так они у почти всех развитых тулчейнов со временем появились.
> И да, даже если твой код не использует возможностей C++ и внешне похож на C,
> его интерпретация компилятором C и C++ будет разной.
Спасибо капитан очевидность.
| |
|
|
|
4.279, Аноним (277), 10:27, 08/09/2022 [^] [^^] [^^^] [ответить] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> никогда Си не поганила
Да куда им?! Их кусок позора в виде студии даже C99 до конца не умеет вроде аж до сих пор. И если на них равняться... маздайцы все как один пишут на "C++". Который по факту оказывается C99, ради коментов // и чего еще по мелочи. Не, даже классы не юзают и какие там еще неймспейсы, чисто меняют расширение для менее мерзотного компилера. А заодно и по оптимизациям студия уже давно перестала быть впереди планеты всей: gcc и clang ее во многих случаях делают с отрывом.
Так что никто не собирается на майков равняться в случае си. Они делом доказали что их компилер дикий ацтой.
| |
|
|
|
|
|
3.263, Карабьян (?), 06:55, 08/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +2 +/– |
> Мне лет десять назад упоминали, что RMS ходил по проектам и призывал
> не принимать патчи для поддержки LLVM. Напрягло очень сильно, поскольку
> это и есть тот самый vendor lock. Надеюсь, Ричард с
> тех пор усовестился на этот счёт (но вроде бы не спрашивал)...
А ведь он и автор autotools в том числе, призванных упростить смену компилятора в том числе. Хочется верить, что все-таки это неправда
| |
|
|
1.17, sergeyb (ok), 10:37, 07/09/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| –13 +/– |
Открываем раздел "5.8 Recursive Functions", копируем пример, собираем, запускаем.
'''
sergeyb@pony:$ cat fac.c
int
factorial(int x)
{
if (x < 1)
return 1;
else
return (x * factorial (x - 1));
}
int
main() {
factorial(1000000000);
}
sergeyb@pony:$ gcc fac.c
sergeyb@pony:$ ./a.out
Segmentation fault (core dumped)
sergeyb@pony:$
'''
Отличный учебник!
| |
|
|
|
|
5.155, Аноним (-), 14:14, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +2 +/– |
> Восхваляя рекурсивные алгоритмы, забывают, что проблема именно в стеке. Да, кстати, и
> факториал так считать неэффективно. Примеры должны быть простыми, но не тупыми.
Понимаешь ли в чем дело, чудак...
1) Си сам по себе на уровне спеков ... вообще ничерта не говорит про стек и аллокацию.
2) У оптимизера на этот счет бывают какие-то очень сильно свои идеи. Он настолько умный что даже щеленаправленые попытки уронить программу подобной по смыслу конструкцией ронять ничего не хотят, потому что оптимизер вообще ухитрился аннулировать работу со стеком, а иной раз и вообще скостив весь код до условного "return 10050", ну или сколько там получалось :)
| |
|
6.181, n00by (ok), 16:57, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| –1 +/– |
>> Восхваляя рекурсивные алгоритмы, забывают, что проблема именно в стеке.
> Следующая глава книги: "1.2 The Stack, And Stack Overflow".
Такая глава следует после рекурсивной Фибоначчи:
if (n <= 2)
return 1;
else
return fib (n - 1) + fib (n - 2);
В исходном сообщении совсем другая функция:
if (x < 1)
return 1;
else
return (x * factorial (x - 1));
Не знаю, откуда взял её автор сообщения, но это не просто рекурсия, а хвостовая рекурсия - ей не нужен стек.
| |
|
7.184, другой аноним (?), 17:13, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
(занудно) это НЕ хвостовая рекурсия. Хвостовая рекурсия -- это ТОЛЬКО return factorial(...) и ничего больше. Вызов функции должен быть строго последним действием перед возвратом, а у Вас последнее действие -- умножение. Факториал МОЖНО переписать в виде хвостовой рекурсии, но Вы этого не сделали. Вам для этого потребуется вспомогательная функция с двумя аргументами.
| |
|
|
|
|
|
|
3.183, freehck (ok), 17:12, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> -foptimize-sibling-calls
> Optimize sibling and tail recursive calls.
> Enabled at levels -O2, -O3, -Os.
И это ему очевидно не поможет, потому что писать надо так:
int factorial_iter(int acc, int n) {
if (n <= 1) return acc;
return (factorial_iter(acc*n, n-1));
}
int factorial(int n) {
return (factorial_iter(1,n));
}
| |
|
4.189, n00by (ok), 17:28, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
>[оверквотинг удален]
>> Optimize sibling and tail recursive calls.
>> Enabled at levels -O2, -O3, -Os.
> И это ему очевидно не поможет, потому что писать надо так:
> int factorial_iter(int acc, int n) {
> if (n <= 1) return acc;
> return (factorial_iter(acc*n, n-1));
> }
> int factorial(int n) {
> return (factorial_iter(1,n));
> }
Так в книге другой код. Там вот таким переполняют стек:
int
fill_stack (int n)
{
if (n <= 1) /* This limits the depth of recursion. */
return 1;
else
return fill_stack (n - 1);
}
Откуда взялся факториал и глава 5.8 - я не знаю, но похоже, что предложен исправленный вариант, или намёк, что надо объяснять в той главе про оптимизации.
| |
|
|
|
|
|
3.185, Аноним (185), 17:18, 07/09/2022 [^] [^^] [^^^] [ответить] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| –8 +/– |
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
Как же старикашка недоканселиный надоел этим параграфом ко всем своим письмам, показывает себя идиотом.
// b.
| |
|
|
|
2.78, Аноним (10), 11:56, 07/09/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +2 +/– |
Я думаю, это может быть связано с тем, что человек, писавший и компилировавший материалы в пдф, не имеет возможности проверить результат. Во-первых, это богомерзкий проприетарный формат с дрм и врождённой дырявостью, и, во-вторых, консольных читалок что-то не видно на горизонте. Отсюда и столько совершенно очевидных косяков, и с ссылками, и с конвертацией. Не ищет лёгких путей, но можно было бы завести отдельный девайс, используемый специально для таких вещей -- излишняя принципиальность только вредит.
| |
|
|
4.310, Аноним (-), 21:11, 08/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> Посочувствуем человеку, у которого в 2022 году нет графического терминала.
Скажи, сколько ты со своим якобы-высокоэффективным обвесом дельных книжек написал? Да еще претендующих на ISBN? Урлу скачать дашь? А компилеров которые кому-то еще и нужны будут сколько сделал? А то может оказаться, что ты, обвешаный современными средствами, всего лишь унылый балласт по сравнению с тем консольным олдскулером. И это, кстати, баг а не фича.
> Нет, ну в принципе, можно и видео через caca смотреть…
Да вот знаете, рак даже с суперсовременным обвесом остается раком. А профи много и не надо, на то и прояи.
> Но в целом есть поговорка: не можешь какать — не мучай попу.
Самокритично. Но с вон тем сообщением тебя на недержание все же пробило.
| |
|
|
|
1.70, Аноним (4), 11:43, 07/09/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| –8 +/– |
Может я не прав, но во первых не вижу сегодня смысла писать не на Плюсах, которые по сути просто надстройка над Сями, реализующая все недостающие фичи. А во вторых все еще считаю Си плохо читаемым языком, который за свою долгую жизнь просто наводнился различного рода костылями и подпорками. Все вот эти _AbRaCaDaBrA_ и другие лишние знаки припенания. Почему бы не писать по человечески?
| |
|
|
3.75, Аноним (76), 11:55, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +6 +/– |
Я вот думаю, что сила в карбоне. У кого карбон – тот и сильней. Вот раст обманул кого-то, денег нажил. И чего, раст сильнее стал? Нет, не стал. Потому что правды за растом нет. А тот, у кого карбон, за ним правда, значит, он сильней
| |
|
2.81, Аноним (81), 12:02, 07/09/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +6 +/– |
> не вижу сегодня смысла писать не на Плюсах
либу на си легко заюзать из других языков. К примеру, GLib/GObject, а также все другие либы, базирующиеся на них, автоматически получают автоматические биндинги ко всем популярным скриптовым языкам. Ну а либа на плюсах так и останется либой на плюсах.
если софт представляет из себя монструозный комбайн, то наверное да, стоило бы предпочесть плюсы сям. А для всего остального хватает и си. Си - это дефолтный язык, и отклонение от дефолта следует обосновывать в каждом отдельном случае.
| |
|
3.312, Аноним (312), 21:22, 08/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
Тут все просто. Есть легенда что каждый плюсовик пишет на своем C++. Поэтому C++ бывает очень разным. Бывает дикий ужас, который не декодабелен никем кроме автора. Бывает отличный, прозрачный, читаемый код, где емкие и выразительные высокоуровневые конструкции сочетаются с низкоуровневым контролем над ситуацией, а происходящее понятно даже полному профану из-за выразительности кода.
Заодно это и уровень кодера хайлайтит, сразу понятно с кем имеем дело и что они знают и могут по части софтостроя. И какой бардак (или его отсутствие) у них в головах. Так что плюсы это отличный детектор скиллов кодера. И тут уже не спрячешься, цену себе не набьешь сертификатиками, все как на ладони, сразу видно кто есть кто и что он может.
| |
|
4.323, freehck (ok), 00:52, 09/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
Да как бы абсолютно то же самое можно про любой язык сказать. Я видел примеры хорошего и плохого кода на Ocaml, на Racket, на C++, на Clojure, на Java, на Scala... Да даже на Bash и на Ansible. Это общее для IT-сферы, и одними крестами не ограничивается. Люди используют любую технологию в меру своей грамотности.
| |
|
5.363, Аноним (-), 13:09, 10/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> Да как бы абсолютно то же самое можно про любой язык сказать.
В остальных яп это выражено меньше, хотя, конечно, гамнокодить можно на чем угодно.
> Я видел примеры хорошего и плохого кода на Ocaml, на Racket,
> на C++, на Clojure, на Java, на Scala... Да даже на
> Bash и на Ansible. Это общее для IT-сферы, и одними крестами
> не ограничивается. Люди используют любую технологию в меру своей грамотности.
А таки вот именно плюсы это очень удачный детектор "мощных кодеров". И они обычно не считают себя настолько уж обезьянами чтобы на яве вообще идти что-то програмить. У явы парадигмы, видите ли, другие: огроменный STDLIB который боги накодили, а вы тут червяки, давайте-ка, хреначьте, а то за вами придет самый страшный дед - лайн.
| |
|
|
|
|
|
|
|
|
5.313, Аноним (313), 21:26, 08/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> Ну а чего ещё он делает в реале, кроме перечисленного?
Показывает как можно быть свободным человеком, не отлизывая ботинки корпораций до блеска, например. Но в твоем случае это бесполезно: некоторые рабы решительно не понимают как можно жить без надсмотрщика и барака предоставленного добрым хозяином нахаляву.
| |
|
|
|
|
|
|
3.365, Аноним (-), 13:24, 10/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> А я на Zig, и могу спокойно „этого питона”:
> * Компилировать (и кросс-компилировать, и с поддержкой кэширования).
> * Использовать с кодом на Zig.
> * Притворяться им, так что другие языки не отличат.
Ну да, только вон там в соседней новости твой тезка ныл про баги в оном. Нет, в нем есть кое-что прикольное, с компилтайм вычислениями прикольно придумано. Но...
| |
|
|
1.188, Аноним (157), 17:21, 07/09/2022 [ответить] [﹢﹢﹢] [ · · · ] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +2 +/– |
Перестал собираться после обновления. Держите патч.
diff --git a/c.texi b/c.texi
index e9e763c..0761568 100644
--- a/c.texi
+++ b/c.texi
@@ -62,7 +62,7 @@ WILL BE Published by the Free Software Foundation @*
51 Franklin Street, Fifth Floor @*
Boston, MA 02110-1301 USA @*
ISBN ?-??????-??-?
-@ignore
+@end ignore
| |
|
|
3.366, Аноним (-), 13:29, 10/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> Попадая в дикую среду домашний котик вынужден сам защищаться, сам находить еду
> - опасно, трудно, мокро, холодно.
Ага, блин, благодетели сваливаются на бошку и...
- Запирают в 4 стенах.
- Площадь владений издевательская.
- За ссач под тапки норовят оттыкать носом.
- Ссать где попало не дают, изволь в лоток.
- Половина еще и кастрировать норовит.
- Кормежка только когда двуногий расчехлится. И даже если желудок к спине прилип, хрен мышь поймаешь.
- И поохотиться для спортивного интереса, кстати, вон там тоже не на что.
В общем такое себе довольно интересное благодеяние, так то. Если бы у домашнего котика был бы мозг чуть побольше - большой вопрос что бы он вообще сказал на эту тему.
| |
|
|
|
2.230, snmp agent (?), 21:21, 07/09/2022 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
Положит, man scanf:
s Matches a sequence of non-white-space characters; the next pointer must be a pointer to the initial element of a character array that is long enough to hold the input sequence and the terminating null byte ('\0'), which is added automatically. The input string stops at white space or at the maximum field width, whichever occurs first.
| |
|
1.282, Lex20 (ok), 10:35, 08/09/2022 [ответить] [﹢﹢﹢] [ · · · ] [↑] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
Типовые решения зачастую теряются в мусорке из других типовых решений. Ну нету на сегодняшний день такой базы кода, в которой все алгоритмы были бы в исходных кодах и красиво написаны. GNU хочет таким быть, но и ему приходится как-то себя рекламировать. Книгу выпустить самое правильное решение на сегодняшний день, ибо в книгах самая важная и нужная информация. Сам таким занимаюсь, уже 15 страниц написал, да таких что никто не скажет что он это уже знал. Может к 50 годам опубликую.
| |
1.319, Метатель биссера (?), 22:58, 08/09/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +3 +/– |
Столман нормальный мужик, программы и книги пишет интересные и полезные. Не понимаю людей которые его ругают, а ругают его те, у кого своих достижений нет особых и специалистами они никогда не были ни в каких областях. На работе давно заметил, что конфликты и пустые разговоры исходят в основном от людей, которые очень слабы как специалисты.
| |
|
|
|
|
|
6.477, Аноним (477), 06:05, 28/01/2023 [^] [^^] [^^^] [ответить] [п©Б∙╗ п©Б∙╙п©Б∙╛п©Б∙╒п©Б∙ёя▐Б■─п©Б∙÷я▐Б■▄п©Б∙╛я▐Б■─я▐Б■░]
| +/– |
> Вот поэтому старый стандарт и канул в лету!
Это одна из причин, но не решающая.
Заодно отвечаю на вопрос, который столь сильно Вас беспокоит, что Вы задали его аж 4 раза, но прилично сформулировать не смогли.
В кавычках -- цитата. Рядом дана ссылка на источник. Вы разговаривали с копипастой. Пишите непосредственно автору.
Меня донимать по этому поводу не надо -- я отсюда ушёл как раз утомлённый наблюдением непонимающих столь очевидных вещей.
| |
|
|
|
|
|
|