Я кодер и имею опыт работы как с нативным, так и с управляемым кодом. Я начал с Pascal и C, затем перешел на C ++ и в конце концов на C #.
За последний год или около того я программировал почти исключительно на C # и потерял многое из того, что было естественно, когда я был программистом на C ++.
Несколько недель назад, когда я сел написать какой-то нативный код на C ++, я начал возиться, медленно знакомясь со сложностями, причудами и особенностями всего этого. Мне почти стыдно сказать, что я полностью забыл, что передача динамически размещенного массива в функцию без передачи его размера будет означать, что принимающая функция не сможет узнать, каков размер массива.
Есть бесчисленное множество статей и документов, которые сравнивают и противопоставляют управляемый и неуправляемый код. Мы все знаем, что нативный код, если он хорошо оптимизирован, может работать значительно быстрее и легче, чем управляемый код. С другой стороны, управляемый код имеет сборщики мусора и оптимизацию для конкретного процессора и ОС, что может дать нативный код за свои деньги.
Чисто с технической точки зрения нет явного победителя.
Нет никаких сомнений в том, что управляемый код на порядок проще в коде и понимании. Просто посмотрите на разницу в количестве строк, необходимых для создания простого графического интерфейса в Win32 C ++ и C #.
В те дни, когда я работал в нативном коде, я в основном писал математические симуляции, которые работали на суперкомпьютерах. У них были ужасные CLI и они были в основном сфокусированы на алгоритмах. В настоящее время я пишу на C # и создаю красивые приложения с графическим интерфейсом, но был бы потерян, если бы мне пришлось сделать что-то похожего калибра на родном языке. Даже с такой средой, как QT, на C ++ / QT все равно потребуется вдвое больше времени, чем на C #.
Всякий раз, когда я вижу кого-то, кто написал крупномасштабное полнофункциональное приложение с графическим интерфейсом на C / C ++, я не могу не испытывать чувство страха и намек на ревность.
Мне любопытно, как другие опытные программисты видят управляемые и неуправляемые языки. Считаете ли вы управляемый код любительским ? Вы видите нативных кодеров как более хардкорных ?