| imho.ws |
![]() |
|
|
|
# 1 |
|
Junior Member
Регистрация: 24.02.2005
Адрес: на улице, под сосной
Сообщения: 76
![]() |
отличия C# и C++
хотелось бы услышать основные преимущества и недостатки этих двух языков, и вообще чем полезен C#, является ли он перспективным языком программирования, т.е. стоит ли на него переходит, что он собой представляет... для чего вообще этот язык, т.е. он больше подходит для net-кодинга или(и) для разработки обычных программ...
|
|
|
|
|
# 4 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Собственно если по простому - основное отличие в том, что C++ системно ориентированый язык, т.е. он более низкоуровневый... а шарп он неплохо идет для Web applications... на сколько мне известно
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|
|
|
|
# 5 |
|
Full Member
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557
![]() ![]() ![]() ![]() |
C++ и C# совершенно разные языки. c# довольно похож на java, c++ - это c + OO. Каждый хорош для своих целей. c# подходит
для всего (теоретически), но и ежу понятно что он медленнее чем C++. IMHO Язык перспективен т.к. его пихает MS и к тому же есть открытая разработка под linux - http://www.mono-project.com/Main_Page |
|
|
|
|
# 6 | ||
|
Member
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245
![]() ![]() |
Цитата:
Цитата:
__________________
Best Regards |
||
|
|
|
|
# 7 | |
|
Full Member
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557
![]() ![]() ![]() ![]() |
согласен на 100%
Цитата:
|
|
|
|
|
|
# 8 |
|
Junior Member
Регистрация: 12.09.2004
Сообщения: 106
![]() ![]() |
Давайте попробуем сравнить C# и C++ с точки зрения аппарата программирования. В C# реализовано многое количество вещей , которые либо отсутствуют в C++, либо имитируются специальным образом. Например в C# выделено понятие интерфейса и абстрактного класса( в частности самое понятие интерфейса очень важно при программирование под .NET Framework), в явную выделено понятие свойств,запрещено множественное наследование от классов (зато можно наследоваться от интерфейсов),деструктор играет незначительную роль,
есть например понятие static конструктора. Понятие указателя присутствует но только для неуправляемого кода и т.д. Аппарат ООП C# мне понравился.Он более как мне кажется продуманный нежели в C++. Правда программы написанные на C# таки - да более тормознутые чем на C++. Написание Windows - приложений с использованием Windows - Forms проще чем на MFC или тем более Win32API (безусловно имеется в виду интерфейсная часть ), при этом нужно признать для доступа ко многим возможностям необходимо импортировать WIN32API. Как мне кажется у этого языка есть безусловное светлое будущее ведь сам Microsoft его поддерживает. Если обобщить как мне кажется программисту нужно будет знать и C++ и C#. Причем если рекомендовать последовательность изучения стартовать лучше с C,C++ и только потом C# |
|
|
|
|
# 9 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Ага
этот топик для миссионера, начинаем проповедь - разжигаем новые религиозные войны То что написал knight касательно шарпа - есть в Java, причем в гораздо более удобной форме, причем получаем полную кроссплатформенность и независимость от майкрософта в частности... Ну ни как я не могу засчитать слова knightа в плюс шарпу... Таки напишите еще отличий, С# от джавы пожалуйста... А отличия от ЦПП и так понятны уже... но на вопрос "стоит ли учить" ятобы ответить - явно мало информации может стоит учить Java
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|
|
|
|
# 10 |
|
Member
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245
![]() ![]() |
Из джавы весьма затруднительно общатся с другими приложениями (написанными не на джаве) и многими системными ресурсами. То же самое и в обратную сторону, из Win приложения очень трудно узнать что творится в джава приложении, то-есть возможности интеграции нулевые. Практически не возможно работать с СOM компонентами. Невозможно написание сервисов и системных приложений и т.п. список можно продолжить. С# многое из этого списка умеет делать, может - быть кое-что не очень хорошо, но все-таки возможности есть.
И вообще-то никто не разжигает религиозных войн, коллеги достаточно корректно выразили свое мнение по поводу возможностей C++ и С#. Вопрос был задан только об этих языках и скорее всего имелось ввиду програмирование именно для Windows.
__________________
Best Regards |
|
|
|
|
# 12 | |
|
Junior Member
Регистрация: 12.09.2004
Сообщения: 106
![]() ![]() |
Цитата:
Я не пытался сравнить Java с C#. Если уже сравнивать то лучше сравнить подход .Net Framework и Java. Так как C# не более чем язык для реализации конструкций программы. Сравним: 1) Абсолютно точно было указано о трудности взаимодействия COM и JAVA. Чего нельзя сказать о C# и COM (а также любом другом .NET языке) 2) Байткод Java кроссплатформенный безусловно, но при этом код C# тоже потенциально таковым является по крайней мере на это направлен проект MONO, который успешно реализовывает этот тезис в реальную жизнь 3)А теперь о реальных плюсах C# и .Net Framework код написанный с учетом спецификации CLS является переносимым между языками платформы .Net (например между C# и VB.NET или C# и С++.NET). Для достижения этого эффекта не нужно исполнять каких либо сложных операций, которые раньше нужны были, например в технологии COM. Единая иерархия классов FCL (второе название BCL как вам угодно) доступна из всех языков .NET. То есть я один раз учу иерархию а потом её применяю в любом .NET языке например C#,VB.NET,C++.NET и т.д. Это то что есть в .Net Framework, но нет в Java Технология ASP.NET которая позволяет программисту знающему например C# и иерархию BCL выучить только приёмы веб-программирования для написания веб - проектов. При этом я не хочу сказать, что Java это плохо. Java - это отлично. У каждого в программировании свой путь самое главное, чтобы он приносил соответствующее удовольствие и уровень свободы. Кроме того как мне кажется самое главное научиться думать, а остальное не более чем инструмент. Любой начинающий программист вполне может пойти по одному из двух путей C -> С++ ->С# C -> С++ ->Java И тот и другой путь перспективен. Всё что написал это не более чем моё мнение -))) |
|
|
|
|
|
# 14 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Ну вот, пока не напишешь жестко - ничего не напишете
![]() А про религиозные войны и про миссионерство - это я себя имел в виду ![]() Кстати то что джава не может работать с комом и дот нетом - это распространенное заблуждение, равно как и с системными апи и интеграцией все упирается в SDK - пример - мобильные девайсы... так что вот Кстати что вы, уважаемые, можете сказать по поводу дальнейших разработок и поддержки шарпа? Просто я к тому, что вышла 5-ая джава уже, новая технология enterprise java faces и очень много другого - постоянный прогресс и пр., суппорт опен сорс и т.д. и полная бесплатность самой джавы для одинокого программиста
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|
|
|
|
# 15 |
|
Junior Member
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Про C# и c++.
Первый более прикладной (т.е. ориентированый на разработку прикладных приложений пользовательского уровня) и разрабатывать на нем, особенно поесле C++ - просто детский сад. В плане изучения технологий, также проблем нет. НО, низкоуровневые вещи (требующие быстрых вычислений или еще чего, напимер от железа) на нем не реализуешь, а если и реализуешь, то это будет не так быстро и приятно ккак на c++. что до кроссплатформенности, так берите wxWidgets, например и пишите на C++ и будет вам счастье. По скорости это очень быстро и выгладит вполне элегантно. Крики о том что на С++ быстро разработать приложение нельзя, по моему, полная чушь, поэтому это не является аргументом в пользу C#. Разговоры на тему, что вот эта вешь есть стандартно в шарповской библиотеке, а в сишной нет также беспочвенны поскольку очень много людей пишет на C++ и причем довольно давно, и различных библиотек для него просто навалом, надо только поискать. Про с# и яву По сути, хоть MS это никогда не подтвердит официально, шарп нагло слизан с сановской явы. Но слизан очень умело (MS в этом преуспела). Во время этого процесса они исправили все недостатки присущие яве и добавили некоторые возможности. про языки вообще Если программист достаточно профессионален, то ему важен не язык, на котором написано что-то а технологии которые для этого применены, т.к. сам по себе язык это просто средство выражения идеи. И если данные технологии позволяют ему сделать на яве очень быструю и эффективную вещь, то нет смысла спорить про языки. Например СУБД сибэйс очень шустрая и не скажешь про нее с первого взгляда что она на яве.
__________________
Дураки не динозавры - они не вымрут... |
|
|
|
|
# 18 |
|
Junior Member
Регистрация: 16.07.2005
Адрес: Украина, г. Ровно
Пол: Male
Сообщения: 140
![]() |
Я уже два года пишу на С++ в VS мне лично С# очень непонравился. Первое и самое большое ето отсутствие указателей. Хотя на C# более мение нормально реализованы некоторые вещи. Все таки С# в том виде каком он есть сейчас полний NULL. но задумка неплохая. Как заключенние С++ намного обходит С# почти во всем если не вовсем абсолютно.
|
|
|
|
|
# 19 |
|
Junior Member
Регистрация: 04.06.2004
Сообщения: 111
![]() |
Решил написать:
1. Не стоит вообще сравнивать С++ и С# .... говорить о том что С# "более ООП" - бред полный ... С++ - язык не низкого уровня (тоже давайте не путать), читайте Страуструпа. Если кто-то говорит что С++ язык низкого уровня а С# высокого поскольку работает с .NET - то давайте тогда смотреть на С++ с точки зрения библиотеки MFC. Каждый язык нужен для конкретных целей (попробуйте написать драйвер на C#), и говорить что какой-то язык победит не стоит. Я например в програмировании в основном юзаю C, C++, Objective C (mac os). Как-то довольно неплохо справился с портированием C# проги на C++ (нужно было). Впечатление от C# - хорошо сделаный язык, говорить о том что он плохой потому что нет указателей ... так ведь указатели в С#, если яправильно в нём разобрался - неявные, так в чём тут проблема и неудобство?2. С# - мне напоминает Objective С с его Cocoa framework ... почти та-же идея в структуре языка, похожие цели и задачи. |
|
|
|
|
# 20 |
|
Newbie
Регистрация: 11.11.2005
Адрес: минск
Пол: Male
Сообщения: 38
![]() |
Основное преимущество C# - ускоренная разработка, ЗНАЧИТЕЛЬНО более простая отладка (в частности потому что там нет указателей, может потому их там и нет), больше возможностей для автоматизированных средств тестирования из-за более жестких ограничений.
Та же Мелкософт не позиционирует C# как замену C++, она рекламирует .net как "лучшую" (вопрос религиозный) среду исполнения ПО, а под .net на C# удобнее (это только мое мнение и личное сравнение работы с C# и managed c++) работать. PS. В unmanaged-блоках на C# можно! работать напрямую с памятью и т.п., только это не приветствуется с точки зрения парадигмы программирования под .net Последний раз редактировалось vladislav75; 07.02.2006 в 15:06. |
|
|