![]() |
Модераторы: PILOT |
![]() ![]() ![]() |
|
v_ez |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
День добрый, уважаемые коллеги
![]() Развивающейся IT компании требуется начинающий специалист на полный рабочий день, со знанием ANSI С++ . Кроме собственно сей, неплохо бы представлять что такое многопоточность и STL - этого хватит. Оплата труда по результатам собеседования ))) Для начала работа будет заключаться в сопровождении имеющегося проекта, его докрутки и создании для него дополнительных модулей. Дальше будет возможность (а может и необходимость) познакомиться поближе с Oracle, клиет серверными приложениями, Java и т.д.... Коли кого заинтересовало - вот небольшое ТЗ. Вопросы, выполненный код и резюме кидать сюда ([email protected]) ТЗ: ------------------------ Входные данные: --------------- Создать два различных файла с данными (*.txt), формата: 1 - каждый файл состоит из от 2-х до 5-ти строк записей - разделитель строк ";"; 2 - каждая строка состоит из 5-ти полей - разделитель поля ","; 3 - в каждом пол хранится любое целочисленное значение, 0 или пусто. Задача: ------- Создать: 1 - запускаемый модуль, в который в качестве параметров будут передаваться пути к этим файлам, 2 - создать динамическую библиотеку, содержащую одну экспортируемую функцию, принимающую целочисленный аргумент и возвращающую свой аргумент умноженный на два. В модуле должны стартовать два потока, каждый из которых будет обрабатывать свой файл. Обработка файла заключается в следующем: 1 - считывание поля 2 - модификация его с помощью метода из .dll 3 - запись его в некий выходной файл. В результате работы программы должно получиться два выходных файла. Это сообщение отредактировал(а) v_ez - 16.7.2004, 16:33 |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
хотите на ассемблере напишу?
![]() -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
v_ez |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
Да можно было бы и на нём, да проект на который человек нужен на С++ написан
![]() |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
а что в с/с++ инлайн асм отменили?
![]() да и вообше можно обьектник скомпилить и прилинковать к проекту написаному на с/с++ или dll написать которую проект будет использовать однобокий у вас подход однако господа ![]() а создание тредов в модуле зачем? или просто показать что типа человек умеет? -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Orlan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
А кто потом такой язык как ассемблер захочет поддерживать из комманды разработчиков?
Еще бы предложил написать в машынных кодах! ![]() --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Orlan
дилетанские рассуждения тут не уместны какая нафиг разница начем dll написана? она функ ехпортирует и выполняет с возвратом неких значений -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
а если не секрет что за проект?
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
v_ez |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
Нет, господа - это у вас однобокий подход ))
на кой болт интересно писать прогу на ассемблере - если проект уже написан и его доводить надо? заново переписывать чтоли? ;)) Конвертор для биллинговой системы... |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
что есть доводить?
и никто и не предлогал ПЕРЕПИСЫВАТЬ ВЕСТЬ проект на асме если нехватает неких функ то делаем void somefunc() { _asm { some code } } после компиляции ну ничем отличатся не будет а вот оптимизация и скорость увеличится либо пишется кусок кода просто на асме , сомпилим в obj COFF или другой поддерживаемый вашим компилятором формат и спокойно линкуем либо делаем полноценную dll с набором экспортируемых функ и используем в проекте если не умеете могу научить ![]() з.ы. господин Orlan на вас работает? если да то можно сразу оценить уровень подготовки ваших специалистов -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Orlan |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Если ты уйдеш на другую работу или просто в отпускт, то твои исхощирения прийдется поддерживать. А сейчас на асемблере хорошо программировать может много людей. И эти люди буду допускать ошибки, будут глюки и т.д. Писать на ассемблере из за того что один разработчик говорит асемблер - рулез форева! - это слишком большой риск для проекта. А риск значит, что он будет более затратным
Я работаю в достаточно известной на постсовецкой територии корпорации. Прикладным программистом. С драйверами и низкоуровневыми операциями не имел дела и поэтому скептически отношусь к использованию ассемблера в реальной жизни. У виды 2000, 2003 и ХРю есть Уровень Абстракции от Аппаратуры. Так что там твой ассемблер не очень нужен. Разве что синтаксис будет немного проще (если люди вообще знают ассемблер). Ассемблерные вставки - да они могут пригодится. А вот целые модули на ассемблере - я сочуствую людям, которые должны такой код перенимать и поддерживать. У нас группа программистов использует вместо MFC, WTL или .НЕТа библиотеку, что написана одним программером. Если он уйдет - проекту полный звиздец. Так что я знаю что без поддержки кода не обойтись. Разве что студенчиские лабы можно не поддерживать. Надеюсь я ответил на это:
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||
|
|||||||
oleg1973 |
|
||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
прикол ![]() ну вот сам подумай есть либа + дока по ней , что так трудно разобратся? есть инклуды, влючай в свой С++/С и работай спокойно куча контор продает свои либы и не кто еще не жаловался и не спрашивал " а на чем ето ваша либа написана? уж не на амсе ли? или упаси госпоть в машинных кодах? а вдруг она будет не совсестима с нашим С/С++ проектом?"
нюню значит в 98 HAL еще не был придуман? ![]() ![]() ![]()
вы меня умиляете своим оптимизмом ![]() ![]() ![]() -------------------- SST 465555 icq 200-512-712 |
||||||
|
|||||||
Orlan |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Разработка библиотеки более трудоемкая работа чем разработка прикладного кода. Разработчик должен давать чутли не руку на отчеченее, если он допустит ошибки. Не жаловался? Да эти конторы продают сборища глюков, а не библиотеки!!! Видно тебе не довелося пользоватся ни одной такой библиотекой. Например мы закупили библиотеке CodeJoke - боже мой. Хоть бери правь ее в исходниках!!! Тупые ламеры писали ее. А ты тут заявляеш что будеш вылизывать код под единоразовую задачу до качества библиотеки да еще на ассемблере. И говориш, что глюков не будет. Пожалей себя! Твой труд останентся неоплаченым. Подключат ее без проблем. Для этого и доки особо и не нужны, разве что краткое описание. А потом пойдут глюки или просто изменение в постановке через 4 года ![]() ![]() Никто не жалуется на эти либы потому что их никто не юзает. Есть в инете пару нормальных либ. Находиш ту, которую потом можеш править. Закачиваешь. Если она более-менее, то вставляеш и правиш код в случее ошибок. Если у автора либы серъезные проблемы с логикой, то используеш только идеи из нее - она просто пример работы.
тут не буду спорить. Реального низкоуровневого программирования не было. Просто немного баловался. ![]()
![]() Это сообщение отредактировал(а) Orlan - 23.7.2004, 18:33 --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||
|
|||||||
oleg1973 |
|
||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
а что в этом странного? для меня это не сложно
ну это ты загнул или ты под линюх пишеш? ![]() ![]() ![]()
а вот не нада SDL юзают openNURBS юзают продолжить список? (есть куча мат. либ) -------------------- SST 465555 icq 200-512-712 |
||||||
|
|||||||
Fantasist |
|
||||||
![]() Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 1 Всего: 41 |
oleg1973
Знаешь, складывается впечатление, что ты либо непрофессиональный программист, либо программист одиночка. Все, кто работал над нормальными проектами с несколькими участниками понимают, что очень большое значение играет именно КАК написан код (вплоть до стиля оформления), а не только функциональная правильность кода. Так что вот это:
справедливо только для dll, которую написали лично вы и сами продаете, без исходных кодов. Там действительно без разницы, как она написанна. А в купе с вот этим:
Ты просто нарываешься на звание ламера. Нельзя с такой воинственностью отстивать убеждения, которые далеко не являются правильными. Ассемблер действительно плохо расширяем и тяжело поддерживаем. Добавлено @ 20:10
Эта фраза вообще добивает. Так обычно говорят самоутверждающиеся начинающие программисты. Это они верят, что главный фактор - это их личное умение что-то классно написать (я сам раньше так думал). В реальных проектах практически всегда ставяться совсем другие акценты. Да, код должен быть оптимальным и правильным, но это сопутсвующие условие, а не основное и имеет смысл только тогда, когда основные выполненны. -------------------- Волны гасят ветер... |
||||||
|
|||||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Fantasist базар фильтруй -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Orlan |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Весьма наивное высказывание. Имея минимальные ресурсы сделать профессиональную библиотеку, которую без правки могли юзать программеры во всем мире? Майкрософт этого не может. Сан этого не может. АйБиЭм не может. А он может!!! Майкрософт уже сделала одну такую либу - WTL - глюки до сих пор исправляют.
Нет. Под винду. Все бесплатные либы под библиотеки как под Линах, так и под Винду, имеют низкое качество. Авторы отказываются гарантировать правильную их работу. Исключения из этого правила очень редки. Да и сам Линах в общем счете - это бета версия, нормально протестированы только основные пакеты, а остальные это сплошное Segmentation fault, core dumped.
Я както решил использовать Matrix Template Library. Закачал. Посмотрел примеры. Прикрепил к проекту. Потом надо было сделать небольшое изминение и я полез в доки, потом в исходники. И потом я прозрел: так код писать нельзя. Все слишком запутанно. Человек делал элементарные вещи извращенным способом, все черезмерно усложняя. Так я отказался от этой библиотеки. Не думаю что эти библиотеки намного лучше. Если другого варианта нет, то их конечно прийдется использовать, а иначе я старюсь этого не делать. И другой пример. Закачал с http://codeproject.com врапер для SAFEARRAY - один файл, все элементарно, легко разобратся, стиль напоминайт Майкрософт. Она маленькая и легкая в поддержке любым программистом. Я за такие библиотеки. --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||
|
|||||||
Wowa |
|
||||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 2 Всего: 290 |
Олег, ты не прав! И такие рассуждение неуместны:
Это также не тактично. |
||||
|
|||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Admin
Orlan изначально был разговор о "совместимости" ![]() потом плавно перетек на личности и на "совместимость" вообще библиотек от сторонних производителей. рассмотрим ситуешн: есть некий прожэкт 1) Orlan пишет GUI (визуальный он програмер,любит на форму кнопочки кидать) 2) Admin пишет логику 3) oleg1973 пишет мультитреадный парсер и работу с файлами (на асме пишет притом) в чем проблема? модуль oleg1973 экспортирует некии функ которые обрабатывает модуль Admin и все красиво отрисовывается модулем Orlan проект сделан и не надо только говорить "а что если oleg1973 умер, заболел, понос напал на него", проект не на 10 лет расчитан с такимже шансом и Admin может заболеть , и порой понять С/С++ листинг тоже не легко -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Orlan |
|
||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Если oleg1973 умер, заболел, понос напал на него или просто ушел в отпуск, уволился, то надо заниматся поддержкой его кода. И тут начинается самый кошмар. Нашли программера на Асм-е. Он начинает разбиратся в 10000 строках кода. И офигевает. Короче подправил код. Отправили заказчику. Глюк. От черт. Новичек не учел что модуль mod34 использует одну особенность из модуля ggg456, сформированную в модуле ghj_zzzz....
И так постоянно!!! Он новых фитчах не может быть и речи! Заказчик не доволен! А как вам такое развитие событий? Что вы думаете менеджер проекта скажет к Олег1973 на его просьбу писать длл на асьме? Неужели он не примет во внимание возможность смерти, болезни, поноса или простого ухода в отпуска на 4 недели, увольнения? Проэкт не должен зависеть от героев, уход которых приводит к краху проекта
Когда проект сделан начинается поддержка и об этом люди, которые считают деньги, никогда не забывают ![]()
Проэкты это вам не студенчиские лабы! Они бывают очень долгосрочными. Проэкт, в котором я участвую уже длится 3 года. 80% комманды поменялося за это время
На место человека, который пишет логику на С++ элементарно найти человека, который сможет разобратся в коде. Даже студент подойдет, если алгоритмы не сложные.
Да. Но Асемблер на порядок трудней в понимании. И даже разобратся в идеальном асемблеровском коде бывает ну очень не легко PS.
Кстати, почти никогда не был "визуальным программером" и недолюбливаю VCL. В основном "пишу логику" Это сообщение отредактировал(а) Orlan - 26.7.2004, 16:37 --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||||||
|
|||||||||||
oleg1973 |
|
||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
типично ошибочное заблуждение
а ты пробовал?
столько кернел у MinuetOs е занимает ![]()
и морально устаревает а теперь тотже самый пример начался понос у кодера (не визуального)Orlan нашли быстренько студента чтоб тот за 2 недели разобрался в 10000 строках написаных на С/С++, но проблема что кодер Orlan использовал некие компоненты в которых есть глюки да и студент про них вообще ниче не слышал, а классы они тока на 3 курсе будут изучать, и в проекте мало кто знал что кодер )Orlan их использует(ну не будут же они мешать ему работать и постоянно лезть с вопросами " а что ето за фигня у тебя на форме?") получается тажа самая ситуевина что и описана выше, так что все в мире относительно. -------------------- SST 465555 icq 200-512-712 |
||||||||
|
|||||||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 1 Всего: 317 |
oleg1973 спецов по ассемблеру мало, спецов по C++ много, на этом можно поставить точку, оставив бесконечные дискуссии в стоторне. Просто человеческий фактор: "на асме трудно" сработает, а втирать "что легко" сложно и не нужно.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Sardar
ну дык я тоже так думаю а разбирать чужой код полюбому сложно, внезависимости от того на чем написано -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Ну это просто бред. Я про асм только в книге пока читал и практически ни чего не писал, но почему то мне большая часть видимого мною кода вполне понятна. Лично я собираюсь серьезно заняться асмом на днях. А инкапсулируя код асма в методы класса, такие проблемы как что то не работает, вообще исчезнут. Да и для работоспособности кода его нужно правильно тестировать, учитывая все нюансы, зато выигрышь в производительности в некоторых ситуациях, судя по прочитаной литературе, просто огромен. И, для того, чтобы не было литого 10000-строкого кода, нужно, как я уже говорил, совмещать ООП с асмом, причем, правильное построение, класса, его методов, будет самодокументировать код и будет всем счастье ![]() П.С. Еще добавлю - разобраться в чужом коде не сложно, если он хорошо написан. К примеру, на работе, мне бывало попадался такой код, в котором сам черт ногу сломит и это на PL\SQL(Я вообще иногда просто поражаюсь той писанине - километровые участки кода и ни какой модульности ![]() Это сообщение отредактировал(а) <Spawn> - 26.7.2004, 22:04 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 1 Всего: 317 |
Модератор: Давайте вернёмся к теме обсуждения.
У человека создавшего топик наверное сложилось впечатление, что мы все начинающие программисты ![]() Дискуссию предлагаю продолжить в отдельном топике. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Sardar
переноси тему -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Orlan |
|
||||||||||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Замечено статистикой, что програмисты на одну строчку кода независимо от языка программирования тратят приблизительно одно и тоже время. Вот и выходит, что на ассемблеровских программ надо потратить намного больше времени. И это если еще не считать сложность языка программирования и отладки!
если б не пробывал, то и не говорил бы
Видимо из за того, что столько много кода на асемблере, это операционка так "популярна", что я про нее никогда не слышал
Конечно, но если это ассемблеровский проект с уволившимся ассемблеровским программером В С++ такой код просто напросто переписывается!
Пример подобран неудачно. Переход на личности в спорах никогда к добру не приводил в спорах
Есть MFC, ATL, STL - хорошо проверенные библиотеки. А у ассемблера что идально проверено? MOV AX, BX? FPU? А по поводу студента, который не смог разобратся - не надо использовать трудный для понимания код от сторонних разработчиков. Найти хорошо разбирающегося студента на С++ или Паскале на несколько порядков проще чем аналогичного для асемблера. Это сообщение отредактировал(а) Orlan - 27.7.2004, 12:07 --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||||||||||||||||
|
|||||||||||||||||||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 2 Всего: 290 |
Из-за того, что некоторые стали отклоняться от темы обсуждения - не стоит переносить всю тему во флейм или еще куда-то, ведь цель у человека создавшего тему - была другая. Для переноса темы - должны быть причины. Если причнами является офтопик, то люди, которые его развели - должны получить по минусу и их сообщения должны быть удалены. Добавлено @ 12:04 Поэтому Sardar все правильно сказал. Если кому-то интересно пофлеймить, то продолжайте дискуссию в отдельной теме, а тут только ссылку разместите на эту тему. |
|||
|
||||
Orlan |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Мы здесь обсуждаем на каком языке программировании лучше выполнять поставленную задачу в первом сообщении.
Не думаю. Дискурсии по поводу языка программирования это не вопрос какого текста должен быть цвет кода в IDE.
Внимание обсуждающих заострилось только на языке программирования, все остальное отошло на второй план. Меня и Олега1973 интересовали эти вопросы. Другие были почти безразличны к постановке задачи из первого сообщения. Вам решать где должны находится такие темы.
Не вижу здесь флейма. Есть небольшие подколики со стороны Олега1973 и молчаливое игнорирование их с моей стороны. По моему мнению основным офтопиком здесь является обсуждение флейма, а не вопрос на котором языке должна быть выполнена работа! Это сообщение отредактировал(а) Orlan - 27.7.2004, 12:34 --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||||
|
|||||||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 2 Всего: 290 |
ладно, обсуждайте дальше, пока человек создавший тему не скажет свое мнение. Если он будет молчать дальше, то видимо его устраивает ход обсуждения.
|
|||
|
||||
oleg1973 |
|
||||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
http://www.menuetos.org/
ну во первых это враперы скажем так, а не библиотеки а во вторых никто не мешает использовать их с асмом а в третих можно и winapi без гемороя использовать, канешно на MFC проще тоже самое окно создать (1 строчка) но факт в том, как ты сам должен понимать тоже MFC потом WINAPI использует
вот те на, приехали , а если мне позарезу нада либу для работы к примеру с 3ds файлами, а самому мне лень с их чанками разбиратся, тода как?
нуууу это смотря где искать ![]()
больше не буду, переду сразу к действиям ![]() -------------------- SST 465555 icq 200-512-712 |
||||||||||
|
|||||||||||
Sined |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 19.5.2004 Репутация: -1 Всего: 0 |
Народ, а можно вопрос: какое вся эта дискуссия имеет отношение к теме топика. Вроде бы человек хочет найти кого-то к себе в помощники и дает тестовое задание на тему. Не приходится сомневаться, что программу из 5 строчек на С Oleg1973 может переписать на асме(там правда строчек поболе будет), однако создателю топика не особо нужно, чтобы Олег1973 у него работал(да он и далеко к тому же-- в Италии). В данном случае ситуация представляется следующим образом--куча где-то и как-то работающих людей пытается лишить возможности заработать тех, у кого работы пока нет(конкуренция, однако ).
Насчет того, на чем надо писать программу существует точный ответ -- на чем непосредствееный начальник скажет(поскольку именно он отвечает за программу и все пи-люли достаются ему). Если ты пишешь под винду в пользовательском режиме -- выигрышь от написания кода на асме будет скорее всего минимальный. Даже плохо с точки зрения логики написанная, но грамотно оформленная программа обычно читаема. |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
В принципе Fantasist точно высказал все мысли, которые появляются при прочтении ответов Oleg1973.
Человек чуть ли не явно отрицает все достоинства системного подхода при написании проектов, в сравнениях асма с другими языками (а начиналось по началу только с C++) готов привести любые умозрительные заключения и перевернуть все сног на голову, лишь бы доказать свою правоту. К примеру, начисто отрицается польза грамотного написания кода на C++, использование библиотек MFC,ATL, было названо неэффективным и ненужным, а сами библиотеки были названы просто врапперами и ничем иным. Со стороны кажется что это маленький ребенок, который топает ножкой и кричит "хочу луну!". А на все доводы против его мнения просто предпочитает закрывать глаза. Это сообщение отредактировал(а) DENNN - 28.7.2004, 09:32 |
|||
|
||||
oleg1973 |
|
||||||||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
DENNN
ну а чем MFC не враппер? я не пытаюсь никому ничего доказать,имхо бесполезно каждый может и пишет как ему удобней
небыло такого,имелось ввиду что тоже самое можно сделать и без них либо с ними и на асме Sined
ты так думаеш? з.ы. да кстати напомню содержание первой серии для тех кто весь тред не читал есть работодатель который ишет начинающего (запомните это слово) сишника,есть тестовое задание,написать либу,я от скуки предложил написать на асме, и тут все и началось,обвинения во всех смертных грехах, антисоциальном поведении и так далее. впечатление у меня складывается такое что кучка зазомбированых людей которые не признают ничего кроме с++ (недай боже визуального еще ![]() ![]() А теперь разберемся углубленно, в данный момент как выглядит программа (к примеру OpenGL ) а асме:
по моему все достаточно читаемо и понятно и от С мало чем отличается, ну если только этим
тоесть как вы надеюсь поняли даже на асме структура программы таже что и на С, для самых ленивых есть макросы case, if, then и.т.п. так же нет ну никакой проблемы для работы с разными там обьектами и тому подобной красотой ![]()
для любителей процедурного програмирования,с созданием фрейма стека для передачи параметров (а-ля С) пример собственно процедуры
вызвать ее можно к примеру так
зато при написании на асме можно с легкостью адаптировать свою либу/програму для линковки с модулями написаными на любом другом языке, так как передачу параметров через стек или регистры всегда можно "заточить" по нужный модуль. про возможности оптимизации я даже говорить не буду, ни один компилер не сможет оптимизировать код так как можно это сделать ручками. для отладки есть куча инструментария, начиная от отладчиков пользовательского уровня заканчивая ring0 отладчиками, либо если уж так хочется то можно и в Вижуал сишном дебугере отлаживать, достаточно там где нада бреак поинт int3 поставить. и еще раз повторю, складывается впечатление что вы господа настроены именно против асма, еслиб я предложил написать либу на вижуал васике, флейма меньше бы было ![]() з.ы.ы. чтоб всех вас успокоить, ХОТИТЕ НА С/С++ НАПИШУ? и на нем умею ![]() Это сообщение отредактировал(а) oleg1973 - 28.7.2004, 11:08 -------------------- SST 465555 icq 200-512-712 |
||||||||||||||
|
|||||||||||||||
Orlan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Интерестно как на ассемблере будет выглядеть строка:
1. Создается объект типа Log 2. Получается интерфейс ILog 3. Текст "Тест" преобразовывается из анси в юникод (неявный выхов врапера _bstr_t) 4. Вызывается метод Log Ничего более для программиста делать не надо. Код понятен даже для студента, который знает только основы СОМ. А какой код будет в этом случае на ассемблере? Страшно подумать Нет враперов, только примитивные макросы, слегка упрщающие написание инструкций к процессору
Можна также было бы написать и в машинных кодах ![]() ![]() ![]() --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||
|
|||||
Sined |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 19.5.2004 Репутация: -1 Всего: 0 |
2 кучки -- только одна кучка больше другой. Из ненаписанного в кратком содержании-- кое-кто (не будем показывать пальцами) предложил написать прогу на асме, после того как ему(не будем показывать пальцами, хотя хочется) мягко(!) объяснили, что прога на асме не очень то нужна, поскольку оцениваются знание и стиль написания в срр началось представление "Обидели юродивого--отняли коппеечку" и "Выходит, гении никому не нужны" с обвинением ни в чем ниповинного работодателя во всех смертных грехах и болезнях("подход у Вас, батенька, однобокий"). Это представление продолжается до сих пор. |
|||
|
||||
Orlan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
ИМХО, Ассемблер надо использовать только в узко специализированных задачах, работа с оборудованием например, оптимизация отдельных участков кода, которые выполняются милионы раз за секунду. А в остальных задачах это дополнительный напряг для проекта в целом.
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
Да будет Вам известно, милостивый государь, что сдесь обсуждалась не разовая работа (написал, взял деньги и пропал), а именно работа под коммерческий проект. И хоть вы в лепешку разбейтесь, но разработка на асме сложного комплекса несколькими програмистами на порядок сложнее, чем на общепринятых и отлаженных технологиях. И в таком ключе даже использование вижуал барсика выглядит предпочтительней (при всей моей нелюбви к нему), чем написание кода на асме только для того чтоб загнуть пальцы перед зеркалом. Я много знаю больших коммерческих приложений, написанных на всех обсуждаемых языках, в тот только асм отстает ![]() |
|||
|
||||
oleg1973 |
|
||||||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Orlan
наивный, ты обьекты в дебугере видел? ![]() обычный массив адресов функ-методов
не 1986 год и не на Микроше програмируем а на твой взгляд с твоей прогой на С компилятор что делает? ![]() Sined
а по теме нечего сказать? так как вы человек для нас новый, о ваших програмерских способностях мы вообще ничего не знаем. DENNN
Да будет Вам известно, милостивый государь, что пальцы никто не загинал
ну да согласен, тут студент первокурсник ну ни как не разберется ![]() вот только вопрос возник это какие такие в асме технологии не общепринятые используются? и не отлаженые? -------------------- SST 465555 icq 200-512-712 |
||||||||||||
|
|||||||||||||
Sined |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 19.5.2004 Репутация: -1 Всего: 0 |
По теме я уже сказал -- не надо гадить в чужую тему.(Нонешний "гнилой базар" к ней отношения не имеет)
Oleg1973, то чем вы сейчас занимаетесь более или менее лишено смысла -- более того, прямой переход на личности череват нарушением правил Форума. Мне хватает моих способностей и для работы и для того, чтобы понимать, что языки это ИНСТРУМЕНТ и не более. Причем спорить о них достаточно глупо. Приведу простой пример: пассатижами удобно выдирать гвозди, откусывать провода и.т.д. При желании(если сильно напрячься можно забивать гвозди). Молотком можно без напряга эти гвозди забивать, но откусить провод уже не удастся--однако, если кто-нибудь скажет, что пассатижи лучше молотка, то я, как и 70% людей, сделаю не очень лестный вывод о его умсвенных способностях. |
||||
|
|||||
Orlan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Прочитал твой вариант кода на асьме
1. Объект ты не создавал 2. Соответственно не анализировал был ли он создан, если нет, то с какой ошибкой 3. Если он не создан был, ты не вызвал бы исключение 4.
Программист ни одной строчки кода не написал что бы выполнить это - все происходит неявно. А ты даже упустил реализацию этого кода. И это потому что у тебя под руками нет подобной к ATL библиотеки 5.
Кто тебе сказал, что функция у этого одна и что она первая? Тебе надо было найти в реестре где находится СОМ длл-ка и прочитать из нее библиотеку типов и потом уже вызывать функцию, перед этим найдя ее адрес или dispid 6, 7, 8, ...... мне было просто лень их искать, они не такие очевидные. Да и ассемблер я знаю не так хорошо как ты, что бы идеально четко представлять как нужно писать на ассемблере СОМ+ приложения В С++ есть еще шаблоны, их тоже нету не только в Асеммблере, но и в Паскале и покачто в Яве и Сшарпе. Вот такие вот дела --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||
|
|||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Sined
я на личности не переходил просто чтобы дискутировать на данную тему (которую тупо свели к ASM VS C/C++) надо иметь некую подготовку, printf("hello world") явно недостаточно будет а mov ax,bx (это в наше то 32 разрядное время ![]() пример с молотком вполне удачен но разговор не о удобстве выполнения а о совместимости в одном проекте кода на асме и С естестно если в проекте все кодят только на формочках и кнопочках про асм там и говорить нечего но если есть ктото кто рубит в асме то почему бы и нет и мысли о том что сопровождение такого проекта будет сложнее не совсем верны -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
oleg1973 |
|
||||||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Orlan
это пример обьект в нем мой собственный а не из какойто там dll какие у него функ я знаю соответственно
что ты имел ввиду?
ок упростим пример
в данном случае "создал" обьект, проще говоря получил адр структуры как у всех нормальных людей имеется инклуд типа
который заполняется при вызове DirectDrawCreate далее
вызываю SetCooperativeLevel - метод обьекта DDraw так что номер функ мне пошарабану надеюсь понятно? ну а если обьект мой собстенный , мне его создавать совсем не нада он у меня описан как структура в секции неинициализированных данных и естестно если я его придумал то уж знаю какая функ по счету мне нужна ![]() -------------------- SST 465555 icq 200-512-712 |
||||||||||||
|
|||||||||||||
DENNN |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
Я читаю и смеюсь
![]()
Вообще обидно: из-за высказываний одного человека весь топик свелся к какому-то бреду, а все спорящие уподобляются самому спорщику. |
||||||
|
|||||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
DENNN
ну так не высказывайся -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Orlan |
|
||||||||||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Программер на С++ тоже не знал. Толко он создал, а ты нет. Ему и не надо было знать этого. Вся ненужная для него (но не для ассемблеровского программера) зашита во враперах
Преобразование в Юникод. _bstr_t это С++ врапер и ты вызвать его не можеш.
Ты еще хочеш упростить итак всего 2 строчки кода??? Пример и так для С++ крайне простой. Никаких сложных алгоритмов, циклов и даже операторов перехода нет!!!
ОК. Осталось: по этой части:
Ниже этой цытаты ты привел структуру из DirectX. А ILog писал другой (пердположим) программист. И поэтому тебе самому прийдется писать ее вручну, за тебя этот С++ программер делать не будет. А в С++ за это отвечает только одна строчка кода и ты можеш юзать интерфейсы:
Теперь я надеюсь ты заметил, что то что непрофессиональный С++ программер сделал даже не задумываясь, тебе пришлося разбиратся в основах технологии СОМ и ты вообще не реализовывал уведомление об ошибках, хотя в коде, что я привел она есть. PS. Очень поражает настойчивость oleg1973. Вместо того, что бы сказать, что на Ассемблере этот текст лучше не делать - слишком затратно по времени, надо знать много, настаивает, что Ассемблер все таки здесь можно применять в реальных проектах с существенным использованием СОМ. DENNN, просьба не начинать тут флейм. Для этого есть другие разделы. Берите туда oleg1973 и пишите, что хотите. PSS. (Модератору) Тема раскололась реально на 2 части. Можно было б их разделить физически в разные темы, в 2 паралельных обсуждения? Такое в форумах часто встречается, особенно когда тема "горячая" Это сообщение отредактировал(а) Orlan - 28.7.2004, 16:29 --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||||||||||||||||
|
|||||||||||||||||||||
oleg1973 |
|
||||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Orlan
вот смотри живой пример как оно будет на асме
в данном примере тоже самое что хочеш ты не болит голова о номерах функ в обьекте и так далее тоже самое будет и с "самодельным" обьектом только вместо include 'ddraw.inc' будет к примеру include 'myobj.inc' В с/с++ тоже вроде как еще инклуды не отменили? ![]() а мануаль в лубом случае читать придется с описанием методов обьекта тут уж паралельно на с или асм писать функ DirectDrawCreate не делает нифига кроме заполнения структуры DDraw адресами,справедливо для любого другого интерфейса, но не для самописного обьекта который уже определен
в данном случае createobject нафиг не нада (ну если только для понта чтоб адрес структ возвратить) так как структура обьекта уже заполнена адресам его методов-MyFunc1-MyFunc2 и если я делаю comcall Myobj,MyFunc1 то компилятор мне автоматом подставит адрес обьекта и указатель на адр функ MyFunc1
ошибаешся могу еще как есть стандартные сишные либы в составе виндоса crtdll.dll msvcrt (на крайний случай) из них могу преспокойно вызвать все что угодно хоть printf ![]() bstr как раз относится к стандартным функ
мне не пришлось разбиратся в тонкостях СОМ, знал я это месадж с еррором написать, не проблема и по времени написание ну не чуть не больше чем на томже С -------------------- SST 465555 icq 200-512-712 |
||||||||||
|
|||||||||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
вот написал еще пример с dll в которой создается obj
и вызываются 2 его метода
все после компиляции получаем полноценную прогу таблицу импорта можно и автоматом сгенерить, это я ее нарисоват тут для ясности тестилось с fasm 1.53 в архиве исходники Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
AndyY |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 1 Всего: 4 |
читаю дискуссию и наслаждаюсь
![]() ![]() ![]() Особенно смущает comcall - используя C++, и то понятней какой код нагенерится, а тут даже не ясно это описание интерфейса или вызов его. Что будет с кодом при попытке реализации чего-нибудь содержательного, например, самобалансирующегося дерева - страшно подумать. Кстати, на мой взгляд "ручная оптимизация" на асме занятие весьма сомнительное - грамотный c-оптимизатор нагенерит несколько более быстрый код (к тому-же совершенно нечитаемый). А основная действительно важная оптимизация лежит в области алгоритмов и не имеет к языку программирования никакого отношения. Что касается поиска персонала, я думаю примерно одинаковый вред проекту могут принести как гипотетический ассемблерный гений олега, так и недоученный c++ программер орлана который пользуется врапперами и библиотеками классов не имея понятия как они работают. |
|||
|
||||
oleg1973 |
|
||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Андрюша, дебугером погляди а макросы описаны в инклудах, нормальное явление кстати
comcall обычный макрос, какой код он генерит опять же в инклуде описано, если не нравится код можно и сменить
ты не обрашал внимания как компиляторы процедуры твои компилят? погляди ради интереса
ну вот те на, пришел всех пригнул ниже плинтуса ты сам то давно на WINAPI перешел? на сайте у тебя смотрю "сильные" разработки ![]() -------------------- SST 465555 icq 200-512-712 |
||||||||
|
|||||||||
AndyY |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 1 Всего: 4 |
необходимость смотреть что-либо в дополнительных прогах - сомнительное достоинство языка. Впрочем, речь все-же не о сравнении cpp и асм, а о преимуществах и недостатках найма вместо среднего программера c++ крутого знатока ассемблера. Второй вариант сомнителен тем, что Олегу приходится попутно доказывать саму возможность разработки и поддержки кода библиотеки на асме
![]() После этого нужно еще доказать целесообразность такого подхода ![]() oleg1973 Спорить по поводу ручной оптимизации - извольте. Предлагаю вам реализовать быструю сортировку на супервручнуюоптимизированном асме, я же скромно сделаю это на c++. Заведем соответствующий тред в форуме асма или с++ и сравним результаты - скажем, посчитаем тики проца для одинаковой выборки и получим разницу во времени исполнения. Если вы согласны - извольте. Делайте тред и ссылку сюда. Кроме неуместного перехода на личности, аргументов по поводу равнозначности неграмотного с++ программера и гения асма не вижу. Скорее всего и тот и другой нагенерят код, который в лучшем случае будет работать на момент сдачи, а модифицировать его впоследствии силами остальных с++ программистов будет невозможно. |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 1 Всего: 164 |
Мдя ну и нафлеймили тут...
![]() Помойму все можно выразить двумя словами - "При работе в команде нужен не только один язык программирования но и общий стиль.. " А господин oleg1973 из упрямости пытается доказать обратное.. Все мое ИМХО, программист я неопытный но прекрасно понимаю что чтение сложного кода написанного даже на С++ вызовет некоторые неувязки не говоря уж о асме.. ЗЫ. А в шарпе шаблоны есть ![]() --------------------
|
|||
|
||||
oleg1973 |
|
||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
фраза пущенная в космос? что в вами любимом VC дебугер отменили?
а я не доказываю, я показываю то чего видимо некоторые просто не знали при некотором знании асма писать на нем не сложнее чем на С
да мы только за что ранжирить будем?
бред Добавлено @ 01:59 chipset да и не только ты, ну как вы можете судить о том в чем ,пардон не бум-бум? если человек не знает BASIC , то и он покажется ему и трудночитаемым и все такое -------------------- SST 465555 icq 200-512-712 |
||||||||
|
|||||||||
chipset |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 1 Всего: 164 |
Есть такое понятие как поддержка программы, и даже иногда срочная отладка потому как видите ли у заказчика не работает какая то функция... ![]() И чем проще будет код тем лучше, в некоторых случаях даже на вижуал васике (впрочем появилась удобная альтернатива - шарп). Добавлено @ 02:02
Ну дак проще найти человека который понимает C++ чем асмиста имхо.. --------------------
|
||||||
|
|||||||
oleg1973 |
|
||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
тестить нада перед тем как заказчику отдавать...
на васик еще проще найти или на дельфи Это сообщение отредактировал(а) oleg1973 - 29.7.2004, 02:10 -------------------- SST 465555 icq 200-512-712 |
||||
|
|||||
chipset |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 1 Всего: 164 |
Мир несовершенен.. ![]()
В этом случае человеку нужен как раз С++'ник потому как весь его штат состоит из С++ , хотя на дельфи тоже иногда требуются программеры... ![]() ![]() --------------------
|
||||||
|
|||||||
v_ez |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
мдяяя....как в одном приколе было написано :
"дорогая Лена, я б**** плачу и х***, х*** и плачу...." это же сколько вы листов здесь извели из столь простенького объявления... какой то нереальный спор про ассемблер...вообще каким боком его сюда припаяли? я же не сказал, что нужен человек на дельфях, на бэйсике или ассемблере - нужен человек на плюсах!!! хорошо, что еще виртуально пообщались, а то наверное друг друга перемочили бы ещё )) |
|||
|
||||
AndyY |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 1 Всего: 4 |
v_ez
Народ сюда больше пообщаться ходит, а не трудоустроится ![]() |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
AndyY
ну ты загнул -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 1 Всего: 164 |
Конечно.. Откуда тут программеры??? ![]() ![]() ![]() ![]() --------------------
|
||||
|
|||||
v_ez |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
![]() ![]() ![]() ![]() а holy war это клёво ))) |
|||
|
||||
Orlan |
|
||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
В С++ все создается автоматичиски - #import *.dll и все, а на ассембелре прийдется писать этот 'myobj.inc'. И описание методов на С++ читать не прийдется - разве что перед самым вызовом надо знать название метода, а какой он по порядку - все равно
А говорю о _bstr_t, а не BSTR - стандартном типе. Да, ты сомжеш вызвать эту функцию - преобразование из Анси в Юникод. Там такие есть. Но тебе надо будет ее сперва найти ![]()
СОМ ты знал не срождения (я думаю ![]()
А тебе никто не разрешал писать мессадж с еррором - тебе надо было вызвать исключение, что бы выше могли обработать. Вдруг твой код будет выполнятся на сервере. Вот кстати пример не универсальности твоей потенциальной либы - взаимодействие с пользователем на сервере. В тех двух строчках кода, что я привел в самом начале, был предусмотрен вызов исключений при ошибках в создании, переходе на интерфейс и в вызове метода. А в твоем коде уже десятки строчек и никак не обрабатываются ошибки. А что буде дальше? Если требования ужесточатся. С++ программеру прийдется просто развернуть код и дописать свое, а ты будеш просто добавлять и добавлять код десятками строчек!
Я так не думаю, 2 строчки против десятков других. Если писать не думая вообще (закрываю глаза на сложность Асма), будет дольше. И здесь еще не учтено время на отладку кода, что ты написал вместо хорошо отлаженных врапперов из С++!
Мы здесь рассматриваем реальные проекты, когда неопытный С++ программер может подойти к коллеге и спроси у него, что не ясно. С++, Ява и Паскалевские программеры ему смогут помочь. А куда идти Асемблеровскому программеру? Маловероятно, что будет хороший знаток Асемблера в проекте. PS. А не хочу сказать, что ассемблер плохой язык. На нем можно реализовать _абосолютно_ _все_ что можно сделать на С++ и подобных языках. Вопрос во сколько это обойдется. Сколько за это заплатит заказчик, сколько за это получит сам разработчик. PPS.v_ez, может вы и найдете себе программиста. Мы вам создали неплохую рекламу: единственная горячая тема и на _порядок_ больше просмотров. oleg1973 из Италии, я из Украины. Так что нас заинтерисовали только теоретические вопросы реализации проекта. --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||||||||
|
|||||||||||||
Alex101 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: 1 Всего: 10 |
Тут я согласен. Но времени это займет больше, а выигрыш в скорости работы приложения вряд ли будет существенным (разве что при работе с устройствами). Ну а что касается написания СУБД, то тут вопросы излишни... -------------------- С уважением, А. Фролов. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Orlan
все доводы тобой приведенные относятся к удобствам компилятора елементарно реализуются с помошью простых макросов кстати *.inc тоже автоматом -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
v_ez |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
Orlan - согласен, тема на удивление оказалась действительно горяча! )))
Может и найдём здесь , посмотрим...вообще то это работа отдела кадров, но эти подлецы вообще суетиться не хотят ))) |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
v_ez - респект. Свои кадры надо подбирать самому.
|
|||
|
||||
Orlan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Возможность записать код в одну строчку является большим преимуществом перед языком, который реализует тоже самое десятками строк кода. Прошли те времена, когда надо было писать на языках удобных для машин. Тепер можна писать на языках удобных для людей. И в этом помогают нам и современные удобные для разработки компиляторы. С++ удобен сам по себе. А если еще добавить профессиональные библиотеки к нему, то вообще супер выходит ![]()
И почему же до сих пор при помощи макросов и знаний в ассемблере не реализовано то, что я выразил в 2-х строчках элементарного кода, или не предложено равноценной замены? .... --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||
|
|||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
Orlan
invoke SuperLibCreateObject,libz <---создаем obj ![]() comcall libz,oleg1973 <--- вызываем первый метод 2 строки, также как и у тебя все остальное относится не к коду а к препроцессору -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Orlan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Нет. Оно относится к языку С++ - конструкторы, инициализация объекта, вызов метода и прочее. Препроцесор - это только деректива #import, которая в твоих 2-х строчках, кстати и нереализована.
Опять же, ты сильно упростил задачу. Например, нет _вообще_ обработки ошибок. Я предложил тебе сделать альтернативный код к моему, который не уступал ничем. Из этого кода можна сделать выводы: в ассемблере 1. Очень сложно делать обработку ошибок. Как я понял исключительные ситуации не предусмотрены в языке и их надо реальизовывать вручную. Программа на ассемблере должна молится на то, что бы случайно не оказалось свободного места на диске, случайно не пропала сеть - ведь она даже не скажет в чем заключалась ошибка. 2. Язык и библиотеки либо плохо документированы, либо очень слабы и не позволяют программерам легко и непринужденно реализовать стандартные операции (в данном случае преобразование Анси в Юникод) И это только получается после сравнения двух строчек на обеих языках. А что же тогда будет, если сравнивать реальные программы? ... --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||
|
|||||
oleg1973 |
|
||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
бред, в данном случае язык совсем не причем, за обработку исключений ось отвечает, есть GetLastError для этого
а это просто смех вызывает иди на intel.com там целый сайт языку и докам посвящен а насчет библиотек, так их спецально для асма и нету, так как никто не запрещает использовать все стандартные библиотеки оси -------------------- SST 465555 icq 200-512-712 |
||||
|
|||||
AndyY |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 1 Всего: 4 |
однако сортировку чисел похоже на асме реализовать затруднительно
![]() базар о скорости сортировки |
|||
|
||||
Orlan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Нет, GetLastError возвращает код последней ошибки, а саму обработку исключений с использованием этой функции должен писать программер, если он не хочет конечто что бы его постоянно вылетала - тогда операционка точно обработает ошибку, если сама не подвиснет ![]()
А другие языки активно используют и другие библиотеки (не только "библиотеки оси"), что существенно усиливает их. --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||
|
|||||
oleg1973 |
|
||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
AndyY
тыб не вякал по скорости то я тебя уделал аж в 8 раз (80 мс против 10 мс) Orlan
с умом сделаные проги как правило не глючат, почитай про SEH
тыж сам себе противоречиш, а как же глючные либы от сторонних производителей? в данном вопросе надо отделить мух от котлет к примеру если opengl то да это либа и без нее никуда а вот то что находится в math.h это какбы вовсе не либа с Math functions , и асму это не нада ну уж если совсем от нечего делать то в crtdll все это есть ну а теперь ты приведи пример либы которую с асмом нельзя будет использовать -------------------- SST 465555 icq 200-512-712 |
||||
|
|||||
AndyY |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 1 Всего: 4 |
oleg1973
1. твоя либа не работает. 2. твоя прога неправильно мерит время (см. статью про измерение времени на моем сайте). так что сравнивать нечего. во флейме наглядный пример работы ассемблер-спеца |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: -2 Всего: 34 |
AndyY
вернись во флейм родной и посматри последний скриншот и кстати GetTickCount возвращает ОБЩЕЕ кол-во тиков сделаных процом а не отдельным процессом так что считать время данным методом неразумно Это сообщение отредактировал(а) oleg1973 - 6.8.2004, 16:02 -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Orlan |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 10.6.2004 Где: Киев Репутация: 1 Всего: 1 |
Ты прав Но вопрос не в этом. Спор от том сколько усилий надо приложить для написания таких прог О сортировке. oleg1973 может взять алгоритм AndyY и дизасемблировать а потом прооптимизировать. И только поэтому oleg1973 заведомо в выиграше по скорость. Ну и что? Вы хотите потратить 1000 дол на зарплату программерам ради того что бы программа за все время эксплуатации работала на 1 минуту меньше? Ассемблер позовляет писать быстро выполняющиеся программы. И спрашивается: а это надо? Основной тормоз в программах это не процессор, а пользователь. Быстрота асемблера с легкостью компенсируется покупкой лучшего компа. А вот теперь возмем MS Word - сложный продукт, миллионы строк кода, сложная иерархия классов. И в этом случае кто будет в выиграше? Сортировка - простая операция, которую можна написать на любом структурном языке. Но миллионы строк кода уже не напишеш на нем.
SEH неудобна для С++ из за ее неуживчивости с деструкторами классов. А под Linux ты тоже будеш использовать SEH? ![]() Но это мы отклонились. Я говорил о генерации ошибок, а не их обработке. На верху можна сделать один блок обработки который будет ловить все генерируемые ошибки. Вопрос касался на счет генерации этих ошибок. В тех 2-х строчках заложено как минимум 3 генерации исключений. Если ты будеш писать на ассемблере, то тебе прийдется написать 3 сточки кода на вызов функций + 3 на их обработку. И это только в _идеальном_ случае, которых в реальных проектах не бывает. Т.е. выходит что тебе прийдется написатьв 6 раз больше кода. Как минимум. Согласно статистике (надеюсь не повторюся) в каждой сороковой строчке кода есть ошибка. И вот выходит. В твоем коде в 6 раз больше ошибок при одинаковых затратах.
Есть либы от Microsoft, Sun, Borland и др, которые хорошо протестированы и можна сказать безглючны. Существуют либы 3-х видов (в моей классификации) 1. Системные библиотеки - *.dll и *.so файлы из операционки + другие продукты 2. Статически связываемые библиотеки (например MFC static linked) 3. Библиотеки, которые не требуют статического связывания (ATL, WTL, почти полностью STL) Теперь такая ситуация с ними в Ассемблере: 1. Можна использовать. Основные сложность в синтаксисе вызова и генерации ошибок. 2. Альтернативы библиотек с высокоуровневых языков нету и поэтому используют вместо них библиотеки 1 как правило. Здесь основная сложность в том, что код просто возбухает на глазах и для добавления новой функции необходимы неимоверные усилия 3. Есть макросы, но это ничто по сравнения с шаблонными классами из STL. Макросы лишь упрощают трудоемкую работу
ATL, WTL, STL, а также MFC, VCL Для них есть альтернативы - dll из операционки, но это слишком трудоемко, подобных к этим библиотек нету. Можно конечно использовать MFC длл-файлы, но зачем изворачиватся? Зачем лишний груз на голову программера? --------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов |
||||||||
|
|||||||||
Fantasist |
|
|||
![]() Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 1 Всего: 41 |
Да что там говорить, асм совсем для других вещей предназначен.
Вот небольшой код (точнее его часть относящаяся к конструированию) для загрузки и выгрузки контейнера заполенного классами с общим предком. Реализуйте пожалуйста на асме, да так, чтобы любой программер мог с легкостью расширить библиотеку своими классами (как это сделанно с Derived).
К вопросу о расширяемости. -------------------- Волны гасят ветер... |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Обсуждение работы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |