History of QCubed


QCubed got its start as QCodo, and was written by Mike Ho around 2005-2006. This was a time before JavaScript frameworks, before JQuery, before HTML5 and CSS3, when Ajax was brand new, and really untested. Mike solved a number of difficult problems, and invented the core of the QQuery language and the formstate engine, making real-time apps possible in very limited browsers.

The Birth of QCubed and QCubed v2

Well, Mike got married, had children, and generally got busy. QCodo also grew in popularity, and Mike just could not keep up with all of the demands to maintain it. The community decided it needed to branch the code and take it in a new direction, primarily adding JQuery as the JavaScript engine, and JQuery UI as the base widget factory, to simplify some of the user interface work that people wanted to do.

QCubed v3

The Web development world has begun to change rapidly and dramatically. QCubed V3 was an effort to try to keep up as best we could, and primarily focused on implementing Composer as an installation tool, revising the QControls to output HTML5 compatible code, overhauling QQuery to improve performance, and adding Bootstrap wdigets as a plugin.

QCubed v3.1

Version 3.1 is under development as of this date, and is primarily focused on performance improvements, the implementation of getters and setters in the ORM, and fixing some long-standing problems with the code-generated forms (primarily the Optimistic Locking exceptions).

The Future

In a matter of a few years, we have had HTML5, CSS3, Ruby and Rails and Node.js. A few more years brought HHVM, PHP7, ReactJS, Angular, Bootstrap and lots more. Now we are seeing Polymer emerge, Typescript and ES6, NoSQL databases, Amazon and Google App Services, and the list goes on. Design patterns have radically changed too, and include dependency injection, microservices, REST apis, containers, single-page web apps, and middleware.

As the Web world changes, one nice thing is that we still need to connect user interface components with data in databases. The underlying structure of QCubed lets us do that, and is flexible enough to allow a variety of design approaches and JavaScript frameworks to work with it.