Archive for October 7, 2014

QTX vs. Smart Mobile Studio?

October 7, 2014 4 comments

It appears to be some confusion regarding what “Quartex IDE” is and how it’s connected to Smart Mobile Studio. In fact, the Smart team was asked if they had stopped production — which is a very unfortunate interpretation of the facts. Let me assure you that Smart Mobile Studio is not only in production, it’s growing by the hour – with several key developers working on it (!). I must underline and stress that QTX has no relation to Smart Mobile Studio at all.

The only thing these two projects have in common, is me. I am the author of both
systems and as such there will be similarities between the two.

So what is QTX and what is Smart?

Smart Mobile Studio

Smart Mobile Studio

Smart Mobile Studio is the programming platform I created together with Eric Grange a couple of years back, and later in co-operation with other great programmers. We all to this day make up “the Smart Mobile Studio team”. Smart is sold and marketed by Optimale Systemer AS in Norway. I own 50% of the product and as such is intimately involved with every aspect of Smart Mobile Studio.

Smart Mobile Studio is a completely separate, isolated project which is, to be perfectly frank, the best HTML5 development platform on the marked. And it continues to grow on a daily basis – with (as mentioned) several programmers working on it. Myself included.

Smart Mobile Studio has NOTHING – I repeat – NOTHING to do with QTX.

So what is QTX or “Quartex” thing?

QTX is a personal side project. It was created by me after Smart Mobile Studio and functions more or less as a kitchen-sink for ideas. The goal of the QTX project is to create a generic IDE, preferably open-source, which would be the Delphi version of Java’s Eclipse. Meaning that it can be used as an IDE for many different compilers, not just Smart Pascal but also Free Pascal, Delphi, mono C# or even GNU C++.

Smart Mobile Studio is architected to interface with and absorb the document
object model and JavaScript completely. Smart gives you access to the browser with
the same fine grain of detail as the VCL does for WinAPI. The Quartex IDE and RTL does not.

The reason I created QTX as a side project, is precisely because Smart Mobile Studio is a living, vibrant project. Smart is purposefully intertwined with the document object model and JavaScript by design; Hence, in order to target other platforms, languages and compilers it made more sense to create a new and separate project.

The Smart codebase is small enough to be managed and maintained by a single individual (although barely) and we want to keep it that way. It’s tempting to push the envelope and stuff the IDE full of everything under the sun, including third party compilers, secondary code analysis packages and god knows what — but my experience is that such a codebase ultimately falls pray to bloat, confusion, unexpected errors and bad performance (read: Delphi 2006). We want a HTML5 development environment that is lean, mean and responsive.

So instead of doing that – I sat down and started to experiment with a new IDE. Testing new ideas of how to make routines faster, looking at managing tabs and frames through a different API. This is how the Quartex IDE was born. As a research and development IDE into the object pascal language and parsing technology.

Is QTX better than Smart?

Quartex IDE, early prototype

Quartex IDE, early prototype

Absolutely not. And the two products can’t be compared like that either. It’s like saying that a water-scooter is better than a dirt-bike without taking into account their completely different environments and design goals. I received some statements along the lines of “QTX is better than Smart and is the next Smart IDE”. This is an exquisitely absurd and anal interpretation of what I have written. I tend to write from a personal point of view and I can sympathise with people who may mix up personal views with “hard production facts”; but let me assure you that QTX is not the replacement for the Smart IDE. Smart Mobile Studio is architected to interface with and absorb the document object model and JavaScript completely. Smart gives you access to the browser with the same fine grain of detail as the VCL does for WinAPI. The Quartex IDE and RTL does not.

What I have stated is that parts of the QTX Core, routines inside the IDE which takes care of files, packages and general organization of open editors — that, and that only may merge with the SMS codebase at some remote point in the future. But there is presently no need to do so, because SMS if polished, tried and tested.

One feature which sets the products apart is the RTL (run-time library). Smart ships with a RTL written from scratch to interface with the browser(s) exclusively. While it is theoretically possible to abstract the RTL so it could run on native platforms, it would require herculean efforts and almost a complete re-write. The Quartex IDE, in contrast, comes with a generic RTL architected to suit any platform. Meaning that it’s a lot more complex and borrows shamelessly from the .net framework (since I am heavy into C# I tend to bring something back to Delphi whenever I can).

The only thing these two projects have in common is me. I am the author of both systems and as such there will be similarities between the two.

I have also aired that I have made advances in the way I have built the QTX IDE, internal optimizations and more efficient approches — but under no circumstances does that mean that Smart Mobile Studio is “bad” or “not as good”. Smart Mobile Studio is an extremely complex piece of engineering. Writing an IDE may seem like a simple task – but I can guarantee you that it’s not.

Code sharing

Since I am active in both projects, naturally there is a convergence of code between the two. For instance, I recently wrote the QTX HTML5 library, which can be freely downloaded and used in Smart Mobile Studio. It provides effects and several helper classes which makes it easier to deal with callback’s and non-linear calls.

I can understand the confusion some people have around this — but it’s really very simple. When I have code that benefits Smart Mobile Studio then naturally I will put the code there as well, and visa versa.

So what is the status of these projects

To sum up the situation:

  • Smart Mobile Studio is a fully separate, living and vibrant product
  • Quartex IDE is a generic IDE, separate from Smart Mobile Studio
  • Smart Mobile Studio is written and fully adapted for HTML5, QTX is not (!)
  • Both projects were written by me, this is the only thing they have in common
  • Since I am active in both projects, I tend to share my codebase with myself (sigh)
  • QTX functions as a kitchen-sink for new ideas, prototypes and parsing technology
  • Good ideas are ultimately pushed into Smart Mobile Studio
  • Smart Mobile Studio is 100% about JavaScript and HTML5
  • Quartex IDE is generic and tries to work with everything

So there we have it. I have two separate projects i’m involved in. They both include an IDE. They both use compiler technology. But they are very different and completely separate.

I have written that “QTX begins where Smart Mobile Studio ends”. This have for some strange reason been interpreted as Smart Mobile Studio somehow going out of production (??). Let me de-mystify that line of thought straight away:

What is meant by that statement is simply that Smart Mobile Studio is not multi-lingual. It targets HTML5 and JavaScript exclusively. It contains thousands of lines of code written to cater for – and make JS programming as easy and flexible as possible. And it is getting better and faster and more clever for each day that passes! As such, Smart Mobile Studio is only about high quality JavaScript. Hence Smart Mobile Studio ends there; it only does HTML5 and JavaScript. And it does so brilliantly.

Quartex on the other hand is generic. Meaning that it completely relies on an external compiler to do the job. It implements the typical functions you expect from an IDE, but does not dig into the peculiarities of any language. It is purely language agnostic, meaning that it has no idea if you are writing pascal, php, java or c++. All of that has to be crafted and designed. As of writing it uses the freepascal compiler as its primary code generator. Allowing it to reach out to Windows, OS X, Linux, Amiga, Nintendo and other platforms. But it deals exclusively with native code at this point.

Will you make another HTML5 studio?

Well, I can if I want to, but there are several reasons why I would not do that. First of all we are 5 people who have worked countless hours on Smart Mobile Studio and Smart Pascal. Christian, Primoz, Andre and Jørn have invested both time and money into this – not to mention Eric Grange (writing a code generator for another language is no walk in the park) and I feel it would be a catastrophic demonstration of disloyalty, egoism and selfishness to create a competitor to a product I myself started, own, maintain and sell.

Secondly, the smart pascal team are my friends, and friends don’t do shit like that.

Third (from the Bhagavad Gita) : “A man at war with himself, is sure to lose”.

Final words

I sincerely hope this little post cleared up the confusion regarding this topic. Smart Mobile Studio is growing by the hour and it is well under way to reaching its goal: to become for HTML5 what Delphi is to WinAPI — The ultimate HTML5 Mobile application studio.

My personal project, Quartex IDE, has nothing to do with SMS. Since I am the author of both systems, naturally I will share my codebase with myself in order to make sure Smart Mobile Studio is as fast, robust and intuitive as possible. But keep in mind that Smart Mobile Studio has 4+ years of constant development behind it. We are 5 programmers working every day to make it more clever.

Kind regards

Jon Lennart Aasenden