This document lays out the high-level development roadmap for the Superbase Next Generation (NG) product line, which includes: Superbase NG (currently SIMPOL Professional), Superbase NG Personal (currently SIMPOL Personal), Superbase NG Server (currently SIMPOL Server), and the SIMPOL programming language, and other planned products and new target platforms. The objective in publishing this roadmap is to help clarify to existing and prospective Superbase (and SIMPOL) users, what is planned for future releases of Superbase and the SIMPOL programming language, and how they can continue to move forward with their development plans, either from their existing pre-SIMPOL Superbase-based system or an existing SIMPOL-based one. Superbase NG is a new and exciting product line that will you develop and enhance your own solutions and future projects in a reasonably familiar yet more sophisticated and future-oriented way. This document is also intended to encourage a healthy discussion of features that the community would like to see in the new Superbase NG product line as well as to discuss in which order these features should be added.
Where Do We Stand Today?
SIMPOL Professional v1.83 has been released (Superbase NG 2.0 is currently under development) and is a fully realized and highly powerful language that has been in production use for over 12 years. The development platform is undergoing continual refinement and we make regular releases of the product to customers that own the existing product. We will be adding moving to an annual software maintenance arrangement with the release of Superbase NG 2.0.
For more than five (8) years now a number of customers have been gradually converting their legacy Superbase systems to the new SIMPOL-based package and contributing useful feedback to the development team, proving that a phased migration for existing Superbase applications is a viable approach – though many choose to redesign and do a single final conversion, depending on the size of the project. A typical conversion starts by converting the databases to the new Superbase Micro Engine format and sharing them using the SIMPOL-based database server. Then the existing Superbase application is converted to use PPCS for database access. At that point, both the legacy Superbase system and the newer SIMPOL-based programming can share the same database. Finally the gradual conversion of old modules into SIMPOL and when possible the creation of all new modules in SIMPOL allows these customers to take the necessary steps to rebuild their products while enjoying the benefits of the move to Superbase NG and SIMPOL as they do so.
The current releases of SIMPOL Professional and SIMPOL Personal contain a number of important features, that are the basis for new database-oriented projects and Superbase conversions. SIMPOL Personal (an application written in SIMPOL) includes a number of tools, including: a tool to interactively create and modify database tables, a Form Designer for display and print forms as well as for the creation of labels, a Quick Report engine which supports a significant subset of the SQL92 query language for writing queries with a user-interface for the creation of simple reports that can be sent to a window, the printer, the clipboard, a text or HTML file, and even output as a CSV file, plus a label layout tool for the creation and running of labels that supports a number of standard layout formats. Data-aware grids (read-only) are in the current revision of the data-aware form library, as are read-only detail blocks (including linked child detail blocks and both linked and unlinked detail blocks).
SIMPOL as a development environment comes with an application framework that greatly simplifies the work of building a solid single- or multi-user program that can be shipped with our runtime environment. There are a large number of libraries (many already built into the application framework) including features such as: ODBC access (on Windows), SMTP email, retrieval of HTTP-based resources, timers, quick report, graphical report, and labels engines, file system interaction, OLE2 (on Windows) and various dialogs for searching, selecting, receiving user input, etc. and much more.
Currently we are making changes to the system so that we can target any Linux platform, including using other processors such as the ARM 11, used in many smart phones and by products such as the Raspberry Pi.
What is in the Current Release?
Logically many might assume that Superbase NG would have every capability that was found in Superbase Classic. That is unrealistic, however, since Superbase NG is a complete rewrite of the product with goals such as easy cross-platform (including handheld) development, whereas Superbase Classic was the culmination of over 15 years of development to meet the then-current needs of its customers and with a strong requirement for backwards compatibility. As such, Superbase NG includes features that are needed for modern applications but does not have every feature that Superbase Classic had. The following is a list of some of the highlights of the current Superbase NG (SIMPOL Professional) release.
- Modern, powerful, integrated development environment
- Intellisense-like integrated popup help for built-in and user-defined functions and types
- Powerful, state-of-the-art debugging facilities, including:
- Breakpoints, breakpoint manager, conditional breakpoints, thread-specific breakpoints
- Variable and object inspection and modification
- Step, step in, step over, step out
- Ability to import project to debug inside included libraries
- Source-level debugging of web application programs using local web server.
- Color-coding editor, including template expansion and completion
- Numerous project utilities, including a directory-level dependency evaluation and build tool, project documentation, output of source as color-coded HTML, and much more.
- Modern tabbed interface in the editor with project management, cross-file find, stack trace, watch window, and type view window.
- The editor allows itself to be run in full screen mode to maximize the space available when editing.
- Documents can be edited using various end-of-line characters (and normally preserves them, though they can be modified to any of the supported ones), including CR + LF (DOS/Windows), LF (Linux, Unix, Mac OS-X), and CR (Mac OS-9 and earlier).
- If running on Windows XP or later, the editor also supports ANSI, Unicode, and UTF-8 encoding for documents.
- The built-in code profiler can help identify where the code is spending most of its time with a complete breakdown by function.
- The project settings area allows the definition of include directories, and included external libraries, the definition of additional build targets so that each time a project builds it can automatically build a copy into a test directory (handy for web server applications or for adding libraries into a common library directory).
- Database Table Creation and Modification Tool
- Form Designer with modes for display, print, and label forms
- Label Designer with support for many standard layouts
- Quick Report Designer with support for varying output formats (Print Preview, printer, and text file, …)
- Record View
- Table View
- Import/Export functionality
These items are currently included in the components shipped with Superbase NG (SIMPOL Professional).
- Windows, dialogs and forms
- Form controls: textbox, label, pushbutton, checkbox, optionbutton, listbox, combobox, grid, datagrid, bitmap, bitmap button, scrollbar, line, rectangle, triangle, arc, ellipse, detail block
- Menus, popup menus, toolbars
- SBME single-user database engine
- PPSR SBME multi-user PPCS server engine
- TCP/IP socket client and server
- Data-aware display and print forms
- XML-based file format for display and print forms, label definitions, quick reports and graphical reports
- CGI, ISAPI, and FastCGI loader programs for web server applications
- DLL/shared library calls
- Call external programs
- Volatile database tables
- Low-level report engine and query optimizer
- Most recently used (MRU) functionality and configuration for SIMPOL Personal (uses the mrulib library)
- OLE2 Automation
- Quick Report, Graphical Report, and Labels engines, with saving and loading (front end for Graphical Reports is coming in v2)
- Record and Table view libraries with field list (view) functionality, which can also be used in packages based on the application framework
Things that May Be in Future Releases
It is an unfortunate reality that it is sometimes simply not possible to build everything into a product that you think you might need, even though it is possible to see the need well in advance. Also, it is not usually a good idea to delay a product unnecessarily to add some feature that may only meet the needs of a small percentage of the potential users. So some things are also currently on the future planning lists. Some of the items in the list below are certainly going to go into the product, others may not. Much depends on the needs of the customers, and whether adding any given feature will enhance our appeal to more users.
These are in a rough order, with items towards the top more likely to be seen sooner.
- Graphical Report Designer
- Docking window and tool bar library using wxAUI
- COM port support
- USB port support
- ActiveX hosting
- DDE client/server support
- SSL support for TCP/IP sockets
- UDP/IP client and server
- Tab panel, tree control
- Java Native Interface access to Java classes
- SOAP component for interaction with web services and .NET
- Tool set for creating cross-platform HTML Help
- Tab panel, Rich text control, tree control, tree list control, check list control, spin button, gauge, slider, OpenGL canvas, bitmap canvas, HTML Help window, and other wxWidgets-based controls
- Wrapper for the Scintilla library to provide a cross-platform code editor
- Business graphics module, possibly using OpenGL canvas
- SIMPOL-based cross-platform installation system
Customer Feedback and Participation
If you have a specific missing feature that you need in order to produce your solution, then please let us know. Your needs can’t influence our planning if we are unaware of them. Also, if you have a specific need that we aren’t currently addressing, contact us and we may be able to accommodate it. Most importantly, if we are missing one or two features currently, but otherwise you could build your solution or port your product, let us know, so we can help you get started and plan that work on our side so that it is ready when you are. Don’t delay the whole project for one or two features! Most major projects and conversions take quite a while, so waiting is not a good choice.