Здравствуйте, Хвост, Вы писали:
G>>ИМХО лучше вместо кривых костылей с самописными GC, "умными" указателями и прочей лабудой использовать нормальные языки. Х>"нормальные" языки дают оверхед на пустом месте, единственный высокоуровневый язык без оверхедов — С++
Очень смешно.
Здравствуйте, catBasilio, Вы писали:
VD>>Начиная со 2-й версии С++ нервно курит в сторонке. VD>>А начиная с 2006-го я вообще перешел на Nemerle до которого C# расти еще лет 10, а С++ уже никогда не дорастет.
B>Если С# так хорош, то почему всякие Crysis, Quake, FarCry и прочее на нем не пишут?
Вы еще спросили бы почему на С# драйверы не пишут.
Здравствуйте, gandjustas, Вы писали:
Х>>покажи как мне выразить такую простую абстракцию: параметр метода — как ссылка на константный объект G>Всю константность в С++ можно с успехом обмануть,
не понял к чему было про "обмануть", ето тоже самое что грить C# небезопасен потому что есть ансейф G>кроме того константность не является абстракцией
называй как хочешь, но вот то что такой нужной вещи нет в C# ето просто поразительно.
Х>>или ммм... такую "фичу" как множественное наследование G>Ага, еще скажи что виртуальный базовый класс — нереальная фича
ты начинаешь говорить как заядлый холиварщик, "етого у нас нет потому что можно обойти окольными путями"
Х>>или скажем, статический полиморфизм, слышал о таком? G>Перегрузка методов является одим из видов статического полиморфизма, она есть в C#
перегрузка методов ето скорее ad-hoc полиморфизм, и до статического полиморфизма тут как раком до пекина, а вот статический полиморфизм в с++ ето скорее похоже на утиную типизацию, и заметь ноль оверхеда.
Здравствуйте, gandjustas, Вы писали:
G>Кстати тесты по быстродействию операций выделения-освобождения памяти в с++ и .NET я приводил — C++ сливает. G>И это без умных указателей и прочей лабуды, с ними банальная вещь — работа с памятью — будет еще медленнее.
ты вообще в курсе про стек? наша песня хороша, начинай сначала? подавляющее число аллокаций в с++ происходит на стеке, заруби себе ето на носу, и там твой гц сливает аж не балуй.
Здравствуйте, gandjustas, Вы писали:
G>Если C++ так хорош, то почему на нем не пишут тысячи бизнес-систем?
потому что бизнес-логика может писатся хоть на скриптах, всем начхать на оверхед, упирается в базу обычно. То что интерфейс лагает слегка — не имеет ни для кого значения. Обсуждалось уже вроде. G>Почему самые высоконагруженные сайты написаны не на С++?
G>Из игрушек кстати Halo 3 вполне на C#.
Пруфлинк. Могу допустить что там игровая логика написана на C#, но движок — никогда.
Здравствуйте, gandjustas, Вы писали:
G>Если C++ так хорош, то почему на нем не пишут тысячи бизнес-систем?
Сам пересчитывал?
G>Почему самые высоконагруженные сайты написаны не на С++?
Все переобмерил?
P.S.: Но это всё не аргументы. По устоявшейся RSDN-овской традиции Настоящие Весомые Аргументы Против C++ должны содержать слова из такого ряда: фобия, замшелость, стереотип, мемори лик, проход по памяти, миллионы программистов, википедия, тузик, тряпка, рвать, мозг, затычка, косность. Можно даже шпаргалку составить.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Хвост, Вы писали:
VD>>Не стоит даже заикаться на счет каких-то там преимуществ С++ в области языковых возможностей и тем более абстракций. Это чушь! Х>угу, ты ето говоришь года едак с 2002-го, когда C# был настолько убог что даже твой нелюбимый С++ обходил его с головой. Х>покажи как мне выразить такую простую абстракцию: параметр метода — как ссылка на константный объект,
Это?
static void Main(string[] args)
{
const string a = "aaa";
Console.WriteLine(foo(a));
Console.ReadKey();
}
static string foo(string a)
{
return a + "bbb";
}
Х>или ммм... такую "фичу" как множественное наследование,
Множественное наследование — моветон, сродни goto. Это ХОРОШО, что его нету, иначе количество граблей, генерируемых индусами возразло бы экспоненциально.
Х>или скажем, статический полиморфизм, слышал о таком?
Он конечно же есть в .NET
Здравствуйте, Хвост, Вы писали:
G>>Кстати тесты по быстродействию операций выделения-освобождения памяти в с++ и .NET я приводил — C++ сливает. G>>И это без умных указателей и прочей лабуды, с ними банальная вещь — работа с памятью — будет еще медленнее. Х>ты вообще в курсе про стек? наша песня хороша, начинай сначала? подавляющее число аллокаций в с++ происходит на стеке, заруби себе ето на носу, и там твой гц сливает аж не балуй.
Да где сливает-то? Покажите бенчмарки, основанные на реальном (желательно production) коде.
Здравствуйте, Хвост, Вы писали:
G>>Если C++ так хорош, то почему на нем не пишут тысячи бизнес-систем? Х>потому что бизнес-логика может писатся хоть на скриптах, всем начхать на оверхед, упирается в базу обычно. То что интерфейс лагает слегка — не имеет ни для кого значения. Обсуждалось уже вроде.
Вам только кажется. Нигде ничего не лагает.
Здравствуйте, gandjustas, Вы писали: G>Почему самые высоконагруженные сайты написаны не на С++?
для сайтов легче купить несколько серверных стоек, чем заплатить программистам на С++ выше рынка, к сайтам скорее требование к масшабированию чем к производительности, хотя в гугле и в яндексе афаик ядро поиска написано на С++, наверное потому что им уже есть резон економить на серверах.
Здравствуйте, criosray, Вы писали:
Х>>или ммм... такую "фичу" как множественное наследование, C>Множественное наследование — моветон, сродни goto. Это ХОРОШО, что его нету, иначе количество граблей, генерируемых индусами возразло бы экспоненциально.
Ты уверен, что апелляция к "индусам" в этом контексте выглядит позитивно?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Хвост, Вы писали:
G>>Почему самые высоконагруженные сайты написаны не на С++? Х>для сайтов легче купить несколько серверных стоек, чем заплатить программистам на С++ выше рынка, к сайтам скорее требование к масшабированию чем к производительности, хотя в гугле и в яндексе афаик ядро поиска написано на С++, наверное потому что им уже есть резон економить на серверах.
Откуда информация? Дайте ссылку на авторитетный источник.
Здравствуйте, Геннадий Васильев, Вы писали:
Х>>>или ммм... такую "фичу" как множественное наследование, C>>Множественное наследование — моветон, сродни goto. Это ХОРОШО, что его нету, иначе количество граблей, генерируемых индусами возразло бы экспоненциально.
ГВ>Ты уверен, что апелляция к "индусам" в этом контексте выглядит позитивно?
Здравствуйте, criosray, Вы писали:
ГВ>>Ты уверен, что апелляция к "индусам" в этом контексте выглядит позитивно? C>Нет, но зато реалистично. Индусы — вездесущи. ;(
И это является проблемой множественнного наследования? ИМХО, это завихрения текущего контекста, ничего больше. В отличие от goto, который сам по себе ничуть не вреден (вредно запутывание программы хаосом из goto).
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, criosray, Вы писали:
C>Здравствуйте, Хвост, Вы писали:
Х>>покажи как мне выразить такую простую абстракцию: параметр метода — как ссылка на константный объект, C>Это? C>
int main(int argc, char* argv[])
{
string fileName = getAppDir();
fileName += "some.file";
someFunc(fileName);
}
void someFunc(const string& fileName)
{
fileName = "wow!"; // тут компилятор ругается, в C# недоступен модификатор const для параметров ф-ции/метода
// поетому оригинальная строка затрётся за милую душу. В С++ всё гуд. В C# - боль и печаль.
}
Х>>или ммм... такую "фичу" как множественное наследование, C>Множественное наследование — моветон, сродни goto. Это ХОРОШО, что его нету, иначе количество граблей, генерируемых индусами возразло бы экспоненциально.
ты как бы взгляни на библиотеки boost/wtl/atl, и покажи мне в каком месте в них множественное наследование является моветоном.
Х>>или скажем, статический полиморфизм, слышал о таком? C>Он конечно же есть в .NET
где?
Здравствуйте, criosray, Вы писали: Х>>ты вообще в курсе про стек? наша песня хороша, начинай сначала? подавляющее число аллокаций в с++ происходит на стеке, заруби себе ето на носу, и там твой гц сливает аж не балуй. C>Да где сливает-то? Покажите бенчмарки, основанные на реальном (желательно production) коде.
ээээ, даже не знаю что сказать как ты представляешь себе бенчмарки продакшн кода в плане аллокация на стеке vs аллокация c gc?
Здравствуйте, Хвост, Вы писали:
Х>Здравствуйте, gandjustas, Вы писали:
Х>>>покажи как мне выразить такую простую абстракцию: параметр метода — как ссылка на константный объект G>>Всю константность в С++ можно с успехом обмануть, Х>не понял к чему было про "обмануть", ето тоже самое что грить C# небезопасен потому что есть ансейф
ансейф надо явно писать и можно запретить его запускать.
А попробуй запретить в С++ менять константные объекты.
G>>кроме того константность не является абстракцией Х>называй как хочешь, но вот то что такой нужной вещи нет в C# ето просто поразительно.
Читать больше надо. От константности отказались как раз в силу сложности обеспечения честной константности.
Х>>>или ммм... такую "фичу" как множественное наследование G>>Ага, еще скажи что виртуальный базовый класс — нереальная фича Х>ты начинаешь говорить как заядлый холиварщик, "етого у нас нет потому что можно обойти окольными путями"
Это не надо обходить, этого надо избегать. Множественное наследование реализации является ошибкой дизайна, а множественное наследование интерфейсов и так есть в C#.
Х>>>или скажем, статический полиморфизм, слышал о таком? G>>Перегрузка методов является одим из видов статического полиморфизма, она есть в C# Х>перегрузка методов ето скорее ad-hoc полиморфизм, и до статического полиморфизма тут как раком до пекина, а вот статический полиморфизм в с++ ето скорее похоже на утиную типизацию, и заметь ноль оверхеда.
Ты путаешься в понятиях, статический полиморфизм — когда решение о вызываемом методе принимается в момент компиляции.
При наличии рантаймовой генерации кода можно получить все преимущества как статического, так и динамического полиморфизма. И утиной типизации тоже.
.NET это очень хорошо умеет.
Здравствуйте, criosray, Вы писали:
C>Здравствуйте, Хвост, Вы писали:
G>>>Почему самые высоконагруженные сайты написаны не на С++? Х>>для сайтов легче купить несколько серверных стоек, чем заплатить программистам на С++ выше рынка, к сайтам скорее требование к масшабированию чем к производительности, хотя в гугле и в яндексе афаик ядро поиска написано на С++, наверное потому что им уже есть резон економить на серверах. C>Откуда информация? Дайте ссылку на авторитетный источник.
про гугл с ходу не нашёл, а яндекс дык http://company.yandex.ru/inside/job/ раздел "Разработчики"