Downloads Products Documents Community


Resist Complex Software

The Complexity Problem

Computer software becomes more complex every year.

Not so long ago, useful application were only a few megabytes in size. Now, they are measured in gigabytes. Are these larger applications substantially more useful? Does ten times larger make us ten times more productive?

In domains ranging from small business to education, we are not more productive. When it comes to software, complexity breeds complexity. Like bureaucratic governments, software systems have grown out of control. As a result, software is more difficult to use, more expensive to create, and almost impossible to maintain (let alone improve).

How Revolutions Happen

Revolutions in computing happen when simplicity strikes.

The world wide web is a good example. The web was simple. It was easy to create new pages and publish them for all to view. As a result of this simple approach, the web revolution completely changed how we build and use software.

In general, simpler is better. People don't want complexity. Our lives are complicated enough already. Computers were intended to make our lives easier, but in many arenas, the opposite has occurred.

The Heavyweight Approach

Software systems have become heavy (again).

Traditional software applications have become so difficult to build, install, and maintain that most organizations are abandoning them and converting to web-based applications. After all, the web is simpler, right?

The web started that way, but unfortunately, over the past decade, the web has also become complex. In addition, the web has been a missfit for many applications, becoming slower and less productive for end users. To help solve that, substantial changes have been made, and the web becomes even more complicated.

Behind the scenes of modern web applications you will find a huge mess. The lack of a consistent unifying architecture has created a collection of layers upon layers of glue and patches. The result is so haphazard, incomplete, and complicated that even more layers have been added just to deal with it (e.g. Ajax).

REBOL: A Lightweight Platform

In a nutshell, REBOL is a software technology that provides a lightweight platform for computing and communication.

Unlike other languages, REBOL was designed from the start for network communications, not just for writing programs.

The power of REBOL comes from its unique integration of programming language concepts and metadata language concepts. REBOL expresses and symbolizes both algorithms and data equally well, and the flow between those domains is totally fluid.

As a result, REBOL is optimal for X Internet distributed applications. It provides more effective solutions to modern network distributed applications. When compared to traditional languages, REBOL offers greater expressive power with less code. Most applications are typically measured in 10's of KB, not 10's of MB. And, when it comes to software development and support costs, smaller is better.

You can learn more about How REBOL is Different or for a quick introduction to the REBOL Language, read REBOL in a Nutshell.

Summary of the REBOL license agreement.

REBOL: The X-Internet Platform

The next big advancement of the Internet will be the X Internet (the executable Internet). The concept of rich internet applications is only the start.

The X Internet builds on the trend that local client computers are now as powerful as the backend network servers, so more computing responsibility should be shifted to the clients. There are three advantages of this approach:

  1. It improves the quaility of the user experience.
    It makes Internet applications run at the speed of local applications. The delays that are inherent in the design of the web disappear.
  2. It accelerates the server.
    With clients doing more of the work, the server can do a lot less. That allows you to run many times more connections from the same server. How many typically? At least 10 to 50 times as many. That's like getting 10-50 more servers for the cost of one.
  3. It makes network communication more efficient.
    Applications don't need to transfer user interface elements (e.g. web pages) over the connection each time. Instead they send just data or code that is relevant to the actions taken by the user. This allows X Internet applications to take about 1/10th to 1/50th the bandwidth of typical web applications.

Does the X Internet oppose the modern "thin client" computing model? Not if you use REBOL. Because of REBOL's advanced language design, X Internet applications are typically smaller that most web-based solutions. That's what we mean by lightweight. When constructed properly, applications take less time and money to develop and are easier to maintain and upgrade.

For more information about the X Internet and REBOL's solutions for it, see our IOS Overview pages.

About | Contact | Support | Privacy | LicenseREBOL Technologies 2016