LINUX.ORG.RU

gcc vs clang

 , ,


0

2

При прочих равных, какой компилятор вы выберете и почему?

Важно 1: если вы разработчик ядра, то выбор очевиден, условие прочих равных не работает.

Важно 2: варианта «всё равно» нет, постарайтесь задать себе этот вопрос и найти на него ответ.

Важно 3: если у вас FreeBSD, то отвечать не надо. Опрос пользователям Linux.

Причины выбора оставляем в комментариях.

  1. gcc 360 (73%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. clang 130 (27%)

    *******************************************************************************************************************

Всего голосов: 490



Проверено: Satori ()
Последнее исправление: a1batross (всего исправлений: 1)

Свободный. То есть clang.

Важно 3: если у вас FreeBSD, то отвечать не надо. Опрос пользователям Linux.

Ну у меня где-то в виртуалках стоит Linux… хоть я им и не пользуюсь.

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)

При прочих равных

Свою трактовку понятия «прочие равные», ТС, конечно же, раскрывать не будет.

kalihacker
()

если у вас FreeBSD, то отвечать не надо. Опрос пользователям Linux.

А у меня и то и то. Да и вообще, почему какая дискриминация? Компиляторы одинаково работают на этих системах.

Выберу gcc, конечно, если опрос подтвердят.

firkax ★★★★★
()
Ответ на: комментарий от kalihacker

Наверно это значит что принуждения сверху нет, или ещё каких-то похожих причин безальтернативно выбрать один из вариантов.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Это не дискриминация. Из FreeBSD gcc был старательно выпилен и заменен на clang. Так что по умолчанию считаем, что у большинства пользователей фри clang.

untitl3d
() автор топика
Ответ на: комментарий от untitl3d

Ты пишешь ерунду. Да, к сожалению они перевели базовую систему на clang, но установить gcc вручную всегда можно одной командой: ``` pkg install gcc ``` (что я и делаю у себя теперь).

В линуксах, думаю, аналогичная ситуация в обратную сторону: по дефолту везде gcc, но в пакетах есть и clang.

Так что выпилили неболее старательно чем clang из линукса, и не надо всем пользователям фрибсд приписывать стадный инстинкт идти за этим.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Из линукса clang не выпиливали (у меня на убунту по дефолту стоят оба), а из фри гцц выпиливали. Ерунды здесь нет. И выпиливали его не только по религиозным/политическим причинам, а в том числе и по многочисленным просьбам сообщества.

Расскажешь, зачем ты во фре делаешь pkg install gcc?

untitl3d
() автор топика
Ответ на: комментарий от untitl3d

Из линукса clang не выпиливали (у меня на убунту по дефолту стоят оба)

Может ты его поставил и забыл? Или ставил что-то ещё и оно его зависимостью привезло? Ну да, не выпиливали, его там никогда по дефолту не было в мэйнстримных дистрах.

а из фри гцц выпиливали

Из базовой системы фри. В линуксах обычно вообще нет такого понятия как базовая система - неоткуда выпиливать.

И выпиливали его не только по религиозным/политическим причинам

Именно по ним.

а в том числе и по многочисленным просьбам сообщества.

Чушь.

Расскажешь, зачем ты во фре делаешь pkg install gcc?

Затем что мне нужен нормальный компилятор.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Спасибо за мнение.

Затем что мне нужен нормальный компилятор.

Цель данного опроса как раз определить, чем один нормальнее другого. Так что не стесняйся ;-)

untitl3d
() автор топика

lcc

Ибо учение — свет!

А так gcc там где его можно запустить, а где нельзя использую Turbo C, Bruce C, и ACK.

luke ★★★★★
()

gcc поскольку привычнее.

И выходя за рамки вопроса потому что в нем есть фортран а в llvm с этим пока что странно.

Slackware_user ★★★★★
()
Ответ на: комментарий от Slackware_user

В 13й версии они доделали драйвер на основе clang, т.е. теперь для генерации машинного кода не нужен gfortran.

А так gcc шустрее clang и с ним больше софта собирается.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)

варианта «всё равно» нет, посторайтесь задать себе этот вопрос и найти на него ответ.

Хороший способ запороть значимость результатов опроса

goingUp ★★★★★
()

gcc просто потому что привычнее и он собирает кучу софта, ну еще и потому что fortran.

snake266 ★★
()

clang + mold linker.
gcc хорош и оптимизирует шикарно, но в его кодовой базе сам чёрт ногу сломит.

devl547 ★★★★★
()

Свободный от копирастов, то есть gcc

TheAnonymous ★★★★★
()

clang

Разработчик: Apple и другие 😁 Ну ты понял.

chenbr0
()

если вы разработчик ядра, то выбор очевиден, условие прочих равных не работает.

Clang что ли?

a1batross ★★★★★
()

Clang. Потому что для разработки он (и llvm) гораздо удобнее.

hateyoufeel ★★★★★
()

clang конечно же. Новые фичи языка в нём и libc++ появляются раньше, оптимизирует он лучше, работает быстрее, кросскомпилятор по умолчанию, полноценные санитайзеры, имеет единую экосистему инструментария (lld, lldb), есть по умолчанию везде (потому что от llvm сейчас зависит всё, от mesa до firefox). Ну и не гнушный шлак, конечно же.

slovazap ★★★★★
()

clang

Потому что один компилятор подо всё что нужно.

Stil ★★★★★
()

gcc, потому что.

erfea ★★★★★
()

Пользуюсь FreeBSD. Выбираю GCC, потому что выбор есть.

iZEN ★★★★★
()
Ответ на: комментарий от slovazap

Новые фичи языка в нём и libc++ появляются раньше

Раньше, но позже чем у MS и GCC.

оптимизирует он лучше

Хуже.

работает быстрее

Компилирует дольше.

кросскомпилятор по умолчанию

Платформ поддерживает меньше.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)

Выбираю компилятор, а не движок автодополнения.

MOPKOBKA ★★★★
()

Дурацкий опрос. Например легко придумать «прочие равные», в которых прошлогодний gcc < любой свежий clang < уберсвежий gcc. Не выпендривайся в следующий раз, добавь нормальные «когда как», «вот вообще пофигу» и «что это, командочки»?

t184256 ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Раньше, но позже чем у MS и GCC

Ладно, по производительности между gcc и clang различия во многом на уровне погрешности, в конкретных случаях могут быть как в одну так и в другую сторону, можно допустить что выборка у вас маленькая и вам просто не повезло (на большой выборке превосходство clang давно доказал Яндекс и перешёл на него полностью). Но вот сморозить что у MS фичи появляются раньше - это посто за гранью, верный признак того что вы просто ненавидите clang по религиозным причинам. Непрофессионально и просто мерзко, фу.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Но вот сморозить что у MS фичи появляются раньше - это посто за гранью, верный признак того что вы просто ненавидите clang по религиозным причинам

Да ладно?. К сожалению, в последнее время clang сильно отстает.

Siborgium ★★★★★
()

Clang

Уж больно он хорошо хакается и разбирается на запчасти, из которых можно потом годноту для себя делать. Легально-огороженный GCC в этом отношении расстраивает.

aist1 ★★★
()

GCC. GNU, классика, лицензия.

И нежелание класть яйца в одну корзину: очевидно, что корпорации при прочих равных будут ставить на clang, а я хочу, чтобы выбор оставался. А не так, как с браузерами, где при номинально живом Firefox выбор браузера становится выбором между клонами хрома. Тим Бернерс-Ли не за это воевал. :)

Поэтому пока есть возможность — сижу на gcc. Clang использовал при сборке DoubleContact под макось: там clang шёл бандлом к Qt. :)

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от t184256

Лор на тебя плохо влияет, дружище. В последнее время все больше желчи. Или это пандемия тебя так?

untitl3d
() автор топика
Ответ на: комментарий от hobbit

А не так, как с браузерами, где при номинально живом Firefox выбор браузера становится выбором между клонами хрома.

При этом настоящая-то проблема Хрома не в том, что он один, а в том, что вся разработка под контролем Гугла. И этот контроль выглядит с каждым днём всё меньше оглядывающимся на стандарты (см. ситуацию с QUIC).

Насколько я понимаю внесение нестандартных фич гораздо больше распространено у GCC. Поэтому с точки зрения админа я бы предпочёл чтобы люди писали с использованием clang - это вероятнее даёт выбор компилятора при установке. А как только разработчик использовал расширения языка из GCC - при установке становится можно использовать только GCC.

Scondo
()
Ответ на: комментарий от untitl3d

В первое время я вообще только читал, много лет, потом был робким школьником и думал, что тут взрослые умные люди, которые шарят в линукс и просто так случайно вышло, что сейчас они с матюками обсуждают коров.

Последние лет 5 я хожу на ЛОР чисто по инерции, потому что в создание типичной темы ТСами вкладывается от силы секунд 15 умственной деятельности, а в обычном комменте болтается так и того меньше. Исключения редки, разве что матюков стало меньше. В итоге на ЛОР я хожу в основном за «а кто сегодня как затупил? топ-3 поцитирую жене, поржем».

Создавайте треды с умом и про линукс, будет меньше желчи.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)

При прочих равных я выберу не-GNU софт, т.е. clang.

cocucka ★★★★☆
()

если вы разработчик ядра, то выбор очевиден

Вообще-то оно уже давно умеет собираться clangом, включая lto и прочие выигрыши в производительности.

xDShot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.