Тысяча и одна библиотека С++

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
9,420
Реакции
1,547
Credits
32,892
Автор Для просмотра ссылки Войди или Зарегистрируйся
photo_2024-08-15_14-06-53.jpg
В жизни каждого программиста С++ рано или поздно возникает задача, которую кто-либо уже решил. Однако найти это решение бывает очень непросто в силу разных причин: оно недостаточно разрекламировано, либо имеет нечеткую документацию, или возникает проблема языкового барьера, ну, или поисковики просто плохо ищут).

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из Для просмотра ссылки Войди или Зарегистрируйся. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Суть и смысл моей работы
Когда я в первый раз задался целью найти какой-нибудь единый, толковый справочник по открытым библиотекам языка С++, оказалось, что это не очень просто. К примеру, далеко не все поисковики (не будем показывать пальцем) корректно обрабатывали запрос «библиотеки C++» или «список библиотек C++». В общем, закономерно я всё же вышел на 3 основных источника:
В общем, список от Фараза Фаллахи мне показался наиболее полным и толковым. Его я взял за базу. Я довольно быстро понял, как именно наполнялся этот список и в чем минусы такого наполнения. Раскрою их.
  1. Человек (Фараз Фаллахи или кто-от еще) находил очередную библиотеку на Github, потом в большинстве случаев просто копировал секцию «About», какой бы текст в ней не находился. К примеру, там могла находиться только расшифровка акронима, и более ничего: «ETL - Embedded Template Library». Если потом разработчик библиотеки менял секцию «About», то автоматически это не отражалось в списке библиотек. Какой текст попал когда-то в первый раз, тот и остался навсегда.
  2. Тот, кто писал найденную библиотеку, вполне мог не очень вкладываться в описание (англоязычное) своей библиотеки. Хотя бы потому, что он мог не знать, что она, библиотека, «выстрелит» и войдет в чей-то список. Он мог быть не англоязычным. Также человек мог невольно сделать такое описание к собственной библиотеке, которое не очень понятно тому, кто не в теме предметной области. Да и тому, кто в теме, не всегда понятно. К примеру, в этом списке я видел библиотеки от китайцев, индийцев, японцев, в описание которых я довольно долго вчитывался, пытаясь понять, что именно они сделали. Бывало, что их терминология сильно отличалась от той, к которой я привык (например, в плане математики).
  3. Библиотеки из списка никогда (или почти никогда) не удалялись, не делалась подчистка сильно устаревших и неактуальных библиотек. К примеру, я встречал библиотеки 15-20 давности, которые реализовывали умные указатели.
  4. Разделы списка были отсортированы по алфавитному принципу (на английском языке). В итоге близкие по смыслу библиотеки попадали в разные разделы, и они были отделены друг от друга многими десятками страниц текста. Было сложно найти похожие, альтернативные библиотеки.
Несмотря на изложенные минусы наполнения этого списка библиотек, все же уверенно можно сказать, что этот список от Фараза Фаллахи - очень достойный и толковый справочник, кстати, родом из Персии. Я загорелся желанием его улучшить и донести до русскоязычных читателей. Думаю, они имеют на это право.

В общем, моя работа заключалась в следующем.
  1. Сделать черновой перевод списка. Да, я не брезговал и машинным переводом, из него 70 процентов пошло в мусорку, но все же часть работы он мне сократил.
  2. Разобраться в сути библиотек и написать свой, авторский текст. Я писал его всегда, когда мне было непонятно, зачем вообще нужна библиотека, какое у нее содержание и чем она отличается от других. Не всегда возможно отличить две библиотеки, которые, скажем, писались для замены STL, но я, по крайней мере, пытался (в других случаях, не в этом). Поясняющий текст я писал, ориентируясь в основном на подробное описание библиотеки на Github, но не только.
  3. Выкинуть совсем устаревшие, не способные кому-то быть полезными библиотеки. Я выкинул их не так много, старался делать это очень аккуратно, не перегибая палку. Это чужой труд в прошлом.
  4. Изменить сортировку разделов. Я отказался от принципа сортировки разделов по алфавиту. Вместо этого стал сортировать по смысловому принципу: близкие по смыслу разделы располагаются рядом. Ни один из разделов я не выкинул и не добавил (хотя руки чесались, но из уважения к Фаразу…). Внутри разделов принцип сортировки по алфавиту я сохранил. Как сохранил и указание лицензии после описания библиотеки (в квадратных скобках).

Разделы​

Для просмотра ссылки Войди или Зарегистрируйся