• В чем отличия C++ и C# ?

    AxisPod
    @AxisPod
    1) Подскажите пожалуйста чем отличаются C++ и C#?
    Многим, за основую был взят синтаксис и всё. В остальном разница колосальная.

    2) Насколько они похожи по синтаксису?
    По синтаксису похожи в основном только на уровне C. Ну и чутка от классов. В остальном разница, в C# generics и C++ templates различаются очень сильно, в первую очередь функционалом. В C# очень много своих фишек, много синтаксического сахара.

    3) Возможно ли изучая например C++ "переключится" на C#, не прибегая к изучению всего языка с 0?
    Если хочется знать языки хорошо, то оба надо изучать с нуля. Свои тонкости. C++ компилируемый язык, надо знать тонкости платформ, как хранит данные в памяти и т.д. В C# кажется что-то похоже, а на деле нет, а посмотришь вглубь, так совсем нет. Здесь даже знание одного языка может быть плохим при изучение другого. Ибо название сущности одно, а поведение отличается.

    4) Возможна ли разработка под android на этих языках? (Тут, я думаю, следует дать небольшое пояснение. По моей задумке небольшие задачки с программированием под android, для себя, были бы очень полезны. )
    C++ NDK в руки и вперед. С C# уже сложнее, вроде как только Xamarin, имеет не мало подводных камней.

    5) С какого языка проще начать?
    Начать проще с C#, больше предложений на рынке. Проще сразу начать, но с повышением сложности решаемых задач накосячить становится проще.
    Ответ написан
    Комментировать
  • В чем отличия C++ и C# ?

    @Perzh
    Как новичек новичку скажу по поводу 5 пункта: легче начать с C#, но правильней C++ так как:
    - C++ мультипарадигменный, а C# - нет (чисто ООП)
    - C# решает проблемы, которые в C++ нужно решать самому.
    - C# неявно использует механизмы, которые используются в C++ явно (например, указатели).

    Таким образом, практика C++ покажет почему C# устроен так, а не иначе.

    P.S.: лучше вообще изучать тот язык, которому тебя сможет обучить кто то знающий =)
    Ответ написан
    2 комментария
  • В чем отличия C++ и C# ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Тут все пишут про отличия. Рискну написать про сходства.

    Во-первых, о чём бы ни писала Елена и Си++ и C# - оба языки общего назначения. Даже больше, оказывается - C# ни разу не заточён под объёмную библиотеку (или фреймворк) .NET, однако с ним намного, много проще. Но если таки учитывать .NET, то для Си++ есть Boost и Qt, так что здесь скорее паритет - библиотек для обоих хватает.
    Во-вторых, сложность разработки на Си++ часто преувеличена. Разве только дисциплины надо поболее - выстрелить в ногу здесь попроще. Однако при этом Си++ будет чутка более гибкий и без танцев с бубнами unmanaged код не запустить на C#. Если внезапно потребуется.
    В-третьих, оба языка, раз они общего назначения, таки мультипарадигмальные. То есть они реализуют большинство практик. И хотя Си++ развивается довольно медленно, сейчас Си++ резко догнал C# в плане нереализованных фич (здесь как минимум лямбды). Ну и метапрограммирования у Си++ поболее будет (наглая ложь).
    В-четвёртых, оба языка кроссплатформеные. Впрочем, C# будет более кроссплатформенный, чем Си++. Разве только тот же Qt резко стёр границы, но это не значит почти ничего - C# компилируется в тот же самый CIL для всех платформ, Си++ - в совершенно разный код для разных платформ (i386, amd64, ARM Cortex-AXX).
    Наконец, в пятых, синтаксис у них действительно очень похож. Оба языка принадлежат к семейству Алгол-подобных, так что и брейсы, и остальные скобки здесь имеют примерно одно предназначение.

    Различия, которые казалось бы делают языки совершенно разными, таки не столь принципиальны на том уровне абстракции, на котором был задан вопрос. А различия действительно колоссальны: C# - managed код, что означает, что скомпилированный код будет исполнятся не на прямую в CPU, а на специальной виртуальной машине. Это съедает производительность, но сильно облегчает перенос кода. Ну и потом, C# - полупроприетарный ответ Java (что интересно, так как получается, что C# - более свободный, чем Java), которая была создана как замена сложному и небезопасному C++ в том числе.

    В общем, как человек, который начал давно с C#, продолжив C++ и по пути изучив Python, Java, D и другую ООП-чушь могу с уверенностью сказать, что разницы в общем-то и нет... То есть придётся немного проникнуться в чуть другую философию и выяснить, какие проблемы более новый язык пытался решить. Но если подходить к этому, как подошёл lookid, то это скорее не как изучать языки одной языковой группы, а как изучать один и тот же язык в разное время или в разных сферах.

    Почему так? Потому что ООП... Оно как бы ООП, ничего сверхъестесственного ни один язык не предлагает, это не Haskell, и тем более не Brainfuck. Так что принципиально общие вещи в них будут. То подмножество, что реализует машину Тьюринга - у них общие. Сами посмотрите: циклы, ветвления, передача аргументов, арифметика... С небольшими правками всё совершенно одинаковое. Да, Дмитрий совершенно прав, traits на C# не повторишь, ибо та аналогия будет уже не traits, однако... Это уже [programming_language] related, то есть это попытка совладать с особенностями.

    Немного пруфов: лично я ходящий пруф. Зная C++ и C# и немного Java я просто начал программировать на Python. При том, что Python даже алголоподобным не принадлежит. А всё потому, что логика одна и та же, хотя различий между Python и C(++|#) намного, много больше. Но не читая почти никаких туториалов, пройдясь галопом по европам с документацией сейчас я знаю python достаточно для серьёзного проекта.

    UPD. По поводу метапрограммирования... Таки рантайм рефлекшн шарпа тащит. И хотя ни макросов, ни шаблонов, ничего. Но изменять код на лету - это уже очень круто. По дефолту плюсы так не умеют, и хотя шаблоны с макросами тащат, сильно, очень сильно тащат и вытаскивают его, Си++, со дна, надо признать - рефлешн у шарпа будет поинтереснее. Извиняюсь за дезу.
    Ответ написан
    6 комментариев
  • В чем отличия C++ и C# ?

    risik
    @risik
    Программист
    1) идеологией. корневое отличие - управлением памятью.
    2) по синтаксису операций и операторов схожи.
    3) С C++ на C# можно. в обратную сторону сложнее, но тоже можно.
    4) Можно. но я рядом оговорок, см. в других комментариях.
    5) Если нужны оба, то начинать с C++, так как смотри ответ на вопрос 3.

    ИМХО лучше знать оба языка.
    Ответ написан
    Комментировать
  • В чем отличия C++ и C# ?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1) Это две разные вселенные. Но при этом можно переключать мозги на разработку в один промежуток времени на С++, а после чашки чая на C#. Если нужно быстро решить проблему и при этом не парится с эффективностью выполнения программы, то C#, иначе при написании системного кода который оооочень много работает на уровне байтов, word,dword то это С++.
    2) То что у них общий дедушка еще не значит что они похожи. Отличий много! Причем действительно много. Используются разные идиомы, трюки, подходы. К примеру C++ идиому traits попробуй повтори на C#. А иногда она очень выручает!!!
    Ответ написан
    Комментировать
  • В чем отличия C++ и C# ?

    @DancingOnWater
    Изучал C# после 5 лет C++.

    2)Синтаксис C# - Си-подобный, но различий прилично.
    3)С нуля вполне возможно переключится, но по первости делать многие вещи вы будете не так, как предлагают разработчики языка.
    4) Да, есть. Про C# уже сказали, а для C++ есть Qt

    Начинать вообще всегда сложно, но мое мнение - лучше с плюсов. Если начнете с шарпов, то зашорите себе мозги конкретно.
    Ответ написан
    Комментировать
  • В чем отличия C++ и C# ?

    @lookid
    Вы немного не понимаете масштабы. Язык программирования это как иностранный язык. Программировать под, это как писать статьи в журнале про что-либо. Фактически отличие в С++ и C#, как между английским и немецким. Писать на них под андроид, это как писать статьи по машиностроению или строительству на английском и немецком. Перейти всегда можно, область сменить всегда можно. Но, что бы стать хорошим кодером в чем-то нужно потратить время на изучение предметной области и языка. Вы можете писать про местные соревнования по гонкам и с помощью переводчика, но будет не то. Так что готовьтесь, что придется посидеть и поизучать, а не сразу убийц энгрибердс писать.
    Ответ написан
    2 комментария
  • В чем отличия C++ и C# ?

    1kachan
    @1kachan
    проще начать с C#, как только вы понимаете программирование в "общем", вам не нужно будет учить яп с 0, нужно будет выучить только синтаксис, подводные камни и общие концепции яп
    Ответ написан
    Комментировать
  • В чем отличия C++ и C# ?

    Nidora
    @Nidora
    Бонус 200 руб всем новым клиентам! VDS - 149 руб
    C# — объектно-ориентированный язык программирования с автоматическим управлением памятью, предназначенный для программирования на платформе .NET.

    C++ — кросс-платформенный язык программирования общего назначения, совместимый в большинстве случаев с C.

    Синтаксисом они, безусловно, похожи, но различий много. Чтобы разобраться в них нужно прочитать как минимум по одной толстой книжке с описанием языка.

    Советую начать с C# на примерах.
    Ответ написан
    Комментировать