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.
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.
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++.
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.
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.