Récemment, j'ai commencé à me demander quand les développeurs devraient payer pour les compilateurs. Les compilateurs sont gratuits avec la plupart des plates-formes ou il existe une version gratuite facilement accessible.
Exemple:
OS X - GCC et Clang / LLVM sont fournis avec les outils de développement. Aucune limite ici pour savoir comment et ce que vous pouvez en tirer.
Linux - GCC et j'en suis sûr plus. Je ne connais pas l'état actuel des compilateurs Linux. Aucune limite ici pour savoir comment et ce que vous pouvez en tirer.
Windows - MinGW et Microsoft proposent une version gratuite de Visual Studio. Pas de limitations avec MinGW mais je pense qu'avec le Visual Studio gratuit il y a de sérieuses limitations.
Cependant, à titre d'exemple, Intel produit des compilateurs C / C ++. Ils sont lourds en prix. Sur le plan éducatif, je pense que l'on peut obtenir la version OS X pour 49 $ et Windows / Linux pour 129 $ chacun. Ils proposent également un produit "Studio" complet. Évidemment, en utilisant le prix de l'éducation, il y a des limitations imposées.
Mais ce que je me demande, c'est quand faut-il vraiment envisager de payer pour les compilateurs. Un exemple auquel je peux penser est un jeu vidéo. Si vous utilisez un compilateur qui fonctionne sur les principales plates-formes, il n'y aurait plus d'outils de commutation pour la plate-forme. Il semble qu'il y aurait un niveau de facilité à changer de plateforme si les outils étaient les mêmes.
Quelqu'un peut-il faire la lumière sur le paiement de compilateurs comme les compilateurs Intel et les véritables avantages multiplateformes que l'on pourrait tirer de leur utilisation? Est-ce que son code devient moins portable même en essayant très fort de ne pas faire de techniques spécifiques à la plate-forme?
Réponses:
D'après mon expérience, la capacité de la plateforme multi-hôte est une considération mineure pour choisir un compilateur. En fait, tout le contraire. Les gens choisissent beaucoup plus fréquemment un compilateur car il offre un support supérieur pour une plate-forme cible spécifique.
Prenons l'exemple du compilateur Intel. Les gens l'achètent généralement lorsqu'ils veulent tirer le maximum de performances de la dernière puce Intel à la pointe de la technologie. Après tout, il est difficile de concevoir un compilateur mieux que les gars qui peuvent marcher dans le couloir et parler aux gars qui ont conçu les puces.
C'est la même raison pour laquelle les gens achètent des outils de Microsoft pour se développer sur des plateformes Microsoft. C'est qui a le soutien en premier lieu.
la source
Ayant travaillé sur un compilateur payant, je pense que la principale raison de payer pour un compilateur est pour le contrat de support. Si le client a un problème avec son code et soupçonne un bogue du compilateur, il peut demander au fournisseur du compilateur d'enquêter sur les solutions possibles (à l'heure du vendeur, pas la leur), éventuellement avec une date limite pour une réponse / solution. Cela peut être fait sans avoir à publier publiquement le code source pour les projets qui peuvent contenir des informations sensibles, et généralement le contrat lie le fournisseur au secret sur tout code source partagé. En règle générale, les grandes entreprises sont prêtes à payer pour ce niveau de soutien, tandis que les petits magasins ne le considèrent pas comme valant de l'argent ou tout simplement trop cher.
De plus, les fournisseurs veulent plaire aux clients (bien rémunérés), les demandes de fonctionnalités sont donc priorisées en fonction des clients qui les souhaitent. Il est également possible pour les clients de proposer des fonctionnalités plus adaptées à leurs besoins, des choses plus spécifiques à l'entreprise qui ne seraient pas largement utilisées. Cela n'est pas possible pour les utilisateurs de GCC ou d'autres compilateurs open source où les fonctionnalités sont implémentées par ceux qui souhaitent le faire dans l'ordre qu'ils jugent approprié.
la source
Parfois, ce n'est pas le compilateur que les gens paient, c'est le runtime qui fonctionne avec. Intel en particulier a une tradition de fournir d'excellentes bibliothèques pour des choses comme le multithreading, le support multimédia (SSE, etc.) et les mathématiques à précision étendue.
la source
J'ai travaillé avec certaines personnes qui utilisaient un compilateur payant.
Ils faisaient de sérieuses analyses de données dans un cluster. Soi-disant, le compilateur Intel a réussi à produire du code légèrement plus rapide pour eux, et payer pour le compilateur était moins cher que d'exécuter plus de nœuds. D'après ce que je comprends, la différence était très faible, mais multipliée par les coûts d'électricité pris en compte, elle en valait la peine.
À cet effet, je ne serais pas surpris si la plupart des super-ordinateurs HPC fonctionnent sur des compilateurs spécialisés fournis par les fabricants de puces.
la source
Je suis avec Karl Bielefeldt à ce sujet.
Je ne ferai pas vraiment confiance aux compilateurs qui offrent des capacités multiplateformes. Car, pour être honnête, nous savons tous que les outils / compilateurs natifs et ciblés ont toujours des avantages, comme une meilleure connaissance de la plate-forme cible.
Et je crois que lorsque votre logiciel devient complexe et que les performances sont nécessaires, vous pouvez commencer à penser à passer à des compilateurs payants.
Et en plus de cela, je pense que les compilateurs de Microsoft sont sacrément bons. Et comme tout le monde l'a dit, ils sont gratuits pour toujours.
la source
Le compilateur gratuit GNU (gcc) est livré avec une licence GNU (GPL), ce qui signifie que vous ne pouvez l'utiliser que pour des projets open source. Pris en charge par de grands noms du logiciel.
Clang (gratuit) est une tentative pour éviter les limitations GPL en créant un bon compilateur. En outre, est pris en charge par Apple, Google et bien d'autres.
VC ++ Express (gratuit) est limité à la plate-forme Windows (soit dit en passant, ils l'ont rendu gratuit au dernier moment, car de nombreuses personnes de la communauté Open Source les ont interrogés) et il manque la plupart des outils et fonctionnalités professionnels. Tels que le profileur, par exemple.
Ainsi, tous ces outils sont gratuits pour nous, mais sont pris en charge par l'industrie.
Intel (commercial), comme Karl l'a mentionné, pour les projets qui ciblent le plus de performances sur les plateformes Intel.
la source