All streams
Search
Write a publication
Pull to refresh
13
0

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

Send message

Нет. Мы обсуждаем, я надеюсь. Я не говорю, что Хабр — научный журнал. Но некоторый элемент научности есть. И бывают статьи на хорошем научном уровне. Думаю, что Вы не будете утверждать антинаучность Хабра. Иначе бы завалили статьями про плоскую Землю и про 2+2=5. На Хабре есть аудитория ученых и инженеров. ИМХО в интересах всего сообщества поддержать эту аудиторию. Иначе мало кто захочет читать про плоскую Землю.

Не соглашусь. Нпр., на Хабре много пушут о личном опыте в трудоустройстве, в обучении и т.д. Обычно такие разговоры воспринимают с интересом. Так, нпр., я написал о проблеме трудоустройства своего друга — получил плюсы и интересное обсуждение.

Пишите так, как будто общаетесь с близким другом

ИМХО сомнительный совет. Всем ли читателям понравятся обращения: "Дорогие друзья" или "Здоров, дружок!" ?


Используйте свою обычную речь
Сыплете кейсами и примерами? Не забудьте насыпать в статью.

Почему такая смесь языков? Уж, тогда надо написать:
Сыплете кейсами и экземплами? Не забудьте насыпать в статью.


С Новым годом!

С Новым годом!

Во-первых, Хабр — не научный журнал, его авторы — не учёные

Есть и авторы-учёные.

Книга, изданная тиражом 100 экз. за деньги автора в никому неизвестном издательстве — не показатель. А книга солидного издательства — другое дело. Есть авторитеты IT — Кнут, Вирт и т.д. Ссылка на них будет значимой. А ссылка на "какого-то" Васю Пупкина — нет. С приветом капитану Очевидность.

Люди в реальности не пытаются обычно выговориться, вещая на весь автобус по дороге на работу.

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

И причём здесь Counter-strike???

Если это вопрос по сокращению CS, то я про Computer Science.


восьмое место, мне кажется, трудно объяснить только интересом к истории

Тут м.б. чисто денежный интерес. Приведу пример из своей практики. Когда для одной небольшой фирмы в США портировал IDE Dr. Pascal с MS DOS на MacOS, то шеф сказал, что работает отлично под новыми версиями MacOS, но надо чтобы работало и под устаревшими версиями. Я удивился: кто их сейчас использует? Оказалось, что одна фирма подарила одному универу устаревшие машины, которые иначе надо было выбрасывать. И этот универ заказал фирме, для которой я работал, совмнстимость. В универе решили, что вводный курс по кодингу студенты могут делать на старых машинах. Т.о. бывают разные обстоятельства. Не удивлюсь, если какой музей закажет программу на asm PDP 11.

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

Если была 1я часть, то, значит, были и другие, о которых не сказано в этой книге? А что дублирует — ничего страшного. Начните со слов: "метод, о котором пойдет речь, был изложен, профессиональным автором в книге ...(ссылка на книгу) Здесь хочу высказать свои взгляды/выводы на этот метод".


ИМХО ссылка на книгу это плюс статье. Читатель увидит актуальность: другой автор целую книгу написал.

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 — сохранить и напечатать результат


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

Information

Rating
Does not participate
Registered
Activity