грите шарп это просто?
а вот например обращение к сдрому, чтение геометрии, кроме конечно вми и апи, есть примеры?
а вот например обращение к сдрому, чтение геометрии, кроме конечно вми и апи, есть примеры?
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, которая "кончилась" и канула в лету.
.
. IMHO Visual FoxPro - ближайший претендент на нирвану ). Потому примером может выступать только немногое, чей прототип тоже канул в Лету. То-есть С стал стандартом. А для каждого специфического направления, для решения опеделенного типа задач существуют его адаптированніе модификации.
Отсюда все трудности с компоновкой приложений DirectX на компиляторах покойного ныне Borland'а.
Уж новички шаблонами точно не скоро начинают пользоваться.
Ни одного серьёзного. Так уж получилось, что пришлось переходить от родного и любимого мне nix программирования в win программирования. Естественно пришлось прочитать книжонку по шарпу, благо после жабы и С++ он дался без особого гимора. Честно говоря, не нравится он мне, шарп - это зло, имхо, Не хочу ни кого обидеть своим, возможно, слишком радикальным высказыванием, но, имхо, шарп - язык для домохозяек. На нём НЕ интересно программировать.
Нет, естественно это работает. Только представьте себе отладку подобного бага...
). Но вот C++ я сторонюсь - за долгие года из него сделали настоящего монстра. И чем мне нравится C# - люди посмотрели, что есть хорошего, что плохое, выкинули плохое (ну, если будет угодно, места, где больше всего ошибок), добавили новых фич и т.п.. В итоге мы получили стройный, красивый язык. И Java мне нравится, хотя, в виду длительного развития она обросла монстроватостью 
На мой взгляд, самая большая проблема C++ в том, что это ну очень сложный язык.
C# - люди посмотрели, что есть хорошего, что плохое, выкинули плохое
Сборщик мусора в C# - это его неотъемлимая часть.
Использование шаблонов - это тема не для новичков.
Такие базовые вещи, как cin, cout, vector и т.п. - тоже шаблоны, и вроде бы это никак не мешало огромному числу людей изучать С++. В 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, во!
Никаких stdio.h и прочих. Глупо, правда ведь?
А кто пользуется указателями на функции в С++? Ты не путаешь С с С++?
) как указатель на на члены. Даже если пришли эти указатели из С.
Где ты тут С++ разглядел? WinAPI - это С, а вовсе не С++.
Вопрос к людям, пропагандирующим С# и называющим его самым перспективным:
Приведите конкретные примеры (а не голословные утверждения) преимуществ С# над C++ в реальных и серьезных задачах (а не поделках на 5 минут), т.е. чего такого позволит мне сделать С#, чего я не смогу (или очень сложно) сделать в С++.
, т.к., как уже говорилось, C# молодой. Только только вышла 2.0 версися, которую мало кто еще видел в глаза. Москва не сразу строилась. Вероятно по этому, например я, не могу привести никаких примеров больших проектов. Вохможно, что большая часть их является Web сервисами, основаными на технологии .NET Remoting. Кстати, Web сервис просто написать на C++?
). По сети передаётся с каждым заданием 50-100 лишних байт. Кстати говоря, время выполнения программы на C++ 1400 секунд (если Intel Compiler, то 1050 секунд), а на C# 2300.
Писать приложения на C# с помощью .NET Framework _удобнее_. Точно так же и с Java - на ней удобнее написать кросс-платформенно приложение: если оно написано целиком на Java и использует только java-компоненты, то оно будет работать везде и будет выглядеть везде одинаково
За что мы платим производительностью... но важной ли, что список будет показываться не 100 миллисекунд, а 500, если приложение будет написано быстрее на дцать дней/месяцев?За что мы платим производительностью... но важной ли, что список будет показываться не 100 миллисекунд, а 500, если приложение будет написано быстрее на дцать дней/месяцев?
Я не отрицаю этого. Я не говорю, что фирме N разработка продукта S на C# будет стоить меньших денег, чем разработка на C++. Но время будет сэкономлено. Есть ли она для C#?
Хотите, хоть всю STL на C# с нуля напишите.
А сборщик мусора - это часть архитектуры .NET, а не возможности языка.
первый же раздел называется "COM как улучшенный C++". Я чего-то не понимаю, где я что напутал...
А вы тогда не используйте никаких заголовочных файлов вместе с библиотеками. Ок? Никаких stdio.h и прочих. Глупо, правда ведь?
Вроде бы никто не мешает использовать укзатели на функции в C++, если это удобно.
Т.е. если не используется ООП подход, то это уже не С++, даже если мы, например,
внутри функций используем STL?
Какой смысл _востребованному_ специалисту переквалифицироваться?
- .NET в ее нынешнем виде абсолютно не подходит для этих целей, пусть даже на ней и очень легко писать такой софт. Вроде бы никто не мешает выходить из дома через окно, если это удобно. Вот только станут ли разумные люди так поступать?
В С++ много возможностей, унаследованных от С. И существуют они в языке вовсе не для того, чтобы ими пользоваться, а для совместимости с тоннами кода, написанного за долгие годы на С.
Зачем мне это? Да и, боюсь, слабоват 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 делает, если не доволен.
Зато какая выгода, по их мнению, - можно набрать посредственных разработчиков, быстренько обучить их языку (особо стараться не надо, ведь среда за них все сама сделает, и от ошибок убережет, и кучу кода нагенерит и т.п.) и усё, можно в короткие сроки начать штамповать шедевры и сэкономить кучу средств.
При этом они еще верят, что подобные поделки обладают более высоким качеством и надежностью. Блажен кто верует...
, по крайней мере от синтаксических. От логических уберечь может только ваша собственная голова и хорошее проектирование. Быстренько научить их языку. Ну да. С++ на простом уровне осваиваивается за неделю или даже быстрее (Если имеется опыт программирования на дургих языках и очень надо). Но только на простом уровне. Тонкости придется постигать, пожалуй, годами. Написав не одну тонну кода. Как и C#. А без проектирования, как ни крути, ничего хорошего не напишешь. Ни на каком языке. Мдя, сужя по словам получается, что самые лучшие, это те кто пишет на С++. Это вообще, что же думают о людях, которые с Lisp работают... Это называется метафора
Что касается разработки Web сервисов, сайтов и тому подобных вещей, предполагающих написание серверных компонентов, то тут, я думаю, спорить никто не будет... - .NET в ее нынешнем виде абсолютно не подходит для этих целей, пусть даже на ней и очень легко писать такой софт
Страницы: 1234567891011121314151617181920212223
Предыдущая тема: Подскажите сайт о написании компьютерных игр.