- Details
- Written by David Nichols
- Parent Category: FAQs
- Last Updated: 22 January 2013
- Created: 05 May 2007
The basic idea behind Qore is to solve a difficult problem once in a generic way (in C++), and provide an elegant interface to the solution in the high-level language, thus making hard to solve problems simple.
The areas Qore targets are interfacing, database integration, threading (and SMP scalability) and embedding (and arbitrarily restricting) code. Qore is also a dynamically-typed language to facilitate rapid prototyping and development (particularly regarding agile programming, disposable interfaces, etc). To my knowledge there is no other programming language with this design focus.
You can get a feeling for this aspect of Qore's design when programming with Qore's database-independent DBI infrastructure (through the Datasource, DatasourcePool, and SQLStatement classes), Qore's XML and JSON modules (where XML and JSON strings and qore data structures can be converted from one to the other), easy use of the Socket class and classes provided by modules providing messaging integration, etc.
To make Qore a powerful and useful language in its own right, I've tried to borrow features from other languages where I thought they enhanced Qore - some from C++, a lot from perl, some from Java, even some from the D programming language.
Qore started off as an experiment and a fun project but has grown to be much more, and I hope it proves useful for a lot of other people as well.