Здравствуйте, d Bratik, Вы писали:
DB>Это было бы смешно, если бы не было так грустно... У меня одна надежда — что MS, вылечившись сама, вылечит и других. Только вес такой фирмы может быть противопоставлен [i]снобизму программистов на С++[/i].
Здравствуйте, AlexEagle, Вы писали:
AE>Здравствуйте, d Bratik, Вы писали:
DB>>Это было бы смешно, если бы не было так грустно... У меня одна надежда — что MS, вылечившись сама, вылечит и других. Только вес такой фирмы может быть противопоставлен [i]снобизму программистов на С++[/i].
AE>так вот где корень зла...
Это точно. Диагноз ясен: синдром .NET.
Здравствуйте, retn, Вы писали: R>Тут еще в Железе один из учередителей АМД обясняет всем что такое Интел и всех несогласных кличет на рукопашную, во блин неделька.
Читал, читал... Часов эдак на N жизнь себе продлил!
Re[24]: Почему настоящие программисты избегают C++
Здравствуйте, Cyberax, Вы писали:
>> Кстати, Вы вот в Интернет на форумы ходите, а поди даже не знаете, что >> телефонные станции и спутники связи, через которые Ваш трафик идет, на >> Модуле-2 работают. И когда на самолете летите, не знает, что авионика >> тоже на Модуле-2 работает.
C>ССЫЛКИ, ССЫЛКИ, ССЫЛКИ, ССЫЛКИ! Где? Вот уж не верю я, что на C>коммерческих спутниках связи используется Модула-2. Знаю, что C>используется Ада и С, про Модулу-2 не слышал.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Хоар
Re[25]: Почему настоящие программисты избегают C++
На всякий случай добавлю, что упомянутые ребята из "Эксельсиор" и создали компилятор XDS.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Хоар
Re[27]: Почему настоящие программисты избегают C++
AVC>Нет нужды объяснять, что C++ не может обеспечить решение перечисленных выше проблем из-за критических дефектов дизайна и экстравагантной сложности.
От чего же? Хотелось бы послушать.
AVC>
В коллективах физиков даже имели место конфликты по поводу C++, и ряд специалистов не спешит переключаться на чрезмерно сложный C++, предпочитая пока оставаться с фортраном.
Ну уж если специалисты не переключаются, то куда уж нам смертным. Впрочем, можно поговорить на чем пишут программы биологи или мастера слесарного дела.
Здравствуйте, d Bratik, Вы писали:
DB>Это было бы смешно, если бы не было так грустно... У меня одна надежда — что MS, вылечившись сама, вылечит и других. Только вес такой фирмы может быть противопоставлен снобизму программистов на С++.
Вот не надо только о болезнях и лекарствах — это полнейшее ИМХО. Сумасшедшие никогда не считают себя больными, а определяет степень сумасшествия общество. В этом случае не в Вашу пользу.
Отказаться сегодня от С++ — значит отказаться от огромной базы исходников (в том числе и открытых). Опять же, весь разговор проходит на ЯВУ и из предположения что продукт должен работать сносно. Вполне возможны ситуации, когда вашему приложению мешают работать нормалльно: переполняют все, что только можно, инжектируют всякие гадости. И вы предлагаете пересаживаться на неизвестную технологию только ради "концепции Вирта"?
Непривязанное к форме вечно.
Re[28]: Почему настоящие программисты избегают C++
Здравствуйте, 4ertus2, Вы писали:
4>Здравствуйте, AVC, Вы писали:
AVC>>
AVC>>Нет нужды объяснять, что C++ не может обеспечить решение перечисленных выше проблем из-за критических дефектов дизайна и экстравагантной сложности.
4>От чего же? Хотелось бы послушать.
Вы, наверное, в первый раз заглянули на форум?
"Тяжелые бои" между "оберонщиками" и "Си++никами" шли долго и уже окончились.
Как следствие, лично я стал писать не только на Си++, но и на Обероне.
Но каждый, конечно, делает выводы сам.
Вот мнение астрономов, авторов книги "Астрономия на персональном компьютере":
Здесь надо сказать, что по сравнению с другими языками C++ имеет много недостатков, которые затрудняют разработку сложных научных программ. В частности, у него слабая поддержка одномерных и многомерных массивов, нет локальных процедур, неудачная концепция модуля, не поддерживается проверка индексов массивов, а также выполняется неконтролируемое преобразование типов.
AVC>>
4>В коллективах физиков даже имели место конфликты по поводу C++, и ряд специалистов не спешит переключаться на чрезмерно сложный C++, предпочитая пока оставаться с фортраном.
4>Ну уж если специалисты не переключаются, то куда уж нам смертным. Впрочем, можно поговорить на чем пишут программы биологи или мастера слесарного дела.
Наверное, это была попытка пошутить?
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Хоар
Re[29]: Почему настоящие программисты избегают C++
Здравствуйте, 4ertus2, Вы писали:
4>Здравствуйте, d Bratik, Вы писали:
DB>>Это было бы смешно, если бы не было так грустно... У меня одна надежда — что MS, вылечившись сама, вылечит и других. Только вес такой фирмы может быть противопоставлен снобизму программистов на С++.
4>Вот не надо только о болезнях и лекарствах — это полнейшее ИМХО. Сумасшедшие никогда не считают себя больными, а определяет степень сумасшествия общество. В этом случае не в Вашу пользу.
То, что большинство (конечно, не все) программистов на Си++ — "снобы", это правда.
Я общаюсь практически только с Си++никами (т.к. сам пишу на Си++), так что могу это подтвердить, исходя из опыта.
4>Отказаться сегодня от С++ — значит отказаться от огромной базы исходников (в том числе и открытых). Опять же, весь разговор проходит на ЯВУ и из предположения что продукт должен работать сносно. Вполне возможны ситуации, когда вашему приложению мешают работать нормалльно: переполняют все, что только можно, инжектируют всякие гадости. И вы предлагаете пересаживаться на неизвестную технологию только ради "концепции Вирта"?
Как раз "концепция Вирта" и позволяет бороться с такими "гадостями".
Хотя никакой отдельной "концепции Вирта", ИМХО, не существует.
А существует старая добрая школа структурного программирования (Дейкстра, Хоар, Вирт и т.д.)
Что же касается "отказа от базы исходников", то это старый и сомнительный аргумент.
Например, у меня коды на Си++ и Обероне работают совместно и даже дружно.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Хоар
Re[30]: Почему настоящие программисты избегают C++
Здравствуйте, 4ertus2, Вы писали:
AVC>>Наверное, это была попытка пошутить? 4>Какие уж тут шутки, когда такая тема обсуждается!
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
4>>Отказаться сегодня от С++ — значит отказаться от огромной базы исходников (в том числе и открытых). Опять же, весь разговор проходит на ЯВУ и из предположения что продукт должен работать сносно. Вполне возможны ситуации, когда вашему приложению мешают работать нормалльно: переполняют все, что только можно, инжектируют всякие гадости. И вы предлагаете пересаживаться на неизвестную технологию только ради "концепции Вирта"? AVC>Как раз "концепция Вирта" и позволяет бороться с такими "гадостями". AVC>Хотя никакой отдельной "концепции Вирта", ИМХО, не существует. AVC>А существует старая добрая школа структурного программирования (Дейкстра, Хоар, Вирт и т.д.) AVC>Что же касается "отказа от базы исходников", то это старый и сомнительный аргумент. AVC>Например, у меня коды на Си++ и Обероне работают совместно и даже дружно.
Вот Microsoft не боится "начать с чистого листа".
Читаю интервью Хейлсберга (автора Турбо Паскаля и C#):
Хейлсберг: Во-первых с С# у нас была возможность начать все с чистого листа. У нас не было обязательств обратной совместимости, и это действительно сильно упрощало ситуацию. Даже не с точки зрения реализации, а с точки зрения использования. Например, мы имеем один вид классов в C#, и он может подвергаться сборке мусора. С++, напротив, имеет два, так как он придерживается стиля отсутствия сборки мусора. Так C# имеет несколько простых концепций которые вы понимаете.
Я уж было обрадовался.
Однако, в этом же интервью Хейлсберг говорит:
Одно из ключевых отличий С# от других языков, в частности Java, в том, что мы пытались как можно больше приблизиться к C++. C# наследует большинство операторов, ключевых слов и выражений напрямую из С++.
Вот и пойми их загадочные неславянские души...
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Немного дополню свой ответ.
4>>Отказаться сегодня от С++ — значит отказаться от огромной базы исходников (в том числе и открытых). Опять же, весь разговор проходит на ЯВУ и из предположения что продукт должен работать сносно. Вполне возможны ситуации, когда вашему приложению мешают работать нормалльно: переполняют все, что только можно, инжектируют всякие гадости. И вы предлагаете пересаживаться на неизвестную технологию только ради "концепции Вирта"? AVC>Как раз "концепция Вирта" и позволяет бороться с такими "гадостями". AVC>Хотя никакой отдельной "концепции Вирта", ИМХО, не существует. AVC>А существует старая добрая школа структурного программирования (Дейкстра, Хоар, Вирт и т.д.) AVC>Что же касается "отказа от базы исходников", то это старый и сомнительный аргумент. AVC>Например, у меня коды на Си++ и Обероне работают совместно и даже дружно.
Вопрос: Что мешает Майкрософт компилировать Windows XP с включенной опцией контроля выхода за границы массивов? Ответ: Неадкватность языков и компиляторов, использованных в написании операционной системы (C и C++).
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Вопрос: Что мешает Майкрософт компилировать Windows XP с включенной опцией контроля выхода за границы массивов?
AVC>Ответ: Неадкватность языков и компиляторов, использованных в написании операционной системы (C и C++).
Плохому танцору... Кстати интересно, неужели в MS не нашлось ни одного человека, знаюцего про Оберон? Сомневаюсь... Видать показался еще более "неадекватным".
Одно из ключевых отличий С# от других языков, в частности Java, в том, что мы пытались как можно больше приблизиться к C++. C# наследует большинство операторов, ключевых слов и выражений напрямую из С++.
Вот и пойми их загадочные неславянские души...
Имеется ввиду такие фичи как перегрузка операторов, адресная арифметика в унсэйв режиме, аналог вариантной записи через аттрибуты FieldOffset, введение дженериков. Если первые три фичи используются редко, то дженерики появились и в Яве.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Вопрос: Что мешает Майкрософт компилировать Windows XP с включенной опцией контроля выхода за границы массивов?
AVC>>Ответ: Неадкватность языков и компиляторов, использованных в написании операционной системы (C и C++).
P>Плохому танцору... Кстати интересно, неужели в MS не нашлось ни одного человека, знаюцего про Оберон? Сомневаюсь... Видать показался еще более "неадекватным".
Угу. Показался настолько неадекватным, что Microsoft начала настоящую "охоту" на "оберонщиков".
Для разработки платформы .NET в Microsoft был привлечен Шиперски (соучредитель Oberon Microsystems).
Были наняты несколько сотрудников XDS (все-таки компилятор их "зацепил". ).
Среди представленных летом 2000г. 12 компиляторов для .NET было 2 Оберона: Oberon-2 и Component Pascal. (Поговаривают, что только они и работали без ошибок. )
Microsoft спонсирует проект Zonnon для .NET (развитие Active Oberon).
Вот настолько "неадекватным" показался Оберон Майкрософту.
Что же касается "плохих танцоров"...
Уже говорилось, что программисты на Си++ — снобы и зазнайки.
Разве неверно говорилось?
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Ничего. Собственно, в WinXP SP2 так и сделали.
> *Ответ:* Неадкватность языков и компиляторов, использованных в > написании операционной системы (C и C++).
Ответ неверный. Мешает неполная совместимость получившегося бинарного API.
Сообщениями о таких атаках пестрят новостные ленты компьютерного мира. Например, вспомним одну поучительную историю. В августе 2001 г. вице-президент Майкрософт Джим Олчин (Jim Allchin) объявил во время доклада на открытии конференции Intel Developers Forum в Сан Хосе, что в новой операционной системе Windows XP все возможные проблемы из разряда переполнение буфера были устранены посредством специального анализа исходных текстов на предмет безопасности (security audit). Но в декабре того же года была найдена "дыра" в одной из программ в составе Windows XP (в программах поддержки стандарта подключения внешних устройств Universal Plug and Play) — причем дыра оказалась именно из категории переполнение буфера.
>> *Ответ:* Неадкватность языков и компиляторов, использованных в >> написании операционной системы (C и C++).
C>Ответ неверный. Мешает неполная совместимость получившегося бинарного API.
Можно поконкретней?
Что с чем несовместимо?
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Я без сомнения чайник и, как мне тут объяснили, сноб (что бы это слово значило), а еще я хочу сказать одну глупость. Так вот, "ненастоящие программисты" пишут на С-подобных языках потому что
{
что-то_внутри
}
более понятная струкрура для мозга "ненастоящего программиста" чем
begin
что-то_между_началом_и_концом
end
особенно когда начал и концов много и они меджу другим началами и концами.
Язык программирования — это прежде всего язык общения, а уже потом технология. С-подобный синтаксис — лучший придуманняй на данный момент (или это тоже спорный вопрос?). Поддержка любого другого синтаксиса — маркетинговая необходимость всем понятно каких фирм.
Непривязанное к форме вечно.
Re[10]: Почему настоящие программисты избегают C++
Здравствуйте, nixite, Вы писали:
N>положим захотелось нам искать среднее двух чисел и написали мы функцию: N>int kaka (int a, int b){return (a+b)/2;}
N>и всё вроде тип-топ, но вот тут сунули нам два числа (вполне корректных):
N>int a = 2113929216; N>int b = 2113929210;
N>и что? а какое решение-то простое есть? ассемблер в три команды не предлогать, всё на с++ N>p.s. я решение знаю, но не сказал бы что оно простое
int kaka (int a, int b) {
return b + (a-b)/2;
}
Чем так сложно-то?
Только теперь это не для всех signed int'ов будет работать
Если серьёзно, то отсутствие проверок на переполнение или написания заведомо безопасного кода, который понадобится только в редких случаях очень больших чисел — это обычная дилемма выбора между временем (и разработки и выполнения) и качеством.
В конце-концов, если у программиста не хватило ума/времени усмотреть опасность в "return (a+b)/2;", то вряд ли он предусмотрит корректную обработку OverflowException