Soy codificador y tengo experiencia con código nativo y administrado. Comencé con Pascal y C, luego me mudé a C ++ y finalmente a C #.
Durante el último año más o menos, he estado codificando casi exclusivamente en C # y he perdido mucho de lo que solía ser natural cuando era un codificador de C ++.
Hace unas semanas, cuando me senté a escribir un código nativo de C ++, me encontré dando vueltas mientras me familiarizaba lentamente con las complejidades, peculiaridades e idiosincrasias de todo. Casi me da vergüenza decir que me había olvidado por completo de que pasar una matriz asignada dinámicamente a una función sin pasar también su tamaño significaría que la función receptora no tendría forma de saber cuánto dura la matriz.
Existen innumerables artículos y documentos que comparan y contrastan el código administrado con el no administrado. Todos sabemos que el código nativo, si está bien optimizado, puede ejecutarse significativamente más rápido y más ligero que el código administrado. Por otro lado, el código administrado tiene recolectores de basura y una optimización específica de la CPU y del sistema operativo en tiempo de ejecución que puede hacer que el código nativo se ejecute por su dinero.
Puramente desde una perspectiva técnica, no hay un ganador claro.
No hay duda de que el código administrado es un orden de magnitud más simple de codificar y comprender. Solo observe la diferencia en el número de líneas necesarias para construir una GUI simple en Win32 C ++ vs C #.
En mis días de codificación nativa, escribía principalmente simulaciones matemáticas que se ejecutaban en supercomputadoras. Tenían CLI feos y estaban centrados principalmente en algoritmos. Hoy en día escribo en C # y produzco hermosas aplicaciones GUI, pero me perdería si tuviera que hacer algo de un calibre similar en un idioma nativo. Incluso con un marco como QT, todavía tomaría el doble de tiempo producir algo en C ++ / QT que en C #.
Cada vez que veo a alguien que ha escrito una aplicación GUI a gran escala y con todas las funciones en C / C ++, no puedo evitar sentir asombro y un poco de celos.
Tengo curiosidad por cómo otros codificadores experimentados ven lenguajes administrados y no administrados. ¿Ves el código administrado como amateur-ish ? ¿Ves codificadores nativos como más hardcore ?