Sinatra takes advantage of Ruby's elegant syntax to define a simple domainspecific language (DSL) for implementing web applications. Method calls like get, put, and post correspond to the HTTP method of the request.
When the method and the URI match, the code block handles the request and returns the result as an HTTP response. This DSL provides an expressive and natural way of developing a web application. Sinatra is particularly well suited to build a server that provides a RESTful API to its clients.
Sinatra is a very lightweight framework with few dependencies. Getting started and developing an application are effortless. Our example will be a bookmarking application: users can save and view their bookmarks, tag them, and search by tags.
Sinatra really shines when it comes to creating RESTful applications, helping you create a server that provides an HTTP API. You can then write a front end with a JavaScript framework. However, using a JavaScript framework is not a requirement. Sinatra can also provide the front end. One can start building an example application by creating a model for bookmarks, providing database persistence, and defining a RESTful API.
A scripting language is a programming language that supports scripts.
These are programs written for special run-time environments that can interpret and automate the execution of tasks that could alternatively be executed one-by-one by a human operator. Environments that can be automated through scripting include
- software applications,
- web pages within a web browser,
- the shells of operating systems,
- Node.js
- and embedded systems.
A scripting language can be viewed as a
domain-specific language for a particular environment; in the case of scripting an application, this is also known as an extension language.
Scripting languages are also sometimes referred to as very high-level programming languages, as they operate at a high level of abstraction, or as control languages, particularly for job control languages on mainframes.
The term
scripting language is also used loosely to refer to dynamic high-level general-purpose language, such as
- Perl,
- Tcl, and
- Python,
with the term "script" often used for small programs (up to a few thousand lines of code) in such languages, or in domain-specific languages such as the text-processing languages sed and AWK.
Some of these languages were originally developed for use within a particular environment, and later developed into portable domain-specific or general-purpose languages.
Conversely, many general-purpose languages have dialects that are used as scripting languages.