crypt of decay - почему cmake делали идиоты, и используют идиоты [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

почему cmake делали идиоты, и используют идиоты [Oct. 19th, 2017|02:23 am]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|]

вкратце, чтобы потом сюда тыкать. мэйкфайлы, которые высирает цмак, всё равно не работают без установленого на машине цмака. при этом абсолютно всю работу, включая определение компиляторов и трекинг зависимостей, делает сам цмак. при этом за каким‐то хуем включает в цепочку абсолютно бесполезное звено make, которое заменяется парой страниц своего кода. бесполезное звено, потому что нагенерёные мэйкфайлы содержат кучу анальной акробатики для показа процентов завершённости сборки (что, очевидно, намного проще реализовывалось бы самим цмаком при выкинутом из процесса make).

вот это называется «cargo cult programming»: «мы тащим make, потому что Белые Бвана собирали make'ом». а если кто‐то вместо разумной инженерии занимается карго‐культом, то он дегенерат, а его софт дерьмо. собственно, всё, на этом рассмотрение цмака можно завершать: его написали дегенераты, а используют дебилы.


p.s.: про остальные системы сборки, которые трекают зависимости сами (а make был сделан исключительно как первобытная трекалка зависимостей), а потом всё равно зовут make, выводы можете сделать без меня — при помощи sed.
Linkmeow!

Comments:
[User Picture]
From:[info]gudrun_fioshev
Date:October 19th, 2017 - 12:16 am
(Link)
unix way это называется. cmake делает makefile ф компилирует более сложная программа make. Можно впихнуть одно в другое, но это против правил. Потому опенсорс и есть до сих пор, что не смешивает компоненты.
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 12:20 am
(Link)
нет, это называется «уебан вэй». unix way — это когда одна утилита для одного действия. цмак — ёбаный комбайн. и мэйкфайлы от цмака всё равно в стандартном режиме не работают без цмака. зато одно действие — сборку — разделили между двумя утилитами, причём безо всякой полезной цели, просто в поддержку карго-культа. именно поэтому авторы цмака — дегенераты.
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 12:24 am
(Link)
p.s.: цмак такое дерьмо именно потому, что его авторы наглухо не понимают, что такое unix way, и когда есть смысл делегировать часть работы внешним утилитам, а когда намного «юниксвейней» будет добавать себе полторы-две страницы кода.
[User Picture]
From:[info]perfect_kiss
Date:October 19th, 2017 - 01:57 am
(Link)
Это не юникс-вей инструмент вообще, если посмотреть историю его появления - у авторов была необходимость обеспечить кучу разношёрстной публики (там всякие лбы из уников со степенями кодили продукт для обработки изображений) системой которая собирала бы их говно на любой платформе, потому и уровень абстракции такой высокий.
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 02:05 am
(Link)
это как раз почти юникс-вэй. просто вас не учат понимать, что такое юникс-вэй, заменяя зачем-то это магическими (и бессмысленными) формулами.

цмак — это инструмент для определения конфигурации системы и сборки софта. вот только он нихуя не умеет собирать — и поэтому он не юникс-вэй. то, что он ёбаный комбайн — никак вообще не мешает ему быть юниксвэйным — потому что задача определения, что в системе есть, достаточно непростая. но он спокойно умеет пользоваться наличными инструментами типа pkg-config, например. нормальная практика. а ненормально в цмаке то, что его насильственно лишили важной части, без которой он как раз и поломал принципе «один инструмент для одной задачи», и стал требовать карго-мэйка для того, что должен уметь делать сам.
[User Picture]
From:[info]perfect_kiss
Date:October 19th, 2017 - 01:15 am
(Link)
у цмака же главная фича, что он из платформонезависимого DSL генерирует билд-скрипты под разные билд-системы вообще, не ? вместо мэйкфайлов можно например Ninja файлы генерить.
Использую цмак несколько лет везде где нужна конпеляция полёт нормальный.
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 01:23 am
(Link)
это у него дегенеративная фича от того, что авторы дегенераты. вот зачем программе, которая сама по себе делает всё, что должна делать билд-система, не уметь, собственно, билдить? а потому что карго-культ, потому что Священные Билдовые Системы трогать нельзя, даже если они торчат как лом в жопе.

что, цмак не умеет файлы читать? да умеет же. не умеет софт вызывать? так у него треть чекеров минимум вызывает компилятор и смотрит на результаты. и вот имея все эти механизмы, цмак внезапно говорит: «да идите нахуй, не буду я их использовать, я вам лучше нагенерю нечеловекочитаемую колбасу для Священной Билд-Системы!»

это называется: «нас учили на инженеров, а получились всё равно дебилы».
[User Picture]
From:[info]perfect_kiss
Date:October 19th, 2017 - 01:52 am
(Link)
да не, удобно просто, и DSL удобный очень, один раз написал и билдится под любую платформу без головняка. но дело вкуса, и привыкнуть к DSL трудно, если до этого не мучали прологом ^__^
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 01:59 am
(Link)
ты прочитай внимательно, из-за чего я называю цмак говном. там ни разу не фигурировал его язык, или прочие фишки. там даже не фигурировал закид про то, что он умеет генерить говнопростыни для других систем сборки. цмак потому делали дегенераты, что они за много лет не смогли его доделать. цмаку не нужны никакие другие сборочные инструменты, вот в этом дело. вообще не нужны. никак. и если бы он не выёбывался, настаивая на включении в цепочку сборки бесполезного карго-культового хлама, то я бы его с говном не мешал.
From:(Anonymous)
Date:October 19th, 2017 - 07:22 am
(Link)
В kitware весьма открытые люди, напиши им письмо, предложи некст степ.

а вобще можешь сам building functionality дописать, и сделать свой branche ( если kitware незааксептит). ketmake!
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 07:37 am
(Link)
>В kitware весьма открытые люди, напиши им письмо
мне неинтересно.

>можешь сам building functionality дописать
мне вдвойне неинтересно, у меня есть k8jam.
From:(Anonymous)
Date:October 19th, 2017 - 01:43 pm
(Link)
>у меня есть k8jam
сколько человек им пользуються?
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 07:56 pm
(Link)
пошёл нахуй, уебан.
From:(Anonymous)
Date:October 19th, 2017 - 08:14 am
(Link)
Ты не понимаешь сути CMake. Он не для таких как ты написан. Ты 32-битная линукс-чмонька и ничего дальше своего петушиного угла не видел.
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 08:16 am
(Link)
пошёл нахуй, уебан.
From:(Anonymous)
Date:October 19th, 2017 - 08:53 am
(Link)
Тупо подъебнуть лжр-юзера ketmar это же местное guilty pleasure. Вы всегда разражаетесь в ответ очередной дико пафосной и злобной филлипикой (sic!), а я чувствую, будто отнял у вас последнюю конфету.
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 09:06 am
(Link)
пошёл нахуй, уебан.
From:(Anonymous)
Date:October 19th, 2017 - 02:32 pm
(Link)
Кетмар, но подожди, ты неправ!

Цмаке он же писался как фронтенд к РАЗНЫМ билд-системам, и не только make. Он умеет выплёвывать проекты visual studio, например, и ещё какую-то херню.

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

Хотя цмак всё равно так себе: overengineered и с кучей нюансов под капотом.

/ЧД/
[User Picture]
From:[info]ketmar
Date:October 19th, 2017 - 07:57 pm
(Link)
>фронтенд к популярным билд-системам
…который делает всё, что делает весьма навороченая билд-система, но не умеет билдить. ты не видишь тут ничего… странного?
From:(Anonymous)
Date:October 20th, 2017 - 09:05 am
(Link)
Я вижу лишь то, что разработчики цмака могли бы впилить свой кастомный бекенд и таким образом перебить все остальные билд-системы. Типа "я не только могу выдать тебе скрипты для твой любимой билд-системы / проект для твоей IDE, но и сам умею собирать!".

В отсутствии же такого бекенда я ничего _катастрофического_ не вижу, потому что это не делает цмак менее корявым.

Если ты об этом, то ок.

/ЧД/
[User Picture]
From:[info]ketmar
Date:October 20th, 2017 - 09:07 am
(Link)
это показатель киза в голове разработчиков. а если в голове у разработчика насрано, то и продукт получается коричневый да вонючий. тыкание носом в эту хуйню просто самый простой способ пояснить, почему цмак — говно.
From:(Anonymous)
Date:October 24th, 2017 - 07:02 am
(Link)
Последнее время все чаще слышно про meson, как вам оно?
[User Picture]
From:[info]ketmar
Date:October 24th, 2017 - 07:29 am
(Link)
абсолютно не интересовался и не собираюсь: оно ещё какое‐то дерьмо требует, а это уже на два дерьма больше, чем я согласен ставить.