Разработчики Linux, знающие C++? [закрытый]

8
задан inquam 9 July 2010 в 07:49
поделиться

11 ответов

Многие преимущества могут быть получены от переход на C ++ в плане дизайна я считать.

Вероятно (зависит от того, кто примет решение о дизайне на C ++).

Наш существующий код просто нужно избавиться от всех неявных типов приведение, поскольку C ++ немного строже об этом, и он будет скомпилирован и запустить как обычно.

Все не так просто. Если вы изменили параметры компилятора (или расширения файлов) для перехода на C ++, ваш код не будет компилироваться просто так (вам нужно будет просмотреть его и внести изменения).

Кроме того, ваша существующая кодовая база C будет соответствовать плохо написанной кодовой базе C ++.

Это может также привести к появлению всевозможных тонких ошибок, которые опытному разработчику с мышлением на C будет почти невозможно найти ( оператор sizeof ведет себя по-разному для массивов в C и C ++, например, но опытный C / начинающий разработчик C ++ даже не подумает, что знакомый sizeof в его коде делает что-то неожиданное).

Причина заключалась в том, что «Разработчики Linux знают C», но это было бы очень сложно найти Linux разработчики, знающие C ++.

Это не веская причина (если вы разместите объявление о вакансии в Интернете со словами «ищите разработчиков C ++ Linux, вы должны получить несколько хороших резюме - в зависимости от вашего предложения»).

Это может быть вера любого, кто может принять такое решение в вашей компании, или это может быть просто предлог, который они дали, чтобы избавиться от вас: - \

Вот некоторые из причин (против перехода), которые могут на самом деле примените в вашем случае - и ваш менеджер, вероятно, подумал:

  • люди, написавшие вашу кодовую базу, могут быть хорошими разработчиками C, но не знать C ++ - или быть начинающими разработчиками C ++ и / или плохими разработчиками C ++.

Хорошие разработчики C часто становятся плохими разработчиками на C ++ (лучшие практики в C ++ совершенно разные и часто противоречат передовым практикам в C. Это проблема, потому что код C ++ выглядит достаточно знакомым для разработчика C, чтобы он подумал, что его опыт применимо к нему (и хорошие дизайнерские решения в C часто приводят к плохим дизайнерским решениям в C ++).

Они могут даже быть хорошими разработчиками C ++, но если это так, это должно быть неизвестно вашему менеджеру (если они были наняты как разработчики C, их навыки C ++, вероятно, никогда не проявлялись на собеседовании).

  • ваши старшие члены команды могут хорошо понимать логику вашего приложения. Если ваше приложение переключается на C ++, им, возможно, придется Разработчики C ++). Такое изменение приведет к потере членов вашей команды, которые хорошо знакомы с вашей проблемной областью. В зависимости от вашей конкретной проблемной области такая потеря может быть огромной.

В зависимости от размера и структуры вашей кодовой базы, переход на C ++ может быть очень хорошим д ecision. Вы не предоставляете достаточно подробностей, чтобы мы знали, так ли это.

Например, я видел большую базу кода C, которая с течением времени закончилась неудачным переосмыслением C ++ (псевдоклассы, поддерживающие таблицы виртуальных функций и наследование - со структурой, содержащей пустоту * в базовой структуре, или базовой структурой). имеющий void * к специализированным данным, созданным динамически - и прочим монстрам).

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

Их нетрудно найти, но это верный момент, только если вы только начинаете свой проект. Ни один хороший менеджер не рассмотрит возможность легкой смены опытных разработчиков, которые знают предметную область, с новыми сотрудниками только для нескольких дизайнерских решений.

Если вы можете указать более точные причины для перехода, они могут это рассмотреть. Хорошие причины для перехода (для менеджера) включают более низкие затраты на обслуживание, более низкие затраты на разработку, меньшие риски, меньшие усилия, лучшую отчетность о проделанной работе и так далее.

Если вы хотите продолжать настаивать на этом изменении, вам нужно будет найти несколько хороших аргументов в этих областях помимо хороших контраргументов его «Linux-разработчики знают C».

Ваши аргументы должны быть достаточно вескими, чтобы преодолевать аргументы, которые я привел выше.

14
ответ дан 5 December 2019 в 05:25
поделиться

Я работаю кодером по сопровождению C++ уже около 10 лет. Платформы включали Solaris, AIX, HP-UX и Linux. Ни на секунду я (или любой другой разработчик, работающий в той же команде) не задумался о том, что мы не должны этого делать, потому что "разработчики Linux знают C".

Кто-то слишком много всасывал анти-C++ пропаганды из Linux Kernel Mailing List.

3
ответ дан 5 December 2019 в 05:25
поделиться

Ядро находится на C, и преобразование ядро ​​ в C ++, вероятно, не будет хорошей идеей.

Остальное программное обеспечение может быть написано на чем угодно - я видел серьезные программы Linux (на моей машине), написанные на C, C ++, OCaml, Python, Perl, D, Fortran, Java, Lisp и т. Д.

На C ++ существует довольно много программного обеспечения Linux - например, весь пакет KDE , и все, что использует Qt, является C ++.

Но мне сказали, что мы никогда не начнем использовать C ++. Причина в том, что «разработчики Linux знают C»

ИМО, это чушь , если только вы не работаете с ядром или можете столкнуться с проблемами переносимости. Я бы порекомендовал им взглянуть на приложения Qt 4 и KDE. C - это хорошо, но некоторые вещи легче сделать на других языках.

2
ответ дан 5 December 2019 в 05:25
поделиться

В этом отношении я много занимаюсь разработкой C ++ для Linux. И есть много проектов C ++, ориентированных на Linux, например, весь материал Qt / KDE. Разработчики Linux, кажется, немного предвзято относятся к C, потому что Столлман объявил , что «ты должен писать на C.» Но это не то, о чем вам следует слишком заботиться.

1
ответ дан 5 December 2019 в 05:25
поделиться

Зависит от того, над каким проектом вы работаете. C и C++ существуют для "эксплуатации" на платформе linux, и у каждого из них есть своя доля разработчиков. Я никогда не сталкивался с подобными рассуждениями.

1
ответ дан 5 December 2019 в 05:25
поделиться

Причина была в том, что "разработчики Linux знают C"

Это верное утверждение, если под "разработчиками Linux" вы подразумеваете "людей, которые разрабатывают ядро Linux". Однако, если вы имеете в виду "людей, которые разрабатывают приложения, работающие под Linux", то это откровенно неверно. Люди разрабатывают приложения для Linux на любом количестве языков.

Является ли C++ подходящим языком для вашего приложения - это другой вопрос, на который я не могу ответить, поскольку ничего не знаю о вашей кодовой базе.

2
ответ дан 5 December 2019 в 05:25
поделиться

Ядро на C.

Выше приведен текст моего ответа, полностью.

0
ответ дан 5 December 2019 в 05:25
поделиться

inquam - Вот предложение для вашей собственной команды разработчиков. Подумайте о том, чтобы ваша команда могла продолжать писать на "чистом ansi C", но с компиляцией кода через компилятор C++ вместо компилятора C. То есть, переименуйте расширение всех .c файлов ваших проектов в ".cc" (или ".cpp") и установите инструмент сборки по умолчанию на g++ (или любой другой ваш компилятор).

Компилятор C++ будет обеспечивать лучшую безопасность типов, рассматривать более неоднозначные методы кодирования как ошибки и блокировать реальные ошибки до их проверки.

Есть несколько нюансов с преобразованием унаследованного кода с C на C++, поэтому может быть так, что все новые исходные файлы вы будете переводить на C++. Затем постепенно переводите унаследованный код. По крайней мере, сделайте это для кода, который вы пишете. Затем поменяйте расширение имени файла на ".c" перед регистрацией. Возможно, эта хорошая привычка приживется.

0
ответ дан 5 December 2019 в 05:25
поделиться

Разработка Linux исключает знание C ++? Странный. Одним из наиболее распространенных пользовательских интерфейсов для Linux является KDE, который широко использует C ++.

В моей компании, я думаю, легко есть сотня разработчиков, знающих C ++ и Linux. Хотя найти их было нелегко, это не было особенно сложно. Трудно найти хороших инженеров независимо от тех навыков, которые вам нужны.

Не похоже, что мы единственные, кому пришла в голову эта идея. Посмотрите на Mozilla; FireFox - большой проект на C ++. То же самое и с WebKit, и с C ++.

8
ответ дан 5 December 2019 в 05:25
поделиться

Разработчики Linux, знающие C ++

Да, почему бы и нет? Системные программы обычно пишутся на C. Но в то же время существует множество пользовательских приложений для * nix, написанных на Qt / gtkmm, и это C ++

0
ответ дан 5 December 2019 в 05:25
поделиться

Довольно много разработчиков Linux знают C #, не говоря уже о C ++! :)

Например, один из ведущих медиаплееров в Linux написан на C #.

0
ответ дан 5 December 2019 в 05:25
поделиться