Pull to refresh

Reason — кроссплатформенный С++ фреймворк

Reading time2 min
Views560
Начну с описания проблемы. При написании приложений на С++ некоторую сложность для начинающих разработчиков может представлять отсутствие стандартных классов для работы со строками, файлами, коллекциями, сетью и выполнения других простых операций. Конечно, есть WinAPI, Standard Library, CRT, MFC, ATL, но они достаточно сложны в использованиии.

К примеру, в серьезных коммерческих проектах считывать файлы с помощью прямых вызовов функции WinAPI СreateFile/ReadFile/CloseFile без создания классовых оберток сложно, и вообщем то неправильно. Другой пример, работа со строками, СRT — неудобно: буферы, незащищенный код. std::string — довольно неполон: отсутствуют такие часто используемые операции как например trim, split. Поэтому многие разработчики в каждом новом проекте пишут собственные классы/обертки для выполнения простых операций.



Reason — кросс-платформенная библиотека С++ классов, предоставляющая удобные средства для работы со многими нужными практически в любом проекте объектами:

  • Strings
  • Files/Folders
  • Smart Pointers
  • Collectons: Array, List, Map, HashTable, Tree, Set, Stack
  • XML/XPath
  • Regular Expressions
  • Threads
  • Events, Delegates
  • Sql


Упомянул не все, остальные возможности можно увидеть на странице разработчика и посмотрев в исходный код. Все классы удобно сгруппированы по пространствам имен. Документация к библиотеке отсутствует, но классы библиотеки хорошо спроектированы и имеют очень удобный интерфейс, поэтому как мне кажется проблем с ее применением возникнуть не должно. Бесплатна для некоммерческого использования(GNU GPL), для исползования в коммерческих проектах нужно получить коммерческую лицензию.

Ну и мои личные впечатления: понравился как написан код, мне близок подход к программированию применяемый автором. Уже подсмотрел у него интересный шаблонный метод реализации делегатов/событий, сам бы долго думал пожалуй.

Еще впечатлила мысль автора Reason:
«When a lot of developers talk about why one language is better than another, they are really comparing frameworks. The language defines the syntax and the compiler, but it is the frameworks which make a language mainstream.»
Tags:
Hubs:
Total votes 16: ↑4 and ↓12-8
Comments3

Articles