The selection of the tools we use has been driven by the objectives we intend to achieve for our clients. The images shown here demonstrate one of those objectives. In the last two decades of the 1900's workstations with graphic user interfaces (windows) came to dominate the business workplace. Software development tools had to play in this environment. The images are from a program written around 2010 which runs natively in the then three most common desktops.
  The advent of the readily available Internet in the first decade of the 21st century opened an era in which business software continues to evolve. In the following decade, a new kid on the block, Android, usurped the number one position worldwide in installed computer operating systems.
  The tools below were selected to address these varied challenges.

Three categories of tools

Desktop Order Entry

  Over two decades of developing software first on text based terminals then using RAD's (Rapid Application Devvelopment tools) led to our using Qt. RAD's allow less capable programmers to create programs fairly efficiently. But RAD's have several shortcomings. Their programs are functionally constrained to the limitations of their interpreter. And they are costly to implement. Interpreted programs tend to run slower though on today's workstations this is not usually an issue.
  Version 4 of Qt included a Designer tool which rivaled the functionality of the RAD's. The limitations of the RAD's were eliminated by Qt's programming language support described below. Qt also supports cross platform functionality. Most business workstations run Microsoft Windows. But with Qt, offices with multiple desktop technologies can share a single application. See the Vendor Maintenance screens above. As they are compiled, not interpreted, programs there are no third party runtime licenses. And with Qt one can develop on Linux workstations.
  Qt5 addresses mobile devices changing the landscape. Compare the Desktop Order Entry screen above to the Mobile version shown on the Applications page. Both are written in Qt. The mobile version runs on Android. Initially the mobile frontends were programmed differently than desktop frontends. The W-4 program, however, is an example of a desktop program written using mobile frontend programming. Qt6, expected by 2021, is intended to end any differences.

Programming Languages
C++, QML, HTML, CSS, Javascript

  The main programming language used with Qt is C++. Qt includes a design tool, Qt Creator, and a huge library of components. These allow efficiently creating a draft version of an application. Then C++ is used to extend and/or modify the application. Components used in creating screens and reports support the use of HTML and CSS programming to supplement C++.
  QML is an extension of Qt adding a mark up language similar to that used in mobile programming such as webpage programming. Mobile programming languages do not have the range or depth of components that desktop programming languages have developed. Qt6 is intended to close that gap. QML supports the use of Javascript to utilize funtionality unique to mobile devices.
  Significant to Qt is that QML and C++ are not separate entities. In the W-4 program the user interface is written in QML. However, the tax calculations are C++ code taken from the desktop payroll program. And while it could be distributed as an Android app, the download is a compiled Windows program since it is expected to be used mainly by PC users. The next decade is expected to see the continued convergence of desktop and mobile applications.

MySQL, SQL Server, MariaDB, SQLite

  The backend refers to where the programs store their data. For several decades business data has mostly been stored in SQL databases. Conecomp's applications are designed to be database agnostic. The frontends and programming work with any backend. If you survey the Internet for the most installations of any database by developers, MySQL and SQL Server consistently show as first and second. The flagship product of MySQL's owner, Oracle, the Oracle database, may be the largest monetararily and in processed transactions. But it is rarely used in small businesses. Interestingly, the homepage for SQLite claims to have over one trillion active installations, making it the undisputed king by count.
   Unless specifically requested otherwise, most of Conecomp's applications are developed using MySQL. The Coal Delivery program has installations using MySQL and installations using SQL Server. One installation changed from MySQL to SQL Server when the home office consolidated their remote operations. MariaDB is an open source drop in replacement for MySQL. Switching from one to the other requires no changes. Changing to or from either of those to SQL Server requires no changes in the frontend or programming but some minor changes in the database calls.
  SQLite is used mainly for mobile apps. The mobile order entry program shown under Applications uses SQLite. It exchanges data with a corporate MySQL database. An application may not use a database backend. The W-4 program, while is uses the tax calculations from desktop payroll, does not use any database. The limited data tables it needs are stored within the programming language.