FlagShip supports both the procedural and OOP (object oriented) programming models. But don't worry. You do not need to be a C++ programmer to be able to use and understand it.
If you're only familiar with procedural programming, you don't need to learn anything about OOP at all. You'll be able to create complex applications by using the same powerful commands and functions that you know from dBase, Clipper of FoxPro.
The main advantage of OOP is the encapsulation of code and data away from the rest of the application, i.e. the ability to create independent "black boxes" made up of the code and data -- which are not influenced by the rest of the application.
OOP programming in FlagShip is similar to C++ and Class(y), and is fully compatible with Clipper and Visual Objects (VO).
There are already predefined classes for GET, TBrowse, Error, DbServer. You may simply instantiate them via the usual syntax, e.g. oMyVar := GetNew (...) or oMyVar := Get {....} In addition to Clipper's subclasses, you may also create your own subclasses by inheriting the default, predefined classes.
There is full support for user defined objects and classes (OOP), inheritable, using the simple VO syntax. The usage is simple, without any learning curve. See this short example for details.
You will find additional detailed descriptions and examples in the FlagShip manual (both on-line and in hardcopy format.)