Quartex Pascal came about in the spring of 2014 as a research project. At the time I was busy working on the Smart Mobile Studio development tools, a similar commercial project, but in my spare time I wanted to explore avenues of code that was not connected to the Smart Pascal codebase. Such as cross compilation, support for multiple languages and last but not least, bytecode compilation.
I started to work on a new IDE which was never really designed for public use, it was more of a kitchen sink where I could test out ideas and experiment with my own compiler technology. The idea was that whenever I came up with something useful and worthwhile, I could perfect the technology there and potentially pull the finished code back into Smart Mobile Studio.
Sadly, as time passed it became clear that my partners did not share the vision and direction for the product that we originally founded the company on. This is just one of the many risks you face when taking on investors, where you trade control over your vision and product for a financial runway. To make a long story short, it was a classical case of too many cooks in the kitchen, where different members ended up tugging in different directions.
Eventually I decided to leave the company for good. That is one of the most difficult decisions I have ever faced. I put so many years of labor and love into that product, but it was clear that the situation would not improve. We had reached an unsurmountable impasse.
In 2018 I resigned effective immediately and accepted a job offer from Embarcadero as their SCE for Delphi in Europe, Africa and Asia.
Building a new foundation
The problem that immediately faced me after I resigned and no longer held stock in the company, was that I had already started on a separate community project, namely the cloud desktop project. While this had nothing to do with my former company, the entire codebase was written in Smart Pascal and thus 100% dependent on that product; A product I now had zero control or influence over.
Since Smart Mobile Studio was designed for mobile application development, I had already exhausted it’s technical range. It was never designed to deal with large and complex projects like a full service oriented embedded ecosystem. The desktop already touched every avenue of it’s RTL and beyond, and in order to reach my goals the RTL had to be heavily refactored and refined. Something that would be impossible since I no longer had any legal right to the RTL.
The backers of the desktop project naturally wanted access to the source-code, and also to use the code to build their own servers, NAS boxes and embedded technology. This meant that they would have to buy a Smart Mobile Studio license just to use my code. In short: my desktop would help finance of a company I was no longer involved with – while I was forced to update their RTL for free.
Needless to say, this situation was intolerable and not an option.
The only viable route was to create a new development toolchain from scratch. This first of all meant converting my personal research library, the QTX Framework that I wrote back in 2014, into a fully fledged and independent RTL. And further, to convert every single service that made up the desktop project so that it ran on the new QTX runtime-library instead. And last but not least, create a new IDE which is more in-tune with my initial vision for such a development tool.
The positive side of this was that I could spend more time researching aspects of the Javascript runtime to ensure better performance. I had noticed in my R&D that by organizing code in particular ways – the JIT compiler was able to generate code that ran at blistering speeds. So I took a couple of months and focused on figuring out what makes JSVM tick, and how to ensure that QTX took advantage of these patterns.