Имбирь - твой спиритический овощ. Войти !bnw Сегодня Клубы

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

Ну собственно, есть такая тема, что люди, которые не то что ассемблера, даже сишку толком не пробовавшие, пишут на своих жабоскриптах такую дикую хуиту с точки зрения оптимизации, что просто пиздец. Ибо нет нифига понимания(даже примерного) в какие такие машинные инструкции будет оттранслирована та хуерга, которую наплодили эти "программисты".
Раньше мой дед на целероне 400 мгц 256 метрами ОЗУ успешно смотрел интернет на несвежем дистрибутиви GNU/Linux. Но потом тупые индусы понаделали тормозных жабаскриптов и дед начал жаловаться на появление какого-то непонятного окошка "скрипт недоступен". Он еще начал интересоваться, что такое скрипт и на что он должен отвечать. Ну типа типичные последствия. Вообще, дофига сайтов адово тормозят от этих говен, поэтому у меня NoScript всегда наготове, ибо от этого говна тормозятся даже современные браузеры на современном железе. Это ж надо было дойти до того, чтобы делать абгрейд из-за того, что какие-то *** понаписали быдлокода на JS? Если вы у себя на сервер-сайде ворочаете всякие тормозные питоны, похопе и Node.js то это ваши личные половые проблемы. Но вот когда вы кормите этим JS-говном МОЙ процессор, тут уж я на это вынужден применять меры, вроде NoScript
http://www.opennet.ru/opennews/art.shtml?num=36962 вот на такое клиенд-сайд веб программирование (если его сильно запаковать в сандбокс) я согласен. Есть еще такая тема, как asm.js http://habrahabr.ru/post/171561/ но это всё полумеры.

А теперь по теме, нафига вообще ASM. Любой (за исключением CUDA и прочей GPU-ускоренной хреноты) код на любом ЯП в итоге транслитуется в опкоды и переваривается центральным процессором (всякие CUDA и опенжл передаются в видеокарту и перевариваются через GPU). Я лично не против, чтобы кто-нибудь писал на языках, подобных Java, JavaScript, Python, Ruby и что там еще... Вся беда в том, что для эффективного программирования даже на таких ВЫСОКОУРОВНЕВЫХ ЯП как эти, необходимо хотя бы примерно представлять, в какой машинный код преобразуются ваши высокоуровневые конструкции.
Иногда приходится смотреть на сгенерированный сишным компилятором код, чтобы понять причины тормозов. Чтение ассемблерного выхлопа GCC позволило мне выявить хреновую оптимизацию записывания байтиков в стек, вот http://gcc.1065356.n5.nabble.com/Ways-to-fill-the-stack-td912561.html почитайте (да, я знаю, у меня плохой английский)

Понимание архитектуры ЭВМ, недостатков некоторых вещей (типа NULL-terminated string http://www.joelonsoftware.com/articles/fog0000000319.html ) позволяет избегать ошибок на более высоких уровнях.
Меня тут обвиняли что я статейки какие-то даю, так вот тут я их действительно выдам
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
https://lwn.net/Articles/250967/
http://www.insidepro.com/kk/145/145r.shtml
https://savannah.nongnu.org/projects/pgubook/

И вот типа цитата, но я не вполне согласен с ней. Иногда ASM нужен именно для написания

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

Критика приветствуется

Рекомендовали: @goren @o01eg @octagram
#GHU55Z / @j123123 / 4234 дня назад

На самом деле чтобы понимать как нельзя делать, нужен скорее курс схемотехники эвм и организации эвм. Умение напрогать хуиты на ассемблере далеко не всегда добавляет понимания.
#GHU55Z/OQP / @stiletto / 4234 дня назад
@stiletto >организации эвм Обычно такой курс выглядит так: лекция - "это флоповод, он читает и пишет дискеты", лаба - "найти в интернетах доклад устройство флоповода (двигатель, магнитная головка и т.п.) и сдать мне. А на следующей недели мы изучим манипулятор типа "мышь".
#GHU55Z/AJ1 / @etw --> #GHU55Z/OQP / 4233 дня назад
@etw такое обычно преподается гуманитариям и называется "информатика"
#GHU55Z/O33 / @stiletto --> #GHU55Z/AJ1 / 4233 дня назад
>As you can see, mov %r8,(%rsp) produse 4 bytes: 4c 89 04 24 and mov %rdi,0x8(%rsp) produces 5 bytes: 48 89 7c 24 08 push %r8 produces only 2 byte 41 50 and push %rax (or %rcx %rdx ...) produces one byte You can check other instruction length, for example movq %rax, (%rsp) etc. А стоимость по тактам ты сравнил? У тебя -O2, а не -Os.
#GHU55Z/XL0 / @etw / 4233 дня назад
@etw Да, по стоимости тактов там может быть проигрыш, надо таблицы смотреть. http://agner.org/optimize/ неплохое
#GHU55Z/Y0E / @j123123 --> #GHU55Z/XL0 / 4233 дня назад
Алсо, на самом деле, если ты не занимаешься специфичными вещами, асм знать нафиг не надо. А порой даже вредно (начнешь со своими хуй86-представлениями фантазировать невесть что при кодинге кроссплатформенного софта, который, например, должен также работать под ARM).
#GHU55Z/SVC / @etw / 4233 дня назад
@j123123 > http://agner.org/optimize/ неплохое Intel® 64 and IA-32 Architectures Software Developer Manuals же, лол. Давно бы уже пора перестать искать в интернетах хаутушечки вместо обращения к первоисточникам.
#GHU55Z/UWK / @etw --> #GHU55Z/Y0E / 4233 дня назад
@etw Да даже если асм знать только под арм или только под какой-нибудь PDP-8, это в любом дает толк. Кнут не зря свой MMIX ассемблер придумал
#GHU55Z/DFM / @j123123 --> #GHU55Z/SVC / 4233 дня назад
@j123123 >Да даже если асм знать только под арм или только под какой-нибудь PDP-8, это в любом дает толк. У меня сложилось впечателние, что прикладным программистам нихуя не даст. Дает только системным и то, лишь в специфичных задачах.
#GHU55Z/YTH / @etw --> #GHU55Z/DFM / 4233 дня назад
@stiletto > Схемотехника Программисту будет сложно такое осваивать. А организация ЭВМ, типа многозадачнось, программная и аппаратная конвейеризация, некоторые базовые представления об устройстве процессора, кэш, стек, Гарвардская/Фон-Неймановская архитектуры. Про устройство операционных систем можно тут https://ru.wikipedia.org/wiki/Операционная_система читнуть. Много ссылок я вбрасывал на лор, https://www.linux.org.ru/forum/development/9109346?lastmod=1367324753936#comment-9112253
#GHU55Z/KU9 / @j123123 --> #GHU55Z/OQP / 4233 дня назад
@j123123 И кстати, какого х-я цитата в веб-морде не подсвечивается зеленым, если она на первой строке?
#GHU55Z/N8F / @j123123 --> #GHU55Z/KU9 / 4233 дня назад
@etw Нет. Взять хотя бы механизм косвенной адресации http://www.scm.tees.ac.uk/users/u0000408/020adr/020mode.htm и то, каким образом через него можно реализовывается двумерный массив, понимание указателей в си, всякие там массивы указателей на указатель массива указателей, таблицы виртуальных методов http://www.cs.ust.hk/~dekai/library/ECKEL_Bruce/TICPP-2nd-ed-Vol-one/TICPP-2nd-ed-Vol-one-html/Chapter15.html
#GHU55Z/LY9 / @j123123 --> #GHU55Z/YTH / 4233 дня назад
@j123123 Пониманию арифметики указателей асм помогает, но не зваляется для этого необходимым условием. То же самое про массивы указателей. Выкрутасы с lea вообще никого не ебут (извращенцев, всюду не к месту сующих ассемблерные вставки), это пусть у конпелятора голова болит о таких вещах. Особенности реализации vtable интересны по большей части при реализации компиляторов, прикладных программистов они мало волнуют.
#GHU55Z/YX8 / @etw --> #GHU55Z/LY9 / 4233 дня назад
@etw > Пониманию арифметики указателей асм помогает, но не зваляется для этого необходимым условием. Для полного понимания как раз является > Выкрутасы с lea вообще никого не ебут (извращенцев, всюду не к месту сующих ассемблерные вставки), это пусть у конпелятора голова болит о таких вещах. Ну допустим если есть какая-то сишная байтоебская хренотень, которая пердолит массивы, и допустим что один компилятор компилирует эту штуку во вполне приемлимый код, а другой выдает тормозную хуиту, выяснить причины такого поведения поможет просмотр ассемблерного выхлопа. И еще, если массив в Си заполнять по столбцам, это будет значительно медленнее, в Си вообще как такового массива нет, там по сути кусок памяти, который можно забивать всякой хренью. И вот, чтобы объяснить причины неодинаковой скорости заполенния массива, надо упомянуть адресацию, про кэш процессора. Иначе никак. > Особенности реализации vtable интересны по большей части при реализации компиляторов, прикладных программистов они мало волнуют. Ну, эту vtable можно вручную нахерачить на ассемблере или чистом Си без плюсов, если понимать ее устройство
#GHU55Z/2KX / @j123123 --> #GHU55Z/YX8 / 4233 дня назад
@etw Да, кстати. Реверс и крякинг программ, там без знаний ассемблера никуда
#GHU55Z/CMO / @j123123 --> #GHU55Z/YX8 / 4233 дня назад
фф проблемы, алсо носкрипт тормозит больше чем скрипты
#GHU55Z/NX0 / @krkm / 4232 дня назад
@kurkuma >фф проблемы Хром слишком говно, чтобы его использовать >носкрипт тормозит больше чем скрипты Нет
#GHU55Z/CRO / @j123123 --> #GHU55Z/NX0 / 4232 дня назад
@j123123 срсли, я перекатился на хром потому что он быстрее со скриптами работает, чем фф без. дунно в чем у фф проблемы, дом медленно работает или что, но он даже на простых скриптах заставляет меня ощущать торможение
#GHU55Z/MNG / @krkm --> #GHU55Z/CRO / 4232 дня назад
@kurkuma Да я знаю что там скрипты шустрее, просто сам браузер говно
#GHU55Z/1AC / @j123123 --> #GHU55Z/MNG / 4232 дня назад
@j123123 >Ну допустим если есть какая-то сишная байтоебская хренотень, которая пердолит массивы, и допустим что один компилятор компилирует эту штуку во вполне приемлимый код, а другой выдает тормозную хуиту Если для тебя это является важным критерием, то просто выкинь второй конпелятор и возьми первый. У тебя ведь цель - получить более производительный код, а не асм-листинги поразглядывать. >Ну, эту vtable можно вручную нахерачить на ассемблере или чистом Си без плюсов, если понимать ее устройство И нахуя? Если ты начинаешь вручную выписывать реализацию vtable на асме или сях, значит у тебя либо просто дохуя свободного времени, либо ты пишешь конпелятор, либо ты поехал.
#GHU55Z/PXN / @etw --> #GHU55Z/2KX / 4232 дня назад
@j123123 > Да, кстати. Реверс и крякинг программ, там без знаний ассемблера никуда Ну и? Напоминаю: >лишь в специфичных задачах Так-то я тебе могу еще областей набросать, где асм нужен, но они все очень узкие.
#GHU55Z/12K / @etw --> #GHU55Z/CMO / 4232 дня назад
@etw > Если для тебя это является важным критерием, то просто выкинь второй конпелятор и возьми первый. А если первый хорошо оптимизирует вот там и там, а второй хорошо оптимизирует вот там и там? > У тебя ведь цель - получить более производительный код, а не асм-листинги поразглядывать. А если у меня цель - написать в базиллу что вот тут ваш компилятор хреновую оптимизацию делает? > Если ты начинаешь вручную выписывать реализацию vtable на асме или сях, значит у тебя либо просто дохуя свободного времени Да > либо ты пишешь конпелятор Буду писать > либо ты поехал. Это отчасти верно. Только это у меня вообще с рождения, лол. Но мне норм #PG3D5X #068ABQ/XHX
#GHU55Z/MR4 / @j123123 --> #GHU55Z/PXN / 4232 дня назад
@etw Ну если взять такую фиговину, как выравнивание данных, про которые всякие там пхпшники не задумываются, им важнее картинку по центру выровнять http://dump.bitcheese.net/images/ytadujy/a1.png #pragma pack http://msdn.microsoft.com/en-us/library/2e70t5y1%28v=vs.71%29.aspx (GCC тоже умеет) __attribute__ ((aligned)) http://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html Когда нужен например всякий числодроб, системное программирование и геймдев, тут этим придется заниматься, а это не такая уж специфичная задача. Ну и использование интринсиков, как например http://blog.lexa.ru/2012/12/26/opyat_o_sovremennykh_cpu.html Компиляторы не идеальны, увы
#GHU55Z/EWZ / @j123123 --> #GHU55Z/12K / 4232 дня назад
@j123123 >А если первый хорошо оптимизирует вот там и там, а второй хорошо оптимизирует вот там и там? То ты либо продолжаешь делать основную задачу, либо начинаешь писать конпеляторы. > А если у меня цель - написать в базиллу что вот тут ваш компилятор хреновую оптимизацию делает? Тебе настолько далась эта оптимизация, что она мешать выполнению основной задачи? >Да И о чем тогда речь? Развлекаться ты как угодно можешь, хоть на malbolge пиши, но не говори тогда, что знание malbolge необходимо всем программистам. >Буду писать Пиши. Но написание цпп-компилятора - это весьма специфичныая задача. Большинство программистов цпп-конпеляторы не пишут.
#GHU55Z/7SE / @etw --> #GHU55Z/MR4 / 4232 дня назад
@j123123 >выравнивание данных Для того, чтобы знать это, нет необходимости программировать на ассемблере. >Когда нужен например всякий числодроб, системное программирование и геймдев, тут этим придется заниматься, а это не такая уж специфичная задача. В подавляющем большинстве случаев устраивает выравнивание данных, производимое конпелятором. Руками тьюнить поведение компилятора надо в очень и очень редких случаях. Сейчас, вообще, если уж на то пошло, cpu/memory-bound задачи очень редки. Обычно все упирается в IO или память раньше заканчивается.
#GHU55Z/0N8 / @etw --> #GHU55Z/EWZ / 4232 дня назад
@etw >> А если первый хорошо оптимизирует вот там и там, а второй хорошо оптимизирует вот там и там? > То ты либо продолжаешь делать основную задачу, либо начинаешь писать конпеляторы. То я могу написать багрепорт в базиллы того и того компилятора > И о чем тогда речь? Развлекаться ты как угодно можешь, хоть на malbolge пиши, но не говори тогда, что знание malbolge необходимо всем программистам Ну видишь ли, многие используют этот vtable просто как некую магию, не вникая в то, как именно это работает. Если же написать это на Си через указателееблю, будет более полное представление. Если на ассемблере, так вообще замечательно. Можно еще дизассемблировать и посмотреть, как оно там работает. > Пиши. Но написание цпп-компилятора - это весьма специфичныая задача. Я не собираюсь писать компилятор C++. Я вообще сильно не люблю C++, особенно C++11. У меня будет свой __ПРИНЦИПИАЛЬНО НОВЫЙ__ ЯП
#GHU55Z/XMC / @j123123 --> #GHU55Z/7SE / 4232 дня назад
@j123123 Кстати, насчет "скрипты быстрее" я ошибся Я вот на тесте жабоскрипта из сайта webkit (sic!) протестил на генте скомпилированный с оптимизацией Aurora (это типа бета огнелиса) и Chromium, хромиум соснул Тест вот https://www.webkit.org/perf/sunspider/sunspider.html Пруфы могу предоставить
#GHU55Z/BR6 / @j123123 --> #GHU55Z/1AC / 4232 дня назад
@j123123 > То я могу написать багрепорт в базиллы того и того компилятора Я не вижу, как этот аргумент указывает на необходимость каджому программисту знать асм. > Ну видишь ли, многие используют этот vtable просто как некую магию, не вникая в то, как именно это работает. Ну и ладно, vtable даже в стандарте не описано. Я все равно не вижу *необходимости* знать асм. > Я не собираюсь писать компилятор C++. Я вообще сильно не люблю C++, особенно C++11. У меня будет свой __ПРИНЦИПИАЛЬНО НОВЫЙ__ ЯП Да не важно, компилятор чего. Большинство программистов и не пишут компиляторы вообще.
#GHU55Z/V7Z / @etw --> #GHU55Z/XMC / 4231 день назад
@j123123 с разморозкой
#GHU55Z/046 / @krkm --> #GHU55Z/BR6 / 4231 день назад
Нахуя js-кодеру нужен asm, если он нихуя не поможет сделать код быстрее или лучше? Чтобы писать на js хороший код нужно знать не как оно там оттранслируется в машинный код (кого ебет?), а то как устроен браузерный движок. С дрочкой уровня asm'а ты выиграешь какие-нибудь микросекунды, да и то, в случае если запустишь код в цикле пару миллионов раз. А для начала вообще неплохо было бы выучить JS и хотя бы полистать маны тех тулз, что используешь, иначе получаются вот такие мудаки: http://habrahabr.ru/post/166877/ которые пилят велосипеды, потому что не прочитали ман. Блять, мудак вешает по обработчику на кучу элементов, удивляется что это ДОЛГО, пилит свой велосипед, который НЕ НАСТОЛЬКО ДОЛГО вешает обработчики, вместо того, чтобы открыть ебучий ман по жквери http://api.jquery.com/on/ и повесить один единственный обработчик на весь документ с фильтрацией по элементам.
#GHU55Z/LUK / @krkm / 4230 дней назад
@kurkuma Ну ок, если жабоскриптовый движок огнелиса быстрее, нахрена тогда JS.Node работает на V8 ?
#GHU55Z/J4N / @j123123 --> #GHU55Z/046 / 4230 дней назад
@j123123 когда появился node.js, v8 уделывал огнелисовскую подделку. а теперь что, ради выигрыша, который можно засечь разве что тестами, переписывать весь проект на вообще другой движок? у ff проблема не в js-движке, в ff куча говна, каких-то блокировок, хуй пойми чего, они потихоньку это разгребают, но еще не скоро дойдут до такого же состояния как в хроме, когда ты даже не замечаешь, что в соседней вкладке кто-то всунул жаваскрипт, майнящий биткойны
#GHU55Z/NQI / @krkm --> #GHU55Z/J4N / 4230 дней назад
@kurkuma > Нахуя js-кодеру нужен asm, если он нихуя не поможет сделать код быстрее или лучше? А что поможет? Сколько мне уже терпеть это вебговно тормозное? Писали бы уже на Asm.js в таком случае, если Си/Си++ с Portable Native Client кажется слишком сложным > А для начала вообще неплохо было бы выучить JS и хотя бы полистать маны тех тулз, что используешь Выучить JS мне ничего не стоит, я даже немного писал на нем какую-то фигню, будучи еще школьником, это такая сишкоподобная штука с утиной типизацией. И кстати, на кой хрен этот ваш жквери еще не встроили в браузер, если без него практически уже ничего не пишут? Можно ж ведь эту жкверю уже переписать на Си и статически встроить в движок, я уверен. Вот кстати зацени, какую я хрень написал от нефиг делать http://ideone.com/l5cpwf
#GHU55Z/2PQ / @j123123 --> #GHU55Z/LUK / 4230 дней назад
@etw > Для того, чтобы знать это, нет необходимости программировать на ассемблере. Ятобы четко понимать, зачем это выравнивание нужно, желательно попрограммировать на ассембере. Есть например SIMD инструкции MOVAPS MOVUPS которые работают за разное время. Память на самом деле не плоская > В подавляющем большинстве случаев устраивает выравнивание данных, производимое конпелятором. Руками тьюнить поведение компилятора надо в очень и очень редких случаях. Например, если надо делать массив из структур, и надо экономить память. Вообще, советую почитать про выравнивание Оригинал: http://www.ibm.com/developerworks/power/library/pa-dalign/ Перевод: http://konishchevdmitry.blogspot.com/2010/01/blog-post.html
#GHU55Z/POM / @j123123 --> #GHU55Z/0N8 / 4230 дней назад
@j123123 >А что поможет? поможет только знание того, как эта хуерда исполняется движком. но большинство скриптов пишутся по принципу "написал-запустил-вроде работает-значит готово", куда уж там до профайлеров и прочего. >Писали бы уже на Asm.js в таком случае asm.js не для того, чтобы на нем писали, он для того, чтобы писать то, что раньше можно было писать только на js, но теперь на любых других языках программирования. >И кстати, на кой хрен этот ваш жквери еще не встроили в браузер, если без него практически уже ничего не пишут? на тот хрен, что jquery, внезапно, постоянно апдейтится, в нем фиксятся те же баги и есть куча легаси, которые написаны под баги старых версий, то есть не работают на новых версиях, где починили. >Можно ж ведь эту жкверю уже переписать на Си и статически встроить в движок, я уверен. зачем? там выигрыша вообще никакого не будет, jquery-типичные конструкции уже давно оптимизируются браузерами, то есть, работает и так со скоростью близкой к нативному коду повторю, из-за самой скорости js париться вообще смысла нет, есть куча других вещей, в которых обычно и кроются тормоза, та же работа с DOM - это бесспорный лидер в доставлении неудобств юзерам. проблема идет еще с тех времен, когда js-кодеров вообще не было, а были любые другие кодеры, которые иногда пописывали всякую хуйню на js для своих проектов. "Javascript-программист" совсем недавно начало мелькать в списках вакансий и там уже идут люди, которые представляют себе как все это работает и пишут вполне нормальный код, но тут когнитивщина опять: когда ты зайдешь на сайт, где код написан нормально и все шустро работает, ты этого просто не заметишь, а в соседней вкладке будет тормозить говнокод какого-нибудь си-кодера, который за 10 минут наколякал говно, вешающее пару десятков тысяч обработчиков на элементы.
#GHU55Z/MKV / @krkm --> #GHU55Z/2PQ / 4230 дней назад
@kurkuma > поможет только знание того, как эта хуерда исполняется движком Тут я соглашусь. НО чтобы это знание появил, неплохо бы читнуть исходник движка. > большинство скриптов пишутся по принципу "написал-запустил-вроде работает-значит готово", куда уж там до профайлеров и прочего. В этом вся и проблема. И кроме того, многие сайты просто не работают без этого жаваскрипта, т.е. выбора мне просто не предоставляют. >повторю, из-за самой скорости js париться вообще смысла нет, есть куча других вещей, в которых обычно и кроются тормоза, та же работа с DOM - это бесспорный лидер в доставлении неудобств юзерам. >проблема идет еще с тех времен, когда js-кодеров вообще не было, а были любые другие кодеры, которые иногда пописывали всякую хуйню на js для своих проектов. "Javascript-программист" совсем недавно начало мелькать в списках вакансий и там уже идут люди, которые представляют себе как все это работает и пишут вполне нормальный код, но тут когнитивщина опять: когда ты зайдешь на сайт, где код написан нормально и все шустро работает, ты этого просто не заметишь, а в соседней вкладке будет тормозить говнокод какого-нибудь си-кодера, который за 10 минут наколякал говно, вешающее пару десятков тысяч обработчиков на элементы. Похоже ты прав. Согласен.
#GHU55Z/OBJ / @j123123 --> #GHU55Z/MKV / 4230 дней назад
@j123123 >НО чтобы это знание появил, неплохо бы читнуть исходник движка. глянь сколько весят исходники хромиума и посчитай сколько лет ты их будешь читать да и зачем, если уже полно статей, где на пальцах объясняют как это работает? >И кроме того, многие сайты просто не работают без этого жаваскрипта, т.е. выбора мне просто не предоставляют. разумеется, ведь доля носкриптоблядей даже меньше доли ie6, зачем кому-то заморачиваться и тратить время на поддержку незначительной части аудитории? >Похоже ты прав. Согласен. не парься, времена когда js-код писался непрофильными спецами постепенно уходят, сайты еще больше обрастают жаваскриптом и теперь слишком невыгодно поручать его писать тем, кто с js слабо знаком. еще несколько лет и говнокод на js станет более-менее редкостью
#GHU55Z/4HS / @krkm --> #GHU55Z/OBJ / 4230 дней назад
@j123123 > Ятобы четко понимать, зачем это выравнивание нужно, желательно попрограммировать на ассембере. Есть например SIMD инструкции MOVAPS MOVUPS которые работают за разное время. Память на самом деле не плоская >Например, если надо делать массив из структур, и надо экономить память. Ты меня уже утомил своими постоянными апелляциями к очень редким частным случаям, когда знание ассемблера желательно и упрощает понимаение. Напоминаю: ты заявлял о том, что "любой нормальный программист обязан знать асм", поэтому либо давай аргументы, почему большинство программистов без асма *не может* программировать, либо просто прекращай приводить примеры, когда в отдельных малораспространенных задачах знание ассемблера облегчает понимаение.
#GHU55Z/3QD / @etw --> #GHU55Z/POM / 4230 дней назад
@etw > почему большинство программистов без асма не может программировать, > либо просто прекращай приводить примеры, когда в отдельных малораспространенных задачах знание ассемблера облегчает понимаение. Ну, хмм. Тогда всё понятно. Лично я в основном программировал и продолжаю программировать на Си, и мне эти случаи не кажутся редкими и частными, и со своей колокольни я четко вижу, что знания (или хотя бы понимание) ассемблера просто необходимо, чтобы человека можно было назвать нормальным программистом. Просто веб программирование многих испортило. Если ты считаешь, что нормальные программисты это всякие кодеры на JS и PHP (я никого не хочу обидеть, пусть пишут сайты и едят свой хлеб) то я тут вынужден не согласится. Вот кстати песенка http://dump.bitcheese.net/files/uhexulu/Nostalgi.mp3 мне понравилась
#GHU55Z/ZET / @j123123 --> #GHU55Z/3QD / 4230 дней назад
@j123123 >C >JS и PHP Не надо бросаться из крайности в крайность. Есть дофига областей, кроме байтоебства и уеб-фронтендов/лабания PHP-сайтов и во многих из них без знания асма можно программировать.
#GHU55Z/CWX / @etw --> #GHU55Z/ZET / 4230 дней назад
@j123123 > Я вообще сильно не люблю C++, особенно C++11 > особенно C++11 Ты странный.
#GHU55Z/OY8 / @fakenimus --> #GHU55Z/XMC / 4230 дней назад
@fakenimus странный был бы если бы любил
#GHU55Z/HW8 / @krkm --> #GHU55Z/OY8 / 4230 дней назад
@kurkuma Но ведь 11 лучше.
#GHU55Z/T6K / @fakenimus --> #GHU55Z/HW8 / 4230 дней назад
@fakenimus чо за лучше?
#GHU55Z/W0C / @krkm --> #GHU55Z/T6K / 4230 дней назад
@kurkuma Лучше, чем прошлый стандарт. Логичнее тогда не любить прошлый стандарт больше, чем новый, который лучше старого.
#GHU55Z/Z6T / @fakenimus --> #GHU55Z/W0C / 4230 дней назад
@fakenimus чо за логично?
#GHU55Z/HYM / @krkm --> #GHU55Z/Z6T / 4230 дней назад
@kurkuma echo "ru_RU.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen && . /etc/profile
#GHU55Z/ZMJ / @fakenimus --> #GHU55Z/HYM / 4230 дней назад
@fakenimus хэкир штоле?
#GHU55Z/O64 / @krkm --> #GHU55Z/ZMJ / 4230 дней назад
@fakenimus ппц не хэкай плиз, мамка за компьютер накажет
#GHU55Z/I39 / @krkm --> #GHU55Z/ZMJ / 4230 дней назад
@j123123 Ну то есть знание ассемблера нужно не программистам на си, а программистам на си. В такой форме с этим тезисом вряд ли бы кто стал спорить.
#GHU55Z/H1O / @goren --> #GHU55Z/ZET / 4230 дней назад
@goren > не программистам на си, а программистам на си. Что?
#GHU55Z/0V9 / @j123123 --> #GHU55Z/H1O / 4230 дней назад
@j123123 не программистам вообще Сорь, я хуёво соображаю из-за боли в ребре.
#GHU55Z/YY5 / @goren --> #GHU55Z/0V9 / 4230 дней назад
@goren адам, прости
#GHU55Z/64U / @krkm --> #GHU55Z/YY5 / 4230 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.