Вопрос ко всем, кто более или менее прилично знает все вышеозначенные языки.
Пожалуйста, самые основные различия. Различается ли в них синтаксис простейших алгоритмических конструкций? А как насчет наследования? Есть ли в них, например, такая возможность С++, как перегрузка функций?
В книге по С++, по которой я знакомился с основами этого языка (П. Франка, С++ для начинающих) говорилось, например, что в С нет возможности передачи параметров по ссылке, но есть возможность работать с указателями.
И еще. Имеет ли смысл изучать С, если есть С++?
И еще. Во времена, когда я вообще почти ничего не смыслил в программировании, т. е. где то полтора года назад, я слышал о существовании некоего языка Sharp, особо крутого, на котором даже можно командой из десятка хороших программистов за две недели разработать пакет программ, полностью аналогичный MS Office. Насчет последнего сильно сомневаюсь, но хотелось бы узнать, что это за язык такой. Может быть, это тоже разновидность С?
Другие языки программирования и технологии
В чем отличие С++ от С, С#, и С#.Net и какое отношение к ним имеет Sharp
С это подмножество С++. То есть изучив С++ вы должны без проблем понимать С.
Грубо говоря С++ это улучшение С (оттуда и два плюса) приносящее объектно-ориентированное программирование, перегрузку, виртуальные функции, потоки, ссылки (&),несколько видов определения типа (включая на лету) , динамическое выделение памяти.
Из минусов можно отметить уменьшение читабельности кода и как следствие нововведений б'ольшую потребность в ресурсах для тех же алгоримов, но реализованных на С.
Тем не менее язык С/С++ это язык уникальный - среднего уровня. Он сочетает высокую скорость выполнения, возможность работы с ассемблером и работу с аппаратурой на прямую, при значительно меньшей сложности чем программирование на ассемблере напрямик. Как недостаток нужно немного больше понимать, чтобы уметь (не во вред) распоряжаться этой силой)
C и C++ созданы в основном для работы на системах UNIX и отличаются высокой переносимостью кода. Эти языки наряду с ассемблером - идеально подходят для создания скоростных, комплексных программ и многие операционные системы (включая линукс и венду) , комплексные программы и сложные 3Д движки написаны НА НИХ.
С имеет смысл просмотреть после изучения С++ -а именно его последний стандарт С99. С до сих пор широко распространен. Только не среди вендовых псевдопрограммеров.
С# он же С Sharp это язык созданный мелкософтом и >ничего общего с предыдущими (за исключением схожего синтаксиса) не имеет<. Он, подобно Java, интерпретируется с помощью MSIL и без него нигде не работоспособен. Он не поддерживает многие -опасные- функции, имеет свой сборщик мусора и напоминает скорее visual basic. Его сфера - написание относительно простых --при-ложений- для венды и на платформах на которых венда работает (или существует порт интерпретатора) , преимущественно использующих работу с интерфейсом, диалогами, логическими операциями итд. Delphi это еще один схожий язык от Sybase.
Практически при равных навыках, для простого проекта (без межплатформенности, скорость не критична) написание программы на С/С++ и ее дебаженье займет значительно больше времени, чем на С#
Из личного опыта это и приводит к тому что многие программы, созданные на С#, не просто уступают в функциональности к С/С++ но и намного примитивнее и ошибочнее. Виновата ЛЕНЬ авторов, не желание изучать и улучшать - такова цена "прогресса". С/С++ буквально закаливает - показывает в человеке все его ошибки, где С# сам их находит и пытается замять (например memory leaks. Но конечно всему есть пределы) .
Еще раз - удел С# быстрое создание прикладных программ в среде win32/64, не более.
К слову MSIL и VisualStudio.NET написаны на С++.
Википедия (особено английская) имеет шикарные статьи по этим языкам, туда я вас и направляю.)
Грубо говоря С++ это улучшение С (оттуда и два плюса) приносящее объектно-ориентированное программирование, перегрузку, виртуальные функции, потоки, ссылки (&),несколько видов определения типа (включая на лету) , динамическое выделение памяти.
Из минусов можно отметить уменьшение читабельности кода и как следствие нововведений б'ольшую потребность в ресурсах для тех же алгоримов, но реализованных на С.
Тем не менее язык С/С++ это язык уникальный - среднего уровня. Он сочетает высокую скорость выполнения, возможность работы с ассемблером и работу с аппаратурой на прямую, при значительно меньшей сложности чем программирование на ассемблере напрямик. Как недостаток нужно немного больше понимать, чтобы уметь (не во вред) распоряжаться этой силой)
C и C++ созданы в основном для работы на системах UNIX и отличаются высокой переносимостью кода. Эти языки наряду с ассемблером - идеально подходят для создания скоростных, комплексных программ и многие операционные системы (включая линукс и венду) , комплексные программы и сложные 3Д движки написаны НА НИХ.
С имеет смысл просмотреть после изучения С++ -а именно его последний стандарт С99. С до сих пор широко распространен. Только не среди вендовых псевдопрограммеров.
С# он же С Sharp это язык созданный мелкософтом и >ничего общего с предыдущими (за исключением схожего синтаксиса) не имеет<. Он, подобно Java, интерпретируется с помощью MSIL и без него нигде не работоспособен. Он не поддерживает многие -опасные- функции, имеет свой сборщик мусора и напоминает скорее visual basic. Его сфера - написание относительно простых --при-ложений- для венды и на платформах на которых венда работает (или существует порт интерпретатора) , преимущественно использующих работу с интерфейсом, диалогами, логическими операциями итд. Delphi это еще один схожий язык от Sybase.
Практически при равных навыках, для простого проекта (без межплатформенности, скорость не критична) написание программы на С/С++ и ее дебаженье займет значительно больше времени, чем на С#
Из личного опыта это и приводит к тому что многие программы, созданные на С#, не просто уступают в функциональности к С/С++ но и намного примитивнее и ошибочнее. Виновата ЛЕНЬ авторов, не желание изучать и улучшать - такова цена "прогресса". С/С++ буквально закаливает - показывает в человеке все его ошибки, где С# сам их находит и пытается замять (например memory leaks. Но конечно всему есть пределы) .
Еще раз - удел С# быстрое создание прикладных программ в среде win32/64, не более.
К слову MSIL и VisualStudio.NET написаны на С++.
Википедия (особено английская) имеет шикарные статьи по этим языкам, туда я вас и направляю.)
В шарпе есть наследование (но не множественное) , перегрузка функций, передача параметров по ссылке, возможность работать с указателями.. . А в C++ нет автоматической сборки мусора, больше про него ничего не знаю и знать после такой подставы ничего про него не хочется :) C++ сейчас используется для написания в основном драйверов и просто прог, которые смогут работать на старых компьютерах, чтоб побольше пользователей мелкого пошиба их напоупало, имхо, конечно.
>Его сфера - написание относительно простых --при-ложений- для венды
Ну.. . Это, мягко говоря, спорно.
Ну.. . Это, мягко говоря, спорно.
А что такое сборщик мусора? Я так понимаю, что когда в С++ Builder приложение под Винду, допустим, я создаю перо, под него выделяется дескриптор.. . Потом я этим пером что то рисую на форме, скажем, функцией АПИ SETPIXEL, и потом оно уже может мне больше и не нужно, допустим, я вообще выгрузил ту форму, где это перо применялось.. . Но если я не уничтожил также и перо, то его дескриптор будет занят, это называется утечка дескрипторов.. . И сверх того, память будет занято, это называется утечка памяти.. .
Сборщик мусора связан с этим? Интуиция подсказывает, что он, наверное, должен заботиться о подобных вещах.. .
Сборщик мусора связан с этим? Интуиция подсказывает, что он, наверное, должен заботиться о подобных вещах.. .
лутше Microsoft Visual C++ 6.0
Похожие вопросы
- В чем отличие C Sharp, С, и С++?
- .Net FrameWork глазами пользователя...
- Подойдет ли самоучитель по Visual Basic .NET для освоения языка Basic, человеку не понимающему в программировании?
- Переход с PHP на ASP.NET C#
- Какие приемущества у PHP перед ASP.NET? Почему все зациклены на PHP?
- C++ ИЛИ C#(Sharp)
- если я напишу что нибудь на платформе .net 2.0 заробит ли оно у юзера если у него стоит .net 3.5?
- Как избавится от вируса Net-Worm.Win 32.kido ir и Net-Worm.Win 32.kido ih они находятся на флешки и она не форматируетс
- С++, С#, .NET - Плюсы, минусы и главное перспективы.
- Хочу программировать с чего начать Мне 19 лет Small basic-C-C sharp-Python-Java-MySQL