40 votes

Pourquoi Clang n'est plus utilisé?

J'ai fait une bonne quantité de programmation en C/C++ avant, mais aujourd'hui, il ne représente qu'un petit pourcentage de la programmation, je ne (les langages de script sont beaucoup mieux adaptés à une grande partie du travail que je fais). J'ai travaillé sur certains de programmation C les projets de ces derniers jours et a été surpris de voir combien peu de syntaxe de détails, j'ai continué à oublier. Ce qui est pire, c'est qu' cc/gcc avaient généralement cryptique ou de la non-information des messages d'erreur au sujet de ces questions (désolé je ne me souviens pas des exemples spécifiques).

J'ai appris à propos de l' clang compilateur a pas trop longtemps et a décidé de l'essayer. Les messages d'erreur ont été beaucoup plus clair et m'a aidé à identifier et résoudre les problèmes dans ma syntaxe. Ma question est pourquoi cet outil n'est pas utilisé/mentionnées plus que ce qu'il est? Est-ce que c'est donc nouveau par rapport à la usual suspects (cc/gcc), ou est-ce qu'il ne supporte pas les fonctionnalités pris en charge, ou il est juste plus difficile à obtenir? J'ai du mal à croire que la dernière, car il a été installé avec les outils de dev sur mon iMac et nécessaires d'une seule commande (sudo apt-get install clang) pour l'installer sur mon Ubuntu boîte.

40voto

nos Points 102226

Ma question est pourquoi cet outil n'est pas utilisé/mentionnées plus que ce qu'il est?

C'est probablement en raison de l'histoire, et parce que la façon dont nous, les humains se comportent, en général.

Traditionnellement gcc a été le seul réel (gratuit) compilateur qui peuvent être utilisés pour compiler des programmes C sur au moins tous les libres *nix clones là-bas. C'est ce que pratiquement tout le système de base et le noyau de linux, *BSD, probablement OSX, et d'autres sont compilées avec.

Alors que les défauts sont ici et là, en gros, cela signifie: ccag travaux. Et si elle n'est pas cassé, ne le répare pas. Hors de cela, vous avez maintenant une énorme base d'utilisateurs, il est facile d'obtenir de l'aide avec gcc, il y a beaucoup de gens qui ont utilisé gcc, qui travaillent sur gcc lui-même etc.

Généralement, si vous voulez passer une énorme communauté de quelque chose, ils se sont habitués à quelque chose d'autre, que "quelque chose d'autre" devoir être nettement" mieux. Juste "mieux" n'est souvent pas une raison suffisante. Je pense que vous pouvez trouver des exemples de ce dans de nombreux domaines de la société.

clang est plus récente, certaines personnes vont tout simplement être suspect, si c'est à la tâche, si elle a des bugs, si elle produit plus lente code etc. - il semble être dans la nature humaine d'être méfiant, et de nouvelles choses sont effrayants. Beaucoup ne connaissent même pas à propos de bruit, beaucoup ne le font pas parce qu'ils sont heureux avec gcc.

Cependant, si vous avez plutôt envie d'utiliser clang, allez-y - messages d'erreur sont en effet "mieux" et plus facile à comprendre vs gcc.

10voto

grrussel Points 3315

Le cliquetis de la fin de devant est relativement nouveau. Par exemple, la version 2.8 en octobre 2010 marque l'achèvement de la C++ 98/03 de soutien.

Il semble probable que, avec l'augmentation de la maturité, il y aura une augmentation de l'adoption. Par exemple, il y a le travail en cours sur la fabrication de l'OS FreeBSD (et d'autres BSD OS) construire avec clang, en éliminant la dépendance à l'égard de GCC/G++.

Apple sont en train de pousser la LLVM/clang combinaison. Il semble probable qu'ils cessent de soutenir leurs vieux GCC de la chaîne de la branche (basé sur 4.2) et à se reposer uniquement sur clang outils pour OSX/iOS de développement.

Clang est aussi de voir l'augmentation de l'adoption dans des compilateurs de C-comme langues (p. ex. langage de shader de compilateurs pour OpenCL)

7voto

Marcelo Cantos Points 91211

LLVM a été autour depuis un certain temps, mais - au moins dans mon cou des bois - il a seulement pris de l'importance à très récemment, probablement en raison du fait que Apple a été de pousser fortement de la fin pour remplacer gcc avec Clang dans leur propre outil de la chaîne.

Aussi, je crois que c'est le support du C++ est devenue que récemment production de qualité. EDIT: Il semble qu'il n'est même pas encore. (Voir les commentaires ci-dessous.)

Un autre facteur pourrait être que LLVM est en grande partie soutenu par un fournisseur unique, vers lequel les non-Apple, les développeurs ont une méfiance innée.

6voto

Fred Nurk Points 8927

Ma question est pourquoi cet outil n'est pas utilisé/mentionnées plus que ce qu'il est? Est-ce que c'est donc nouveau par rapport à la usual suspects...

C'est exactement la raison. Il est encore nouveau et à la fonctionnalité de base est toujours activement développé. Rappelez-vous que les projets existants peuvent être faisant usage de compilateur fonctionnalités spécifiques ou utilisant des bibliothèques qui n' – et les développeurs sont, dans tous les cas, la réticence à changer d'outils de travail pour les plus expérimentales qui peuvent avoir des bugs ou des inconnus performance/taille/etc. les compromis, même lorsque les nouveaux outils sont de plus en plus, de mieux en mieux chaque jour.

4voto

haziz Points 1928

Comme un étudiant programmeur, je trouve ça un total aubaine principalement en raison de il est utile et compréhensible des messages d'erreur. Je l'utilise principalement pour la programmation en C, mais je commence à me branche en C++ aussi à l'aide de Clang.

Pourquoi n'est-il pas mentionné de plus, je soupçonne que c'est depuis la GCC a été établi depuis si longtemps, pour la plupart des utilisateurs, c'est LE compilateur. GCC pour moi fonctionne très bien sauf qu'il est extrêmement cryptique les messages d'erreur comme un étudiant ne me jeter hors de tout à fait un peu.

Globalement, je ne conseille vivement de Clang pour une utilisation par les élèves et les développeurs. Puisque que c'est désormais officiel compilateur pour Apple et Xcode, je soupçonne que c'est l'utilisation et la reconnaissance du nom, sera rapidement pick-up. FreeBSD semble avoir aussi adopté comme leur principal compilateur bien que je soupçonne qu'aura moins d'impact sur sa popularité que c'est l'adoption par Apple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X