Форум программистов, компьютерный форум CyberForum.ru

Нужен-ли assembler C++ программисту? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
dimakozyr
 Аватар для dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
29.09.2013, 10:56     Нужен-ли assembler C++ программисту? #1
Вчера с друзьями спорили, нужен-ли assembler современному программисту (не микроконтроллеров и т.п).
Вот я пишу на С++, асемблер не учил и спокойно работаю без него.
И когда я работаю с памятью, то знаю, что память выделяется где-то в куче, либо в стеке.
По идее мне больше и не нужно знать.
Друзья говорят, что асемблер нужен для понимания, но вот для понимания чего, так никто толком не сказал
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
29.09.2013, 11:12     Нужен-ли assembler C++ программисту? #2
Ассемблер тебе не нужен, если ты не собираешься связываться с низкоуровневыми программами и с железом - драйвера, операционные системы и все с ними связанное. Вот, например, как зажечь определенную лампочку на материнке? Эту проблему решает ассемблер. Как написать программу максимально маленькой? Эту проблему тоже решает ассемблер. (Например, вирус форк-бомбы можно написать всего в несколько десятков байт, вообще на них популярно писать мозго-дробительное вирусы) Через C++ это скорее всего проблематично, а об эффективности вообще молчу, но если вдруг друзья уговорят - в C++ можно делать ассемблерные вставки.
Djam
Саморазвитие <3
 Аватар для Djam
34 / 24 / 1
Регистрация: 28.12.2012
Сообщений: 235
Записей в блоге: 1
29.09.2013, 11:58     Нужен-ли assembler C++ программисту? #3
С помощь ASM'a можно уменьшить кол-во памяти занимаемое программой, увеличить скорость работы программы.
Assembler нужен любому программисту, кроме веб разработчиков ( да и то я думаю, им желательно бы его знать)
Где-то была стать на хабре, к сожалению пока не могу найти, если найду добавлю в тему
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
29.09.2013, 12:23     Нужен-ли assembler C++ программисту? #4
Цитата Сообщение от dimakozyr Посмотреть сообщение
Друзья говорят, что асемблер нужен для понимания, но вот для понимания чего, так никто толком не сказал
Для понимания принципов работы вычислителей в компьютере ассемблер не нужен. "Ассемблер нужен для того, чтобы понять, как работает компьютер" — это то же самое, что и "Английский нужен для того, чтобы понять квантовую механику". Нет, конечно, в обоих случаях знание языка принесёт некоторую пользу, потому что программы, статьи, книги и т. п., но суть-то не в языке.

Цитата Сообщение от Djam Посмотреть сообщение
С помощь ASM'a можно уменьшить кол-во памяти занимаемое программой, увеличить скорость работы программы.
А можно потратить кучу времени на бесполезную оптимизацию совершенного ненужных кусков кода.

Цитата Сообщение от Djam Посмотреть сообщение
кроме веб разработчиков
У них ассемблер называется JavaScript.
dimakozyr
 Аватар для dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
29.09.2013, 12:34  [ТС]     Нужен-ли assembler C++ программисту? #5
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
А можно потратить кучу времени на бесполезную оптимизацию совершенного ненужных кусков кода.
Вот-вот, и на изучение языка. Вот если-бы я его в универе учил, то ладно. Но сейчас я могу потратить год на изучение асемблера, либо потратить тот-же год на изучение технологии, которую я реально смогу применить.
Djam
Саморазвитие <3
 Аватар для Djam
34 / 24 / 1
Регистрация: 28.12.2012
Сообщений: 235
Записей в блоге: 1
29.09.2013, 14:10     Нужен-ли assembler C++ программисту? #6
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Для понимания принципов работы вычислителей в компьютере ассемблер не нужен. "Ассемблер нужен для того, чтобы понять, как работает компьютер" — это то же самое, что и "Английский нужен для того, чтобы понять квантовую механику". Нет, конечно, в обоих случаях знание языка принесёт некоторую пользу, потому что программы, статьи, книги и т. п., но суть-то не в языке.

А можно потратить кучу времени на бесполезную оптимизацию совершенного ненужных кусков кода.

У них ассемблер называется JavaScript.
Угу, бессмысленную оптимизацию кода, вот так у нас все халатно к этому относятся, вот так и оптимизируется, что все программы и игры( почти все) от Российского разработчика на топовых компьютерах тормозят.. Действительно, какая разница будет программа весить 2 Гб или 600 Мб...

Добавлено через 1 минуту
Цитата Сообщение от dimakozyr Посмотреть сообщение
Вот-вот, и на изучение языка. Вот если-бы я его в универе учил, то ладно. Но сейчас я могу потратить год на изучение асемблера, либо потратить тот-же год на изучение технологии, которую я реально смогу применить.
Если вы задали этот, вопрос, значит вы не уверены нужно вам это или нет, однозначна нужно, хуже от этого не будет! Я был очеьн рад когда нам на 3 курсе начали преподавать технологию программирования на ASM , верите или нет, мне это очень сильно помогло и не только в программирование...
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.09.2013, 14:15     Нужен-ли assembler C++ программисту? #7
Цитата Сообщение от Djam Посмотреть сообщение
бессмысленную оптимизацию кода
Именно. Есть оптимизации необходимые, а есть бессмысленные (в частности, преждевременные). Но даже если что-то можно оптимизировать, далеко необязательно это делать погружением в ассемблер. Потому что проблема может быть, скажем, в архитектуре. Достаточно переделать алгоритм. Да и докинуть пару гигов ОЗУ порой выгоднее чем править код.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,024
Записей в блоге: 10
Завершенные тесты: 1
29.09.2013, 14:25     Нужен-ли assembler C++ программисту? #8
Цитата Сообщение от Djam Посмотреть сообщение
С помощь ASM'a можно уменьшить кол-во памяти занимаемое программой, увеличить скорость работы программы.
А можно и сразу начать писать на ассемблере..
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
29.09.2013, 14:31     Нужен-ли assembler C++ программисту? #9
Цитата Сообщение от Djam Посмотреть сообщение
Действительно, какая разница будет программа весить 2 Гб или 600 Мб...
Действительно, какая разница? Поздравляю с успешной разморозкой, если для вас полтора гигабайта — это что-то серьёзное.

Цитата Сообщение от Djam Посмотреть сообщение
Я был очеьн рад когда нам на 3 курсе начали преподавать технологию программирования на ASM , верите или нет, мне это очень сильно помогло и не только в программирование...
Изучали паттерны проектирования "подпрограмма" и "цикл"?..
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
29.09.2013, 14:36     Нужен-ли assembler C++ программисту? #10
Djam
Если вдруг возникла нужда прооптимизировать что-то на асме, то в 99% надо вернуться назад и подумать еще раз над архитектурой и сложностью применяемых алгоритмов, как уже сказал Tulosba. Да, в некоторых местах нужно будет вспомнить, как работает низкий уровень, чтобы, как пример, но далеко не единственный, устранить перебрасывания кэша в распараллеленных местах, но это все равно не эквивалентно написанию кода на ассемблере.

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

PS я сам в универе некоторые вещи делал на masm, tasm, nasm, но мне это вообще не пригодилось ни на одной работе. Как и моим знакомым коллегам.
Djam
Саморазвитие <3
 Аватар для Djam
34 / 24 / 1
Регистрация: 28.12.2012
Сообщений: 235
Записей в блоге: 1
29.09.2013, 14:40     Нужен-ли assembler C++ программисту? #11
Ладно я вижу тут все труц программисты и никому ASM не нужен, удачи в написание кода, заканчиваю свой оффтоп

Добавлено через 53 секунды
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Действительно, какая разница? Поздравляю с успешной разморозкой, если для вас полтора гигабайта — это что-то серьёзное.

Изучали паттерны проектирования "подпрограмма" и "цикл"?..
Ну да разница то какая, приведем анологию в 30 гб и 15 поздравляю вас миллионер
Убежденный
Системный программист
 Аватар для Убежденный
14199 / 6214 / 986
Регистрация: 02.05.2013
Сообщений: 10,356
Завершенные тесты: 1
29.09.2013, 14:40     Нужен-ли assembler C++ программисту? #12
Не помню, когда я последний раз писал что-то серъезное на ассемблере.
Но при этом регулярно сталкиваюсь с необходимостью как минимум понимать
ассемблерные листинги. Например:

- отладка;
- разбор крэш-дампов;
- поиск и анализ "узких" мест (оптимизация).

Есть и другие применения у ассемблера, но большинство из них весьма
специфичны, поэтому перечислять не вижу смысла. По поводу "нужен - не нужен" -
не могу сказать, что знание ассемблера прямо так уж позарез необходимо.
Но что лишним оно не будет, так это точно.
dimakozyr
 Аватар для dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
29.09.2013, 18:53  [ТС]     Нужен-ли assembler C++ программисту? #13
В общем, лучше поучу что-то другое
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
29.09.2013, 19:05     Нужен-ли assembler C++ программисту? #14
Страуструп доходчиво отвечает на эти вопросы вначале книги "Язык программирования C++". Поэтому смысла обсуждать мало.
Скажу только, что с интересом и завистью наблюдаю(вмысле пару раз натыкался на его темы в разделе Ассемблер) как товарищ _ с форума (логин такой _) старательно изучает ассемблер(помимо C++), поэтому репутация этого человека в моих глазах увеличивается.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2013, 21:16     Нужен-ли assembler C++ программисту?
Еще ссылки по теме:

В каком направлении следует развиваться программисту C++ C++
C++ Нужен ли диплом программисту?
C++ Советы начинающему программисту

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
gazlan
2862 / 1810 / 272
Регистрация: 27.08.2010
Сообщений: 4,897
Записей в блоге: 1
29.09.2013, 21:16     Нужен-ли assembler C++ программисту? #15
Цитата Сообщение от Убежденный Посмотреть сообщение
регулярно сталкиваюсь с необходимостью, как минимум, понимать ассемблерные листинги
Happy Debugging!
Yandex
Объявления
29.09.2013, 21:16     Нужен-ли assembler C++ программисту?
Ответ Создать тему
Опции темы

Текущее время: 23:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru