V>Только есть один маленький нюанс: компилятор С/С++ можно написать на самом С/С++, а вот реализовать .NET framework на C# невозможно даже теоретически.
А это почему ?
V>много областей, в которых С/С++ незаменимы
например ? мне кажется что С# может заменить С/С++ или это просто кажется ? =)
V>Короче говоря, все очень неоднозначно...
согласен =)
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Re: С++ и .NET
От:
Аноним
Дата:
09.10.04 14:35
Оценка:
нахрен выпускают книги по c++ если в скором времени подавляющее большинство софта на C# и java писаться будет? и мне как новичку забыть о с++ и начать сразу с C#?
Здравствуйте, prVovik, Вы писали:
V>Только есть один маленький нюанс: компилятор С/С++ можно написать на самом С/С++, а вот реализовать .NET framework на C# невозможно даже теоретически. У C# и сейчас существует серьезный конкурент в лице Java и неизвестно, что еще Microsoft придумает в будущем. С другой стороны, есть достаточно моного областей, в которых С/С++ незаменимы и конкурентов у них не видно даже на горизонте и даже с высокого места. В связи с этим, я абсолютно не удивлюсь, С# умрет раньше, чем С/С++...
V>Короче говоря, все очень неоднозначно...
Да-да. Давно не флэймили по поводу C# vs. С++.
Ну, давай выкладывай список областей где С++ вне конкуренции и где вообще не приминим C#.
Моя версия — такая область одна — это создание низкоуровневого кода вроде ОС, драйверов и виртуальных машин.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, <Аноним>, Вы писали:
А>нахрен выпускают книги по c++ если в скором времени подавляющее большинство софта на C# и java писаться будет? и мне как новичку забыть о с++ и начать сразу с C#?
Ну, как новичку я бы точно советовал начать с Шарпа. С++ тоже полезен, но лучше не извращать чувство прекрасного "с молодости". Шарп концептуально намного более чист. И для восприятия он очень хорош.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали: VD>Ну, давай выкладывай список областей где С++ вне конкуренции и где вообще не приминим C#. VD>Моя версия — такая область одна — это создание низкоуровневого кода вроде ОС, драйверов и виртуальных машин.
С чем пришлось с толкнуться, или с чем собираюсь:
1. Воспроизведение звука, когда точность контроля позиции воспроизведения нужна повыше, чем позволяет ДиректИкс (хотя конечно, если голова есть то можно декодер и на шарпе написать, но сам не могу и ни одного ещё не видел)
2. Есть МФЦ\МДИ приложение, в котором у МДИ-фрейма два клиента, и дочерние окна открываются либо в одном, либо в другом, в зависимости от их вида, например. Догадываюсь, что с таким "чудой-юдой" мало кто знаком, но удобная вещь. У меня на шарпе подобное до конца не получилось... может и сам виноват.
Здравствуйте, VladD2, Вы писали:
VD>Да-да. Давно не флэймили по поводу C# vs. С++.
Дак яж говорил о другом! Я говорил, что С++ живее всех живых и помирать у него даже в отдаленных планах нет. Это, кстати, НЕ на тему "C# vs C++"!
VD>Ну, давай выкладывай список областей где С++ вне конкуренции и где вообще не приминим C#.
Ну, как минимум, написание фреймворков
VD>Моя версия — такая область одна — это создание низкоуровневого кода вроде ОС, драйверов и виртуальных машин.
Ну вот ты и сам все знаешь
А еще напомню, что помимо майкрософтовских осей существуют и другие. Вот на них полноценное пришествие .NET'а ИМХО невозможно. И никакие роторы, моны и дотгнуты тут, увы, не помогут
Здравствуйте, Kisloid, Вы писали:
V>>Только есть один маленький нюанс: компилятор С/С++ можно написать на самом С/С++, а вот реализовать .NET framework на C# невозможно даже теоретически. K>А это почему ?
Ну а как ты себе это представляешь? Фреймворк внутри фреймворка?
Здравствуйте, _FRED_, Вы писали:
_FR>1. Воспроизведение звука, когда точность контроля позиции воспроизведения нужна повыше, чем позволяет ДиректИкс (хотя конечно, если голова есть то можно декодер и на шарпе написать, но сам не могу и ни одного ещё не видел)
Если работа со звуком не выливается просто в алгоритмы или вызовы имеющихся АПИ, то пожалуй это действительно не задача для Шарпа. Как минимум это не задача если нужна ручная оптимизация под инструкции конкретного процессора. Ну, да такими вещами занимаются еденицы. Да и нет особых проблем включить в проект анменеджед-длл реализующую нужные оптимизации.
_FR>2. Есть МФЦ\МДИ приложение, в котором у МДИ-фрейма два клиента, и дочерние окна открываются либо в одном, либо в другом, в зависимости от их вида, например. Догадываюсь, что с таким "чудой-юдой" мало кто знаком, но удобная вещь. У меня на шарпе подобное до конца не получилось... может и сам виноват.
Это вопрос решается на Шарпе ни чуть не хуже чем на МФЦ, думаю, что даже лучше.
_FR>3. Буду рад услышать, что возможно Определение разрыва TCP-соединения
(хотя, наверное, здесь С++ и не причём, как посмотреть).
Я в этом не спец. Но думаю, что замечания по первому пункту умесны и тут.
_FR>4. Расширение shell, свой аплет (cpl) в контрольной панеле... но и это можно обозначить как "ОС"...
Это легко делается уже сейчас. А в следующей версии виндовс это будет делать именно на дотнете. Следующая версия эксплорера пришется в большей части с использованием дотнета. И будет огромный менеджед-апи для расширения функциональности эксплорера на дотнете.
_FR>В общем в 98% случаев шарпа хватит и за глаза и за уши
Согласен.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, prVovik, Вы писали:
V>Дак яж говорил о другом! Я говорил, что С++ живее всех живых и помирать у него даже в отдаленных планах нет. Это, кстати, НЕ на тему "C# vs C++"!
Дык это почти никто и не утвреждает. Нужно быть просто таки фанатиком чтобы это говорить. Друго дело, что С++ уже сдает позиции. А в будущем эта тенденция только увеличится. Возможно ее удастся притормозить с помощью C++/CLI, но это уже тоже ведь не С++.
VD>>Ну, давай выкладывай список областей где С++ вне конкуренции и где вообще не приминим C#. V>Ну, как минимум, написание фреймворков
Фрэймворк понятие аморфное. Например, Линглво переводит это слова как: остов, корпус, каркас; структура, строение; система взглядов, точка отсчета, рамки; ферма; стропила. Так что нужно точно уточнять что имеется в виду. Если низкоуровневая часть рантайма для самого дотнета, то несомненно. Но об этом я уже говорил. И таких продуктов нужны еденицы. По большому счету сегодня из серьезных на рынке только дотнет и Ява. К тому же большая часть таких рантаймов может быть с успкхом написана на дотнете. Например, тот же компилятор Шарпа без проблем пишится на Шарпе же. Причем даже проще выйдет. Тот же Моно имеет очень мало С-шного кода. 98% Моно написано на шарпе же. Думаю МС не сдела тоже самое потму, что у них просто небыло этого самого дотнета, чтобы сделать его на нем же .
А вот фрэймворки в смысле ПО и библиотек для решения некоторых программистских задач пишется на Шарпе очень даже легко и эффективно.
VD>>Моя версия — такая область одна — это создание низкоуровневого кода вроде ОС, драйверов и виртуальных машин. V>Ну вот ты и сам все знаешь
Дык это очень усзка область разработки ПО. Ею занимаются еденицы во всем мире. Так что можно смело утверждать, что дотнет в общем, и Шарп в частности — это универсальные средства разработки.
V>А еще напомню, что помимо майкрософтовских осей существуют и другие. Вот на них полноценное пришествие .NET'а ИМХО невозможно. И никакие роторы, моны и дотгнуты тут, увы, не помогут
Ты не напоминай. Ты перечисляй. А то под другие ведь можно записать 99% всег ПО, а можно 0.0001%.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, prVovik, Вы писали:
V>>>Только есть один маленький нюанс: компилятор С/С++ можно написать на самом С/С++, а вот реализовать .NET framework на C# невозможно даже теоретически. K>>А это почему ? V>Ну а как ты себе это представляешь? Фреймворк внутри фреймворка?
На любом языке програаммирования (в проть до машинных кодов) пишется JIT и минимальный загрузчик. Далее на любом высокоуровневом языке (например, Яве, очень близкой к Шарпу) пишется компилятор. Далее компилятор переписывается на Шарпе же. Все остальное пишется на Шарпе.
Собственно, почти так и поступили в Моно. Только они писали все сразу на Шарпе, так как была доступна реализация от МС. В Моно процент нэйтив-кода минимален.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Ну, как новичку я бы точно советовал начать с Шарпа.
Нуесли только совсем новичку то пожалуй согласен. VD>С++ тоже полезен, но лучше не извращать чувство прекрасного "с молодости". Шарп концептуально намного более чист. И для восприятия он очень хорош.
Проблема С++ в том что он многолик но если иметь дело с правильным лицом то и чувство прекрасного ни куда не денется и воспринимается С++ не хуже шарпа.
Хотя если начинать исключително с шарпа то есть большая вероятность нарваться на синдром дельфишника те если нет нужного компонента то задача не решается (сразу оговорюсь не все дельфисты такие. Но таких к сожалению очень много )
... << RSDN@Home 1.1.4 rev. 185 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
VD>>Ну, как новичку я бы точно советовал начать с Шарпа. WH>Нуесли только совсем новичку то пожалуй согласен.
Не совсем новичек — это что-то из серии чуть-чуть беременная?
WH>Проблема С++ в том что он многолик но если иметь дело с правильным лицом то и чувство прекрасного ни куда не денется и воспринимается С++ не хуже шарпа.
К сожалению, без базовых понятий новичек скорее столкнется с уровой действительностью находящейстя чуть ниже пояса, чем с нужным лицом.
WH>Хотя если начинать исключително с шарпа то есть большая вероятность нарваться на синдром дельфишника те если нет нужного компонента то задача не решается (сразу оговорюсь не все дельфисты такие. Но таких к сожалению очень много )
Это если не изучить после него ничего путного и не приучиться писать код. Шарп тем и хорош, что в нем можно гормонично программировать так как он сам подвигает к использованию ОО-парадигмы.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Не совсем новичек — это что-то из серии чуть-чуть беременная?
Не смешно. Дело в том что берменность это вполне конкретное состояние, а профессиональный уровень постоянно меняется.
VD>К сожалению, без базовых понятий новичек скорее столкнется с уровой действительностью находящейстя чуть ниже пояса, чем с нужным лицом.
Ну это если начинать без книжки или с не правильной книжки (например с Шилдта или подобной ереси типа "С++ за 21 день" ). На пример посмотри "Эффективное программирование на С++" Кёниг, Му ИМХО очень правильная книжка по С++ для новичков.(описание есть на сайте)
Хотя без мозгоправа всеравно не обойтись. Например мне в форуме по С++ очень не плохо мозги вправили. Пусть не в один день но результат на лицо.
VD>Это если не изучить после него ничего путного и не приучиться писать код.
Увы и ах... но таких много... И такие "программисты" взрощенные на .НЕТ уже начинают появляться VD>Шарп тем и хорош, что в нем можно гормонично программировать так как он сам подвигает к использованию ОО-парадигмы.
Не больше чем дельфя. Дизайнеры форм один в один, функциональность языков схожа... ИМХО теже яйца только лучше.
... << RSDN@Home 1.1.4 rev. 185 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, VladD2, Вы писали:
VD>Дык это почти никто и не утвреждает. Нужно быть просто таки фанатиком чтобы это говорить. Друго дело, что С++ уже сдает позиции. А в будущем эта тенденция только увеличится.
Ну с этим тоже врядли кто-то будет спорить...
VD>Возможно ее удастся притормозить с помощью C++/CLI, но это уже тоже ведь не С++.
По аналогии: а С#_2 — это уже не C#?
VD>Фрэймворк понятие аморфное. Например, Линглво переводит это слова как: остов, корпус, каркас; структура, строение; система взглядов, точка отсчета, рамки; ферма; стропила. Так что нужно точно уточнять что имеется в виду. Если низкоуровневая часть рантайма для самого дотнета, то несомненно. Но об этом я уже говорил. И таких продуктов нужны еденицы.
Но, как минимум, одно это уже свидетельствует о будущем долголетии языка.
VD>По большому счету сегодня из серьезных на рынке только дотнет и Ява.
А С++ один такой...
VD>К тому же большая часть таких рантаймов может быть с успкхом написана на дотнете. Например, тот же компилятор Шарпа без проблем пишится на Шарпе же.
Так то оно так, но это ИМХО всеравно, что разрабатывать GUI на С++. То есть, конечно, можно, но не удобно...
VD>Дык это очень усзка область разработки ПО. Ею занимаются еденицы во всем мире. Так что можно смело утверждать, что дотнет в общем, и Шарп в частности — это универсальные средства разработки.
А есть еще всяческие real-time задачи, мимо которых С# пролетает на значительном отдалении.
И еще — из компьютерных игр шарпу не вытеснить С++. Ссылку не помню, но читал, как даже сама Microsoft позиционирует шарп в играх (PC) в качестве скриптового языка. То есть на С++ пишется движок, а на шарпе высокоуровневая логика. Далее. Напомню, что самые популярные игровые платформы — это консоли. А тут C# совсем идет лесом.
Здравствуйте, VladD2, Вы писали:
VD>Ты не напоминай. Ты перечисляй. А то под другие ведь можно записать 99% всег ПО, а можно 0.0001%.
Не знаю как в процентах, но вот конкретно сейчас я занимаюсь разработкой SMTP сервера под линукс. И что-то шарпа в округе не видно
Здравствуйте, prVovik, Вы писали:
V>Ну с этим тоже врядли кто-то будет спорить...
Ох споря... и еще как?!
VD>>Возможно ее удастся притормозить с помощью C++/CLI, но это уже тоже ведь не С++. V>По аналогии: а С#_2 — это уже не C#?
C++/CLI — это стандарт который вряд ли будет принят С++-сообщетсвом. Оно довольно сильно консервативно. Максимум сможет немного повлиять. Но это годы...
V>Но, как минимум, одно это уже свидетельствует о будущем долголетии языка.
Дык ассемблеру тогда уготована вечная жизнь. Так что тут уже нужно уточнять, что считать жизнью.
VD>>По большому счету сегодня из серьезных на рынке только дотнет и Ява. V>А С++ один такой...
А причем тут С++. Ты же про фрэймворки говорил. Да и не один он. Много чего еще есть. Просто он один из самых поуплярных... пока...
VD>>К тому же большая часть таких рантаймов может быть с успкхом написана на дотнете. Например, тот же компилятор Шарпа без проблем пишится на Шарпе же. V>Так то оно так, но это ИМХО всеравно, что разрабатывать GUI на С++. То есть, конечно, можно, но не удобно...
Ну, вот в этом ты сильно заблуждаешся. Я как бы имею опыт созадния парсера на Шарпе. К тмоу же есть компилятор Моно. Никаких особых проблем нет. Все очень удобно и более чем работоспосбно. Так что это неверный стереотип.
V>А есть еще всяческие real-time задачи, мимо которых С# пролетает на значительном отдалении.
Ну, во-первых, потенциально он очень даже не пролетает. А, во-вторых, истенные риал-тайм задачи тоже большая редкость. Ими занимается дай бок пол прцента разработчиков. А всякие там критичные к скорости задачи решается на нем очень даже неплохо.
V>И еще — из компьютерных игр шарпу не вытеснить С++.
Гы. Очень даже вытеснить. Не сразу конечно. Но через несколько лет народ прийдет к пониманию, что писать игры на Шарпе быстрее и удобнее. Примеры уже есть. Я вроде бы уже говорил. Тут Оранж давал ссылку на 3D RTS. Очень неплохо работает. А по архитектуре на порядок делает разные там именитые WarCraft-ы.
V> Ссылку не помню, но читал, как даже сама Microsoft позиционирует шарп в играх (PC) в качестве скриптового языка.
Я не знаю что ты там читал. Но я видел реально работающий проект.
Что касается скриптов для игр, то тут Шарп и Васик просто идельные претенденты. А там когда народ изживет догмы, то потихоничку перейдет и полностью. Ведь потери от менеджед/анменеджед-переходов будет куда больше чем от использования того же Шарпа.
V> То есть на С++ пишется движок, а на шарпе высокоуровневая логика. Далее. Напомню, что самые популярные игровые платформы — это консоли. А тут C# совсем идет лесом.
Уже есть и 3D движки на Шарпе. И полноценные игры испльзующие D3D. Так что можно их скачать и убедиться в неверности данной догмы.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, prVovik, Вы писали:
V>Не знаю как в процентах, но вот конкретно сейчас я занимаюсь разработкой SMTP сервера под линукс. И что-то шарпа в округе не видно
Скачай Моно и увидишь. Уж SMTP на шарпе как нечего делать пишется. Для таких задач он просто иделен.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, WolfHound, Вы писали:
VD>>Не совсем новичек — это что-то из серии чуть-чуть беременная? WH>Не смешно. Дело в том что берменность это вполне конкретное состояние, а профессиональный уровень постоянно меняется.
Профессиональный уровень беременной?
Если серьезно, то или он новичек, или уже нет. Если человек уже знает ЯП, то говорить об изучении программирования глупо.
WH>Ну это если начинать без книжки или с не правильной книжки (например с Шилдта или подобной ереси типа "С++ за 21 день" ).
Хотя да... Если подсунуть новичку Александреску, то можно просто дать гарантию, что на С++ он уже никогда в жизни писать не будет.
WH> На пример посмотри "Эффективное программирование на С++" Кёниг, Му ИМХО очень правильная книжка по С++ для новичков.(описание есть на сайте)
Я ее не видел. Но уже слово "Эффективное" говорит само за себя. Человеку еще нужно понять что такое "программирование" (не говоря уже о С++), а ты ему "Эффективное" суешь.
WH>Хотя без мозгоправа всеравно не обойтись. Например мне в форуме по С++ очень не плохо мозги вправили. Пусть не в один день но результат на лицо.
Ужас какой.
Вот Шарп — это как раз позволяет изучить СП и ООП без надобности в разных мозгоправах.
WH>Увы и ах... но таких много... И такие "программисты" взрощенные на .НЕТ уже начинают появляться
Дык еще есть те кто вообще программировать не умеет. Не списывать же это на язык? Многие кто сейчас пишет на совершенно разных языках начинал на Бэйсике. Причем не на Васике, а на ужасном и убогом его диалекте.
WH>Не больше чем дельфя. Дизайнеры форм один в один, функциональность языков схожа... ИМХО теже яйца только лучше.
Больше. Хотя дельфи тут тоже не самый худший вариант. Просто в отличии от нее он не имет ряда ошибок и более целостен. Дельфи ведь было в каком-то смысле пробразом Шарпа.
В общем, для обучения на сегодна Шарп, по-моему, самое оно. А плюсы всегда были сложноваты.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vvvoloshin1, Вы писали:
V>Не вдаваясь в технические детали: разработка с С# в три раза быстрее идет чем с С++, прикинь сколько баблища можно съэкономить...!!! не знаю как чистый С++, но MFC точно в ауте
Не, ну, по разному конечно бывает. Бывает, что и 1:1, а бывает, что и в 20 раз быстрее. С Шарпом порой забываешь времена когда по три часа капался в МСДН чтобы ответить на простой вопрос.
А учитывая качесвеннвю работу комплита, при хорошей подготовке можно в среднем раза в 4 эффективнее работать.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Да-да. Давно не флэймили по поводу C# vs. С++.
VD>Ну, давай выкладывай список областей где С++ вне конкуренции и где вообще не приминим C#.
VD>Моя версия — такая область одна — это создание низкоуровневого кода вроде ОС, драйверов и виртуальных машин.
2. Движки баз данных
3. Игры
4. Любая область, где требуется выжать максимум из имеющихся ресурсов (проц и память).
---------
То, что многие С++ программисты умудряются писать программы, сопоставимые по скорости с аналогичными на C#, говорит о том, что им срочно надо переходить на C#, и начать, наконец, приносить человечеству пользу.
---------
Согласен, что С++ можно уготовить роль довольно-таки "узкоспециализированного" языка, как раз для тех областей, где нужно выжать максимум, сохранив, при этом, возможность использовать накопленные практики ООП.