C+ vs C#
От: alexeiz  
Дата: 09.02.06 11:41
Оценка: 112 (10) +10 -2
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Cyberax, Вы писали:


>>> C# писать проще чем на С++?

C>>Нужно. И еще нужно обосновать почему софт должен писаться на С#.
WH>Ну можно еще и на немерле...
WH>В любом случае чем выше уровень языка и чем меньше возможностей там накосячить тем лучше.
WH>А в С++ очень много возможностей накосячить. Даже не смотря на то что я знаю С++ лучше чем подавляющие большинство читающих я не стану писать на нем программу если можно взять C# ибо это непростительное расточительство средств.

У меня всё наоборот. В последние несколько лет C++ открылся для меня как исключительно мощное средство для быстрого создания программ. Всё дело в правильных абстракциях. Найдя эти правильные абстракции в C++, я понял, что более удобного средства пока нет. Странно, C# я даже и не рассматриваю, как альтернативу. Не укладывается у меня мышление в модель C#-па. Она меня сильно ограничивает. Вот о месте C++/CLI я некоторое время подумывал. Но его объектная модель для меня оказалась запутанной. С точки зрения C++ идиом непонятно, с какой стороны модель C++/CLI к ним подходит. Поэтому сравнивая C++ с .NET языком (который обычно C++/CLI) я всегда задаюсь вопросом: а что такого привлекательного есть в этом языке, что заставит меня разобраться в его объектной модели и перевесит моё желание использовать идиомы C++?

И в любом случае уровень языка C++ не меньше чем у C#. Главное опять же выбор абстракций.

Если кто подумал, что я C# никогда не использовал, это не так. 3 года высоко оплаченного труда. Никаких великих успехов продуктивности не замечено.

Основная ошибка людей программирующих на C++ — это автоматический выбор низкоуровневых абстракций. Так или иначе такой выбор превращает язык в подобие C. Глядя на код C++ очень легко понять на каком языке он действительно написан (на каком языке думает его создатель). Как недавно отлично выразился Francis Glassborow:

We know that C and C++ are different languages (well some of us
understand that) because even when source code will compile as either,
the idioms are different. Any experienced programmer in C and C++ can
look at code and identify the language in which the programmer is
thinking even if the code requires a C++ compiler. That is what makes
them different languages, they have a different look and feel.


Страуструп о таком выборе низкоуровневых абстракций говорил: If that's C++ I don't like it either.

Кстати люди, которые мыслят на C, даже на C# программируют как на C. Мне такое предоставилось наблюдать. На мой вопрос, почему было решено выбрать C#, я получил типичный ответ о продуктивности. Хм, какая может быть продуктивность, когда в программе половина функций была объявлена как unsafe? Файлы не закрывались при исключениях, и т.п.

11.02.06 22:30: Ветка выделена из темы Еще раз об управляемых ОС
Автор: WolfHound
Дата: 02.02.06
— WolfHound
13.02.06 14:25: Перенесено модератором из 'Философия программирования' — WolfHound
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.