.. _pages/introduction/about#about:

About
=====

qooxdoo (pronounced ['kuksdu:]) is a universal JavaScript framework that enables you to create applications for a wide range of platforms. With its object-oriented programming model you build rich, interactive applications (RIAs), native-like apps for mobile devices, traditional web applications or even applications to run outside the browser. 

You leverage its integrated tool chain to develop and deploy applications of any scale, while taking advantage of a comprehensive feature set and a state-of-the-art GUI toolkit. qooxdoo is open source under liberal `licenses <http://qooxdoo.org/license>`_, run by one of the world's leading web hosts `1&1 <http://qooxdoo.org/project/developers#initiator_and_maintainer>`_, with a vibrant `community <http://qooxdoo.org/community>`_.

.. _pages/introduction/about#framework:

Framework
---------

The core of qooxdoo is entirely class-based and tries to leverage the features of object-oriented JavaScript. It is largely based on namespaces to allow for easy integration with other libraries and existing user code. Most :ref:`modern browsers <pages/desktop/requirements#client>` are supported (e.g. Firefox, Internet Explorer, Opera, Safari, Chrome). It comes with a `comprehensive API reference <http://api.qooxdoo.org>`_ that is auto-generated from Javadoc-like comments. The fast and complete JavaScript parser not only allows documentation generation but is an integral part of the automatic build process that makes optimizing, compressing, linking and deployment of custom applications very user-friendly. Internationalization and localization of applications for various countries and languages is a core feature and easy to use.  :doc:`More ... <features>`


.. _pages/introduction/about#desktop:

GUI Toolkit
-----------

Despite being a pure JavaScript framework, qooxdoo is quite on par with GUI toolkits like Qt or  SWT when it comes to advanced yet easy to implement user interfaces. It offers a full-blown set of widgets that are hardly distinguishable from elements of native desktop applications. Full built-in support for keyboard navigation, focus and tab handling and drag & drop is provided. Dimensions can be specified as static, auto-sizing, stretching, percentage, weighted flex or min/max, or even as combinations of those. All widgets are based on powerful and flexible layout managers which are a key to many of the advanced layout capabilities. Interface description is done programmatically in JavaScript for maximum performance.

No HTML has to be used and augmented to define the interface. The qooxdoo developer does not even have to know CSS to `style the interface <http://qooxdoo.org/docs/general/styling_without_css_know-how>`_. Clean and easy-to-configure themes for appearance, colors, borders, fonts and icons allow for a full-fledged styling.

.. _pages/introduction/about#ajax:

Communication
-------------

While being a client-side and server-agnostic solution, the qooxdoo project includes different communication facilities, and supports low-level XMLHttpRequests (XHR) as well as an RPC API. An abstract transport layer supports queues, timeouts and implementations via XHR, Iframes and Scripts. Like the rest of qooxdoo it fully supports event-based programming which greatly simplifies asynchronous communication.

.. _pages/introduction/about#more_information:

More Information (online)
-------------------------

There is `more information <http://qooxdoo.org/project>`_ available about the project on the project's home page.
