Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Akshell: A RAD Cloud Service based on server-side JavaScript and an Online IDE

Akshell: A RAD Cloud Service based on server-side JavaScript and an Online IDE

This item in japanese


Akshell is a Cloud Service that helps developers do Rapid Application Development using server-side JavaScript and an online IDE. It also provides Cloud hosting, so deployment is instant. Its creator describes it as a “web application network”.

The Akshell core executes applications via the Google V8 JavaScript engine which compiles JavaScript code into the native code for improved performance. To handle a request the Akshell core evaluates the main.js file of an application and runs the app() function exported by it, passing a request object to the function. This architecture conforms to the JSGI specification.

Application is the basic unit of the Akshell environment. Each application has a unique name and serves from the domain. Every Akshell user can create applications, but currently only the creation of free non-commercial applications is available and code of such applications must be provided under the terms of the BSD License.

InfoQ has a small Q&A with Anton Korenyushkin, creator of Akshell.

InfoQ: What are your motivations for building Akshell and how does it empower What are your motivations for building Akshell and how does it empower developers?

Anton: The key motivation is to enable developers concentrate on a task, not on the stuff common to all web applications. Web development seemed "wild" to me when I come to it from system programming. To write any nontrivial site, one have to know dozen of technologies non-related to the site's main purpose at all. The wheel is reinvented again and again. And after this hell one also have to administrate a server.

Akshell is my effort to change things; its philosophy is borrowed from UNIX: each program should do one thing well.

InfoQ: Would you like to give us an architectural overview of an application built with Akshell? What would be its main components?

Anton: Akshell application should only perform its main task; auxiliary tasks should be handled by other applications. Means of interaction between them are supplied by Akshell. Each application can be a library, i.e., share its code with others. The basic Akshell library, named ak, provides a Model-View-Controller framework. Applications built with this framework have three main components: database model, HTML templates (they were ported from Django), and JavaScript code, handling requests.

The basic library is optional; anybody can create an alternative framework. Akshell conforms to the JSGI specification; so it may be possible to port some existing frameworks to it.

InfoQ: How do you handle persistence?

Anton: Each application has an access to a file storage and a relational database. The former is rather common. Database access is provided via the object-oriented API and the query language specially designed for embedding into JavaScript. It's as powerful as SQL, but much more easy to use. The database is backed by Postgres; so it's rock solid.

InfoQ: What would be the development process and tools for a team to use Akshell? Is there integration with any source control or project management software or service (e.g. SVN, Git, etc.)?

Anton: An application admin can invite developers to collaborate; Akshell handles their access rights. Currently there is not SCM support, but I plan to integrate git and GitHub. Now a team can use any SCM system and the Akshell tool for synchronizing local files with Akshell. 

 InfoQ: Do you believe that server-side JavaScript will become mainstream in the following years? What are your thoughts about CommonJS?

 Anton: I do believe that JavaScript will become popular on server side because:

  1. Every web developer knows it.
  2. Its interpreters are really fast and become faster.
  3. It suites sandboxed environments better than languages with complex standard libraries; I think Platforms as a Service are the future.
  4. It's a very good language; I love it :)

CommonJS is an extremely useful effort; I hope it will be successful. But may be designing such thing requires a kind of BDFL, who is unlikely to emerge in the JavaScript community.

InfoQ: Do you believe that online IDEs are the way of the future? Did you consider using Bespin?

Anton: I hate any kind of administration; so I hope and believe that the majority of programs will go online, including IDEs. I considered Bespin, but chose EditArea.

InfoQ: What are your future steps and directions?

Anton: I'm going to improve the UI: enable tabs in the editor, add evaluation input and console below it. Having all these things on one page should make development process easier. And I plan to integrate GitHub to Akshell.

For more information you can visit the online documentation or check out the example applications.

Rate this Article