March 07, 2020

Small introduction into the Kexi software

The amount of tutorials about the Kexi-project is very low. The official forum has around 200 postings, and even youtube provides less than 5 videos about the topic. At the same time, there is a need for an Open Source desktop database, and Kexi is one of the most promising examples in that direction. The sad news for the beginning is, that the project is in early stadium. It can be called an alpha version which doesn't provide anything. Even MS-Access 2.0 has more features to offer and this program was realized 25 years ago.

But it makes no sense to be too critical. Because all the advanced existing database applications are close source projects and so called web databases on top of PHP and Ajax are very complicated to use and can't replace a desktop database. So i'd like to introduce Kexi to the newbies with some screenshots and explain what the developers have programmed so far.

The program is available in Fedora and Debian as well. According to the official description its an “integrated database environment for the Calligra Suite” and an “visual database applications builder” [1] The program has only a small size. The kexi sourcecode consists of 150k lines of code which is around 4 MB for the program.



The main menu looks exactly like a small project. The user is asked to create tables, forms and reports. The menu bar on top of the screen have no purpose, all the features have to do with tables, forms and reports. At first the user can create a new table. I have done so and the table stores the firstname and the last name of fictional students. Additional a primary key was defined which is incremented in the auto mode.



In the next screen the form editor is shown. Which is a minimalist one. There are some widgets available which can be dropped with the mouse into the form The most important one is the text field which holds the data of the underlying table. The data source can be provided right the properties menu. In contrast to the Gambas software (which is a visual basic clone) the connection between the database table and the form is working great. The user is able to see the data in the form.



The last item in the list is the report generator. This module has less features than the minimalist form generator but the user is able to create simple reports. He can drag and drop text fields, specify the underlying data source and with the printing driver of the Linux operating system it's possible to create a pdf document.



More features are not available. The official Kexi handbook explains mostly what is missing in the project and indeed the software is in an early stage. But compared to other software open source projects, Kexi is my personal favorite. It has to two main advantages. First one is, that the project is going into the right direction. The project goal is to program in C++ and integrated database software which contains of tables, forms, reports and scripting features. The second advantage is, that the code written so far is stable and the user can create a small but working database.

Let us make a simple thought experiment. Suppose enough manpower is provided for this project, and the amount of codelines grows by the factor 10 from today 150k to 1.5 million. Additionally some example .kexi files are provided and the forum gets more traffic. The prediction is, that Kexi will become one of the most interesting Open Source projects since decades. The reason is, that the normal user can do a lot of things with a database RAD tool. The options are endless. If such a software is programmed as open source with open standards in mind it can change the software industry.

I would guess that the next milestone for the project is to bring kexi on the same level like the outdated MS-access 2.0 software. I would guess that today kexi provides around 20% of the features from Access 2.0. Most of the interesting features are missing. But from a technical perspective it's possible to improve the software.

Importing CSV

Under the tab “external data” the user can import existing csv data. I have tested out the feature with an example csv file. [2] It works great. The csv file is converted into a kexi table.

disadvantages

Some major problems are visible with the software. The first one is, that after clicking with the right mouse button on a table and select “Export table as csv” the kexi program crashes without warning. It's not possible to export the table at all. This makes it hard to use the data for external purposes. The second problem is, that kexi has some preinstalled plugins which includes an sqlite driver, but it's not possible to connect to a sql lite database.

It's not clear what exactly the reason is why the important features are not working, but suppose the connection to a sqlite database works, and suppose the export filter gets improved, then the normal user would be able to use Kexi for some smaller databases. It has some advantages over LibreOffice calc to create a dedicated database, and create queries with the SQL language. As far as i can see the sourcecode is available so it would be possible either to contribute to the existing kexi project or fork the project and start a clone.

sources

[1] Debian kexi package, https://packages.debian.org/search?keywords=kexi

[2] CSV sample data, https://people.sc.fsu.edu/~jburkardt/data/csv/csv.html

Building a minimalist database from scratch

From a historic point of view, many database management system were developed over the years: dbase was used in the 1980s, MS-Access in the early 1990s, since the 2000s MS-Access used in combination with SQL server and since 2010 the situation has become very complex, because many companies are experimenting with Java, Linux, C# and PHP.

The idea is to throw away everything and reinvent a database from scratch with Open Source software. A good starting point is the sqlite software which is available out of the box in all Linux distributions. The problem is, that sqlite is only a small part of an overall database management system. To make things more comfortable a middle layer and a frontend is needed:

backend sqlite -> middleware python -> frontend python

Programming a python frontend is not very complicated. It has to do with drawing windows on the screen the wxwidget library and add some animations plus sounds to make the game more pleasant. The more complicated part is the middleware. To introduce the business logic layer we have to analyze who to interact with a normal sqlite database.

Suppose the user has started the python3 interpreter and is connected to the sqlite database. What the user can do is to submit an SQL statement. He has to type in the SQL request into the command line and gets the feedback from the database. A naive assumption is that the interaction can be improved with the help of a GUI frontend. On the longrun not a GUI frontend is needed but a middlelayer. A business layer is working on the textual layer and allows the user to enter high level textual commands. Instead of typing in:

SELECT * FROM Customers WHERE First_Name='John'

The user enters the command:

middleware.showcustomer(“john”)

The mdidleware program code converts the high level statement into low level SQL commands which are submitted to the sqlite database. The interesting point is, that no GUI interface is needed and the user can interact with the database very comfortable.

REST middleware is the future of databases

The common database application in the 1990s was based on the backend frontend philosophy. The SQL server from Microsoft was used as a backend and the MS-access database is realizing the frontend. The disadvantage is, that most of the logic is located in the frontend. The answer to the problem is to introduce a new layer called middleware.

Microsoft has invented the .net C# platform which is directed towards this goal. But the term middleware can be realized with other programming languages as well. A famous one is Javascript which can be used for creating RESTful middleware api. To understand how this is realized in reality, we have to take a look at outdated MS-Access applications.

The idea is, that the user is pressing graphical buttons and this activates tasks in the software. THe better alternative is to provide a textual interface. Bascially spoken, the programmer has the obligation to convert an existing MS-access application into a text-only interface. This text-only interface is the REST API. Programming a graphical interface on top of an existing REST API is very easy.

The REST specification has become popular in web-oriented development. But is Javascript needed for classical desktop databases? Suppose the tables are stored in a sqlite database. The SQLlite database can't be called a middleware, but it's equal to the backend. Also the SQL language is located on the backend. What is needed an additional layer ontop of SQLlite. This middleware layer can be realized with python. The python software doesn't display the GUI interface for the user, but it connects an existing GUI with the SQLlite database.

sqlite -> python middleware -> python GUI

In the context of REST, the term business logic layer describes the middleware. Let us investigate how REST is working internally. REST means, that the methods of a Javascript class are mapped to external function calls. It has much in common with a programming library API which is realized with the HTTP interface. Suppose the idea is to program a desktop database but not a web-database. What is needed here is a Python library.

The python library contains of 100 lines of code, which has one class and can be imported from another python program. The python middlelayer connects two layers:

sqlite -> python middleware -> python frontend

The communication between python program1 and program2 is realized with the normal function calls. In the python frontend the functions of the middleware are called with:

import middleware

middleware.updatedate()

March 06, 2020

Linux can replace MS-Access

The main reason why Linux struggles on the desktop and especially on the desktop in the business world is because Linux developers didn't listen carefully what business users are trying to do with a computer. The most important software used on PC in a company isn't the LaTeX software, it's not Python and it's not the webbrowser. All of these programs are running great in Linux but the average business user has no need for such software. What the user need instead is MS-Access, MS-Access and nothing else but MS-Access.

The first step to bring Linux on the desktop of companies is to abstract a bit from the user needs and describe in detail what the mentioned software from Microsoft is doing and why it is so important. The main issue why computers are used in the business world is to store and retrieve table-related data, for example inventory lists, product lists, customer lists, accounting tables and so on. 90% of the IT infrastructure in the business world has to do with database management, and GUIs for database management software. The reason why the MS-Access software has become so popular is because it consists of two things:

- a database engine known as the Jet Engine
- a Rapid Application Development software in which the normal user can create forms, reports, views and macros

The combination of both fulfills the needs in the business reality great. The next step is to ask what the Open Source replacement will look like. The good news is, that the technology is available but it's not documented well enough. The database engine can be realized with sqlite and the Rapid application development software can be found under the name Gambas basic.

Let us describe the details of an open source MS-access clone. A single sqlite file stores the data of many database tables. The information is created and updated with sql statements. Sqlite is a very powerful software which is used for anything. The main problem is, that on the command line it's hard to interact with the tool. To make the life easier a rapid application development software is needed. This is a program which allows to create multi document interface applications. That is a single application in which different windows are opened at the same time. For example three tables, plus 2 forms. The Gambas IDE https://en.wikipedia.org/wiki/Gambas was initiated in 1999 and provides such graphical environment. Very similar to MS-Access, Foxpro and other database frontends the user is allowed to create forms and reports. And all the windows are connected to an underlying Sqlite database. Some examples projects have shown, that in theory the combination of Sqlite plus gambas is able to replace MS-Access databases in a business context.

To understand why desktop databases are used everywhere in a business context it's important to analyze the workflow of creating new software in a business context. In context to classical programming project a business software is never written in C++ or in Python. It would take too long to program 20 forms in this language. And normal text oriented programming languages are not flexible enough to change an existing layout. What business users are prefering instead are non-programming options to create applications which has to do with MS-Excel sheets and Visual basic layout software.

These non-classical programming system are ignored by classical programmers. It has nothing to do with programming language development but it's called a rapid application development system. A rad tool is some kind of painting software for creating lots of windows, and in the second step the window buttons are connected with macros. The concept was realized first in the MS-Access software, but many other MS-Windows programs are available for this need.

From a technical point of view it's possible to realize a rad tool in Linux with Open Source as well. It's only a question how many manpower is provided to create such software. The Gambas tool is on the same level like early versions of MS-Access it allows to create smaller business applications and for most purposes this fulfills the needs of the user.

What is missing are documentation and practical examples in which gambas is used in the real world. The amount of literature in which MS-windows based databases were created in the past is much higher. Linux in general and RAD tools for business application in detail are a very new development. In theory this will increase the market share of Linux massive. The reason is, that apart from creating GUI-database, the average business user has no further needs. If a software or an operating system fulfills this single task, the user is happy. He will use the application all the time, and he will recommend it to other.

Dive into Gambas3

After installing the software package the user can create forms. The software has much in common with visual basic. After doubleclicking on a button it's possible to enter basic sourcecode which opens new forms. Creating a complex GUI with different windows and tabs is pretty easy with gambas and some youtube tutorials are explaining the details.

The bottleneck is to establish a database connection. In theory the user has to create a connection first, then a datasource widget is created in a form and then a databrowser will display the content of the sqlite database in the form. The problem is, that it doesn't work. THere is an error message: connection can't be established and the help section has no answer to it.

It seems that Gambas is in an early development status. But the assumption is, that the databse connectivity will work in future versions and apart from Gambas there are similar projects started. One of them Camelot RAD which is a RAD tool around the python language. The idea is similar to Gambas because the user has to create forms and puts some glue code into the application.



sqlite and RAD tools

Let us describe the picture in general. What is available in Linux is the database backend. The user can create a single file in the sqlite format which holds all the tables. sqlite meets without problems every requirement. What is missing is a rad tool for developing forms and reports ontop of an existing sqlite database. Existing projects like gambas, Openoffice base and Camelot RAD are in an early development stage. They are working in theory but it's to early to recommend them as alternative to MS-access.

Suppose the team behind the gambas project is improving the database connection. Then this tool will be used very often in a business context. What the user can do today is to create GUI prototype application.

From an abstract point of view, the key requirement for business application is a RAD tool which allows to create forms, reports which are connected to an underlying sqlite database. In the context of web development the missing RAD tool isn't a problem, because with PHP it's possible to output HTML code. But if somebody likes to create a desktop application he needs such a tool. Programming all the forms in Python with the tkinter framework won't work. It will take too much time. The prediction is, that in 5 years from today a fully working RAD tool is available as Open Source which is using a sqlite database as backend. Such a tool will motivate many million of users to switch to the Linux operating system as their main desktop environment. A desktop database is the missing piece of software to make Open Source a success.

March 05, 2020

Making LInux compatible with MS-Access

The main reason why Linux has struggled on the desktop PC of companies is because of a single program, which is MS-Access. This single program has top priority for companies but it has a low priority with the Open Source ecosystem. A naive approach to adress the issue is to recommend to replace existing MS-access database with modern backend databases. Under Linux operating systems it can be realized with mysql for the server and PHP as a frontend programming language.

Unfurtunately, this advice works not very good in reality. Converting existing MS-access database into PHP scripts which are displayed in the browser is equal to start a large scale software project. It will take million of manhours and will costs million of US$. No company in the world is rich enough in doing so. And what the users are doing instead is not to use Linux in general and stay on the well known MS-Windows plus MS-Access software.

Suppose a company doesn't has existing .mdb files on the harddrive but they need the computer only for browsing in the internet, write some python scripts and create LibreOffice textfiles. Then it's pretty easy to switch from the Windows 10 operating system to a modern Debian Linux system. The problem is, that in reality, the average company has a need for a desktop database.

There is an Open Source software available which can maybe adress the problem. It's called mdbtool and was started 15 years ago. MDBtools is a software for reading existing Microsoft Access databases. https://github.com/brianb/mdbtools/tree/master/doc The format is outdated because the current format is called ACCDB and mdbtool can't write in the format. But the tool goes into the right direction. Suppose the software is improved a bit. The idea is not to create a database with Linux, but the idea is, that the real need is to read and write the MDB fileformat. In theory, this will help to bring LInux to the desktop.

Let us go a step back and analyze why the LibreOffice suite is a good replacement for existing Microsoft Office software. Because the tool is able to open and write in the same file format. If the user has any Word document he can open the file easily with Libreoffice. For the MS-Access software such a converter isn't available. Instead the normal Linux user is asked to write and read from different file formats like json, csv files and mysql databases. But these formats are different from the existing one. The MS-access fileformat is too important for the desktop PC to ignore it.

Is Microsoft's strong position on the desktop overestimated?

Microsoft Windows is known as the leading desktop operating system. It has a market share of around 90%. This ratio was stable over the last 20 years. Even if the Linux software has become more powerful and the Internet is widespread used, the only thing which seems certain is, that Microsoft is the leading software company in the world.

Perhaps it make sense to describe the current situation more objective and ask what Microsoft stands for. There are some elements available if somebody is using Microsoft products. At first the user will buy some books about Microsoft software. He has to buy 10-20 of them each is sold for 40 US$ in the hard cover version. For example from the oreilly publisher.

The second step is, that the user needs the software itself. Which includes the WIndows 10 operating system, the Office 365 suite, the visual studio suite, the SQL server, webserver and additional programs like Photoshop. The license fee for all these software cost a lot of money. It is more than 1000 US$ for all these programs combined.

The third step is very important. The typical Microsoft user has no experience with Linux based operating system. He is prefering Microsoft products because he doesn't like Open Source software in general, and isn't motivated to install Ubuntu or Arch Linux on his PC.

And now comes the question: Does this behavior makes any sort of sense? It's a behavior in which a user has to buy hardcover books, has to spend money for software licenses and isn't familiar with Open Source. It will produce only sense if the future is working with this principle too. But this future is not available in the reality. All of the behavior which results into a Microsoft centric software ecosystem is outdated.

It's true that according to the latest statistics the Microsoft desktop operating system has a market share of 90%, but the underlying behavior to replicate such a ratio isn't ready for the future. It's some kind of look back into the past of computing before electronic documents were invented and before Linux distribution were created.

The assumption is that the importance of Microsoft and the ecosystem around Microsoft is overestimated. That means, it has reached the peak and what we will see next is some kind longterm decline. The best example from the real world are printed newspaper. They are not able to produce sense, especially not for future needs. A while ago, Microsoft has increased the price for the Office 365. The reason why is unclear and especially a new generation of users are asking why the software isn't available as an app for only 2.99 US$. And they are asking what is wrong with Libreoffice if the software provides the same feature without any license fee. Such a question makes sense because Libreoffice and Microsoft Office has the same power. The only reason why MS-Office is used so often is because of historical reasons.

Perhaps it makes sense to go a step backward and see Microsoft as part of a more complex media evolution. What can be described on the long run is a transition from classical media like newspapers, radio, television and books towards modern media located in the internet. Similar to Microsoft the classical media didn't disappear they are all avalable for today's audience. The New york times is sold at the kiosk, the FM radio television is transmitted in the air, and most households have book shelf. But all these media have lost their sense making capabilities. It's not possible to explain to a newbie why these media are important anymore. There are modern media which are cheaper and more powerful. The switch from old media to modern media will take some years.

The logical consquence is about asking how many decades it will need if Microsoft has lost the position on the desktop and Linux has won the market. Will it take 10 years, 20 years or more? According to a report [1] the open source market will grow to a volume of 66 billion US$ in 2026. The attempt to predict the future sounds a bit like a forecast the development of the printed newspaper.

What is important is not to compare Linux with Microsoft on detail questions, for example to analyze if the ext4 filesystem is 10% faster than the NTFS filesystem but the problem should be analyzed from the perspective of media studies. That means by the ecosystem around the Windows 10 operating system and the ecosystem whic depends on the Linux kernel.

[1] https://www.verifiedmarketresearch.com/product/open-source-services-market/

March 03, 2020

The Windows operating system in the context of media history

The only group who is discussing the pros and cons of different operating systems are Linux users. They are interested in examine the difference between the ext4 and the NTFS filesystem and they are asking why Linux on the desktop never was a success. The average Windows user doesn't has such problems. He is using a computer not with a technical background but he is interested to playback multimedia software. The operating system needed to run edutainment software is never seletected by the user but by the producer of the CD-ROM.

The trick is to see operating systems not from a computing perspective but as media history. The standard users is entering a store and buys a game. For example a vocabulary trainer to improve the English skills. On the CD-ROM box there is written that this game needs the Windows 8 operating system. The user has this operating system so the product is compatible. He buys the product and use it at home.

The reason why million of normal users have decided for the Windows operating system but not for Linux is because they are attending a discourse in which Windows based edutainment software plays an important role. They are consuming a certain sort of educational information. In contrast, Linux users are attending a different sort of game which is working with a different bias.

The LInux operating system can be interpreted as a media artifact as well. A media technology is some kind of dialoque about something. In case of Linux the dialogue is driven from a producer perspective. The idea is to create computer programs and content under a GPL license and the Linux community is discussing about the details of this plan. The media dialogue around WIndows multimedia CD-ROMs is based on a different goal. Here is the idea that the user gets amused and can relax by buying a CD-ROM. Windows software is seen as the logical step after the invention of the music CD and home entertainment products.

media history

The advantage of the term “Media history” is, that it describes a large amount of different communication technologies from the past. Well known mass media are journals and books. But board games, video, television and radio can be defined as media history too.

The perhaps surprising fact is, that software can be defined as media history as well. An intro for the Commodore 64 is not only pure computer code written in the assembly language but it has a social context. The intro is produced and consumed with a certain purpose. The same is obvious for classical media artifacts. A printed newspaper doesn't contains only of the printed paper itself, but a newspaper has a producer and a consumer who are repeating a certain behavior during the interaction with each other.

One interesting point in comparing operating systems like Windows and Linux against each other is, that in most cases these technology are not interpreted as media technology but are described from their own understanding. That means, Linux is explained a software which was written in C and Windows is also a software product written in C. This point of view ignored the context why Linux or Windows is used by a large amount of users.

Instead of focussing on the Windows operating system itself, which is distributed under the brand name Windows 10 and is stored on a DVD, the more elaborated perspective is to focus on the media products which are based on this operating system. This is equal to the software sold in stores and consumed by a larger audience. Windows based multimedia software was the first computer based media artifact. It has become popular in the early 1990s. Describing the transition towards WIndows based multimedia CD-ROMs helps to understand what the Windows operating system is about.

Before the advent of the Microsoft dominated PC the media history contains of music CDs, VHS video casette, printed newspapers and colored books. VHS video and the music CDs was an electronic media format because it requires electric current while a printed newspaper doesn't need electricity. With the advent of the IBM PC plus the Microsoft operating system in the 1990s a new sort of media has become visible. It was called software which was running on computer systems. In the beginning software was distributed on 3.5 inch floppy discs later the CD-ROM was invented. Around this computer technology new sort of media publishing companies are built from scratch. Their buisness model was to use the computer for distributing media to the consumer.

A software publishing house, which is producing a CD-ROM for the WIndows 98 operating system can't be called a computer company but it's at foremost a media company. Instead of using printed paper, they are using the Windows 98 system calls to create an electronic book. The advantage of the Windows ecosystem is, that it's working with a classic understanding of media. At first the WIndows PC is standardized. Secondly the content is produced by media publishing houses.

It make sense to see the Linux ecosystem as an anti pattern to Windows based multimedia publishing. Linux is based on two idea: First the idea is to boycott the existing Windows programming standard but provide a Unix API. Secondly the idea is that anybody can become a producer and media is generated without a copyright.

The reason why Linux based operating system never become popular on the desktop is because this understanding of media is way to advanced. From the self-understanding of the Open Source community they are trying to overcome the existing Windows driven media production cycle. And this kind of goal is a very demanding one. It's too much for most of the consumers who are focussed on classical media production.

Let us describe the pipeline of classical WIndows based multimedia CD Rom production. The idea in the 1990s was that a commercial company simliar to a newspaper company is producing a CD-ROM, and this product is sold in the computer store to thousands of consumer for a fixed price. Bascially spoken a multimedia CD-ROM is an electronic book. Which means, it's copyright protected and was produced by experts on this field who are doing it in a commercial context.

A Linux user would argue that this kind of media artifact is obsolete. It has a lot of problems and Linux is the answer to overcome this outdated understanding of a multimedia CD-ROM. The question is what is the alternative to a Windows based edutainment CD-ROM? The alternative is called the Internet. A website is some kind of CD-ROM which is shown on the desktop PC. It's not wonder that Internet centric computer systems like Android smartphones and Google chromebook has become very popular. It's not enough to describe only the underlying operating system which is the Linux kernel, but the more interesting description is based on the ecosystem around this technology. An Google chromebook is used to display websites on the screen which are created with Javascript, HTML5, the PDF format and with H.264 videos. The normal user isn't focussed on the Linux kernel but he is interested in these websites. The interesting point is, that a website which is displayed on a Google chromebook is programmed different from classical Windows based multimedia CD-ROM.

Similar to windows based software, a website has to be programmed, but the programming langauges and the standards are different. What is different two is the pricing model. Most websites are available without any costs but are sponsered with advertaisment. From a media history perspective, the Internet is the logical next step after Windows based CD-ROMs. The prediction is, that Windows operating system and the ecosystem around it will disappear while Internet based technology will become more important.

Let us listen to Linux advocates why they are rejecting the Windows operating system at all. The main reason is, that they are not following the price model of commercial CD-ROM multimedia products. The reason is located in the information explosion. In the early 1990s the amount of media products was small. In the local computer store the total amount of CD-ROM was smaller than 100. How many websites exists in the year 2020? Right millions of them. It's not possible to burn all these websites on CD-ROM and distribute it for 5 US$ each to the consumer. Nobody has the storage space to collect hundred of CD-ROMs. That means, Microsoft based content production isn't compatible to the information explosion. And the consequence is, that it will fail. Or it has failed in the past but similar to the printed newspaper it's sold as long as possible to the consumer.

Multimedia

The term multimedia was introduced in the mid 1990s and describes a desktop computer which is equipped with colored monitor, graphics card, cd-rom drive and sound card. It's interesting to know, that the pipeline for producing content was focussed on the Microsoft operating system. That means, 99.9% of all Multimedia CD-ROMs since the 1990s are Microsoft Windows compatible. That means, the Microsoft multimedia PC was a playback platform for commercial media producers.

With the advent of the Internet the situation has changed drastically. The webbrowser has replaced the former Microsoft PC and every device which can display a website is a multimedia PC. The result was, that Android smartphones, Mac OS X PC and Linux PCs can be seen as a multimedia PC as well. From the consumer perspective there is no need to ask if the consumer has a Microsoft PC but the smallest common standard is, that he has access to a webbrowser.

What we say today is some kind of transitition from old digital media to internet media. WIndows multimedia CD-ROMs are sold, at the same time the consumer is paying for commercal internet based content and he has access to free content in the internet as well. The most important breakthrough after the Microsoft Windows operating system was the google search engine. It has become to a standard used by the world, no matter which sort of computer system they own. The interesting feature of Google is, that it's not a certain programming language or a software framework but it's some kind of online library which collects information.

The Windows NT workstations in the 1990s

The term “unix workstation” is a well known under computer experts. It describes powerful single user computers in the 1980s which are looking similar to today's PC. The only difference is, that Unix workstations were available very early before the advent of the internet.

Between a Unix workstation for example a SUN sparcstation and modern PCs since the 2000s there was a step in between. A “Windows NT” Workstation was a combination between cheap PC hardware and a modern operating system which is working with graphical windows. Windows NT workstation were much cheaper than unix workstation because it was running on mainstream hardware. On the other hand it has supported powerful features like OpenGL, networking and object oriented programming.

Compared to Unix workstation a windows NT workstation has a major disadvantage. It's not open source software and it's not Unix. On the other hand it was used more often than Unix workstations. The reason is, that the technology of Microsoft plus Intel wsa cheaper than the technology of Sun and Unix. Windows NT workstation were sold next to normal home computers. The software and hardware was available in the same store like an Amiga 500 computer and the MS-DOS operating system. In contrast, the world of Unix workstation was some kind of esoteric computer system which has it's root in mainframe computers sold for millions of US$.

The difference between Windows NT and Unix has to do with different underlying hardware. Consumer hardware is equal to the PC, which means that it was an Intel CPU, a harddrive and cheap monitors. The standard operating system for consumer PC hardware was always provided by Microsoft. Since the 1980s it was the only software which was widespread used. Microsoft has developed different kind of operating systems which were addressed to different underlying hardware. MS-DOS was an operating system for low end PC, Windows 3.0 was adressed to mid range PC and Windows NT was an operating system for high-end PCs.

The shared similarity of all intel/AMD PC was it's low price. It was sold to single users and small companies in a large amount of volumes. From a formal perspective a low end Unix workstation and a high end Windows NT PC have much in common. They are sold for the same price and they have the same features. The difference between them is located in the history of computing. The mainstream user was familiar with PC technology and PC Software, so he decided to buy a Windows NT workstation but not a Unix workstation. While computer professionals were familiar with Mainframe systems from IBM so they have decided for Unix workstations.

This look back into the history is important because the conflict between IBM hardware and PC hardware is available today. Technically it's possible to install a Linux operating system on a cheap consumer PC, but nobody is doing so. Because the perception of Linux workstations is, that they are the same like Unix workstation which are very expensive. It's a bit paradox, but the mainstream user is preferring Windows 10 over Linux because Windows 10 is cheaper. Or at least, it was cheaper in the past.

On the other hand, a Linux PC has become the de facto standard for computer experts who are familiar with mainframe computers. A linux workstation is only a smaller version of a large IBM mainframe system. It was designed for handling high workload and it's known for it's reliability. Bascially spoken, Linux is the modern form of the IBM OS/2 system, while Windows 10 is a modern version of MS-DOS.

Comparing prices

The reason why Unix workstation were not successful in the early 1990s was it's high price. The average Unix workstation had a price of 20k US$ for the hardware plus more US$ for the commercial Unix software. Now let us take a look what Microsoft is selling to their customers. On the home page some prices are provided what it will cost to equip a workstation with software:

• Office 365 home version, 99 US$ per year

• Microsoft Visual Studio 2019, 600 US$ for a licence

• Windows 10 professional , 160 US$

• Microsoft SQL Server Standard 2019, 1000 US$

• Microsoft Windows Server 2019 Essentials; 600 US$

• Adobe PhotoShop Elements 2020, 100 US$

• ABBYY Finereader 15 Standard, 160 US$

• AutoCAD LT 2020, per year 450 US$

• QuarkXPress 2019, 1200 US$

If somebody is buying in the year 2020 a Windows Workstation and installs some of the normal software on the PC, he will spend the same amount of money like for a professional IBM mainframe system in the 1990s. That means, Microsoft is no longer an underdog company which provides cheap software, but it has become the most expensive option available which isn't affordable for the mainstream customer.

In contrast, the former expensive Unix workstations have become a low entry system. For a little amount of money the user gets a standard PC plus a Ubundu USB stick and will have a lot of fun with the system. It seems, that Unix workstations and WIndows NT Workstations have flipped their social roles. Unix has become ultracheap while Windows NT has become the most expensive technology available-

Unix workstation

In the early 1990s it was possible to use a Windows NT Workstation or a Unix workstation. The second choice was described by

Lai, Kevin, and Mary Baker. "A Performance Comparison of UNIX Operating Systems on the Pentium." USENIX Annual Technical Conference. 1996.

They have bought a standard Pentium with only 32 MB of RAM and installed different Unix operating systems on the system: Linux, FreeBSD and Solaris. They come to the conclusion that all of them were running great and they are describing in the paper that the x86 platform is a very cost effective hardware.

The public perception of Unix has changed. In the beginning of the 1990s Unix was known as an expensive Workstation operating system. It was sold by commercial vendors together with propriatary hardware which costs 40k US$ and more. For normal users, a Unix workstation was out of reach. In the mid 1990s Unix was recompiled for the x86 hardware and has become the opposite. It's some kind of low cost operating system for a mainstream audience.

The open question is, why does the Unix workstation on a x86 hardware never become popular? The answer is located outside of the operating system. Microsoft Windows was some kind of educational effort. On top of the PC operating system lots of additional programs were installed: games, edutainment software, CD-ROM applications, business software, learning software and so on. These third party software wasn't available for Unix but only for Windows. And all of them were created as commercial products by the upraising PC software industry. What the mainstream user is buying is not an operating system but he is interested in the third party applications.

Microsoft Windows is only the frontend for the software industry. These companies have programmed computer games and enterntainment applications and the idea is to sell them to the customer. This educational effort never was available for the Unix operating system. The amount of Unix games is low and no commercial software is available. An additional element was, that before the advent of the Internet, multimedia CD-ROMs were the only option to get access to databases, full text information and ebooks. It was logical that the WIndows operating system but not Unix has become successful in the mainstream market.

The question is not why is Microsoft Windows successful but the question is, why are so many CD-ROMs and DVD with games and other edutainment programs are sold each year.

MPC

In the early 1990s there was a standard for so called multimedia PC. That was a type of x86 hardware which ws equipped with CD-ROM drives and high resolution graphics card. https://en.wikipedia.org/wiki/Multimedia_PC THe main purpose of MPC computers was to playback multimedia CD-ROMs sold by software vendors. This sort of multimedia revolution wasn't available for Unix operating system. The interesting point is, that multimedia CD-ROMs were from the beginning a commercial product. It was sold with a propriatary license for a large amount of money.

Let us take a look what Amazon is selling in the category “software” today: there are many computer dvd available for learning languages likes English, become familiar with mathematics, chess serious games to become a better chess player, learn reading in general, make the tax report and lots of games: for example the consumer can buy card games on DVD, jump'n'run games, simulation games and lot of other software. All these programs were written exclusively for Microsoft Windows operating systems. They are not available as open source or free to download but they are commercial products adressed to a larger audience.

These sort of multimedia DVDs are not available for Unix workstation. They wouldn't even start if the disc is inserted. Bascially spoken it's not a battle between Unix workstaions and Windows NT workstation but about the access to multimedia-DVDs.

The reason why many 10k of multimedia DVDs are produced for Microsoft Windows but not a single one for Unix operating systems is because a multimedia DVD is a commercial product. It's sold for a price to the costumer and this fits great to the ideaology of Microsoft Windows which is also a commercial product. The GPL license was never popular for computer games, movies and multimedia software.