The Need for Simplicity
The Need for Simplicity
RESTx has been designed right from the start with simplicity and ease of use in mind. As a result, RESTx has a very flat learning curve. Setup and install is quick and simple without arduous configuration. Writing components is painless due to a small, simple API that supports multiple languages. RESTx gives developers access to all the advantages of a framework, but with the simplicity and ease of quick, adhoc scripting in the languages they are familiar with. It is even possible to easily take already existing scripts and convert them to working components within RESTx with very little effort.
The risks of adhoc scripting
For some tasks a developer or system administrator may ask: “Should I download and learn to use someone's framework, or should I just quickly write a small script that does the job?” Oftentimes in those situations, the quick solution wins out.
Especially the tasks for data integration or representation often look temptingly easy and straight forward. “I can do that with a quick script!” is a common first reaction. Why bother investing days in learning the ins and outs of a framework when you can just quickly put together 10 lines of code in a modern scripting language, which appear to accomplish the same thing?
Indeed, a small, adhoc script may initially be 'good enough'. But this approach eventually results in the proliferation of scripts and quick hacks, leaving the organization with a long-term maintenance nightmare: Security, auditing and logging are not unified or industrial strength. No interface and data standards are enforced. Furthermore, changes to any aspect of the data infrastructure – location of data sources, data formats, etc. – now require modifications to a number of scripts or macros, which may be located in many different locations, may be owned by different users and may be developed in different styles and with different interaction patterns.
Simplicity as key for adoption
Using a framework tends to fix those problems, but often requires a significant up-front investment in time or money. The long learning curve for many frameworks and deep knowledge that is required before any value can be gained is a turn-off.
This is why RESTx has been designed right from the start with simplicity and ease of use as one of its key parameters. RESTx is not a heavy, over-loaded framework and instead of restricting you it gets out of your way. We believe that RESTx is a platform that is as easy and simple to use as adhoc scripting, while letting you derive all of the benefits of RESTx: Making your integration code re-usable in different contexts, allowing for the creation of RESTful resources, offering security, logging and versioning.
Simplicity in RESTx
Here are some of RESTx's features, which are specifically designed to make and keep things simple:
- Easy download and install: There is only a minimal set of dependencies. Usually, a standard install of the Java SDK (1.6 or later) is sufficient.
- Easy start of the server: A single command starts the server, without the need for further configuration. Using convention over configuration, RESTx works and does the right thing out of the box.
- Able to develop and test in stand-alone mode: RESTx comes with its own built-in server, which allows you to get started without the need to deal with any additional server or container configuration.
- You can write components in Java, but also in Python and other modern scripting languages. Therefore, you can choose the language you are most productive and comfortable in. Components written in different languages can live and work inside of a RESTx server at the same time. This also allows you to take already existing scripts or programs and easily convert them to live within RESTx.
- To simplify the development of client applications, convenient wrapper libraries for the RESTful interface to the RESTx server are included for various languages.
- RESTx can be accessed in a web browser, allowing you to easily and intuitively inspect the same information that a client application may see and explore available components and resources.
- Integration logic is expressed in concise, well understood code, rather than complex configuration files. Developers know their languages already, so why not use them to express what you want? No need to learn yet another XML dialect.
RESTx's focus on simplicity also extends to the source code: It is well documented and makes it easy for interested developers to contribute to RESTx's development.