Backend development involves writing code that runs on the server. It is often regarded as server-side programming. It includes database design, web architectural design, and writing the codes that responds to a clients request. Backend developers take care of the behind the scenes activities that gives the website users an interactive and personalized experience. Functionalities like authentication(login/signup), authorization are all implemented during backend development. Backend developers are responsible for database design and creating an API (Application Programming Interface) that the clients send their requests to. Code written on the backend sends query to the database to get some data, mutate or creates new records on the database. Backend developers are often referred to as web developers. Knowledge of the SQL query language is probably not necessary but could be a huge advantage as a backend developer.
Backend developers use various programming languages like Python, Java, PHP to write the code that runs on the server. To become a backend developer, you have to understand the syntax of the language you intend to use and have a good knowledge of data structures and algorithms. Various languages can be used for backend development but in this post, I'll be focusing on the most popular ones I'm quite familiar with. These languages have frameworks which are all ready written code that help developers create software faster. They help developers save time that would have been spent "reinventing the wheel". They come with built in libraries that help to perform common tasks like data validation/serialization and simple CRUD(Create, Retrieve, Update, Delete) operations. Most of these frameworks are open source which means they have communities and experienced developers continuously improving them. Web development frameworks help developers efficiently build secure and flexible software and get them running quickly.
In these post I'll be discussing about some of the most popular languages and some of their web frameworks.
JAVA
Java is one of the worlds most popular and the most used languages. It is a class based object oriented language .Its been in use for over 20years. One of the advantages of Java is the "write once, run anywhere" which is made possible by the Java Virtual Machine. This means code written and complied on a particular machine, can be run on any other machine irrespective of its internal structure. Java is extremely popular among enterprise developers and desktop applications developers. Java is not as beginner friendly as python or JavaScript. It has a very wide range of use and can be used for, mobile development, web development and desktop applications.
Web frameworks in Java:
Spring: Spring is an open source framework, mainly used to develop enterprise applications. Spring helps developers build secure, fast and loosely coupled applications with developers focusing mainly on the business logic of the application. Spring has a large community supporting and improving it. Learn more about spring on the official documentation
JSF (Java Server Faces): Java Server Faces was developed by oracle to be used for creating enterprise, native and web applications. JSF helps developers create User Interfaces by just dragging and dropping UI components. It makes developing the presentation layer of an application easier, without advanced knowledge of client-side technologies like HTML, CSS, JavaScript. It is an integral part of the Java EE and also provides some excellent libraries.
PHP
PHP is a server scripting language that is used for creating dynamic and interactive websites. PHP is one of the oldest and most widely used languages for server side programming. A recent study showed that as of 2018, about 78% of websites on the internet use PHP in some way. Its popularity can be attributed to the fact that it is beginner friendly, and its very easy to set up. Apart from server side development, PHP can be used to write desktop applications. Some content management systems like wordpress, magento, Drupal also use PHP.
Examples of web frameworks for PHP are:
- Laravel: Laravel is the most popular PHP framework. It is an open source framework that was introduced in 2011 to help developers build complex web applications securely and at a faster pace. It was created to help developers perform common tasks like authentication, routing and caching easily. Laravel also provides a range of security features and methods for authorization, email verification, password reset and password encryption. It also has a large community of developers supporting it.
Other PHP web frameworks include Symfony and CodeIgniter
PYTHON
Python is the fastest growing programming language. It is probably the most versatile language as it can be used in a ton of industries. Python can be used for web development, machine learning, Artificial Intelligence, game development and enterprise application development. Python is also very beginner friendly, and has a syntax which is quite simpler and easier to learn when compared with other languages like Java. Just like java, it is an object oriented language and has been praised for it elegance and readability.
Examples of web frameworks for Python are:
- Django : Django is a full stack open source python framework. It is the framework for perfectionists with deadlines. It helps developers build complex applications quickly. It is also python's most used web framework. It provides many in built libraries, reusable components that reduces the amount of code needed to get an app running. It provides features like authentication, URL routing, Object Relational Mapper and Admin privileges' and functionalities. Django has a large community of developers consistently improving on the project.
Other Popular python frameworks include Flask, Web2py, pyramid.
There a many other frameworks that are in use apart from the ones listed here. Many other languages like Javascript(Nodejs), Ruby on rails can also be used for backend development. Choosing a framework/ language for a project you should consider the size of your app and the future of the app too. If you plan on scaling the project later, you should consider frameworks that allows you to scale easily both horizontally and vertically.