Ok. "куча «специальных» применений" — особые случаи. И эта "куча" сравнельно небольшая, по сравнению с общей кучей применений ЯП. В статье отмечен факт:
Дело в том, что это язык, который «официально» как бы и не существует. Почти не издаются книги про ассемблер, а те которые издаются безнадёжно устарели. Не пишутся статьи, а когда пишутся, они попадают в раздел «ненормальное программирование» или в лучшем случае в «написание вирусов».
Автор объяснил эту ситуацию
следующим образом
Однако, работая в этой области в течение многих лет, мне стало казаться, что дела обстоят не совсем так. Почему-то создаётся впечатление, что используют ассемблер намного больше, чем принято говорить.
Что-то вроде апокрифического языка, который используют часто, но тайно, чтобы не быть обвинёнными в ереси за использование антипаттернов, дурных практик и других языческих методов программирования.
Выше я предложил другое объяснение:
Из списка литературы на Вики самая недавняя книга :
Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера… — 2-е. — БХВ-Петербург, 2014. — 368 с. — (Электроника). — ISBN 9785977533119.
В англо-Вики список литературы больше, но, судя по названиям, литература в основном исторического характера. Отсюда следует предположение, что практический интерес падает, а высокий ретинг Tiobe вызван повышением интереса к истории CS.
И на входе нет никакого фильтра: все, что было нами услышано добавляется в эту семантическую сеть. Мы можем ослаблять или усиливать связи между сущностями. Можем добавлять в свою семантическую сеть новые сущности и связи. Но мы не в силах никогда ничего оттуда удалить.
Можем! — у большинства людей есть способность забывать ненужное им.
Даже запуск одной программы в разных поколениях процессоров не даёт такой простой эвристики к пониманию возмржностей по его ускорению
Я говорил об одном поколении. Стоит отметить возможность промежуточного решения для Delphi-7 — вставка asm кода в код Delphi. Для критических участков это м.б. полезно, а остальные 99 или 90% кода будут на Delphi.
Согласен, что не всякий ассемблерный код переводим на ЯВУ. В этом смысле ЯА мощнее любого ЯВУ. Но не всякий код оптимален, а в хороших компиляторах ЯВУ применяют обычно наиболее эффективные решения.
Пробовал неоднократно. Например, еще в эпоху Pentium 4 у меня была задача в области мат. химии: сгенерировать ок. 100 000 000 связных графов с числом вершин не больше 8, где степень вершины не больше 4, записать для каждого по простым правилам СЛАУ — т.е. 8 уравнений и 8 неизвестных и решить эти системы. При этом математически строго доказано, что каждая такая система имеет решение и только одно.
Написал программу на Delphi-7. Она оказалась быстрее библиотек Интела. Попробовал переписать на asm – сколько не пытался было медленнее. Списался с Интелом – мне дали адрес разработчика функций решения СЛАУ. Послал ему исх.коды. Он ответил, что у меня слишком особый случай, а если в ситеме 1000 уравнений, то мой код быстрее не будет.
До того я много работал с ассемблерами на PDP 11 и на ЕС ЭВМ (задачи реального времени), на Маке, на IBM PC.
Дело в том, что это язык, который «официально» как бы и не существует. Почти не издаются книги про ассемблер, а те которые издаются безнадёжно устарели.
О.В.Бурдаев и др., Ассемблер в задачах защиты информации, "Кудиц-образ"
Там много советов по ускорению, но на новых машинах они не работают.
Из списка литературы на Вики самая недавняя книга :
Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера… — 2-е. — БХВ-Петербург, 2014. — 368 с. — (Электроника). — ISBN 9785977533119.
В англо-Вики список литературы больше, но, судя по названиям, литература в основном исторического характера. Отсюда следует предположение, что практический интерес падает, а высокий ретинг Tiobe вызван повышением интереса к истории CS.
Спасибо. Интересная статья. Но позвольте спросить:
1) о каком языке ассемблера (ЯА) речь? (Вопрос не только автору, но и Tiobe). Вики
справедливо отмечает:
Язы́к ассе́мблера (англ. assembly language) — машинно-ориентированный язык программирования низкого уровня. Представляет собой систему обозначений, используемую для представления в удобно читаемой форме программ, записанных в машинном коде. Его команды прямо соответствуют отдельным командам машины или их последовательностям. Является существенно платформо-зависимым: языки ассемблера для различных аппаратных платформ несовместимы, хотя могут быть в целом подобны.
[...].
Также может предоставлять дополнительные возможности облегчения программирования, такие как макрокоманды, выражения, средства обеспечения модульности программ. В связи с этим может рассматриваться как автокод (см. ниже), расширенный конструкциями языков программирования высокого уровня[3][4].
Конечно, и перенс кода на ЯП высокого уровня (ЯПВУ) бывает не простым. Но в случае ЯПВУ различая обычно в расширениях (как Turbo Pascal и Dr Pascal, а сам язык в основе обычно одинаков). Знаю по своему опыту, что ЯА различных машин отлчаются гораздо сильнее, нпр., PDP-11, IBM 360/370, IBM PC AT, Macintosh 68К.
2) Зачем сейчас писать на ЯА? Когда-то это позволяло заметно ускорить программу. Но сейчас современные компиляторы настолько хорошо оптимизируют, что ускорения от ручного кодинга на ЯА не получается. (Конечно, если такое хобби, то понятно. В списке Tiobe и ЯП Brainfuck есть ;)
Я согласен, что автор не обязан, но аналитику редко удается усидеть на 2х или большем числе стульев. В статье прослеживаются тенденции в выборе моделей. Поэтому возникают закономерные вопросы:
— почему такой выбор нескольких религий из многих существующих?
— почему речь про "жёсткая тоталитарная идеология либерального направления", а про другие модели не сказано? Нпр., про социализм СССР, Китая, Кубы — он разный, а есть модели монархий и т.д.
Понятно, что в 1 статье невозможно всё написать. Но ИМХО стоит обосновать выбор, хотя бы одной фразой типа: здесь мы говорим про самые интересные...
Думаю, зайчик и белочка будет оригинально и забавно! Но если кто после Вас будет делать в код вставки, но у него не будет художественного таланта, как у Вас, то он разрушит Ваше художество. — Будет обидно.
Не понял: о каком протоколе речь (FTP, TCP,..)? Пожалуйста, подскажите RFC. Или м.б. это ГОСТ, копирующий международный стандарт? Как в США, Европе, Японии, Китае и т.д. работают с ру-протоколом, не зная русский?
Иерархия правил и законов: общая жёсткая тоталитарная идеология либерального направления, цензура, неравенство. На первом плане внутренние корпоративные правила бенефициара данного мира, далее — правила компаний партнёров и клиентские правила, устанавливаемые компаниями арендаторами пространства (т.е. правила группы и цензурная модерация).
"жёсткая тоталитарная идеология либерального направления" выглядит, как оксюморон.
Прочитав статью не понял: автор за красных или за белых? (с)
Поэтому обратим внимание на мистико-религиозную составляющую в нашей многовековой культуре
Согласен с комментами, что статья слишком категорична. Не надо мифологизировать IT. Читаю в статье:
мы тут с вами говорим о массовом перепрофилировании юристов/бухгалтеров/строителей в программисты и аналитики
Если заглянем в Вики, то увидим, что IT не только кодинг и аналитика. Как говорят в поговорке:
размах на рубль — удар на копейку
Т.е. в статье сделана попытка всё IT узко обобщить.
Далее:
Как у вас в школе было с математикой? Вы её не любили? Вам она не давалась? Идите сразу мимо программирования. Геометрия вызывала у вас рвотный рефлекс? Отдыхайте, пожалуйста, не напрягайте свои логические цепочки в попытке освоить профессию аналитика. И это только один из самых слабых звоночков.
Напомню еще одну пословицу:
Не боги горшки обжигают
При этом нужно заметить, что чистой CS в мире занято не очень много людей, а остальные работают на химзаводах, в банковской сфере и т.д. Им нужно знать предметную область, чтобы говорить с сослуживцами на понятном языке. Так мои знакомые в банках кончали экономический, а я окончил ХФ МГУ. ЯП выучил незаметно, а на алгоритмы, конечно, нужно много внимания.
ИМХО автор статьи в своем максимализме не учитывает, как много накоплено знаний, и никакую науку полностью знать невозможно — математику, физику, химию, CS и т.д. Можно, нпр., знать органику, занимаясь синтезом циклопропенов, или неорганику ванадия.
Базовые знания по математике ИМХО полезны. Я писал про это. Вижу, что моим знакомым в банковской сфере матан не нужен, но потратить 2 года по несколько часов в неделю ИМХО не так уж сложно. — Если банк прогорит, то мой приятель пойдет конструировать самолеты, а там ему будет нужно вспомнить матан ;)
постоянно делаю всё сам, что забирает уйму времени.
Какая от этого польза?
Предположим такую ситуацию. Молодой инженер окончил вуз и устроился работать на велосипедный завод. Начал изобретать с нуля велосипед. Через пару месяцев, а может и раньше, начальник скажет ему: кончай дурью маяться, пройдись по заводу и посмотри, что мы уже делаем.
PS Очевидно, что можно придумать много способов, как бесполезно тратить время. — С приветом капитану Очевидность.
Ok. "куча «специальных» применений" — особые случаи. И эта "куча" сравнельно небольшая, по сравнению с общей кучей применений ЯП. В статье отмечен факт:
Автор объяснил эту ситуацию
Выше я предложил другое объяснение:
Из списка литературы на Вики самая недавняя книга :
В англо-Вики список литературы больше, но, судя по названиям, литература в основном исторического характера. Отсюда следует предположение, что практический интерес падает, а высокий ретинг Tiobe вызван повышением интереса к истории CS.
Можем! — у большинства людей есть способность забывать ненужное им.
А кто-то на работе такое установит. И платить за электричество будет не он. Пока не поймают ;)
Я говорил об одном поколении. Стоит отметить возможность промежуточного решения для Delphi-7 — вставка asm кода в код Delphi. Для критических участков это м.б. полезно, а остальные 99 или 90% кода будут на Delphi.
Согласен, что не всякий ассемблерный код переводим на ЯВУ. В этом смысле ЯА мощнее любого ЯВУ. Но не всякий код оптимален, а в хороших компиляторах ЯВУ применяют обычно наиболее эффективные решения.
Я так и делал.VTune использовал...
Да, и я об MKL.
Пробовал неоднократно. Например, еще в эпоху Pentium 4 у меня была задача в области мат. химии: сгенерировать ок. 100 000 000 связных графов с числом вершин не больше 8, где степень вершины не больше 4, записать для каждого по простым правилам СЛАУ — т.е. 8 уравнений и 8 неизвестных и решить эти системы. При этом математически строго доказано, что каждая такая система имеет решение и только одно.
Написал программу на Delphi-7. Она оказалась быстрее библиотек Интела. Попробовал переписать на asm – сколько не пытался было медленнее. Списался с Интелом – мне дали адрес разработчика функций решения СЛАУ. Послал ему исх.коды. Он ответил, что у меня слишком особый случай, а если в ситеме 1000 уравнений, то мой код быстрее не будет.
До того я много работал с ассемблерами на PDP 11 и на ЕС ЭВМ (задачи реального времени), на Маке, на IBM PC.
Да. В 2004 было издано несколько
Там много советов по ускорению, но на новых машинах они не работают.
Из списка литературы на Вики самая недавняя книга :
В англо-Вики список литературы больше, но, судя по названиям, литература в основном исторического характера. Отсюда следует предположение, что практический интерес падает, а высокий ретинг Tiobe вызван повышением интереса к истории CS.
Спасибо. Интересная статья. Но позвольте спросить:
1) о каком языке ассемблера (ЯА) речь? (Вопрос не только автору, но и Tiobe).
Вики
Конечно, и перенс кода на ЯП высокого уровня (ЯПВУ) бывает не простым. Но в случае ЯПВУ различая обычно в расширениях (как Turbo Pascal и Dr Pascal, а сам язык в основе обычно одинаков). Знаю по своему опыту, что ЯА различных машин отлчаются гораздо сильнее, нпр., PDP-11, IBM 360/370, IBM PC AT, Macintosh 68К.
2) Зачем сейчас писать на ЯА? Когда-то это позволяло заметно ускорить программу. Но сейчас современные компиляторы настолько хорошо оптимизируют, что ускорения от ручного кодинга на ЯА не получается. (Конечно, если такое хобби, то понятно. В списке Tiobe и ЯП Brainfuck есть ;)
Я согласен, что автор не обязан, но аналитику редко удается усидеть на 2х или большем числе стульев. В статье прослеживаются тенденции в выборе моделей. Поэтому возникают закономерные вопросы:
— почему такой выбор нескольких религий из многих существующих?
— почему речь про "жёсткая тоталитарная идеология либерального направления", а про другие модели не сказано? Нпр., про социализм СССР, Китая, Кубы — он разный, а есть модели монархий и т.д.
Понятно, что в 1 статье невозможно всё написать. Но ИМХО стоит обосновать выбор, хотя бы одной фразой типа: здесь мы говорим про самые интересные...
Думаю, зайчик и белочка будет оригинально и забавно! Но если кто после Вас будет делать в код вставки, но у него не будет художественного таланта, как у Вас, то он разрушит Ваше художество. — Будет обидно.
Конечно, бывают исключительные случаи. Но ИМХО тут помогут комментарии, которые можно писать на любом языке. Мой пример:
Можно записать:
SPR, // save & print result — сохранить и напечатать результат
Транслитерация не всегда однозначна. Такие буквы, как щ, ш, э, ъ, я, ч, ы часто переводят по-разному. И возникают ошибки.
Не понял: о каком протоколе речь (FTP, TCP,..)? Пожалуйста, подскажите RFC. Или м.б. это ГОСТ, копирующий международный стандарт? Как в США, Европе, Японии, Китае и т.д. работают с ру-протоколом, не зная русский?
"жёсткая тоталитарная идеология либерального направления" выглядит, как оксюморон.
Прочитав статью не понял: автор за красных или за белых? (с)
Однако многие религии не упомянуты.
Очень хороший вредный совет давать имена на надсат, пример:
soxranitinapechatatresultat
Все, кто будет работать с Вашим кодом, получат яркие впечатления!
Согласен с комментами, что статья слишком категорична. Не надо мифологизировать IT. Читаю в статье:
Если заглянем в Вики, то увидим, что IT не только кодинг и аналитика. Как говорят в поговорке:
Т.е. в статье сделана попытка всё IT узко обобщить.
Далее:
Напомню еще одну пословицу:
При этом нужно заметить, что чистой CS в мире занято не очень много людей, а остальные работают на химзаводах, в банковской сфере и т.д. Им нужно знать предметную область, чтобы говорить с сослуживцами на понятном языке. Так мои знакомые в банках кончали экономический, а я окончил ХФ МГУ. ЯП выучил незаметно, а на алгоритмы, конечно, нужно много внимания.
ИМХО автор статьи в своем максимализме не учитывает, как много накоплено знаний, и никакую науку полностью знать невозможно — математику, физику, химию, CS и т.д. Можно, нпр., знать органику, занимаясь синтезом циклопропенов, или неорганику ванадия.
Базовые знания по математике ИМХО полезны. Я писал про это. Вижу, что моим знакомым в банковской сфере матан не нужен, но потратить 2 года по несколько часов в неделю ИМХО не так уж сложно. — Если банк прогорит, то мой приятель пойдет конструировать самолеты, а там ему будет нужно вспомнить матан ;)
А это иная задача: 2 поля — 2 boolean.
Какая от этого польза?
Предположим такую ситуацию. Молодой инженер окончил вуз и устроился работать на велосипедный завод. Начал изобретать с нуля велосипед. Через пару месяцев, а может и раньше, начальник скажет ему: кончай дурью маяться, пройдись по заводу и посмотри, что мы уже делаем.
PS Очевидно, что можно придумать много способов, как бесполезно тратить время. — С приветом капитану Очевидность.
По опыту 3 квартир, где жил и опыту нескольких мест, где учился/работал паркет спокойно мыли. Но это явный уход от темы.
А так и надо было сразу сказать, что "про пол человека", а не про нижнюю часть комнаты ;) ИМХО boolean хватит.