Re[10]: массивы на ассемблере
От: gear nuke  
Дата: 16.10.08 05:28
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>объективно — количество проектов на ассемблере и на С/С++ или других языках? есть такая статистика? и лучше по годам.


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

Кстати, ещё в начале 90х мне такое рассказывали, сдуру поверил, а оказалось, что это полная лажа. Оценка однобока по-видимому из-за нечёткого определения "проект на ассемблере". Асм используется в довольно большом количестве тех же С++ проектов, пусть и неявно, в процессе отладки и некоторых оптимизаций. Никогда не сталкивались с багами в сторонней библиотеке, компиляторе? Подзравляю! Зато всякий популярный когда-то Паскаль давно попал в свою нишу, разве что без гроба. Вот именно старый Паскаль я считаю необходимо исключить из списка претендентов для начала обучения — учит мыслить с оттенком "versus C", а чрезмерный фанатизм препятствует переходу на тот же C#. И отступы в один пробел в книге — издевательство! (это я тороллирую уже ) Зато вспомнил хорошего кандидата BlackBox . Думаю, показательно — каким-то языкам приходится эволюционировать, а асм так и остаётся самим собой, появляются лишь новые более мощные трансляторы.

СМ>это что такое? google сказал: Возможно, вы имели в виду: паролирование


Опечатка. Троллинг

СМ>слева направо или как? снимается со стека или как? сколько байтов передается double? а структура? в С совершенно не обязательно.


Необязательно в той же мере, как и для асма. Пока все функции с одной конвенцией, достаточно директив/макросов типа PROC/INVOKE, даже такое может быть вполне легальный асм:
printf("Hello World!\n");


Да и не факт, что следует начинать именно с исполняемых файлов. Например, в качестве результата работы FASM можно получить картинку
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[11]: массивы на ассемблере
От: Сергей Мухин Россия  
Дата: 16.10.08 05:38
Оценка:
Здравствуйте, gear nuke, Вы писали:

СМ>>объективно — количество проектов на ассемблере и на С/С++ или других языках? есть такая статистика? и лучше по годам.


GN>Не вижу связи между объективной оценкой количества проектов и языком, с которого следует начинать обучение.


прямой связи нет, конечно. Это означает, что на асме нельзя (или намного сложней) написать большой проект. Зачем нужен такой язык?

GN>Кстати, ещё в начале 90х мне такое рассказывали, сдуру поверил, а оказалось, что это полная лажа. Оценка однобока по-видимому из-за нечёткого определения "проект на ассемблере". Асм используется в довольно большом количестве тех же С++ проектов, пусть и неявно, в процессе отладки и некоторых оптимизаций. Никогда не сталкивались с багами в сторонней библиотеке, компиляторе? Подзравляю!


сам пишу и компилятор и библиотеку, не надо поздравлять

GN>Зато всякий популярный когда-то Паскаль давно попал в свою нишу, разве что без гроба. Вот именно старый Паскаль я считаю необходимо исключить из списка претендентов для начала обучения — учит мыслить с оттенком "versus C", а чрезмерный фанатизм препятствует переходу на тот же C#. И отступы в один пробел в книге — издевательство! (это я тороллирую уже ) Зато вспомнил хорошего кандидата BlackBox . Думаю, показательно — каким-то языкам приходится эволюционировать, а асм так и остаётся самим собой, появляются лишь новые более мощные трансляторы.


Оберон — хороший

СМ>>слева направо или как? снимается со стека или как? сколько байтов передается double? а структура? в С совершенно не обязательно.


GN>Необязательно в той же мере, как и для асма. Пока все функции с одной конвенцией, достаточно директив/макросов типа PROC/INVOKE, даже такое может быть вполне легальный асм:


хотелось бы знать, во всех ассемблерах есть PROC/INVOKE? одинаковые ли они? есть ли стандарт на них?

GN>Да и не факт, что следует начинать именно с исполняемых файлов. Например, в качестве результата работы FASM можно получить картинку


не понял. лучше оценку
---
С уважением,
Сергей Мухин
Re[8]: массивы на ассемблере
От: gear nuke  
Дата: 16.10.08 06:41
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Да, я в курсе, что процентов 90% программистов считает, что сначала надо объяснить все кирпичики, и только затем показывать, как из них складывать программу. Это не работает и это наихудший способ обучения. Если б ты попробовал его хоть раз, знал бы.


Я пробовал, так что должно быть понятно, почему мне сложно признать это самым неэффективным путём Есть другой пример — учил однокласника спектрумному ассемблеру, позже, участь в универе он написал сначала симулятор для обучения студентов, потом еще какую-то систему учета фанарей на улицах. Специальность к CS отношения не имела, он просто взял книжку по Дельфи и читал... интересны были его коммантарии вроде "да и так кое-что уже знаю, вот то в Дельфи делается так-то, а для этого сразу готовая функия", "вот уроды, из-за того-то ГУЙ мерцает, но я сделал вот эдак!". Нет смысла судить, насколько там всё архитектурно правильно было — оба проекта успешны (коммерчески) и ему закрыли кучу сессий автоматом

Кё>А еще процентов 90% программистов имеет небольшие трудности с тем, чотбы делать понятные простым людям интерфейсы, понятные простым людям сайты, понятные простым людям объяснения. Странное совпадение.


Ничего странного — usability это совершенно отдельная наука, требующая привлечения в том числе и людей с 0ми знаниями в программировании.

Кё>Студент мгновенно теряет интерес, если начать грузить его ненужным.


ИМХО, студент — это уже слишком поздно для начала обучения.

Кё>Отношение нужных понятий к ненужным просто удручающее. И сравни с программой на Питоне:


Кё>print "Hello, World!"


Одна строка с INCLUDE — это насколько много деталей? А то "Питон" можно и ассемблировать будет

Кё>Сколько времени придется потратить на ответы на вопросы «а это что за штука?» от обучаемого в том и в другом случае?


На этот вопрос есть 2 ответа — короткий и доскональный. Чем более высокоуровнев язык, тем короче первый вариант, но меньше возможности дать второй. Понятно, что в ряде случаев последний может не потребоваться. И есть одна проблема — не зная о некоторых деталях, нельзя сказать, существенны ли они для данной проблемы, или нет.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[12]: массивы на ассемблере
От: gear nuke  
Дата: 16.10.08 06:51
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>на асме нельзя (или намного сложней) написать большой проект. Зачем нужен такой язык?


Для понимания сути вещей, в том числе того, что происходит в проектах на других языках.

СМ>Оберон — хороший


Вообще-то Component Pascal уже

СМ>хотелось бы знать, во всех ассемблерах есть PROC/INVOKE? одинаковые ли они? есть ли стандарт на них?


Нет. Нет. И нет. Но это не проблемы, выбор то есть. Вот, например, в FASM нет — реализуется через маросы.

Отсутствие стандарта на ассемблер — с одной стороны, сильный тормоз для его использования в реальных проектах, зато с другой — подготавливает пользователя проявлять лояльность в выборе транслятора, а следом и языка.

GN>>Да и не факт, что следует начинать именно с исполняемых файлов. Например, в качестве результата работы FASM можно получить картинку


СМ>не понял. лучше оценку


То есть .asm файл транслируется в какой-нибудь BMP, а там, например, фрактал.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[13]: массивы на ассемблере
От: Сергей Мухин Россия  
Дата: 16.10.08 07:00
Оценка:
Здравствуйте, gear nuke, Вы писали:

СМ>>на асме нельзя (или намного сложней) написать большой проект. Зачем нужен такой язык?


GN>Для понимания сути вещей, в том числе того, что происходит в проектах на других языках.


вот есть проект. в нем КУЧА логики заложено. Где тут ассемблер?
ты понимаешь как реализована та или иная конструкция — очень хорошо, но это никак не приблизит тебя к написанию правильной программы!

СМ>>хотелось бы знать, во всех ассемблерах есть PROC/INVOKE? одинаковые ли они? есть ли стандарт на них?


GN>Нет. Нет. И нет. Но это не проблемы, выбор то есть. Вот, например, в FASM нет — реализуется через маросы.


GN>Отсутствие стандарта на ассемблер — с одной стороны, сильный тормоз для его использования в реальных проектах, зато с другой — подготавливает пользователя проявлять лояльность в выборе транслятора, а следом и языка.


подгатавливать к плохой жизни программистов не надо, она у них и так не сахар

ps

кстати C/C++ тоже плохой язык для начинающего.
---
С уважением,
Сергей Мухин
Re[10]: массивы на ассемблере
От: AndNot Россия  
Дата: 16.10.08 07:17
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, gear nuke, Вы писали:


GN>> и показывают, что оно очень субъективно.


СМ>объективно — количество проектов на ассемблере и на С/С++ или других языках? есть такая статистика? и лучше по годам.


Вообще то разговор не о написании софта, а о первом языке. Это совершенно разные вещи Да и не забывай, что программы для x86 сегодня составляют не самую большую долю на общем рынке, где все больше и больше распространяются микроконтроллеры. Впрочем и старенькие Z80, увеличив частоту, не уходят со сцены, являясь неплохим и дешевым процессором для промышленного оборудования. Только разочарую тебя, на плюсах под них никто не пишет, предпочитая чистый Си и Ассемблер, разве что под Symbian OS используется C++ (да и то пока еще ничтожно мало). Впрочем довольно неплохо смотрятся и Форт-процессоры, устойчиво заняв свою нишу. Или загляни в BIOS своего компа, сразу бросится в глаза, что значительная часть (если не весь) написан исключительно на асме. Возьми такой рынок, как мини ОС реального времени. Там тоже немалую долю занимает асм. А в писюках, в настоящее время, действительно проектов исключительно на асме довольно мало. Но в паре с тем же Си/C++ он еще используется.
Впрочем, я и не призываю писать исключительно на асме, сам пользуюсь Си, просто не вижу причин, по которым асм был бы непригоден для обучения.
Re[9]: массивы на ассемблере
От: Сергей Мухин Россия  
Дата: 16.10.08 07:19
Оценка:
Здравствуйте, gear nuke, Вы писали:

Кё>>Да, я в курсе, что процентов 90% программистов считает, что сначала надо объяснить все кирпичики, и только затем показывать, как из них складывать программу. Это не работает и это наихудший способ обучения. Если б ты попробовал его хоть раз, знал бы.


GN>Я пробовал, так что должно быть понятно, почему мне сложно признать это самым неэффективным путём Есть другой пример — учил однокласника спектрумному ассемблеру, позже, участь в универе он написал сначала симулятор для обучения студентов, потом еще какую-то систему учета фанарей на улицах. Специальность к CS отношения не имела, он просто взял книжку по Дельфи и читал... интересны были его коммантарии вроде "да и так кое-что уже знаю, вот то в Дельфи делается так-то, а для этого сразу готовая функия", "вот уроды, из-за того-то ГУЙ мерцает, но я сделал вот эдак!". Нет смысла судить, насколько там всё архитектурно правильно было — оба проекта успешны (коммерчески) и ему закрыли кучу сессий автоматом


на самом деле вопрос сложный и не однозначный. Пробема в высшем образовании. Я не уверен, что оно сильно изменилось за последние несколько десятков лет, но нас, например, не учили программировать вообще! Учили ассемблеру, Алголам, и другим языкам (еще грамматикам и тп, но это в сторону). А программировать — не учили. Да и понятно, язык препод может и по книге знать, а программировать — надо опыт, хотя сейчас и книги появились.

а сложность вопроса (как мне кажется) кроется в след вопросе:
для чего нам учить программирование?


п 1 практически равен 2. для него все равно сколько времени будет потрачено.

для кого нужен ассемблер.
п1.2 — да все равно
п.3 — не нужен
п.4 — нужен.


ps

давайте перейдем в Священные войны — пора уже
---
С уважением,
Сергей Мухин
Re[11]: массивы на ассемблере
От: Сергей Мухин Россия  
Дата: 16.10.08 07:30
Оценка:
Здравствуйте, AndNot, Вы писали:


GN>>> и показывают, что оно очень субъективно.


СМ>>объективно — количество проектов на ассемблере и на С/С++ или других языках? есть такая статистика? и лучше по годам.


AN>Вообще то разговор не о написании софта, а о первом языке. Это совершенно разные вещи Да и не забывай, что программы для x86 сегодня составляют не самую большую долю на общем рынке, где все больше и больше распространяются микроконтроллеры. Впрочем и старенькие Z80, увеличив частоту, не уходят со сцены, являясь неплохим и дешевым процессором для промышленного оборудования. Только разочарую тебя, на плюсах под них никто не пишет, предпочитая чистый Си и Ассемблер, разве что под Symbian OS используется C++ (да и то пока еще ничтожно мало). Впрочем довольно неплохо смотрятся и Форт-процессоры, устойчиво заняв свою нишу. Или загляни в BIOS своего компа, сразу бросится в глаза, что значительная часть (если не весь) написан исключительно на асме. Возьми такой рынок, как мини ОС реального времени. Там тоже немалую долю занимает асм. А в писюках, в настоящее время, действительно проектов исключительно на асме довольно мало. Но в паре с тем же Си/C++ он еще используется.


дык. мы путаем ассемблер как язык, и процессор как железо.

Учить ассемблер для IBM/370, PDP-11, x86, z80, MIX (это то что я знаю) это разные ассемблеры, хотя и называются одним словом. Тебе надо учить _несколько_, чтобы работать на всех этих машинах (MIX исключим), а мне только один С.

А Forth — вообще смешно. он был хоть как-то востребован в старые года (но я видел только игрушки), и я единственный выступил на какой-то отраслевой конференции в 80 г против него, т.к. знал его близко.

Наверно ниша есть, а найти работу в этой нише можно?


AN>Впрочем, я и не призываю писать исключительно на асме, сам пользуюсь Си, просто не вижу причин, по которым асм был бы непригоден для обучения.


вот два чела стали учить языки. один уже научился Hello word выводить на экран, другой матрицы перемножает.

кто больше умеет?
---
С уважением,
Сергей Мухин
Re[8]: массивы на ассемблере
От: AndNot Россия  
Дата: 16.10.08 07:58
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Доказательства находятся в тебе. Если ты наблюдал за собой во время обучения, как оно происходит, то доказательств не нужно — ты видел факты. Если нет, то тебе этого никак не показать. Чтобы стать хорошим програмистом, ты потратил годы, но чтобы разобраться, как происходит обучение, ты явно потратил максимум 5 минут. Зато авторитетные суждения, что лучше, а что хуже, уже делаешь.


Я ни в коем случае не претендую на истину Начинал ведь с бейсика и маш. кодов. Затем был очень болезненный переход на x86 и изучение Борландовских Паскаля и Си. И только неудовлетворенность скоростью заставила вплотную заняться асмом, хотя, после 8080, это был шок, платформа казалась уродливой до невозможности :D Но, изучив асм только для оптимизации программ, я постепенно втянулся, все больше отдавая предпочтение асму, особенно нравилась возможность создавать любые структуры данных, плевать на разграничения кода и данных, не иметь никакой типизации данных, в общем полная свобода. а где свобода — там и выбор.

Кё>Да, я в курсе, что процентов 90% программистов считает, что сначала надо объяснить все кирпичики, и только затем показывать, как из них складывать программу. Это не работает и это наихудший способ обучения. Если б ты попробовал его хоть раз, знал бы.


Именно так я и начинал изучать Turbo Pascal. Но написав несколько утилит я понял, что у меня слишком много времени уходит на отладку, путаюсь в своем же коде. Возможно это были последствия бейсика, не знаю, но помню хорошо. Тогда и купил книженку, начал изучать по всем правилам, то есть от основ и дойдя до построения программ. После чего понял, что весь предыдущий код — лажа, написанная как бох на душу положит, без какой либо четкой логики, в обход правил "хорошего тона для Turbo Pascal". Си я уже сразу начал с основ, и первый код написал только после их досконального изучения, когда уже не нужно заглядывать в книжки и примеры. Получилось неплохо, даже очень. Отсюда и делаю вывод — надо начинать именно "с кирпичиков". Хотя опять же, не утверждаю, что именно я прав, может кому то такой подход и не подойдет.

Кё>А еще процентов 90% программистов имеет небольшие трудности с тем, чотбы делать понятные простым людям интерфейсы, понятные простым людям сайты, понятные простым людям объяснения. Странное совпадение.


Ага. И образцом такого приятного интерфейса является данный форум Лично мне не нравится сюда ходить по одной причине — неудобный и крайне тормозной интерфейс. И здесь я с тобой согласен — 90% рунета имеет антипользовательский интерфейс, не учитывающий, что не у всех быстрый и дешевый инет. И не только я так думаю

Кё>Не только не придется, но и нельзя с этого начинать. Студент мгновенно теряет интерес, если начать грузить его ненужным.


Значит ему не место в программировании. Ведь прежде чем сесть за руль, нужно выучить все правила дорожного движения

Кё>Это не тоже самое, что программа на Си main(){printf("Hello, World!\n");}. Отношение нужных понятий к ненужным просто удручающее.


Это то же самое, тем более там использован именно Сишный printf. Просто я мог бы обойтись и без макроса, сделав код еще проще и без "ненужных" понятий Это еще раз показывает, насколько асм разнообразен, даже на простейших задачах
Re[9]: массивы на ассемблере
От: Сергей Мухин Россия  
Дата: 16.10.08 08:04
Оценка:
Здравствуйте, AndNot, Вы писали:

AN>Значит ему не место в программировании. Ведь прежде чем сесть за руль, нужно выучить все правила дорожного движения


ну это не так. если по закону, то надо сдать теорию ПДД в школе (или в ГАИ если экстерном).
для этого достаточно знать 18 ответов на вопросы! (раньше было 9!). Т.е. надо знать ответы, а не ПДД!

Более того, через год реального вождения 90% ПДД из головы выветривается насовсем!

Кё>>Это не тоже самое, что программа на Си main(){printf("Hello, World!\n");}. Отношение нужных понятий к ненужным просто удручающее.


AN>Это то же самое, тем более там использован именно Сишный printf. Просто я мог бы обойтись и без макроса, сделав код еще проще и без "ненужных" понятий Это еще раз показывает, насколько асм разнообразен, даже на простейших задачах


разнообразие не есть +
---
С уважением,
Сергей Мухин
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.