|
|
Возраст: 35 C нами с 04.02.2005 Репутация: 121.3
|
|
splav писал(а): |
inkognit, pascal написан на pascal
Даже если так - значит без ассемблера не бывает программ.
|
Ну, довольно грубо сказано. Вряд ли увидишь ассемблерный код в проекте, написанном на C++ . Тем более, сейчас всё растет тенденция на кросс-платформенность, а ассемблерный код не переносим. Разве что в местах, требующих критической сверхъоптимизации (каковые встречаются крайне редко, да и современные компиляторы оптимизируют всё не хуже тебя, скорее всего).
На ассемблере, безусловно, написаны многие библиотечные функции. Просто потому что другого выхода нет — попробуйте сделать системный вызов (скажем, вывести символ на экран) средствами C/C++, не используя библиотек и ассемблерных вставок . Однако стандартные библиотеки для того и существуют, чтобы оградить программиста от низкоуровневых деталей слоем абстракции. За исключением таких "системных" нужд, действительно требующих низкоуровневой работы с аппаратурой, применения ассемблеру для PC я не вижу, особенно ассемблерным вставкам в языке высокого уровня.
Программирование микроконтроллеров (и прочих специфических платформ) и конструирование компиляторов — это отдельный разговор
И еще часто говорят, что знание ассемблера обязательно для понимания того, как "всё устроено". Не соглашусь. Не сказал бы, что курс "Архитектура ЭВМ и язык ассемблера", прочитанный мне во втором семестре, изменил мои представления — мне вполне хватало и совсем поверхностных знаний этого языка.
|
|
|
|
|
|
|
|
Возраст: 36 C нами с 22.01.2006 Репутация: 256.8
|
|
chaser, +1; Грубо но правда. Но в общеобразовательных целях знать надо. Так сказать для коллекции. Вдруг попадется ассемблерная вставка - хоть не как баран на новые ворота. Хоть на таком уровне.
|
|
|
|
|
|
|
|
C нами с 04.02.2005 Репутация: 93.4
|
|
Цитата: |
Это прекрасно ! Чем больше людей будут так считать, тем меньше будет конкуренция и выше зарплаты у настоящих программистов !
|
У настоящих? Это у тех самых системных, чтоли?
Нет, зарплаты будут тем больше, чем, в общем то, не глупые люди будут считать, что для успешной работы требуется только светлая голова и 3 года изучения математики и алгоритмов в вузе (и еще 2 года схематехники и программирования контроллера МК-51) - я тоже так считал. Веру эту теряют, к сожалению, не все.
Цитата: |
как во всём этом разобраться и понять не разбираясь в математике ? И это не какие-то теоретические науки, с ними постоянно сталкиваешся. Например наипростейшая база данных учёта выданых IP адресов. Содержит список сетей и список подсетей в них которые заняты. Возникла задача построить список не занятых, а свободных подсетей и опля ! Как понять, можно вычислить этот список по формуле или придётся заниматься перебором вариантов ? "Теория сложности вычислений" А ведь это абсолютнейше прикладная задача по автоматизации учёта
|
Конечно, математику нужно знать (и не только программистам), в особенности надо понимать основы теории вероятностей, но нельзя зацикливаться на теории. К сожалению, видел я таких светил, который будут мусолить проблему "а как бы нам сделать по быстрее и по-красивее" дольше чем будет идти полный перебор вариантов.
Цитата: |
Криптография
Теория графов
Математическая логика
Теория автоматов
Теория сложности вычислений
Поиск данных
|
Э... ну это само собой, стандартный набор вузовской программы - основы по идее должен знать каждый (хотя индусы вон после 3-х месячных курсов кодят что-то). Я то под математикой имел в виду какие-то сложные задачи, которых сейчас практически нет (кроме специальных областей, конечно). Вся математика чаще всего упирается в типовые задачи, вроде приведенной, именно в те которые разбирались в вузах на приведенных предметах. Я имел в виду отсутствие математического творчества. То же в меньшей степени касается и алгоритмов, эффективнее найти опробованную методику (потому как в 90% случаев кто-нибудь с подобной задачей уже сталкивался), чем изобретать свой велосипед.
Именно поэтому меня более привлекает архитектура, тут еще остался некоторый простор для полета мыслей. Творчество в программировании - это прекрасно, но только пока оно эффективно. Очень многие переступают эту грань.
Цитата: |
Уверенность в том, что ассемблер (или любой другой язык) не нужен, потому что текущие задачи неплохо решаются в рамках используемого языка весьма поверхностна.
|
Я, кажется, про текущие задачи совсем не в контексте языка говорил, а в контексте преподавателей. Понятно, что для каждой задачи - свой инструментарий.
Еше раз по поводу ассемблера. Любые знания не лишние, но была бы моя воля - я бы курс ассемблера без раздумий поменял бы на вменяемый курс ООП (а еще лучше изучал бы и то и другое). Но не готовы наши преподаватели учить ООП и теории БД, например. А ведь не все хотят быть системными программистами.
Цитата: |
Общая тенденция такова, что программирование сейчас не искусство (исскуство и бизнес плохо совместимые вещи), а обычное ремесло (а вот управлять ремеслом прямая задача бизнеса). Поэтому проще набирать десяток таджиков, которые умеют просто и надёжно пользоваться готовыми инструментами, чем возиться с "самородками" (прямой переход количества в качество).
Впрочем, анология со строительством здесь несколько неполна. Решение типичной задачи программирования это некий экстремум функций времени, затрат и соответствия требованиям заказчика.
|
Не ремесло, а индустрия. И она не приемлет романтизированного подхода прививаемого в наших ВУЗах, чаще всего те самые романтики и становятся "таджиками" до конца дней остающимися кодерами способными только писать свои маленькие кусочки по четкой по спецификации, да еще и ненавидящими эту спецификацию за то, что она не дает простора их "творчеству". А основа их творчества - это та самая велосипедная Математика и те самые велосипедные Алгоритмы, которые они изобретают снова и снова.
Цитата: |
Знание ассемблера, да и вообще понимание работы процессора и компьютера в целом, виртуальной машины, базовых функций ОС — это то, что отличает рядового таджика с мастерком от архитектора/проектировщика (который тоже умеет работать руками, но предпочитает головой ).
|
Вы, наврное описались, ведь эти знания не сделают "таджиком" точно. Так что я будут исходить, все-таки, из наличия подобных знаний у архитектора, а не у "таджика".
То есть если "таджик" выучит ассемблер и процессор Х он станет архитектором? А я думал, для того, чтобы стать архитектором нужно понимать идеологию ООП, шаблоны, системы разработки, а ассемблер тут совсем не критичен.
Любые знания - это хорошо. Вот только знание ассемблера помогает архитектору в той же мере, что и умение играть в шахматы. Я не думаю, что стал бы сильно лучшим архитектором, если бы умел играть в шахматы, так же я и не скажу, что стал бы намного худшим, если бы не знал ассемблера. Это все растет из повсеместного мнения, что наша система образования учит думать - здорово - но хорошо бы при этом она учила и еще чему-нибудь; учиться думать можно не только изучая ассемблер, но и игрой в шахаматы и вникая в ООП.
Цитата: |
Quintessence, этот человек уже долгое время работает системным программистом (java в основном) в московском IT отделении одного международного банка + ведёт курсы в школе при этом отделении.
|
Я очень уважаю системных программистов. ТАКЖЕ как и всех остальных.
Вы спросите тогда вашего преподавателя, кто заставляет непрограммистов писать программы? кто эти непрограммисты? и к каким плачевным результатам это может привести?
Просто меня очень раздражают "умные" высказывания ни о чем, из чьих бы уст они не исходили.
Цитата: |
Даже если так - значит без ассемблера не бывает программ.
|
Программ не бывает без машинного кода, так вернее всеже .
|
_____________________________ Think negative
|
|
|
|
|
|
|
Возраст: 44 C нами с 05.04.2005 Репутация: 121.2
|
|
Quintessence писал(а): |
для успешной работы требуется только светлая голова и 3 года изучения математики и алгоритмов в вузе
|
я нигде не говорил "только", это Вы придумали.
Quintessence писал(а): |
К сожалению, видел я таких светил, который будут мусолить проблему "а как бы нам сделать по быстрее и по-красивее" дольше чем будет идти полный перебор вариантов.
|
я имел ввиду что без математики и алгоритмов нельзя понять даже как вообще это сделать, про "побыстрее и покрасивше" речи вообще не идёт.
Quintessence писал(а): |
Э... ну это само собой, стандартный набор вузовской программы - основы по идее должен знать каждый
|
ну вот и написав "Так было 20 лет назад, сейчас программирование это на 100% не математика и на 90% не алгоритмы." - это Вы погорячились эти основы используются постоянно, да же если Вы этого не замечаете или делаете подсознательно без них ничего бы не вышло.
|
_____________________________ IRC WeNet #programming
jid: seb2000@jabber.ru
|
|
|
|
|
|
|
Возраст: 34 C нами с 30.04.2006 Репутация: 77.5
|
|
splav писал(а): |
inkognit, pascal написан на pascal.
Даже если так - значит без ассемблера не бывает программ.
|
Ну библиотека библиотеке рознь.
Паскалевые библиотеки содержат дополнительные функции, которые бы в противном случае можно было бы (да и пришлось собственно) описать прямо в тексте программы. Что же касается библиотек С++ - если написание библиотек на асме оптимизирует работу программы в целом, то почему бы их на асме и не написать?
Кстати тема вообще-то создавалась для обмена контентом: книгами по асму. А плавно перешла в обсуждение предназначения этого(их) языка(ов). Может нам в отдельный топ переселиться?
|
_____________________________ Дайте в руки мне баян, я порву его совсем.
|
|
|
|
|
|
|
Возраст: 37 C нами с 02.02.2006 Репутация: 86.7
|
|
Quintessence, хм, быть может за программингом для столичного бизнеса есть другой мир?
|
|
|
|
|
|
|
|
Возраст: 34 C нами с 25.06.2006 Репутация: 318.5
|
|
Доброго времени суток.
Помоги пожалуйста найти инструкцию управления портом RS232 или его аналогов на ассемблере. Поиски в яндексах и гуглах не увенчались успехом.
|
|
|
|
|
|
|
|
Возраст: 36 C нами с 22.01.2006 Репутация: 256.8
|
|
|
|
|
|
|
|
|