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.0 has been released and is a fully realized and highly powerful language that has been in production use for over 5 years. It is undergoing continual development and we will be making quarterly releases of the product to customers that have the annual software maintenance agreement. The first two quarterly releases will be provided to all who purchase the product, as a taster for what is to come, and for being early adopters of this exciting new product line.

A number of customers have been working with pre-release versions of the product and contributing useful feedback to the development team for more than three years 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.

The initial release of SIMPOL Professional and SIMPOL Personal contain a number of important features, that we will build upon in the coming quarterly releases. There is now a tool to interactively create and modify database tables, hosted by SIMPOL Personal (an application written in SIMPOL). 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, and these will be made read/write and detail blocks will be added over the next two quarterly releases. 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, though this is not yet part of the released product, 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 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 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, bitmap, bitmap button, scrollbar, line, rectangle, triangle, arc, ellipse
  • 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
  • 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

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.

  • OLE2 Automation(done internally)
  • Tab panel, tree control
  • Print Form Designer
  • Graphical Report Designer and output
  • Most recently used functionality and configuration for SIMPOL Personal
  • 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.

On September 28th, 2009 Simpol Limited released the second quarterly update of SIMPOL Professional.

Read more...