В чем отличие c++ и c, а также остальных языков группы c друг от друга?
Решил поинтересоваться системным программированием, узнал что такое ассемблер. А ещё я узнал, что винда написана на c++, а ее ядро на c, Mac OS написан на c и с++, а
Linux на c++ и на objective c (или примерно так, впрочем забыл :(, но это не важно для моего вопроса). Мне вот что интересно: вот допустим я буду с++ программистом, вопрос: легко ли мне будет работать (практически не учив, но, все же, не без этого) с другими языками программирования типа c (тот же c и Objektive c)? Насколько сильно они отличаются и чем? В общем, если перефразировать мой вопрос, то скажу следующее:
Какие из языков с, с++,objective c учить в первую очередь, чтобы потом легко справится с остальными, и почему (отличия)?
С - почти подмножество C++. Выучишь С++, и для того, чтобы утверждать, что ты знаешь Си, остаётся только запомнить, чего в Си нету.
ObjC - ерунда чисто для яблочников, С напоминает разве что отдалённо. Сейчас вообще нинужно, т. к. есть всякие свифты.
Вообще группировать языки по названию - довольно глупая затея. Лучше по назначению и основной парадигме: например, выучив какой-нибудь императивный язык типа плюсов, ты без труда освоишь любой другой императивный (java, шарп, etc.), т. к. конструкции типа циклов-ветвлений там те же самые. А вот с функциональными придётся поебаться. Правда, они нафиг никому не нужны, так что вероятно, тебе этим вообще не придёся заниматься.
сильно отличаются их области применения
работать будет тяжело везде, если ты будешь только учить языки, но не выберешь область и не получишь опыт в ней
системное программирование - это что за область в твоем понимании? и хочешь ли ты там работать?
"Linux на c++ и на objective c (или примерно так, впрочем забыл :(, но это не важно для моего вопроса)" - нет, когда программист что-то забыл, это очень важно. вероятно с ним что-то не так
P.S. objective c это Apple
Языки языками, но нужно и знание алгоритмов, паттернов, протоколов...
Отличие не в самих языках, а в средствах их применений.
Вопрос НЕ в языках. Любой язык можно выучить за 2-3 недели. И вам реально придётся это делать. В очень многих продуктах используется не один, не два, а гораздо больше языков. И со временем вы перестанете использовать большинство изученных вами сейчас языков.
Вы должны понять, что конкретный язык нужен для библиотек, которые осуществляют действия, требуемые программой. Новый продукт, библиотеки устарели, новая платформа - и вы изучаете новые языки и технологии.
Второй аспект не просто знать язык, а уметь его применять. Именно об этом пишут в вакансиях, чтобы добиться работы нужно реально потратить допустим год, развивая продукт на нужном языке. Какие вакансии вас интересуют, такие языки и нужно учить, но со временем вас заинтересуют другие вакансии и снова обучение...
обжектив си забудь это фигня
главная разница си и плюсов это классы - полиморфизм на уровне наследования а не на процендурном уровне, соотвественно new вместо malloc и calloc
выучи паттерны проектирования на C# или Java тогда поймешь все остальные языки
с этого лучше начать
а популярно в смысле работы такая жава, питон, sql, плюсы, сишарф