Frontend versus backend. Where to begin?
June 4, 2014
IBA GroupAlexei ZagorskyThis article opens a series of discussions devoted to frontend development. Until recently, this part of the development job was not treated properly.By this series, I intend to present my view of the modern trends in the development of user interface, as well as technologies that are used in web development.It common knowledge that the internet is built on a client-server architecture. A server is a powerful remote computer or a group of computers called ‘cluster’ or ‘cloud’. Server software installed on a server serves customers. This software is also called ‘server’.With regard to WWW, it is a web server (Apache, IIS, nginx and other), i.e. a software complex that receives HTTP requests from customers and returns HTTP responses, typically with the requested data.Operations related to processing of server data are called backend development. The following server programming languages are designed for backend development: PHP, Perl, Python, Ruby, ASP.NET, and Java. An important part of the operation of server programming languages is interaction with the database management server (BDMS).DBMS keeps well-organized information that is accessible at any time. The most popular DBMSs for WWW are MySQL, IBM DB2, Microsoft SQL Server, Oracle, PostgreSQL, FireBird, and MongoDB.A client is generally speaking any device that enables the user to access the internet, including desktop, laptop, tablet, and smartphone. From a technical perspective, a client is a web browser that transmits to a web server HTTP requests for the resources specified in URL, as well as displays server responses in the form of HTML pages, files, media streams or other data.Any user application needs a convenient and functional interface.It is especially relevant for a web application because it is used by people who have different qualification and knowledge levels, as well as work in different professions. It is also essential that web interface work well from all modern browsers, including those on mobile devices. Thus we come to the frontend concept.Frontend development is creation of the client part of a web application.Until recently, this application part was treated without due respect. Most efforts were focused on the server part of a project, such as business logic, data, and security. A frontend developer was perceived as ‘the guy who makes the project look more attractive’.It is quite clear that it is a misperception.A modern frontend developer is ‘a Jack of all trades’, an expert in his or her domain and in many adjacent domains.A frontend developer writes code for a website, creates user interface, deals with usability, web design, and has an idea of the theory of colors.A frontend developer must have an excellent knowledge of HTML5, CSS3, JavaScript, and Ajax. Experience in such popular JavaScript frameworks as jQuery, Google Web Toolkit, Prototype, TwitterBootstrap, and many others are also of use.Frontend developers deal not only with specific concepts and tasks, but also with abstract thinking. They belong to those few who are able to make a bridge between mathematics and art. As they are able to unify these two disciplines and apply user experience to logic processes, they are very valuable employees for any IT business.Therefore, the current trend is to pay more attention to frontend development. In the following article, I would like to discuss the technologies that give a website a modern look and feel, and contribute to its powerful functionality.