|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 24, 2003 12:03:56 Я не силен в ассемблере, но на object pascal программирую давно. Начал разбираться с MASM'ом - поставил, почитал, попробовал, и понял что в нем нет ничего нового, тоесть всё программирование на макроассемблере сводится к программированию на WinAPI. Программы написанные на чистом API на дельфи или на Си, и программы на ассемблере имеют почти одинаковый размер! Но например у delphi есть существенные преимущества 1) простота кода (понятно даже ребенку :) 2) компактность кода, т.е. я напишу 10 строк, а крутой кодер 50 ато и больше :) 3) легкость написания кода - ты не должен каждый раз искать список параметров функции (Code completion это сделает за тебя) -> скорость написания программ значительно выше 4) поддержка всех структур и констант WinAPI, а не только тех которые смог добавить Hutch и Iczelion 5) полная поддержка объектно-ориентированного программирования 6) доступность информации - в стандартной поставке огромный Win32 Programmer's Reference с примерами + в инете есть инфа по дельфи почти на каждом сайте по программированию :))) хоть большая часть из этого и ерунда, но найти можно все что угодно это факт. Можно использовать VCL для больших проектов ,которые вообще нереально написать на masm32), но на это я упор не делаю в силу некоторой глючности VCL. Зато Си + MFC для этого подходит идеально! я не учитываю цену системы программирования, хоть delphi (если мне не изменяет память) стоит ~ 3000$, а MASM бесплатный - для россиян это не актуально :)) Признаюсь честно, люди знающие ассемблер всегда вызывали у меня бескрайнее уважение... во времена DOS, тогда это было действительно актуально. Тогда сделать на нем можно было то, что нельзя на других языках, а сейчас? Товарищи программисты - объясните пожалуйста 1)насколько всё-таки ассемблер под Win32 сегодня актуален? 2)что можно сделать на нем такое, что нельзя на ЯВУ (языке высокого уровня)? 3)какие всё-таки у него приемущества Если можно поделитесь примерами тестов на скорость работы приложений... |
|
|
Дата: Ноя 24, 2003 12:48:10 · Поправил: Aquila Недостатки у Дельфи следующие: i) Абсолютная недзенность ii) Паскалепохожесть iii) [вырезано мной самим] iv) Слишком просто - мозг не развивается, а наоборот - атрофируется v) Среди сторонников Дельфи слишком много глупых людей (это естественно, так как слишком велика популярность и слишком просто "программировать") vi) Попса галимая vii) И наконец, самый главный недостаток - пропаганда Дельфи на форуме WASM.RU значительно повышает вероятность получить билет в баню вне очереди :) |
|
|
Дата: Ноя 24, 2003 12:53:38 Достоинства ассемблера: i) Сверхдзенность ii) Абсолютно не похож на Паскаль iii) [вырезано мной самим] iv) Мозг развивается как от поглощения нескольких тонн рыбы v) Лохоиды дзена быстро отсеиваются, Эдди банит тех из них, кто случайно проскользнул vi) Рулез неимоверный vii) Снижается вероятность получить билет в баню, даже если доходит очередь :) |
|
|
Дата: Ноя 24, 2003 12:53:39 flexter Тогда сделать на нем можно было то, что нельзя на других языках, а сейчас? Сейчас можно пожалуй ещё больше. Но знаешь, после длинного треда RSDN мнение о Delphi, тред о том АКТУАЛЕН ли ассемблер -- это неинтересно. ================================== На этот ворпос может ответить только тот, кто знает, что можно сделать на асме, и чего нельзя на ЯВУ. А кроме того, ответить на него обязан ты сам. |
|
|
Дата: Ноя 24, 2003 13:01:51 Я не силен в делфи :))) 1) простота кода (понятно даже ребенку :) это субъективное - мне, например, си проще, чем паскаль 2) компактность кода, т.е. я напишу 10 строк, а крутой кодер 50 ато и больше :) силльно зависит от кода - вполне может быть и наоборот 3) легкость написания кода - ты не должен каждый раз искать список параметров функции (Code completion это сделает за тебя) -> скорость написания программ значительно выше это от IDE зависит, а не от языка, и для асма они есть 4) поддержка всех структур и констант WinAPI, а не только тех которые смог добавить Hutch и Iczelion при наличии Platform SDK это не проблема 5) полная поддержка объектно-ориентированного программирования тоже субъективно - мне это вообще кажется лишним 6) доступность информации - в стандартной поставке огромный Win32 Programmer's Reference с примерами + в инете есть инфа по дельфи почти на каждом сайте по программированию :))) хоть большая часть из этого и ерунда, но найти можно все что угодно это факт. О, да, в стандартной поставке аж 12 Мб справки по апи :)))) Я MSDN на 3х дисках юзаю и не жужу :) Можно использовать VCL для больших проектов ,которые вообще нереально написать на masm32), но на это я упор не делаю в силу некоторой глючности VCL. Зато Си + MFC для этого подходит идеально! Это тебе так кажется, что нереально, плюс при использовании MFC и VCL мы полчаем еще в довесок по полмегабайта глючного и никому не нужного кода. Меня умиляет Hello World Delphi объемом 200+ кб :) я не учитываю цену системы программирования, хоть delphi (если мне не изменяет память) стоит ~ 3000$, а MASM бесплатный - для россиян это не актуально :)) делфи можно и за полтинник купить, если негнаться за последними версиями Признаюсь честно, люди знающие ассемблер всегда вызывали у меня бескрайнее уважение... во времена DOS, тогда это было действительно актуально. Тогда сделать на нем можно было то, что нельзя на других языках, а сейчас? А сейчас тем более :) Товарищи программисты - объясните пожалуйста 1)насколько всё-таки ассемблер под Win32 сегодня актуален? На 100%, для меня, например :) 2)что можно сделать на нем такое, что нельзя на ЯВУ (языке высокого уровня)? Не спрашивайте, что на ЯВУ можно сделать такого, чего нельзя на асме, а что на асме можно сделать такого, чего нельзя на ЯВУ (С) Р. Кеннеди, мл. adopted by me :) 3)какие всё-таки у него приемущества Это тема целой статьи :) Если можно поделитесь примерами тестов на скорость работы приложений... ну дык все ж от приложений зависит - messagebox с одинаковой скоростью выводится - проверено :) |
|
|
Дата: Ноя 24, 2003 13:06:28 Aquila Привет, а чего курим??? :)) Можно я добавлю? Ассемблер -- это 1. Уникальные алгоритмы 2. Невиданные подходы 3. Абсолютно немыслемый код 4. Высшая степень экстаза сравнимого только с сексуальным 5. Мысль творца, из которой соткан мир 31. моя жизнь....... |
|
|
Дата: Ноя 24, 2003 13:07:18 flexter Программы написанные на чистом API на дельфи или на Си, и программы на ассемблере имеют почти одинаковый размер! Это упрек не Ассемблеру, а асмеру, который пишет код а-ля Си-компилятор и/или похвала Си-компилятору, за приличный код. у delphi есть существенные преимущества 1) простота кода (понятно даже ребенку :) Поэтому многие форумы забиты ребенками, которые ищут _готовые_ компоненты, на каждый случай. в стандартной поставке огромный Win32 Programmer's Reference с примерами Должен тебя огорчить, документация актуальна для ~ 1997 года. 2)что можно сделать на нем такое, что нельзя на ЯВУ (языке высокого уровня)? Например, дрова. |
|
|
Дата: Ноя 24, 2003 13:25:39 Aquila прошу прощения, если кого-то задел своими низменными представлениями о Дзене! но всё-таки я бы хотел услышать более серьезный ответ, дзенность, паскалепохожесть, асм - рулез форева - это меня никак не переубеждает ни в чем и не только меня, а на билет в баню мне вообще фиолетово :)) Я не рекламирую delphi, если бы я хотел это сделать я пошел бы на какой-нибудь ламерский форум... Здесь же мне хотелось бы услышать мнение профессионалов, тех людей которые действительно знают ответ, программируя как на ЯВУ (Си тогда уж или C++, если pascal так не нравиться) и асме. утрирую: вы мне тогда уж объясните чем функция CreateWindow (WinAPI) вызванная в программе на MASM32 отличается от такой же на Visual C++ ??(за него сам иногда сажусь, когда задача требует) (для не просвещенных - MASM32 - написан на Visual C++) p.s. я давно уже вышел из того возраста когда мечтаешь быть космонавтом после того как посмотришь передачу про Гагарина. |
|
|
Дата: Ноя 24, 2003 13:31:51 чем функция CreateWindow (WinAPI) вызванная в программе на MASM32 отличается от такой же на Visual C++ ? Ничем, а что должна чем-то? А вот то, что вокруг нее, может отличаться. |
|
|
Дата: Ноя 24, 2003 13:50:54 masquer объектно ориентированное программирование можно конечно и не использовать, это всего лишь способ облегчения нелегкого труда программиста... Покажите мне пожалуйста программу Hello World на 200Кб!! это же смешно, например простейшая форма windows - 8кб. Не сомневаюсь в том, что вы о таком никогда не слышали, а всё почему - потому что смотреть надо ОБЪЕКТИВНО на вещи. Насчет VCL я сразу вроде бы оговорился, так что не спорю... Другое дело - покажите мне нормальный пример большого проекта под Win на асме? q_qкомпоненты я никогда не скачивал и не искал, считаю это вообще плохим стилем |
|
|
Дата: Ноя 24, 2003 13:51:11 флейм блин уже пошел. flexter: у каждого языка свои задачи. "если каждый вечер на небе загораются звезды - знач оно кому-то нужно". Так же и про асм. по поводу можно\нельзя. пример комбинации С и асма - есть у тебя указатель на функцию (не статическую) - член класса. в виде void*. Нужно вызывать эту функцию для экземпляра класса. Вопрос как? А никак. (на базе шаблонов есть громзодкие конструкции, позволяющие это сделать), но блин получать 1К кода не всегда хочется. Итак вопрос - как же побороть злобный С++? ответ - просто! допустим функция имеет прототип: void f(); вызвать её для эксземпляра класса, при условии, что адрес функции находится в lpf: __asm{ push this calll lpf } Далее. Есть ситуации, когда код должен работать "сам" - к примеру процедуры распаковки. Далеко не всегда ты имеешь у себя подгруженный user32 да ещё и со вкусностями типа msvcrt . А иногда - даже не знаешь где kernel32 находится и ни new ни malloc тебе не сделать. Чего будем делать? Естественно искать ядро. На ассемблере. Т.к. обычно ЯВУ нужно много библиотек, много импортов и т.д. Далее. Попробуй напиши загрузчик дисковый на паскале -) Далее. Ситуация - код должен быть перемешаемым - т.е. не привязан к адресам импортов и т.д., что любят делать компилеры ЯВУ. На чем такой код писать? Правильно , на асме. -) И в последок - я не являюсь ярым сторонником асма, и не считаю асм панацеей. По жизни я чаще пишу на С и С++. А так же не понимаю зачем писать такие вещи, как IDE на асме или что-то такое же по размаху. У каждого языка есть своя ниша. |
|
|
Дата: Ноя 24, 2003 14:04:58 masquer Ну конечно, если взять дизассемблер, и пропустить одну и ту же программу на асме и си, можно увидеть разницу: в первой будет только то что нужно, во второй будет куча дряни, и что? Что с этого? Размер файла на пару килобайт больше, но работает она так же, и с такой же скоростью (по вашим словам проверено на MessageBox :) хех... Асм знать надо каждому программисту - 100% истина. Но писать на нем что (если я не работаю инженером в Intel конечно :))? Можно немного поконкретнее? |
|
|
Дата: Ноя 24, 2003 14:17:20 для не просвещенных - MASM32 - написан на Visual C++) Точнее на С. p.s. я давно уже вышел из того возраста когда мечтаешь быть космонавтом после того как посмотришь передачу про Гагарина. А я уже вышел с того возраста, когда отвечают на странные вопросы. Если очень серёзно. Ни один ЯВУ не даёт нужной свободы в проектировании. Например та же БД... Ну можно её на С сделать, а только видно ли ИЗ С структуру этой БД??? Да нет. Структура данных связана с кодом. Когда Крис писал, что мол Низкоуровневая Оптимизация не много даёт... Он был прав. Только Крис не учёл, что на Асме возможно и другая оптимизация. В частности, чтобы создать оптимальный формат хранения данных -- нужно буквально видеть код, который с ними работает, и это при том, что на этапе создания -- кода нет. А увидители вы это в ЯВУ??? :))) Ответ -- Нет. ====================================== Я кстати когда на PHP програмлю, всё равно представляю Asm -- 1. PHP создаёт таблицу переменных 2. Он обращается к ним 3. Он ищит её по имени ====================================== Насчёт сложности и кода Когда сложность проекта велика время разработки как это не странно выравнивается с ЯВУ. |
|
|
Дата: Ноя 24, 2003 14:26:24 flexter объектно ориентированное программирование можно конечно и не использовать, это всего лишь способ облегчения нелегкого труда программиста... кому как, кому как... Покажите мне пожалуйста программу Hello World на 200Кб!! это же смешно, например простейшая форма windows - 8кб. :) Не сомневаюсь в том, что вы о таком никогда не слышали, а всё почему - потому что смотреть надо ОБЪЕКТИВНО на вещи. Т.е. мне все бросить, прилюдно покаяться и перейти на делфи? :)))) Другое дело - покажите мне нормальный пример большого проекта под Win на асме? Таких примеров хватает - не переживай, у меня, например есть, с другой стороны я бы посмотрел на _нормальный_ проект на делфи (кроме Total Comander-a) - нахватать компонентов и накидать их на форму - много ума не нужно... |
|
|
Дата: Ноя 24, 2003 14:31:39 rst спасибо, хоть один человек высказался нормально, без всяких предрассудков... Только вот не понял смысла в привязки к адресам импортов, почему то я думал всегда наоборот. К примеру прототипы в MASMе сделаны специально для того, чтобы этой привязки не было, например функция GetCurrentProcess напрямую импортируется из ядра kernel32. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.052 |