Inochkin
Запрет на пост | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Все-таки до чего хорошо в Питере) Прямо соскучился после ханты-мансийских комаров) Даже вопли так называемой гр."Руки вверх" поздно вечером во дворе, это прямо манна небесная после вагончика посреди леса) Впрочем, закругляюсь оффтопить. По делу: DigiWhite Цитата: К сожалению COM, а уж тем более COM+ очень уж сложны. Кстати, 98 Win, основан на технологии COM, а NT используют COM+. | Совсем не понял, к чему это, тем более что неверно. Говорить о том, что ОС основана на технологии COM - полная чушь. Наверное, вы хотели сказать _поддерживает_? Но смысл этого поста все равно от меня ускользает. oSLikus Цитата: допустим в C++ мы выделили память, и два указателя ссылаются на эту область. Потом в одном месте мы удалили память (free, delete) - во втором месте что? Нет, не Exception, там грязное чтение (хотя, конечно, можно этого избежать). В C# что? Так не получится просто-напросто | Угу, действует тот же принцип, что и в COM, - подсчет ссылок. Цитата: Win98 и WinNT имеют разные ядра (удивлены?) | нисколько) Цитата: Хотите драйвер написать, тут вряд ли C# поможет (кстати, можно написать, только это не будет эффективным решением) | Ну, не скажите. Смотря какой драйвер. Ясный перец, что если драйвер устройства, которое изначально ориентировано на низкоуровневый протокол, то ничего не выйдет. Если же драйвер устройства, которое поддерживает протокол высокого уровня, то пожалуйста и сколько угодно - пишите службу Windows, пользуясь всеми фичами .NET. Я уже говорил, что мы также начинаем пробовать такое решение. Хотя пока что реального jпыта здесь нет и могут быть подводные камни. Цитата: Споры можно продолжать до бесконечности, но сейчас всё больше и больше прикладные приложения, приложения автоматизации бизнес-процессов и т.п. пишутся на высокоуровневых языках: Java и C#. | Правда ваша) Цитата: И чем мне нравится C# - люди посмотрели, что есть хорошего, что плохое, выкинули плохое (ну, если будет угодно, места, где больше всего ошибок), добавили новых фич и т.п. | Нет. Не согласен полностью. C# принципиально другой язык, общего с С++ - только синтаксис. Поясню - выше уже говорил о том, что С++ соединил в себе два несовместимых подхода: ООП, как надстройка над С, и процедурное программирование, как наследник того же С. C# - это только ООП и ничего больше. TheChampion Цитата: Цитата: На мой взгляд, самая большая проблема C++ в том, что это ну очень сложный язык. Именно поэтому в нем всего 64 ключевых слова против 100(???) в C#. | Если это утверждение, то соглашусь. Если же вопрос, то отвечу: да, именно поэтому. Согласитесь, что намного проще написать ключевое слово delegate, чем описывать указатель на функцию. Или что использование ключевого слова foreach куда проще и интуитивно понятней, чем использование итераторов в STL. Поясняю общую закономерность: многие ключевые слова в C# перекрывают сложные конструкции в C++. Цитата: Да здравствует Vista и 512 МБайт только для ОС. Быстродействие все покроет... | Тут тоже в отделе недавно зашел разговор о временах далеких) Наши гуру делились воспоминаниями. Вы знаете, что странно - у них до сих пор сохранилось стойкое отвращение к Windows, только потому, что она жрет кучу ресурсов по сравнению с ДОС, которая на дискетку влезала) Скажите, вы предпочтете развиваться, или остаться на месте с ваши подходом? NB: Ну до чего же консервативно большинство технарей) xelix Цитата: из всех .NET'ных языков конечно флагманом является C#, но и он какой-то недоделанный C++ из Java - ни туда, ни сюда | А можно уточнить конкретные направления этих "ни туда, ни сюда"? Это куда? Главный спорщик segeich) Цитата: в отличие от C#, C++ не навязывает тебе конкретный метод | Именно, а C# навязывает. Конкретно - ООП подход. А уж если вы пишете ООп-программу, то будьте любезны использовать соответствующие идеи. И если уж вам так необходим собственный деструктор, то пожалуйста, пишите его. Но вызывайте явно. А сам объект был создан в managed heap, и удаляться он будет тоже автоматически. Цитата: В COM дык вообще замучаешься с вызовом AddRef и Release См. _com_ptr_t и ему подобные. И не путай программирование на С с программированием на С++. | Тут вот тоже не уловил. В каком смысле программирование COM-объектов - это С? Цитата: А когда через некоторое время в программу будут добавлены новые типы объектов, ты что предлагаешь делать? Просматривать весь код в поисках всех тех мест, где выводится "пара отладочных окошек" и добавлять еще пару? Нет уж, увольте. Нам этого и задаром ненать | Это вы про какую программу? Про ту, что я за две минуты на сон грядущий сляпал? Ну тогда трижды ха-ха. Цитата: Продолжаешь жульничать, однако | Ни вот ни на столечко) Цитирую себя самого: Цитата: тут нужно признать, что сишарп это .NET, поэтому то, что делегат это на самом деле наследник System.MulticastDelegate придется принять. То же самое, впрочем, придется принять и в отношении предыдущего и последующего примеров. Ну что поделать, если в сишарпе все наследуется от object, никуда не денешься | И уж если STL - средство чистого С++, тогда и .NET средство чистого C#. То есть ваше требование убрать Forms также неправомерно. Впрочем, ладно. Так можно спорить долго. Я понял, что вы хотите сказать: нет такого кода в C#, который нельзя было бы реализовать на C++. Вот только цель примеров была другая. Смотрим в начало нашего с вами спора: Цитата: Цитата:C# позволяет отвлечься от реализации надоедливых, но необходимых в C++ вещей, и сосредоточиться на алгоритме работы А можно увидеть пару простых примеров (код C# vs код C++), демонстрирующих это утверждение? | Вы их увидели) Мне нет нужды дергать каждый раз STL - я пользуюсь ключевыми словами. И какая мне разница, как с ними борется компилятор? Я сосредотачиваюсь именно на том, что хочу сказать: вот это делегат, я хочу прикрутить к делегату метод и делаю это. Мне не нужно заморачиваться, поймет ли компилятор, что это указатель на функцию - член класса, а вовсе не глобальную функцию. Я знаю, что поймет. Мне не нужно придумывать извращения с целью не дать никому наследоваться от моего класса. Я пишу что этот класс sealed и все. Мне не нужно думать о глюках множественного наследования. Я описываю набор интерфейсов и наследую свой класс от них. Я не хочу постоянно держать в голове кучу инструментов, чтобы выдрать из строки число. Мне хватает одного, к которому я всегда могу обратиться простым и удобным способом. И мне не нужно постоянно помнить о том,что я сначала должен создать класс окна, потом его зарегистрировать, и только потом это окно создать. То же самое с MFC - ну не желаю я копаться в этих жутких обертках к апи. Меня устраивает стройная иерархия .NET. И уж совсем мне не нужна кипа библиотек для С++, из которых я воспользуюсь в жизни двумя-тремя. И то, только написав к ним кучу своих оберток. Вы не поверите: МНЕ ДОСТАТОЧНО ВСЕГО ОДНОГО ИНСТРУМЕНТА! ОДного, но максимально удобного. Вот и все. И я только буду всячески приветствовать идею не одного языка с кучей разных инструментов для разных платформ, а многих языков, использующих ОДИН инструмент для разных платформ. Это офигенская идея. И у микрософта есть ресурсы, чтобы её реализовать. Несмотря на то, что все это патетика, это мои мысли по этому поводу) Цитата: А кто пользуется указателями на функции в С++? Ты не путаешь С с С++? | Нет, не путаю. В С++ есть такое средство, как указатель на функцию. причем весьма кривое. Впрочем, может есть какой-то очередной костыль - замена ему? Просветите меня. Цитата: Warm_Sensor не является корректной английской фразой (т.к. содержит _) и она непонятна человеку, не владеющему английским. | Поверьте мне, разницы между Warm_Sensor и Warm Sensor не увидит даже самый тупой оператор. Ну а с точки зрения языка соглашусь - вы правы) Только из этого ничего не следует. Интеллект людей, которые работают за компьютером обычно достаточно высок, чтобы эту разницу понять. А уж эта программа вообще предназначена для квалифицированных инженеров - настройщиков. Хотя данное средство вообще-то предназначено для автоматической генерации программного кода. Цитата: Хмм... интересная фича. Ей можно воспользоваться в учебных целях, в школах например | Я бы не стал. А то привыкнут дети, ведь фиг потом отучишь писать русские идентификаторы. Цитата: Приведите конкретные примеры (а не голословные утверждения) преимуществ С# над C++ в реальных и серьезных задачах (а не поделках на 5 минут), т.е. чего такого позволит мне сделать С#, чего я не смогу (или очень сложно) сделать в С++. | Некорректно вопрос поставлен. Заведомо ясно, что нет ничего такого что можно было бы сделать в C#, и чего нельзя сделать в C++. Разница в том, КАК можно сделать две одинаковые вещи. А именно - в C# быстрее, надежнее, яснее, более читаемо и правильнее с точки зрения ООП - подхода и проектирования. TheChampion Цитата: почти для всех объектов в Стандарте C++ приведена оценка временной сложности работы. Есть ли она для C#? | Я свое время тоже искал. Найти не смог, для себя объяснил так: поскольку C# явно проигрывает в скорости исполнения кода, и микрософту невыгодно показывать эти различия, то и анализа такого в широком пользовании нет. segeich Цитата: Ведь нынче мода пошла такая - писать программы по-быстрому, раз-два и готово, а как уж они будут потом работать, спринтеров не волнует | Скорость разработки - необходимое условие выживания в бизнесе. Надежность при этом обеспечивается квалификацией программистов. Именно поэтому нет огромного спроса на студентов - разработчиков. Ни одна серьезная контора не возьмет разработчика без прохождения жесткого собеседования. Цитата: При этом они еще верят, что подобные поделки обладают более высоким качеством и надежностью. Блажен кто верует | А это так и есть) Я вам скажу, что наш QA намного чаще находит баги в C++ программах) Цитата: Ведь если в сфере офисного/домашнего ПО я еще с некоторой натяжкой могу признать доминирование Windows, то в серверном секторе это далеко не так. И нужно быть очень странным (это еще легко сказано) разработчиком, чтобы делать ставку на .NET и терять половину потенциальных покупателей (пользователей | То же самое говорил vndovr TheChampion Цитата: назовите хотя бы одну популярную программу, написанную на C#? | Давайте я вам отвечу через 30 лет) segeich Цитата: в последнее время все заказчики просто требуют: либо ваш софт работает под Unix (а у нас их тут много разных), либо мы с вами дела иметь не будем | Неужто требуют, чтобы одна программа работала и под Win и под Unix? Тогда вам бы больше Java подошла. Все-таки по сравнению с C++ разработка идет быстрее. Почему все-таки вы выбрали именно C++? perdun Тут немного выше тоже про асм вспоминали. Где-то три-четыре страницы назад)) oSLikus Цитата: А .NET создавался как средство создания приложений под Windows | Идея заключалась немного в другом: создать универсальный инструмент для многих языков и платформ. Windows просто самая распространенная ОС. DigiWhite Цитата: Да и программирвоание контроллеров часто делается на языке высокго уровня (например C ). Например компиляторы от IAR. | В данном случае это всего лишь способ ускорить и упростить разработку. Код все равно остается низкоуровневым, в том смысле, что он привязан к конкретному типу микросхемы. Мы например много бились в свое время с переводом программы, написанной на С для AT90S8535, на микросхему ATMega8535. Даже несмотря на то, что официально ATMega полностью обратно совместима с AT90, прошивки не работали. На портирование почти 8Кб прошивки ушло около двух дней. Если бы писали на еще более высоком уровне, то заморочек было бы еще больше. |