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:

To give ability to develop web applications as applications, not as documents, and avoid contradiction and complexity noted above

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

Complexity

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:

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.

Ownership of materials
The materials contained in this website are provided by Aplextor Laboratory LLC (hereinafter, Aplextor Laboratory) and may be used for informational purposes only. Other websites are permitted to make links or references to the website of the Aplextor Laboratory, but only when complying to the following conditions:

The website doesn't arouse the false belief that Aplextor Laboratory supports or recommend the website, or products published on the website.

The websites of Aplextor Laboratory are not included in an other website (online frames).

The website may link to Aplextor Laboratory, but is not allowed to copy or synchronize content.

The website doesn't use the logo of Aplextor Laboratory in any way, unless Aplextor Laboratory has given written (and explicit) permission.

A website doesn't display false information about Aplextor Laboratory and its products or services.

Possible exceptions can only be made with explicit and written permission. These exceptions can only be made beforehand.

Warranties and disclaimers
Aplextor Laboratory intends for the information and data contained in the Aplextor Laboratory website to be accurate and reliable. By using this website, or information linked from this website, you understand that Aplextor Laboratory cannot and does not guarantee or warrant that files available for downloading will be free of infection or viruses, worms, Trojans or other code that manifest contaminating or destructive properties. You are responsible for implementing sufficient procedures and checkpoints to satisfy your particular requirements for accuracy of data input and output, and for maintaining a means external to the website for the reconstruction of any lost data.

APLEXTOR LABORATORY EXPRESSLY DISCLAIMS ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, AS TO ANY MATTER WHATSOEVER RELATING TO OR REFERENCED BY THE APLEXTOR LABORATORY WEBSITE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR CONDITIONS OF MERCHANTABILITY OR SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE APPLICATION IS WITH YOU.

Idea submission policy
Aplextor Laboratory will accept your submissions for consideration. Once you have sent us your submission the following applies: (1) your ideas will automatically become the property of Aplextor Laboratory, without compensation to you, and (2) Aplextor Laboratory can use the ideas for any purpose and in any way, even give them to others.

Feedback and information
Any requests and feedback you provide at this website shall be deemed to be non-confidential. Aplextor Laboratory shall be free to use such information on an unrestricted basis, including to use your name and quote you on Aplextor Laboratory's website.

Links to other websites
Aplextor Laboratory makes no representation whatsoever regarding the content of any other websites which you may access from the Aplextor Laboratory website. When you access a non-Aplextor Laboratory website, please understand that it is independent from Aplextor Laboratory and that Aplextor Laboratory has no control over the content on that website. A link to a non-Aplextor Laboratory web site does not mean that Aplextor Laboratory endorses or accepts any responsibility for the content or use of such website.