Quand payer pour les compilateurs C ++ [fermé]

19

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?

Jason
la source
29
Ne confondez pas Visual Studio avec les compilateurs de Microsoft, les compilateurs sont disponibles gratuitement et sont les mêmes dans les éditions normale et Express de Visual Studio. Vous pouvez même les obtenir sans Visual Studio, via le SDK Windows .
yannis
6
@Rig Eh bien, Microsoft est en partie responsable de cela, ils n'ont jamais fait d'effort réel pour annoncer le fait que leur compilateur C ++ est disponible gratuitement. Le simple fait que vous ne puissiez pas le télécharger seul (sans le SDK Windows gonflé ou Visual Studio Express) suffit à confondre les gens quant à sa disponibilité.
yannis
5
@Rig Exactement. Ils ont une armée évangélique sur le terrain faisant la publicité de Visual Studio Express (un IDE) et du SDK Windows (une collection de divers outils), et aucune mention du tout de leur compilateur C ++ (il n'est même pas répertorié sur le site Web du SDK Windows) ou d'une manière pour télécharger uniquement le compilateur et rien d'autre.
yannis
3
@YannisRizos: Si je ne me trompe pas, les compilateurs C ++ ne font plus partie du SDK Windows - msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx .
Coder
1
@JeffO - SDK . Téléchargement gratuit et inclut les outils C ++. Il pourrait y avoir une version plus récente, mais c'est ce que j'ai trouvé en premier.
Bobson

Réponses:

25

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.

Karl Bielefeldt
la source
1
Ack. C'est pourquoi le domaine du calcul haute performance est un marché important pour les compilateurs commerciaux. Parce que les performances et les capacités de réglage sont vraiment importantes lorsque le temps de calcul est attribué (et parfois facturé) à l'heure.
mschuett
Pour aller plus loin, dans certaines situations, il n'y a tout simplement pas de compilateur gratuit disponible. Par exemple, pour le développement du noyau Windows (Win8 +), la seule option est d'utiliser MSVC avec le compilateur WDK intégré.
SomeWittyUsername
19

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é.

Chewy Gumball
la source
7
"Ce 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 veulent le faire dans l'ordre qu'ils jugent selon leur propre calendrier." Mais d'un autre côté, si le client désire assez la fonctionnalité, il est libre d'affecter des développeurs pour l'implémenter par lui-même et peut ensuite ou non la partager avec d'autres. (N'oubliez pas que la GPL concerne la distribution et non l' utilisation .) Avec un logiciel propriétaire, ils doivent convaincre le fournisseur d'implémenter ladite fonctionnalité, ainsi que de connaître et de décrire suffisamment en détail pour obtenir réellement ce qu'ils veulent.
un CVn
1
Si l'entreprise a des développeurs ayant l'expérience et la familiarité avec les compilateurs et la base de code spécifique, alors oui, mais c'est une dépense supplémentaire, probablement plus que l'achat du compilateur. En outre, vous seriez surpris de voir à quel point les demandes de fonctionnalités peuvent être vagues. Si un client paie, il ne faut pas grand-chose pour convaincre une entreprise de faire quelque chose, surtout lorsque vous payez beaucoup d'argent. Je ne discuterai d'aucune des parties, dites simplement que certains trouvent ce niveau de soutien qui en vaut la peine.
Chewy Gumball
1
Je suis d'accord qu'un compilateur n'est en aucun cas un logiciel trivial. L'ajout d'une fonctionnalité est certainement une tâche non triviale, en particulier pour quelqu'un qui n'est pas familier avec la base de code. Mais dire qu'il n'est "pas possible" d'avoir des fonctionnalités implémentées dans un compilateur open-source mais qu'il est possible dans un compilateur propriétaire est au mieux un argument erroné. Si l'entreprise n'a pas l'expertise requise en interne, elle peut engager un consultant pour le faire pour elle. Avec un logiciel propriétaire, si le vendeur dit non (quelle qu'en soit la raison), alors vous n'avez pas de chance.
un CVn
Cela dit, j'ai voté positivement parce que je pense que cela répond bien à la question.
un CVn
1
Je ne pense pas que vous ayez jamais vraiment traité de support logiciel "commercial". C'est une expérience complètement différente de ce que vous décrivez.
James Anderson
1

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.

TMN
la source
Vous avez raison, Polyverse vend des distributions Linux protégées en déplaçant la défense des cibles. Avec l'achat d'une de leurs distributions, vous achetez simultanément leur compilateur qui applique la défense de cible mobile à tous les fichiers binaires de l'OS.
T. Salim
0

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.

MrFox
la source
-4

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.

Semih Masat
la source
2
Vous ne faites donc pas confiance à GCC? Qu'en est-il des compilateurs Android et iOS?
-17

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.

SChepurin
la source
17
Beaucoup de désinformation ici. VC ++ Express est gratuit, bien que je doute que ce soit parce que la communauté Open Source (qui?) L'a demandé, mais cela n'a rien à voir avec le compilateur C ++, comme @YannisRizos le mentionne dans les commentaires ci-dessus. Deuxièmement, bien que GCC lui-même soit GPL, il peut être utilisé pour compiler du code non GPL. Voir ici stackoverflow.com/questions/9772616/…
Avner Shahar-Kashtan
Incroyable, beaucoup de gens (et je suis entre autres) ont demandé de rendre VC ++ 2012 pour Desktop gratuit. Je ne veux pas parler de GPL.
SChepurin
5
Oui, je suis sûr que beaucoup de gens leur ont demandé de le rendre gratuit. Cela ne signifie pas que vous en avez été le déclencheur. C'était une décision commerciale. En fait, je suis presque sûr que la réaction contre le prix d'origine des packages VSExpress (25 $, je pense) provenait d'amateurs et de développeurs commerciaux qui voulaient quelque chose à utiliser à la maison, pas des développeurs de système d'exploitation nécessaires, et certainement pas en tant que communauté.
Avner Shahar-Kashtan