Плюсы и минусы GLib v APR каждого [закрыто]
-
08-07-2019 - |
Вопрос
У меня есть пара хобби-проектов по программированию на языке C, которые я хотел бы начать.Я ищу библиотеку с открытым исходным кодом, имеющую либеральную лицензию (мне нужны кредиты, но использовать ее может практически каждый).Библиотека должна иметь строки лучше, чем стандартная библиотека C, и некоторые переносимые примитивы потоков.
я рассматриваю GLib и АПРЕЛЬ.Каков ваш практический опыт?Какая базовая библиотека C лучше?Есть ли другие библиотеки, занимающие ту же нишу?
Решение
Я думаю, что glib в целом превосходит apr.В glib имеется гораздо больше структур данных в виде переносимых библиотек.например, хэш-таблицы, все виды списков, очереди, стеки, динамические массивы, а также для анализа аргументов, файл io также имеет свои собственные оболочки, а управление памятью легко модифицируется.Например, вы можете легко заставить glib использовать GC Boehm Weisser, это AFAIKT никогда не делалось или это было легко возможно с Apache.Я бы решил немного иначе.Если вам нужна более полезная библиотека структур данных, лучше подойдет glib.Если говорить о графическом интерфейсе, то в libapr нет ничего, тогда как в glib есть gdk/gtk+ и много чего для gnome, если хотите.
Однако, если дело касается сети, libapr определенно имеет преимущество перед glib.
Итак, мои предложения
- Настольное программирование:Используйте GTK+ и glib.
- Сетевые вещи:Используйте apr, но будьте уверены, что в glib тоже есть все эти портативные вещи.
Другие советы
Я бы пошел с APR. APR лучше справляется с переносимостью Unix / Windows (будучи выделенной библиотекой переносимости), GLib традиционно более ориентирована на Unix. APR - это более крупная библиотека, чем GLib, с множеством полезных вещей (хеш-таблицы, разбор аргументов, файловый ввод-вывод, управление памятью, процедуры совместной памяти, обработка сигналов и т. Д.).
Есть ли причина, по которой вы не хотели бы использовать c ++ stl? Даже если вы пишете "c-style" код без классов, вы можете использовать строки C ++ и структуру данных.
Конечно, есть много веских причин придерживаться C. Если это так, я бы поддержал рекомендацию для glib. APR - это скорее уровень переносимости, чем библиотека утилит.