Обновить
14

Химик и программист.

32
Подписчики
Отправить сообщение

Ok. "куча «специальных» применений" — особые случаи. И эта "куча" сравнельно небольшая, по сравнению с общей кучей применений ЯП. В статье отмечен факт:


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

Автор объяснил эту ситуацию


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

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

Выше я предложил другое объяснение:
Из списка литературы на Вики самая недавняя книга :


Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера… — 2-е. — БХВ-Петербург, 2014. — 368 с. — (Электроника). — ISBN 9785977533119.

В англо-Вики список литературы больше, но, судя по названиям, литература в основном исторического характера. Отсюда следует предположение, что практический интерес падает, а высокий ретинг 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 было издано несколько


интересных книг
  • В.И. Юров, Assembler, 2-е издвние, "Питер"
  • В.И. Юров, Assembler, Практикум, 2-е издвние, "Питер"
  • О.В.Бурдаев и др., Ассемблер в задачах защиты информации, "Кудиц-образ"

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


Практическое программирование микроконтроллеров 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 статье невозможно всё написать. Но ИМХО стоит обосновать выбор, хотя бы одной фразой типа: здесь мы говорим про самые интересные...

Думаю, зайчик и белочка будет оригинально и забавно! Но если кто после Вас будет делать в код вставки, но у него не будет художественного таланта, как у Вас, то он разрушит Ваше художество. — Будет обидно.

Конечно, бывают исключительные случаи. Но ИМХО тут помогут комментарии, которые можно писать на любом языке. Мой пример:


soxranitinapechatatresultat

Можно записать:


SPR, // save & print result — сохранить и напечатать результат


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

Не понял: о каком протоколе речь (FTP, TCP,..)? Пожалуйста, подскажите RFC. Или м.б. это ГОСТ, копирующий международный стандарт? Как в США, Европе, Японии, Китае и т.д. работают с ру-протоколом, не зная русский?

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

"жёсткая тоталитарная идеология либерального направления" выглядит, как оксюморон.


Прочитав статью не понял: автор за красных или за белых? (с)


Поэтому обратим внимание на мистико-религиозную составляющую в нашей многовековой культуре

Однако многие религии не упомянуты.

Очень хороший вредный совет давать имена на надсат, пример:


soxranitinapechatatresultat


Все, кто будет работать с Вашим кодом, получат яркие впечатления!

Согласен с комментами, что статья слишком категорична. Не надо мифологизировать IT. Читаю в статье:


мы тут с вами говорим о массовом перепрофилировании юристов/бухгалтеров/строителей в программисты и аналитики

Если заглянем в Вики, то увидим, что IT не только кодинг и аналитика. Как говорят в поговорке:


размах на рубль — удар на копейку

Т.е. в статье сделана попытка всё IT узко обобщить.


Далее:


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

Напомню еще одну пословицу:


Не боги горшки обжигают

При этом нужно заметить, что чистой CS в мире занято не очень много людей, а остальные работают на химзаводах, в банковской сфере и т.д. Им нужно знать предметную область, чтобы говорить с сослуживцами на понятном языке. Так мои знакомые в банках кончали экономический, а я окончил ХФ МГУ. ЯП выучил незаметно, а на алгоритмы, конечно, нужно много внимания.


ИМХО автор статьи в своем максимализме не учитывает, как много накоплено знаний, и никакую науку полностью знать невозможно — математику, физику, химию, CS и т.д. Можно, нпр., знать органику, занимаясь синтезом циклопропенов, или неорганику ванадия.


Базовые знания по математике ИМХО полезны. Я писал про это. Вижу, что моим знакомым в банковской сфере матан не нужен, но потратить 2 года по несколько часов в неделю ИМХО не так уж сложно. — Если банк прогорит, то мой приятель пойдет конструировать самолеты, а там ему будет нужно вспомнить матан ;)

А это иная задача: 2 поля — 2 boolean.

постоянно делаю всё сам, что забирает уйму времени.

Какая от этого польза?


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


PS Очевидно, что можно придумать много способов, как бесполезно тратить время. — С приветом капитану Очевидность.

Паркет — осторожно, а то на тебя повесят ремонт. [...]
Явно видно плохое изучение отраслевых проблем выставления ценников)))

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

А так и надо было сразу сказать, что "про пол человека", а не про нижнюю часть комнаты ;) ИМХО boolean хватит.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность