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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
#1

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

29.09.2013, 10:56. Просмотров 1517. Ответов 14
Метки нет (Все метки)

Вчера с друзьями спорили, нужен-ли assembler современному программисту (не микроконтроллеров и т.п).
Вот я пишу на С++, асемблер не учил и спокойно работаю без него.
И когда я работаю с памятью, то знаю, что память выделяется где-то в куче, либо в стеке.
По идее мне больше и не нужно знать.
Друзья говорят, что асемблер нужен для понимания, но вот для понимания чего, так никто толком не сказал
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 10:56     Нужен-ли assembler C++ программисту?
Посмотрите здесь:

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

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

Цитата Сообщение от Djam Посмотреть сообщение
кроме веб разработчиков
У них ассемблер называется JavaScript.
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
29.09.2013, 12:34  [ТС]     Нужен-ли assembler C++ программисту? #5
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
А можно потратить кучу времени на бесполезную оптимизацию совершенного ненужных кусков кода.
Вот-вот, и на изучение языка. Вот если-бы я его в универе учил, то ладно. Но сейчас я могу потратить год на изучение асемблера, либо потратить тот-же год на изучение технологии, которую я реально смогу применить.
Djam
Саморазвитие <3
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
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.09.2013, 14:15     Нужен-ли assembler C++ программисту? #7
Цитата Сообщение от Djam Посмотреть сообщение
бессмысленную оптимизацию кода
Именно. Есть оптимизации необходимые, а есть бессмысленные (в частности, преждевременные). Но даже если что-то можно оптимизировать, далеко необязательно это делать погружением в ассемблер. Потому что проблема может быть, скажем, в архитектуре. Достаточно переделать алгоритм. Да и докинуть пару гигов ОЗУ порой выгоднее чем править код.
castaway
Эксперт С++
4876 / 3015 / 370
Регистрация: 10.11.2010
Сообщений: 11,075
Записей в блоге: 10
Завершенные тесты: 1
29.09.2013, 14:25     Нужен-ли assembler C++ программисту? #8
Цитата Сообщение от Djam Посмотреть сообщение
С помощь ASM'a можно уменьшить кол-во памяти занимаемое программой, увеличить скорость работы программы.
А можно и сразу начать писать на ассемблере..
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
29.09.2013, 14:31     Нужен-ли assembler C++ программисту? #9
Цитата Сообщение от Djam Посмотреть сообщение
Действительно, какая разница будет программа весить 2 Гб или 600 Мб...
Действительно, какая разница? Поздравляю с успешной разморозкой, если для вас полтора гигабайта — это что-то серьёзное.

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

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

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

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

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

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

Есть и другие применения у ассемблера, но большинство из них весьма
специфичны, поэтому перечислять не вижу смысла. По поводу "нужен - не нужен" -
не могу сказать, что знание ассемблера прямо так уж позарез необходимо.
Но что лишним оно не будет, так это точно.
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
29.09.2013, 18:53  [ТС]     Нужен-ли assembler C++ программисту? #13
В общем, лучше поучу что-то другое
XRuZzz
Антикодер
631 / 532 / 27
Регистрация: 15.09.2012
Сообщений: 2,479
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++ На каком уровне нужно знать шаблоны программисту
Что же нужно знать программисту с математики C++

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

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

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