- Reason - C Library
infobox software
name = Reason - C++ Library
latest_release_version = 2.0
latest_release_date =07 February 2007
genre =Application framework
operating_system =Cross-platform
influenced_by = Java
license = [http://creativecommons.org/licenses/GPL/2.0/ GNU General Public License]
website = http://reasoning.info/Reason is an
open source cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers using the C++ programming language. The philosophy and motivation behind Reason is to address the frustration which many developers feel in trying to use a language like like C++. In particular, C++ it is often described as being too difficult to use as it has a much reduced feature set compared to its more modern counterparts which often come complete with comprehensive frameworks including features like filesystems, strings, garbage collection, collections, networking,encryption , xml, and xpath.Hence 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 and usable. So whilst Python is a programming language, it is also a framework.
Despite its shorcomings, and due primarily to its performance and strength, much of the worlds software is still written in either C or C++, and there are good reasons for this.
But there is a lot of software which isn't, simply because people either assume that it is not possible to write maintainable cross platform code in C++, or because the effort required to learn the language and its libraries has been too high.
Reason was designed to deonstrate that when presented appropriately C++ can be just as easy to use and as productive as Java, .Net, or Python.
Design
Reason contains many classes that you would see in other frameworks like Java or .Net as well as many that you wouldn't.
It also includes a comprehensive object hierarchy with its own form of run time type inference. Notably absent are inbuilt C++ rtti and
exception handling . These features assist in making the framework faster and more portable.Classes are separated into major namespaces like System, Structure, Network, and Language. In addition each major namespace has several sub namespaces sometimes by classification like Storage and sometimes by the name of a standard like Xml.
Links
* [http://www.reasoning.info Reason - C++ Library]
* [http://www.boost.org/libs/libraries.htm Boost Libraries]
* [http://www.cs.wustl.edu/~schmidt/ACE-overview.html ACE Overview]
* [http://trolltech.com/products/qt QT - Trolltech]
Wikimedia Foundation. 2010.