· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.HEAP —› ЯВУ vs. MASM32

. 1 . 2 . 3 . >>

Посл.отвђт Сообщен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.

. 1 . 2 . 3 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.052