Development Roadmap for SIMPOL Developer Kit
Subject
This document lays out the high-level development roadmap for the next-generation Superbase replacement product line, which includes: SIMPOL Developer Kit, SIMPOL Desktop, SIMPOLBase Database Engine, the SIMPOL programming language, SIMPOL Mobile, and other planned products. The objective in publishing this roadmap is to help clarify to the prospective SIMPOL user, who may well be an existing Superbase user, what is planned for future releases of SIMPOL and how they can continue to move forward from their existing Superbase-based system into a new and exciting product line that will help them develop and enhance their own solutions and future plans in a reasonably familiar yet more sophisticated and future-oriented way. It is also intended to encourage a healthy discussion of features that the community would like to see in a Superbase replacement product line as well as to discuss in which order these features should be added.
Where Do We Stand Today?
SIMPOL is a fully realized and highly powerful language that has been in production use for over 4 years. Although it is undergoing continual development to produce a fully ready first release, it is ready for use now. SIMPOL Developer Kit and SIMPOL Desktop are still being built, but a number of customers have been working with the product and contributing useful feedback to the development team for more than a year now, and the idea of a phased migration for existing Superbase applications is a viable approach that is being proven by those customers. Starting with the database engine and a conversion of the Superbase application to PPCS, and then by building all new modules (where possible) in SIMPOL and gradually replacing existing modules with SIMPOL, these customers are taking the necessary steps to rebuild their products while enjoying the benefits of the move to SIMPOL as they do so.
Much of SIMPOL Developer Kit and SIMPOL Desktop are done. What remains is in sight for delivery. There is now a ways to interactively create and modify database tables, hosted by SIMPOL Desktop (an application written in SIMPOL). The Form Designer is also hosted by SIMPOL Desktop and provides a basis for the creation and modification of forms. The only significant components still missing are the Detail Block and data-aware grid, and these will be along shortly. Also already under development and working internally is a report engine and query optimizer, which supports a subset of the SQL92 query language for writing queries. The report engine will be in a forthcoming release of the SIMPOL Developer Kit Pre-Release. We are also preparing to add ODBC client functionality to SIMPOL, so that integration with existing database can be done. Eventually, we will also add direct connectors for the most popular databases.
What Will Be in the First Release?
Logically many might assume that a next generation Superbase replacement product would have every capability that was found in Superbase Classic. That is unrealistic, however, since SIMPOL Developer Kit 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, SIMPOL Developer Kit will include features that are needed for modern applications but may not have every feature that Superbase Classic had. The following is a list of some of the highlights of the coming SIMPOL Developer Kit release.
Development Environment
- 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.
- Editor supports color coding and editing of SIMPOL source files, SBL source files (*.sbp) both text and tokenized, XML, XSL, HTML, C, C++, IDL, C#, JavaScript, VB, and VB Script. It also supports reading and editing of binary files.
- 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 a Windows NT-based OS, 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).
Design Tools
Although some are still on the drawing board, since they will be built in SIMPOL and as a result will also be cross-platform, the following tools are planned to be part of an initial release.
- Database Table Creation and Modification Tool (done)
- Form Designer with modes for display and print forms (usable, not done)
- Report Designer with support for varying output formats (Print Preview, HTML, printer, …) (PDF may be added in a later release) (not done)
- Record View (done)
- Table View (not done)
Components
This area will undoubtedly be revised several times as we progress. The components that we will deliver with the product have not been finalized and greatly depend on the perceived needs of the Superbase community. The ones that will absolutely be included are marked with an asterisk. Every component listed may or may not be available at the time of release. Our expectation is to provide a regular flow of components and improvements over time, rather than use the all or nothing approach of typical software development.
- *Windows, dialogs and forms
- *SQL support
- *Form controls: textbox, label, pushbutton, checkbox, optionbutton, listbox, combobox, grid, tree, tab panel
- *Menus, popup menus, toolbars
- *SBME single-user database engine
- *PPSR SBME multi-user PPCS server engine
- *TCP/IP socket client and server
- *Data-aware forms
- *XML-based file format for forms, reports, menus, and toolbars
- *CGI, ISAPI, and FastCGI loader programs for web server applications
- *DLL/shared library calls
- *Call external programs
- *Volatile database tables
- *Report Engine and Query Optimizer
- OLE2 Automation, ActiveX hosting
- Rich text control, tree list control, check list control, spin button, gauge, slider, standalone scrollbar control, OpenGL canvas, bitmap canvas, and other wxWidgets-based controls
- COM port support
- DDE client/server support
- SSL support for TCP/IP sockets
- UDP/IP client and server
- Java Native Interface access to Java classes
- SOAP component for interaction with web services and .NET
- Tool set for creating cross-platform HTML Help
Things Probably to 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.
- Unfinished items from first list
- Compile SIMPOL to Java byte code with SIMPOL helper classes
- Compile SIMPOL to the CLI (Microsoft's interim layer for .NET)
- Wrapper for the Scintilla library to provide a cross-platform code editor
- More controls from the wxWidgets collection
- Docking window and toolbar library using wxAUI
- Business graphics module, possibly using OpenGL canvas
- SIMPOL-based cross-platform installation system