What is "front-end"

In computing, the front-end is responsible for collecting input in various forms of the user and processing according to a specification that the back-end can use. The front-end is an interface between the user and the back-end. The ends can be distributed between one or more systems.

In software architecture there can be many layers between the hardware and the end user. Each can be spoken of as having a front-end and a back-end. The front is an abstraction, simplifying the underlying component, providing a user-friendly interface.

In software design, for example, the vision-controller (MVC) model architecture provides front and back-ends for the database, user and data processing components. The separation of software systems into front and back-ends simplifies development and separates maintenance. One rule is that the front side (or "client side") is any component manipulated by the user. The server-side code (or "back-end") resides on the server. Confusion arises when editing front-end for server-side files. Most HTML designers, for example, do not need to be on the server when they are developing HTML; conversely, the server-side engineers are, by definition, always on the side of a server. It takes so much to finally make a functional, interactive website.

For major computer subsystems, a graphical file manager is a front-end for the computer’s file system and a shell interacts with the operating system. The front-end interacts with the user, and the back-end launches the operational system programmes in response.

The use of the command line interface (CLI) requires the acquisition of special terminology and memorization of commands, so that a graphical user interface (GUI) acts as an environment of front-end desktop. In the Unix environment, ncurses is a front-end simpler semi-graphic for CLI. At the level of CLI Unix itself, most byte stream programs (ie using stdin / stdout / stderr as its interface) act as filters - standalone programs that can also serve as front and back-ends for other programs. (They work through data among themselves, mainly for word processing, for example: $ grep word ~ user / dir / infile | sort | tee ~ user / dir / outfile)

In networked computing, the front-end can refer to any hardware that optimizes or protects network traffic. It is called front-end hardware because it is placed at the front end or at the edge of the network. Network traffic passes through the front-end hardware before entering the network.

In content management systems, the terms front-end and back-end may refer to end-user views of CMS and administrative views respectively.

In compilers, the front-end translates a computer programming source code into an intermediate representation, and the back-end works with the intermediate representation to produce code in a computer output language. The back-end generally optimizes to produce code that runs faster. The distinction front-end/back-end can separate the parser section that handles source code and the back-end that generates code and optimizes. Some projects, such as GCC, offer options between multiple front ends (analysis of different source languages) or back ends (generating code for different target processors).

In speech synthesis, the front-end refers to the part of the synthesis system that converts the input text into a symbolic phonetic representation, and the back-end converts symbolic phonetic representation into real sounds.