imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 01.06.2005, 04:04     # 1
respy
Junior Member
 
Регистрация: 24.02.2005
Адрес: на улице, под сосной
Сообщения: 76

respy Нуль без палочки
отличия C# и C++

хотелось бы услышать основные преимущества и недостатки этих двух языков, и вообще чем полезен C#, является ли он перспективным языком программирования, т.е. стоит ли на него переходит, что он собой представляет... для чего вообще этот язык, т.е. он больше подходит для net-кодинга или(и) для разработки обычных программ...
respy вне форума  
Старый 01.06.2005, 05:31     # 2
msustudent
Junior Member
 
Регистрация: 07.06.2004
Сообщения: 103

msustudent Нимб уже пробиваетсяmsustudent Нимб уже пробивается
С# не перегружен технической составляющей при создании приложений в Виндоуз. C# полностью классово-ориентированный язык.
msustudent вне форума  
Старый 01.06.2005, 10:15     # 3
spike
Member
 
Аватар для spike
 
Регистрация: 02.09.2003
Сообщения: 215

spike Молодецspike Молодецspike Молодец
respy
мелкософт, всячески этого добивается, чтобы переходили
c# имхо только .net использует, т.е. нужен Framework SDK для написания прог на C#
__________________
не могу просто так сидеть, когда другие работают. пойду полежу.
spike вне форума  
Старый 01.06.2005, 11:17     # 4
/7y3uK
Advanced Member
 
Аватар для /7y3uK
 
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498

/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)
Собственно если по простому - основное отличие в том, что C++ системно ориентированый язык, т.е. он более низкоуровневый... а шарп он неплохо идет для Web applications... на сколько мне известно
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
/7y3uK вне форума  
Старый 01.06.2005, 12:04     # 5
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
C++ и C# совершенно разные языки. c# довольно похож на java, c++ - это c + OO. Каждый хорош для своих целей. c# подходит
для всего (теоретически), но и ежу понятно что он медленнее чем C++. IMHO Язык перспективен т.к. его пихает MS и к тому же есть открытая разработка под linux - http://www.mono-project.com/Main_Page
Drakosha вне форума  
Старый 02.06.2005, 13:11     # 6
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Цитата:
Drakosha:
c# подходит
для всего (теоретически)
Нет, даже теоритически. Есть ряд задач для которых c# не подходит. В первую очередь это программы которые должны работать с чужими процессами , программы использующие хуки, перехват API, задачи тесно связанные с железом, написание драйверов и т.п.
Цитата:
Drakosha:
что он медленнее чем C++
И не только. Он еще и более ресурсоемкий. Я бы например не стал писать программу на c# зная что она будет работать в терминал-сервере.
__________________
Best Regards
alexey_ma вне форума  
Старый 02.06.2005, 13:52     # 7
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
согласен на 100%

Цитата:
Сообщение от alexey_ma
Нет, даже теоритически. Есть ряд задач для которых c# не подходит. В первую очередь это программы которые должны работать с чужими процессами , программы использующие хуки, перехват API, задачи тесно связанные с железом, написание драйверов и т.п.

И не только. Он еще и более ресурсоемкий. Я бы например не стал писать программу на c# зная что она будет работать в терминал-сервере.
Drakosha вне форума  
Старый 02.06.2005, 14:00     # 8
knight
Junior Member
 
Регистрация: 12.09.2004
Сообщения: 106

knight Известность не заставит себя ждатьknight Известность не заставит себя ждать
Давайте попробуем сравнить C# и C++ с точки зрения аппарата программирования. В C# реализовано многое количество вещей , которые либо отсутствуют в C++, либо имитируются специальным образом. Например в C# выделено понятие интерфейса и абстрактного класса( в частности самое понятие интерфейса очень важно при программирование под .NET Framework), в явную выделено понятие свойств,запрещено множественное наследование от классов (зато можно наследоваться от интерфейсов),деструктор играет незначительную роль,
есть например понятие static конструктора. Понятие указателя присутствует но только для неуправляемого кода и т.д. Аппарат ООП C# мне понравился.Он более как мне кажется продуманный нежели в C++. Правда программы написанные на C# таки - да более тормознутые чем на C++. Написание Windows - приложений с использованием Windows - Forms проще чем на MFC или тем более Win32API (безусловно имеется в виду интерфейсная часть ), при этом нужно признать для доступа ко многим возможностям необходимо импортировать WIN32API. Как мне кажется у этого языка есть безусловное светлое будущее ведь сам Microsoft его поддерживает. Если обобщить как мне кажется программисту нужно будет знать и C++ и C#. Причем если рекомендовать последовательность изучения стартовать лучше с C,C++ и только потом C#
knight вне форума  
Старый 02.06.2005, 18:42     # 9
/7y3uK
Advanced Member
 
Аватар для /7y3uK
 
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498

/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)
Ага этот топик для миссионера, начинаем проповедь - разжигаем новые религиозные войны
То что написал knight касательно шарпа - есть в Java, причем в гораздо более удобной форме, причем получаем полную кроссплатформенность и независимость от майкрософта в частности... Ну ни как я не могу засчитать слова knightа в плюс шарпу... Таки напишите еще отличий, С# от джавы пожалуйста... А отличия от ЦПП и так понятны уже... но на вопрос "стоит ли учить" ятобы ответить - явно мало информации может стоит учить Java
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
/7y3uK вне форума  
Старый 02.06.2005, 21:27     # 10
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Из джавы весьма затруднительно общатся с другими приложениями (написанными не на джаве) и многими системными ресурсами. То же самое и в обратную сторону, из Win приложения очень трудно узнать что творится в джава приложении, то-есть возможности интеграции нулевые. Практически не возможно работать с СOM компонентами. Невозможно написание сервисов и системных приложений и т.п. список можно продолжить. С# многое из этого списка умеет делать, может - быть кое-что не очень хорошо, но все-таки возможности есть.

И вообще-то никто не разжигает религиозных войн, коллеги достаточно корректно выразили свое мнение по поводу возможностей C++ и С#. Вопрос был задан только об этих языках и скорее всего имелось ввиду програмирование именно для Windows.
__________________
Best Regards
alexey_ma вне форума  
Старый 02.06.2005, 22:28     # 11
MaxNero
Junior Member
 
Аватар для MaxNero
 
Регистрация: 30.05.2004
Адрес: NY, USA
Сообщения: 85

MaxNero Косячил раньше, старается исправиться
Я для себя из этого топика, вынес следующее:лучше продолжать совершенствовать с++ и начать изучать с#
MaxNero вне форума  
Старый 03.06.2005, 02:59     # 12
knight
Junior Member
 
Регистрация: 12.09.2004
Сообщения: 106

knight Известность не заставит себя ждатьknight Известность не заставит себя ждать
Цитата:
/7y3uK:
Ага этот топик для миссионера, начинаем проповедь - разжигаем новые религиозные войны
То что написал knight касательно шарпа - есть в Java, причем в гораздо более удобной форме, причем получаем полную кроссплатформенность и независимость от майкрософта в частности... Ну ни как я не могу засчитать слова knightа в плюс шарпу... Таки напишите еще отличий, С# от джавы пожалуйста... А отличия от ЦПП и так понятны уже... но на вопрос "стоит ли учить" ятобы ответить - явно мало информации может стоит учить Java
Честное слово никаких религиозных войн только факты.
Я не пытался сравнить 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

И тот и другой путь перспективен.
Всё что написал это не более чем моё мнение -)))
knight вне форума  
Старый 03.06.2005, 06:55     # 13
iam_xor
Junior Member
 
Аватар для iam_xor
 
Регистрация: 08.09.2004
Сообщения: 50

iam_xor Ушлепокiam_xor Ушлепок
в C# нет как таковой прямой работы с памятью всю работу на себя берет GC
C++ заботиться о высвобождении нужно самому
iam_xor вне форума  
Старый 03.06.2005, 11:49     # 14
/7y3uK
Advanced Member
 
Аватар для /7y3uK
 
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498

/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)
Ну вот, пока не напишешь жестко - ничего не напишете
А про религиозные войны и про миссионерство - это я себя имел в виду
Кстати то что джава не может работать с комом и дот нетом - это распространенное заблуждение, равно как и с системными апи и интеграцией все упирается в SDK - пример - мобильные девайсы... так что вот Кстати что вы, уважаемые, можете сказать по поводу дальнейших разработок и поддержки шарпа? Просто я к тому, что вышла 5-ая джава уже, новая технология enterprise java faces и очень много другого - постоянный прогресс и пр., суппорт опен сорс и т.д. и полная бесплатность самой джавы для одинокого программиста
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
/7y3uK вне форума  
Старый 04.06.2005, 16:59     # 15
PSyton
Junior Member
 
Аватар для PSyton
 
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187

PSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форуме
Про C# и c++.
Первый более прикладной (т.е. ориентированый на разработку прикладных приложений пользовательского уровня) и разрабатывать на нем, особенно поесле C++ - просто детский сад. В плане изучения технологий, также проблем нет. НО, низкоуровневые вещи (требующие быстрых вычислений или еще чего, напимер от железа) на нем не реализуешь, а если и реализуешь, то это будет не так быстро и приятно ккак на c++. что до кроссплатформенности, так берите wxWidgets, например и пишите на C++ и будет вам счастье. По скорости это очень быстро и выгладит вполне элегантно. Крики о том что на С++ быстро разработать приложение нельзя, по моему, полная чушь, поэтому это не является аргументом в пользу C#. Разговоры на тему, что вот эта вешь есть стандартно в шарповской библиотеке, а в сишной нет также беспочвенны поскольку очень много людей пишет на C++ и причем довольно давно, и различных библиотек для него просто навалом, надо только поискать.
Про с# и яву
По сути, хоть MS это никогда не подтвердит официально, шарп нагло слизан с сановской явы. Но слизан очень умело (MS в этом преуспела). Во время этого процесса они исправили все недостатки присущие яве и добавили некоторые возможности.
про языки вообще
Если программист достаточно профессионален, то ему важен не язык, на котором написано что-то а технологии которые для этого применены, т.к. сам по себе язык это просто средство выражения идеи. И если данные технологии позволяют ему сделать на яве очень быструю и эффективную вещь, то нет смысла спорить про языки. Например СУБД сибэйс очень шустрая и не скажешь про нее с первого взгляда что она на яве.
__________________
Дураки не динозавры - они не вымрут...
PSyton вне форума  
Старый 05.06.2005, 00:34     # 16
knight
Junior Member
 
Регистрация: 12.09.2004
Сообщения: 106

knight Известность не заставит себя ждатьknight Известность не заставит себя ждать
Microsoft активно толкает технологию .Net Framework . На их сайте висит .Net Framework 2.0 правда в пока в beta.
А насчет бесплатности C# и .Net framework не являются платными, что не может не радовать
knight вне форума  
Старый 24.06.2005, 16:18     # 17
Diff
Guest
 
Сообщения: n/a

Основной недостаток C# - непереносимость и меньшая производительность. Если не смущает - флаг в руки, разработка на нем ощутимо быстрее.
 
Старый 16.07.2005, 17:10     # 18
yan_kos
Junior Member
 
Аватар для yan_kos
 
Регистрация: 16.07.2005
Адрес: Украина, г. Ровно
Пол: Male
Сообщения: 140

yan_kos Известность не заставит себя ждать
Я уже два года пишу на С++ в VS мне лично С# очень непонравился. Первое и самое большое ето отсутствие указателей. Хотя на C# более мение нормально реализованы некоторые вещи. Все таки С# в том виде каком он есть сейчас полний NULL. но задумка неплохая. Как заключенние С++ намного обходит С# почти во всем если не вовсем абсолютно.
yan_kos вне форума  
Старый 02.08.2005, 18:41     # 19
cocoa
Junior Member
 
Аватар для cocoa
 
Регистрация: 04.06.2004
Сообщения: 111

cocoa Путь к славе только начался
Решил написать:
1. Не стоит вообще сравнивать С++ и С# .... говорить о том что С# "более ООП" - бред полный ... С++ - язык не низкого уровня (тоже давайте не путать), читайте Страуструпа. Если кто-то говорит что С++ язык низкого уровня а С# высокого поскольку работает с .NET - то давайте тогда смотреть на С++ с точки зрения библиотеки MFC. Каждый язык нужен для конкретных целей (попробуйте написать драйвер на C#), и говорить что какой-то язык победит не стоит.
Я например в програмировании в основном юзаю C, C++, Objective C (mac os). Как-то довольно неплохо справился с портированием C# проги на C++ (нужно было). Впечатление от C# - хорошо сделаный язык, говорить о том что он плохой потому что нет указателей ... так ведь указатели в С#, если яправильно в нём разобрался - неявные, так в чём тут проблема и неудобство?
2. С# - мне напоминает Objective С с его Cocoa framework ... почти та-же идея в структуре языка, похожие цели и задачи.
cocoa вне форума  
Старый 07.02.2006, 15:03     # 20
vladislav75
Newbie
 
Регистрация: 11.11.2005
Адрес: минск
Пол: Male
Сообщения: 38

vladislav75 Путь к славе только начался
Основное преимущество C# - ускоренная разработка, ЗНАЧИТЕЛЬНО более простая отладка (в частности потому что там нет указателей, может потому их там и нет), больше возможностей для автоматизированных средств тестирования из-за более жестких ограничений.
Та же Мелкософт не позиционирует C# как замену C++, она рекламирует .net как "лучшую" (вопрос религиозный) среду исполнения ПО, а под .net на C# удобнее (это только мое мнение и личное сравнение работы с C# и managed c++) работать.
PS. В unmanaged-блоках на C# можно! работать напрямую с памятью и т.п., только это не приветствуется с точки зрения парадигмы программирования под .net

Последний раз редактировалось vladislav75; 07.02.2006 в 15:06.
vladislav75 вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:31.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.