грите шарп это просто?
а вот например обращение к сдрому, чтение геометрии, кроме конечно вми и апи, есть примеры?
а вот например обращение к сдрому, чтение геометрии, кроме конечно вми и апи, есть примеры?
if(Param is A)MessageBox.Show("Parameter is A type");
if(Param is B)MessageBox.Show("Parameter is B type");
В С++ то же самое пришлось бы делать ловлей исключений при приведении типов,
А как же Kylix???
Я всегда считал, что "смена" - это когда что-то заканчивается, а на его место приходит что-то другое. Потому и попросил привести пример технологии, разработанной Microsoft, которая "кончилась" и канула в лету.
Только лишний раз убеждаюсь в консервативности технарей)
Что-то я не уловил его мнения. Насколько я понял, он просто отказался его высказывать и предупредил, чтобы его не пытались переубеждать. Я не прав? Ну тогда прошу объяснить мне глубинный смысл этих слов.
If you want to write exclusively for the .Net platform, C# isn't the worst alternative, but remember that C++ is a strongly supported - though less strongly hyped - alternative on that platform.
ну вообще-то rtti никто не отменял
simplexe, для системных вещей можно пользоваться DllExport'ом: использование функций API из C#. Причём всё managed
то же самое на c++, естессно, с использованием только винапи
Перспективность необходимо оценивать для какого-либо конкретного направления..., т.е. C# скороее всего будет основным под новую версию Windows. ИМХО сыроват еще, (версию 2.0 я не видел еще). Однако, C++ еще ой как нескоро отомрет (если отомрет вообще). В некоторой степени на каждом языке основана какя-то технология (или наоборот). Например на основе C++ COM (DCOM), которые в освоении по моему достаточно сложны. C# как раз разраболтан под .NET. Насчет ассемблера... ну если писать только микрокоды. А так по словам людей работающих с программированием контроллеров на чистом асме уже врядли кто-то пишет. Есть же среды, которые например используют язык высокого уровня (с некоторыми расширениями), например С, и потом транслируют программу на ассемблер целевой машины.
Впрочем, если вы знаете более изящные решения на С++, то буду благодарен)
Что есть автоматическое распределение памяти? Если имеется ввиду освобождение памяти, то оно и С++ есть.
Код:
auto_ptr<T> p1(new T);
Можно и в С++ реализовать сборщик мусора, но ИМХО, это достаточно не простая задача.
Потому и попросил привести пример технологии, разработанной Microsoft, которая "кончилась" и канула в лету.
То-есть С стал стандартом. А для каждого специфического направления, для решения опеделенного типа задач существуют его адаптированніе модификации.
Отсюда все трудности с компоновкой приложений DirectX на компиляторах покойного ныне Borland'а.
Уж новички шаблонами точно не скоро начинают пользоваться.
Ни одного серьёзного. Так уж получилось, что пришлось переходить от родного и любимого мне nix программирования в win программирования. Естественно пришлось прочитать книжонку по шарпу, благо после жабы и С++ он дался без особого гимора. Честно говоря, не нравится он мне, шарп - это зло, имхо, Не хочу ни кого обидеть своим, возможно, слишком радикальным высказыванием, но, имхо, шарп - язык для домохозяек. На нём НЕ интересно программировать.
На мой взгляд, самая большая проблема C++ в том, что это ну очень сложный язык.
C# - люди посмотрели, что есть хорошего, что плохое, выкинули плохое
Сборщик мусора в C# - это его неотъемлимая часть.
Использование шаблонов - это тема не для новичков.
В COM дык вообще замучаешься с вызовом AddRef и Release
Можно и в С++ реализовать сборщик мусора, но ИМХО, это достаточно непростая задача.
Скажите, если вам понадобится вывести пару отладочных окошек, вы действительно будете создавать "несколько процедур через полиморфизм"?
Итак, вводим ограничение: только чистый язык, никаких библиотек, оберток и шаблонов.
Только средства языка!
поэтому прошу вас быть объективным: либо пользоваться в примерах STL и не придираться к использованию .NET в моих примерах, либо привести примеры в соответствие с ограничением 1, которое я привел выше
Надеюсь вы признаете факт, что указатели на функции куда менее соответствуют принципам ООП, чем делегаты.
Ну а по поводу третьего примера, я вам расскажу где эту штуку применил: есть некий комбобокс, в который нужно вывести названия неких устройств. В зависимости от выбора пользователя меняется логика работы программы.
Кстати, уж не знаю, баг это или фича, но компилятор в VS2003 принимает и русские идентификаторы
Ну и по поводу автоматического распределения памяти. Если вас не устраивает термин, то я буду пользоваться любым, какой вы предложите. Хотя бы и "освобождение".
- в C++ любое число можно привести к указателю и вуаля. Буквально вчера сел за изучение WinAPI, смотрю как нарисовать белый фон - необходимо указать параметр типа HBRUSH (который является на самом деле HANDLE, который в свою очередь является typedef void *), так вот в примере делается (HBRUSH)COLOR_WINDOW (#define число какое-то). Застрелиться Нет, естественно это работает. Только представьте себе отладку подобного бага...
- допустим в C++ мы выделили память, и два указателя ссылаются на эту область.
А раз так, то давайте делать более качественное ПО за меньшие деньги.
STL такая же неотъемлимая часть C++, как и сборщик мусора в C#. Только в отличие от C#, C++ не навязывает тебе конкретный метод. Тебе надо авто сборку мусора? - пожалуйте, auto_ptr и иже с ним помогут. Что, не надо авто сборки?, нужно что-то другое? - и это пожалуйте.
См. _com_ptr_t и ему подобные.
И не путай программирование на С с программированием на С++.
Никаких библиотек говоришь? ОК, пойди тогда в свойства проекта С# и поставь там:
Do not use Mscorlib = True
Никаких шаблонов и STL? Хмм, вообще-то это средство "чистого языка" С++. Можно я тогда запрещу тебе использовать try/catch в С#, а лучше int.Parse, во!
А кто пользуется указателями на функции в С++? Ты не путаешь С с С++?
Где ты тут С++ разглядел? WinAPI - это С, а вовсе не С++.
Вопрос к людям, пропагандирующим С# и называющим его самым перспективным:
Приведите конкретные примеры (а не голословные утверждения) преимуществ С# над C++ в реальных и серьезных задачах (а не поделках на 5 минут), т.е. чего такого позволит мне сделать С#, чего я не смогу (или очень сложно) сделать в С++.
За что мы платим производительностью... но важной ли, что список будет показываться не 100 миллисекунд, а 500, если приложение будет написано быстрее на дцать дней/месяцев?
Есть ли она для C#?
Хотите, хоть всю STL на C# с нуля напишите.
А сборщик мусора - это часть архитектуры .NET, а не возможности языка.
первый же раздел называется "COM как улучшенный C++". Я чего-то не понимаю, где я что напутал...
А вы тогда не используйте никаких заголовочных файлов вместе с библиотеками. Ок? Никаких stdio.h и прочих. Глупо, правда ведь?
Вроде бы никто не мешает использовать укзатели на функции в C++, если это удобно.
Т.е. если не используется ООП подход, то это уже не С++, даже если мы, например,
внутри функций используем STL?
Какой смысл _востребованному_ специалисту переквалифицироваться?
Вроде бы никто не мешает выходить из дома через окно, если это удобно. Вот только станут ли разумные люди так поступать?
В С++ много возможностей, унаследованных от С. И существуют они в языке вовсе не для того, чтобы ими пользоваться, а для совместимости с тоннами кода, написанного за долгие годы на С.
Зачем мне это? Да и, боюсь, слабоват C# окажется для такого.
Возможности STL перекрываются .NET Framework
Еще вопрос: назовите хотя бы одну популярную программу, написанную на C#? Windows, ясен пень, написан на C/C++. Unix --- C/C++ без вопросов. Oracle --- C/C++ + Java. Меня убеждали, что Ил-2 Штурмовик написан на Java, но проблема в том, что JRE не требуется для его работы, файлов *.class я не обнаружил, зато в log-файле обнаружил строчку вида "произошло исключение в модуле xxxxx.cpp". Может быть, конечно, Олег Мэдокс такой приколист, что помещает Жаба-код в файлы .cpp, не знаю. Еще возьмем Battlefield 2. Графика --- C/C++, логика --- C/C++ + Python (!!!) Сам .NET Framework и C# написан на C/C++ --- умные люди сказали, что JVM написана на Java пополам с C --- почему вдруг C# составляет исключение? Да и не будут в MS переписывать код MSVS, дыр и без того хватает.
Еще я могу упомянуть Firefox, которым сейчас пользуюсь. TeX и OpenOffice. Ни одна из этих программ не написана на C#. Вам не кажется, что слухи о смерти льва оказались несколько преувеличины?
Вряд ли. Ведь нынче мода пошла такая - писать программы по-быстрому, раз-два и готово, а как уж они будут потом работать, спринтеров не волнует. Это, по их мнению, проблемы пользователя - пусть upgrade делает, если не доволен.
Зато какая выгода, по их мнению, - можно набрать посредственных разработчиков, быстренько обучить их языку (особо стараться не надо, ведь среда за них все сама сделает, и от ошибок убережет, и кучу кода нагенерит и т.п.) и усё, можно в короткие сроки начать штамповать шедевры и сэкономить кучу средств.
При этом они еще верят, что подобные поделки обладают более высоким качеством и надежностью. Блажен кто верует...
Это называется метафора
Что касается разработки Web сервисов, сайтов и тому подобных вещей, предполагающих написание серверных компонентов, то тут, я думаю, спорить никто не будет... - .NET в ее нынешнем виде абсолютно не подходит для этих целей, пусть даже на ней и очень легко писать такой софт
Страницы: 1234567891011121314151617181920212223
Предыдущая тема: Подскажите сайт о написании компьютерных игр.