Udostępnij za pośrednictwem


Вопрос из почты: А нужен ли программисту ассемблер?

??????? ????????? ?????? ??

From: sandusergiu1984@...
Sent: Friday, August 18, 2006 2:12 AM
To: Eldar Musayev
Subject: (Random Thoughts and Hints on Software Development) : Hello
Importance: High
Hello Eldar, ? ???-?? ?????????, ??? ?????? ?????????, ??????? ????? ?????? ??????? ??????????? ???, ?????? ??????? ???? ??????????. ??? ??????? ???? ????? ?????, ?????? ?????????? ?? ????? ?????. ???????.

? ???? ?????? ???? ????? – ?? ??? ????? ??????? ?? ?????????? ? ??????. ? ??????????? ???????, ?? ??? ?? ?????? ???????????? ???????. ?????.

???? ???? ?? ?????????????? ??????? ???????????? ??????? ????????? ???????, ??? ? ??????? ?????, ? ??????????? ??????? ?? ??????? ?? ?????? ???????? ???? ?????? ???????? ?.

???, ????? ?? ???????????? ???? ??????????? ?????? ? ?? ?????? «???», ?? ????????? ??????? ? ????? ??????? ???? ? ????????. ????????? ?? ??????????.

??? ???? ????? ??? ?????. ? ??????? ?? ???????? ?????? ????????? ???????????? ????? ?? ??????? ??????. ?? ????????? ???? ??? ?? ???????, ???-?? ????? ???????????? ????? CRM ? SCM ? ?????? Java-????????. ?????? ??????. ??????????????, ??? ?? ????? ??????, ?? ?? ???????? ?? ????? ?????? ?????? ??????, ??? ???? ?? ???????? ???????? ?????????? ?????????? ????????? ???????????????? ?????????? ????????. ?? ?????? ????? ??? C/C++ ? AS/400 – ??? ????? ??????? ?????? ?? IBM. ??? ?????? ?????????? ???-?? ?????, ?? ??-???????? ??????????? ??????. ?? ???????????? DCE (IBM ?????? ? ??????? CORBA) ? ??????????? middleware ?????? ??? ????, ????? ???????? ?????? ? ???????. ??? ???? ???? ?... ??????. ???? ???-?? ?? ????????, ?? ??? ????????? ?????? IDL ?????? ?? middleware ???????, ? ? 90% ??????? ??? ???? ????????????.

??????? ?? ?????? ???????? ??????????? ?????. ? ? ???? ?????? ????? ???????? ??? ???????. ???? ?? ??? ??? «lead» ? ????? ??????? ???? ????????? ???????? ???? ? ??????????????? ???????????. ??? ???? ???????? ?????? ??? ??? ??????, ??? ? ??? ????, ????? ?????? ????? ??? ?? ???????? ???? ??????? ???? ? ???? ????? ??????, ??????? ????? ??????? ???? «?????????? ?????????? ? ??????». ???????, ?????? ????????, ????? ? ????.

????? ??????? ?????? ????? ????, ??? ????? ???? ?? ?????????????. ? ???????, ?? ????? ???? ???? ? ???????? ??????????? ?? ??????????? ????? ??????. ??? ?? ?? ????????????? ??????? ????????? ? C/C++? ??, ??, ?????, ????????? ?? ??? ????? ???????? ?????????? ?? ?????? ??????, ??? ? ????? ?????.

?? ??????? ????? ??? ???? ??????? ???????. ??? ??? ???????? ??????????? ?????? ???? ?? ?????? ? ???????? ?? ? ????????? ???? ??????. ???? ???????? ??, ??? ?????????? ?? IBM ?????? ???????? ????? ??????, ???????? ???? ??? ?? ????????? ???, ??? AS/400 ????? BigEndian ??????????? (??????? ???? ???? ?????? ? ?????) ? ?????????? ???????????? (?????? ????????? ?????????? ???????-??????? ????? ?? ?????? ???????? ??????? ? ??????? ??????????? ?? ????-??????? ? ??????-??????? ?????, ????? ???????? ??????? ?? ??????). ?????? ????? ?????, ? ??? ???????????? ???-?????? ????? ??? ???????? ????????? ? ??????????.

? ?????? ??? ????? ???? ????????? ??? ??? ???????? (??????? ????? ????? ???????), ????????? ??? ???? ????? ???? ?????? ???? ???. ??????-?? ?? ??????????????? ??????, ?? ??? ?????? ??????, ? ?????????, ???? ?????, ??????? ??????????? ?????? ????? ????????? ?????? ?? ???????????. ?????? ???, ????? ? ??????? ??? ????????? ??? ?? ?????? ?????? ? ?????, ? ??? ????? ????????? ???????????? ? ????????? ?, ? ????? ?????? ?????? ? ?????? ?? ?????????? ????. ??-?????, ?? ??? ??? ???? ?????? ????? ?? ?????? ????? ????, ?? ??? ???????, ??? ? ??? ??? ?????????? ? ????????? ?? ?? ????. ????? ?? ?????? ????? ???-???? ?????????? ???????, ??? ???? ??? ???? ?????. ??? ???????????, ?????????? ????????? ? ??????? ???? ?????? ?????? ????????. ??? ??? ??? ???? ???? ???????????? ?????? ???????? ? ??????, ??? ???? ?? ??? ?????? ?????? ???????????? ??????? ??????????? ?????? ???????????? ??????, ????????? ????????? ?????????.

?????, ??? ????????, ??? ? ??? ?????? – ?? ??????????????? ?????? ? ?????? ????? ???????? ?? ?????. ?? ???? ??? ??? ??? ????? ????????? ???????????. ??? ??????? ???????? ?? ???????

?? ????? ????? ????????? ??? ???????????????? ????, ???? ?? ?? ??? ???????????. ???? ???? ?? ? ????? ???-?? (????????? ???????????? ???????? ? ???), ??? ???-???? ??????? ?????. ?? ??????????? ??????? ??? ??? ???????????, ???????, ????????? ?????? – ?????? ?????? ?? ????????? ?????????????? ?????? ? ????? ?????? ????????? ???????? ???. ?????? ?? ????? ??????????, ?? ?????????? ????? ?? ?????????? ????? ??????? ?????????, ?????? ???? ??????? ??? ?? ????? ???????????? ?? ????. ?????? ???????????

Comments

  • Anonymous
    January 01, 2003
    Могу разве что дополнить ещё одной важной областью, где ассемблер нужен: безопасность. Для взлома и написания эксплоитов он обязателен, а для защиты желателен (ибо сложно защищаться от угроз, суть которых до конца не ясна, даже если это не требует непосредственного программирования на ассемблере). В общем, это не столько вопрос языка ассемблер, сколько вопрос фундаментальности образования. :)

  • Anonymous
    January 01, 2003
    На самом деле я уже писал об этом. Вот здесь , или еще более широко, вот здесь . Но недавно пришо письмо

  • Anonymous
    September 19, 2006
    Полностью согласен с Эльдаром, копание в свое время в ассемблере и написание маленьких программок помогло приобрести опыт понимания работы многих вещей.  Что это такое  и как работает знать нужно, но не глубоко. А если уж и потребуется применять, то документацию в руки и вперед.

  • Anonymous
    September 19, 2006
    Профессиональному разработчику нужно знать обязятельно, чтобы уметь нормально отлаживать программы. Если остановить программу в отладчике, то куда попадешь? В окно под названием "дизассемблер", где и показан машинный код. Рано или поздно возникнет ситуация, когда только знание машинного кода поможет узнать в чем проблема. И никакой .NET не спасёт, скорее наоборот. Понимание того, как исходный текст компилируется в код часто может дать возможность посмотреть значения переменных, сохнраненные в регистрах, в то время, когда отладчик говорит, что "переменная оптимизирована и не может быть показана".

  • Anonymous
    September 20, 2006
    Может, дело не в ассемблере, а в Джава? Вернее, конечно, не в самих языках, а в фундаменте, на которых они стоят. Рассуждения о "недостатках" джавы - или почему джава-девелопер получает шок - можно прочитать тут: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

  • Anonymous
    September 21, 2006
    Валера, ты сейчас над ядром ОС работаешь или над дебаггером Visual Studio? Конечно, тебе ассемблер нужен, кто ж спорит. Но большинство-то работает над более прозаическими вещами. А останавливая программу в отладчике нужно оказываться в своем исходном коде, а не в дисассемблере, для чего отладчик настраивать надо.

    Сергей, может быть. По крайней мере ясно, что для программистов на С-С++ такие открытия проходят куда как легче :-)

  • Anonymous
    September 25, 2006
    The comment has been removed

  • Anonymous
    September 26, 2006
    > Жалко, что в RSS попадает не весь текст статьи.
    > И при просмотре в Опере шрифт по умолчанию очень мелкий,
    > а при увеличении масштаба больше 100% текст наползает
    > на правую колонку (там где календарь).

    Увы-увы... Софт использованный на этом сайте не позволяет многих вещей, в частности контролировать идет ли полная статья или только ее начало в RSS. И темплейты хотя и есть выбор, но фиксированы. Можно, конечно, попробовать со стилями поиграться, но если напутано в вычислении длин колонок в тепмлейте, далеко на стилях не уедешь. :-(

  • Anonymous
    January 23, 2007
    Я считаю, что ассемблер знать необходимо. Это же язык, на котором все программисты общаются с микропроцессором. Разумеется, изначально все программы написаны на С++, С#, Pascal или даже Java, но в итоге все превращается в комманды микоропроцессора, то есть, Assembler. Знание ассемблера приводит и к углублению знания архитектуры компьютера с точки зрения программиста. Ведь не достаточно просто знать его инструкции, нужно знать и как работает видеоплата, как работает жесткий диск, как эти все железяки обмениваются данными между собой. Вот для получения и проверки этих знаний и нужно знать Assembler. И безусловно эти знания очень помогают в диагностике программных и аппаратных ошибок компьютера.