GLib v APR плюсы и минусы каждого

У меня есть пара хобби-проектов программирования на языке C, которые я хотел бы начать. Я ищу библиотеку с открытым исходным кодом, у которой есть либеральная лицензия (я хочу получить кредит, но практически любой может использовать). Библиотека должна иметь строки лучше, чем стандартная библиотека C и некоторые переносимые примитивы потоковой передачи.

Я рассматриваю GLib и Годовая процентная ставка. Какой у вас практический опыт? Какая базовая библиотека C лучше? Есть ли другие библиотеки, занимающие ту же нишу?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
20
0
6 106
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я бы пошел с APR. APR лучше переносит Unix / Windows (будучи специализированной библиотекой переносимости), GLib традиционно более ориентирован на Unix. APR - это более крупная библиотека, чем GLib, в ней много полезного (хеш-таблицы, парсинг аргументов, файловый ввод-вывод, управление памятью, процедуры с общей памятью, обработка сигналов и т. д.).

Кстати, теперь glib включает gio, который представляет собой переносимый ввод-вывод с потоковой архитектурой. Я бы не подумал, что апр вообще что-то больше, чем бойкий.

lethalman 04.08.2011 00:57

Итак, каково это сегодня? Что больше? И действителен ли этот ответ?

einpoklum 22.12.2013 01:06

Материал libapr намного меньше, чем материал glib / gtk. В этом нет сомнений ..

Friedrich 08.04.2014 17:09
Ответ принят как подходящий

Я думаю, что glib в целом превосходит апр. glib имеет гораздо больше структур данных в виде переносимых библиотек. например, хеш-таблицы, всевозможные списки, очереди, стеки, динамический массив, а также для синтаксического анализа аргументов, файл io также имеет свои собственные оболочки, а управление памятью легко модифицируется. Например, вы можете легко заставить glib использовать Boehm Weisser GC, это AFAIKT никогда не было сделано или легко возможно с Apache. Я бы решил немного иначе. Если вам нужна более полезная библиотека структур данных, лучше подойдет glib. Если говорить о графическом интерфейсе, то в libapr нет ничего, в то время как в glib есть gdk / gtk + и много чего еще для gnome, если хотите.

Однако, если речь идет о сетевых вещах, libapr определенно имеет преимущество перед glib.

Итак, мои предложения

  • Настольное программирование: используйте GTK + и glib.
  • Сетевые вещи: Используйте apr, но будьте уверены, у glib есть все эти портативные вещи.

Есть ли причина, по которой вы не хотели бы использовать C++ stl? Даже если вы пишете код в стиле «c» без классов, вы можете использовать строки и структуру данных C++.

Конечно, есть много веских причин придерживаться C. Если это так, я бы поддержал рекомендацию для glib. APR - это скорее уровень переносимости, чем служебная библиотека.

Говоря о строках C++, я бы порекомендовал вам прочитать, что Линус сказал по этому поводу: thread.gmane.org/gmane.comp.version-control.git/57918

Cristian Ciupitu 17.08.2009 22:52

Да, я согласен, что Линус сделал правильный выбор, выбрав для git чистый C. Используйте то, что подходит вашему проекту и целевой аудитории разработчиков. Строки C++ хороши, особенно для программиста-любителя, как указано на плакате, потому что вам не нужно отслеживать владение и выяснять, когда их освободить (), а автоматическое увеличение делает это, так что вам не нужно беспокоиться о сложных случаях strcat. Конечно, как я уже сказал, «есть много веских причин придерживаться C ...». Используйте то, что работает для вас.

joeld 28.08.2009 04:16

Вопрос был конкретно о кодировании на C, поэтому C++ STL не имеет отношения. (Да, я знаю, что этот комментарий сделан через 5 лет после того, как факт. Парень, эти вопросы и ответы наверняка продолжаются, не так ли?)

einpoklum 22.12.2013 01:07

Другие вопросы по теме