Development Roadmap

Subject

This document lays out the high-level development roadmap for the next-generation Superbase replacement product line, which includes: SIMPOL Professional, SIMPOL Personal, SIMPOL Server, 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 projects 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 Professional v1.5 has been released and is a fully realized and highly powerful language that has been in production use for over 8 years. It is undergoing continual development and we make regular releases of the product to customers that have the annual software maintenance agreement.

For more than five (5) years now a number of customers have been gradually converting their Superbase systems to SIMPOL and contributing useful feedback to the development team, proving that a phased migration for existing Superbase applications is a viable approach. 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.

The current releases of SIMPOL Professional and SIMPOL Personal contain a number of important features, that we will build upon in the coming maintenance releases. SIMPOL Personal (an application written in SIMPOL) includes a tool to interactively create and modify database tables. The Form Designer is also hosted by SIMPOL Personal and provides a basis for the creation and modification of forms. Data-aware grids (read-only) are in the current revision of the data-aware form library, as are read-only detail blocks. Also included in SIMPOL Personal is a report engine and query optimizer, which supports a significant subset of the SQL92 query language for writing queries and a report front-end for this system. We have also added ODBC client functionality to SIMPOL, and the component for that will be part of the next release, so that integration with existing databases can be done. Eventually, we will also add direct connectors for the most popular databases.

What is in the Current 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 Professional 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 Professional 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 SIMPOL Professional 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

  • Database Table Creation and Modification Tool
  • Form Designer with modes for display forms
  • Report Designer with support for varying output formats (Print Preview, printer, and text file, …)
  • Record View
  • Import/Export functionality

Components

These items are currently included in the components shipped with 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 forms
  • 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
  • Most recently used functionality and configuration for SIMPOL Personal
  • OLE2 Automation
  • Quick Report and Graphical Report engines, with saving and loading (front end is coming)

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.

  • Tab panel, tree control
  • Print Form Designer
  • Graphical Report Designer and output
  • Field List ability to limit record view, and import/export tools
  • Table View
  • Docking window and toolbar 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
  • 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
  • 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
  • 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 accomodate 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.