Recientemente comencé a preguntarme cuándo los desarrolladores deberían pagar por los compiladores. Los compiladores son gratuitos con la mayoría de las plataformas o hay una versión gratuita fácilmente obtenible.
Ejemplo:
OS X - GCC y Clang / LLVM vienen con las herramientas de desarrollo. No hay limitaciones aquí sobre cómo y qué puede resultar con ellos.
Linux - GCC y estoy seguro más. No sé el estado actual de los compiladores de Linux. No hay limitaciones aquí sobre cómo y qué puede resultar con ellos.
Windows: MinGW y Microsoft ofrecen una versión gratuita de Visual Studio. No hay limitaciones con MinGW, pero creo que con Visual Studio gratuito hay limitaciones severas.
Sin embargo, como ejemplo, Intel produce compiladores C / C ++. Son altos en precio. Educativamente, creo que uno puede obtener la versión OS X por $ 49 y Windows / Linux por $ 129 cada uno. Luego ofrecen un producto completo "Studio" también. Obviamente, utilizando los precios educativos hay limitaciones impuestas.
Pero lo que me pregunto es cuándo debería uno realmente considerar pagar por los compiladores. Un ejemplo que se me ocurre es un videojuego. Si está utilizando un compilador que funciona en las plataformas principales, no habría más herramientas de conmutación para la plataforma. Parece que habría un nivel de facilidad para cambiar entre plataformas si las herramientas fueran las mismas.
¿Alguien puede arrojar algo de luz sobre el pago de compiladores como los compiladores Intel y los verdaderos beneficios multiplataforma que uno podría obtener al usarlos? ¿El código de uno se vuelve menos portátil, incluso tratando de no hacer técnicas específicas de la plataforma?
Respuestas:
En mi experiencia, la capacidad de plataforma de host cruzado es una consideración menor para elegir un compilador. De hecho, todo lo contrario. Las personas eligen mucho más frecuentemente un compilador por su soporte superior para una plataforma de destino específica.
Tome el compilador de Intel, por ejemplo. Por lo general, las personas lo compran cuando quieren obtener hasta el último rendimiento del último chip Intel. Después de todo, es difícil diseñar un compilador mejor que los chicos que pueden caminar por el pasillo y hablar con los chicos que diseñaron los chips.
Es la misma razón por la que las personas compran herramientas de Microsoft para desarrollar en plataformas de Microsoft. Ese es el primero que tiene el apoyo.
fuente
Después de haber trabajado en un compilador de pago, creo que la razón principal para pagar un compilador es el contrato de soporte. Si el cliente tiene un problema con su código y sospecha que hay un error del compilador, puede pedirle al proveedor del compilador que investigue las posibles soluciones (en el centavo del proveedor, no en el suyo), posiblemente con una fecha límite para una respuesta / solución. Esto se puede hacer sin tener que publicar públicamente el código fuente para proyectos que pueden contener información confidencial, y generalmente el contrato obliga al vendedor a guardar secreto sobre cualquier código fuente compartido. En general, las empresas más grandes están dispuestas a pagar por este nivel de soporte, mientras que las tiendas más pequeñas no lo ven como valioso o simplemente demasiado caro.
Además, los proveedores quieren complacer a los clientes (que pagan mucho), por lo que las solicitudes de funciones tienen prioridad según los clientes que las deseen. También es posible que los clientes sugieran características más adaptadas a sus necesidades, cosas más específicas de la compañía que no serían ampliamente utilizadas. Esto no es posible para los usuarios de GCC u otros compiladores de código abierto donde las características se implementan por aquellos dispuestos a hacerlo en el orden que sientan en su propio horario.
fuente
A veces no es el compilador por el que la gente paga, es el tiempo de ejecución que funciona con él. Intel en particular tiene la tradición de proporcionar excelentes bibliotecas para cosas como subprocesamiento múltiple, soporte de medios (SSE, etc.) y matemática de precisión extendida.
fuente
He trabajado con algunas personas que usaron un compilador pagado.
Estaban haciendo un serio procesamiento de datos en un clúster. Supuestamente, el compilador Intel logró producir un código un poco más rápido para ellos, y pagar por el compilador fue más barato que ejecutar más nodos. Tengo entendido que la diferencia era muy pequeña, pero multiplicada por los costos de electricidad que se consideraron valió la pena.
En ese sentido, no me sorprendería si la mayoría de las supercomputadoras HPC se ejecutan en compiladores especializados proporcionados por los fabricantes de chips.
fuente
Estoy con Karl Bielefeldt en esto.
En realidad no confiaré en los compiladores que ofrecen capacidades multiplataforma. Porque, para ser sincero, todos sabemos que las herramientas / compiladores nativos y específicos siempre tienen ventajas como conocer mejor la plataforma de destino.
Y creo que, cuando su software se vuelve complejo y se necesita rendimiento, puede comenzar a pensar en cambiar a compiladores pagados.
Y además de eso, creo que los compiladores de Microsoft son bastante buenos. Y como todos los demás dijeron, son libres para siempre.
fuente
El compilador libre de GNU (gcc) viene con una licencia de GNU (GPL), lo que significa que solo puede usar para proyectos de código abierto. Soportado por grandes nombres en software.
Clang (gratis) es un intento de evitar las limitaciones de GPL creando un buen compilador. Además, es compatible con Apple, Google y muchos otros.
VC ++ Express (gratis) está limitado a la plataforma de Windows (por cierto, lo hicieron gratis en el último momento, porque muchas personas de la comunidad Open Source les preguntaron al respecto) y carece de la mayoría de las herramientas y características profesionales. Como el perfilador, por ejemplo.
Por lo tanto, todas estas herramientas son gratuitas para nosotros, pero cuentan con el respaldo de la industria.
Intel (comercial), como Karl mencionó, para proyectos que tienen como objetivo el mayor rendimiento en las plataformas Intel.
fuente