Aplextor Blog
Proposed solution
August 2016
Today we see a steady trend of smooth change of web standards to better conforming requirements of modern web applications. On other hand, we have to admit that document-based architecture never will be fully withdrawn because of backward compatibility reasons. It means that document-based architecture with HTML, CSS and JavaScript will remain a solid basement for web applications for a fairly long time in the future.

Key targets of the Aplextor project are:
  1. To give ability to develop web applications as applications, not as documents, and avoid contradiction and complexity noted above
  2. To make web application development process independent of dynamically changing web standards
First point will bring effective and well-verified technologies of application development, testing, profiling and debugging to the world of web applications together with a single language and modern programming patterns, such as Model-View-Controller (MVC), Object-Oriented Programming (OOP), microservices architecture, reactive programming and LLVM infrastructure.

The second point allows to eliminate substantial influence of changes in web standards and avoid mandatory re-building of existing web applications in cases when such changes will be, for sure. It also allows to avoid compatibility problems when web application runs on different web browsers.

The key idea is to consider HTML, CSS and JavaScript stuff as assembler level or "binary code" of web application. In this paradigm any web browser can be imagined as a CPU executing web application code.

Aplextor solution includes technology and software platform:

  • Aplextor Architecture (AxA): the original concept of web applications and their run-time environment. Hereinafter, any web application based on AxA will be called webapp to differ of other existing web application technologies and definitions
  • Aplextor Programming Language (AxPL): single programming language unified for all stages of webapp development process
  • Aplextor Toolset Server (AxTS): software system used for storing, execution, management and development of webapps. You can consider it as a "cloud webapp operating system" with complete stack of integrated development and management tools delivered as extension to existing HTTP web servers, or separate high-performance HTTP server

Jule 2016
Key contradiction and technological legacy described above make the process of web application development rather artificial, difficult and expensive, both in terms of time and money. You have to be skilled in three main languages: HTML, CSS, JavaScript, several JavaScript frameworks and at least one server-side language (e.g., PHP or Java) to build a web application (and, yes, we forgot again about SQL language in case of database usage). In addition, worth to note that all of these languages are slightly related and have different syntax.

Normally, today's developers of web applications must use big set of different tools, sometimes poorly integrated, to build even simplest web application. Such set typically includes:
  • Text or graphical tool to create mark up, style and content of webpages (HTML, CSS)
  • Syntax-highlighting editor(s) for JavaScript and server-side programming language
  • Testing and debugging environment for client-side (testing browsers)
  • Server-side debuggers or special testing servers in local network for cases when hosting provider is limiting ability to install additional software
  • Special client software to create and manage databases
We said nothing here about such important and useful things as Content Management Systems (CMS), Version Control Systems (VCS) and repositories for sources and assets of web application, deployment automation and localisation tools, which ought to be included in complete development toolset as well.

Of course, tight integration of all listed above in the scope of single development system is quite difficult because of the reason of complexity and distributed nature of used tools and technologies.

InfoQ says: "Automattic decided back in 2014 to create a new admin interface called Calypso built using web technologies –JavaScript, HTML, CSS, Node.js, React, Flow, WebPack, Babel – and accessing the back-end through a RESTful API."

Key contradiction
June 2016
Usage of document-based architecture for creation of applications is a key contradiction. Content and structure, or mark up, are primary for document. Style is secondary. JavaScript client-side code, which is a real heart of web application, actually optional and just manipulates with content, structure and style of the document.

Server-side piece of code considered to be external and independent to the web application in the document model. The main task of server (as a storage of documents) is to get request from browser, generate webpage with actual data and response it back. It is a reason, for instance, why basic web transport protocol (HTTP) stays half-duplex, or uni-directional from browser to server, for a long time.

Such things as a client-server, server-server and server-client interconnections as well as interconnections between separate web applications generally beyond of the document-based architecture and mostly covered by voluntary created JavaScript frameworks.

Who are you Ms. Web App?
June 2016
In the past few years, the term of web application becomes more and more popular in the World. Let's try to explain what web application is and where it origins from.

Wikipedia gives next definition of web application: "A web application is any software that runs in a web browser. It is created in a browser-supported programming language (such as the combination of JavaScript, HTML and CSS) and relies on a web browser to render the application.
Modern web applications are result of evolution of websites. Websites consists of separate webpages that primarily considered as documents. This is the legacy of early years of Internet, when web servers were used to store and publish of structured text documents. Evolution of web has added styles to webpages and then made them dynamically generated by implementation of server-side executable code. Dynamic webpages were extended by forms with interactive elements, such as text fields, pop-up selectors, submit buttons and etc. This made them bit closer to application interfaces than documents.

Next step was predictable. People began to consider webpages as applications, more and more, and going to use them this way. Unfortunately, functionality and appearance of standard interactive elements was quite poor and developers have extended good-old webpages again by embedding of JavaScript — client-side executable code. Vast and permanently expanded set of JavaScript frameworks brought new limitless abilities and turned websites practically to real applications, or web applications.

Actually, the Wikipedia's definition is not complete and only suitable for very simple web applications. It leaves server-side chunk behind the scenes completely. Server-side is still optional, but most of modern web applications are not working and even do not exist without it. Server-side is a data storage (database) and collection of executable scripts or even high-performance native applications run on server.

Anyway, it brings at least one more server-side programming language to the Wikipedia's list. It could be C, PHP, Perl, Python, Ruby, Java or something else depending on your taste.

So, really, we should use at least four different languages to build modern web application (to say nothing of databases and SQL). Such complexity, in comparison with native applications where single programming language is enough to build application, is a legacy of backward compatible evolution of web technologies where web application is still considered as a set of documents.

So, we begin!
May 2016
Finally, we start the Aplextor!

This is an independent project managed by Aplextor Laboratory LLC: the startup company and the only owner of project's intellectual property and trademarks.

Aplextor is also the name of the main product — technology and web platform (toolset server) for creation, management and execution of web applications.

Next six months we will do all the best to release its first version.