Provides a list of programming languages, frameworks, and applications useful for Full Stack Development involving Front-End Development, Mobile App Development, Back-End Development, and Web Or Application Servers.

Full Stack Development
August 12, 2019
Full Stack Development

With the advancement in technologies and programming languages, Full Stack Development has become a preferred choice of several employers. Though there are employers who prefer employees with specific skills, Full Stack Development is vital in certain situations.

This post covers the list of popular programming languages, frameworks, and applications as part of front-end, back-end, and mobile app development. It also provides a list of popular web and application servers which are used to deploy the applications. The actual full-stack development environment with a selective set of skills from each layer i.e. Web, Mobile, and Backend might differ based on project demand.

Notes: This post is specific to web development and lists the programming languages, frameworks, and applications involved in web development. Please also provide your comments to update this list in case your favorite language or framework is not included.

Front-End Development

The front-end web development involves the development of graphical interface majorly using HTML, CSS, and JavaScript as the base languages. HTML is a markup language, CSS is a style sheet language, and JavaScript is a programming language. All the 3 languages are dominating in web development. TypeScript evolved as a pure object-oriented programming language supporting classes, interfaces, and static typing. It's widely adopted for both backend and frontend development.

Writing CSS also made easy as the SASS and LESS pre-processors evolved as extensions to CSS. LESS is based on JavaScript and SASS is based on Ruby. As a front-end developer, one must know either of SASS or LESS. The popular CSS frameworks include Bootstrap, Foundation, Bulma, and Semantic UI. Using either of the CSS frameworks saves a lot of time to design the front-end.

The popular JavaScript frameworks for front-end development include Angular, React, Vue, Ember, and Backbone. A front-end developer must be well versed with at least one of these JavaScript frameworks.

The popular Java-based frontend component frameworks include Vaadin and Wicket.

There are projects which expect the programmer to know frontend languages majorly used for desktop applications involving JavaScript(Electron, NW.js, AppJS), Java(JavaFX, Swing), Cocoa, and .Net(UWP, WPF, WinForms). These can be used to develop desktop applications as Standalone Business Application, Client-Server Application, Utilities, Multimedia Applications, etc.

Back-End Development

With the evolvement of JavaScript as a backend programming language, it narrowed down the gap between frontend and backend developers since the same frontend developer can also do backend development. Still, the concepts involved in both backend and frontend development differs and one must be aware of common design patterns. This section provides a list of programming languages and frameworks used for backend development.

The popular programming languages used for backend development include PHP, JavaScript, Java, Ruby, Python, Rust, and .Net. The rest of this section lists the popular frameworks available in these languages.

PHP

Laravel is the most popular framework in PHP. The other popular frameworks include Symphony, CakePHP, Yii, Codeigniter, Phalcon, and Zend Framework. Though Yii came before Laravel, the later supersedes Yii at a much faster rate and soon became the de-facto choice of major organizations for small, mid and large scale applications.

JavaScript

Express is the default choice for backend development. The other popular frameworks for JavaScript backend development include Meteor, Koa, Sails.

Java

Java is still the preferred language for enterprise development. Spring Framework is a widely used Java framework for backend development. The other popular Java frameworks include Blade, Grails, JHipster, Play, JSF, and Struts.

Ruby

Ruby On Rails is quick, secure and used to develop high-quality web applications. Its demand has been decreased over the past few years as Node.js gained popularity.

Python

Django is the default backend framework available for Python developers. It follows the model-template-view architectural pattern and used for rapid development of web-based applications.

Rust

Rocket and Actix are the popular frameworks used for backend development in Rust programming language.

.Net

VB.Net, C#, and J# are being used for backend development.

Mobile App Development

Mobile app development requires completely different skills as compared to Backend and Frontend development. With the advancement of Hybrid and Progressive apps, it made it easy to develop cross-platform mobile applications without knowing the mobile platform-specific languages. Below listed are the popular ways to develop mobile applications.

Android

Java was the default choice to develop native mobile applications before the release of Kotlin. Nowadays both Java and Kotlin can be used to develop Android applications.

iOS

Objective-C and SWIFT are the programming languages available to develop native applications for iOS.

Hybrid

Several programming languages and frameworks evolved over time to develop hybrid applications with the combination of web and native technology. The popular platforms and frameworks used to develop hybrid applications include Angular, React Native, Ionic, NativeScript, Flutter, Xamarin, Appcelerator Titanium, and PhoneGap.

Progressive

Progressive Web App or PWA is an application built using web technology. These applications can be added to the home screen and run as web application covering the full-screen area. It is not mandatory to distribute these apps via native app stores.

Database System

Knowing a database system is also a part of full-stack development. Most of the applications involve interaction with the popular database systems to persist the application data. There are applications which do not need any kind of database system. The popular relational database systems include MySQL, MariaDB, MS SQL, Oracle, PostgreSQL, DB2, and SQLite. The popular NoSQL database systems include MongoDB, CassandraCouchDB, Redis, and Elasticsearch. Elasticsearch is being used for search engines.

The programming languages provide direct interaction with these database systems using the standard packages and drivers. There are several libraries evolved to make the database operations easy which avoid writing plain SQL queries.

PHP - Doctrine, Eloquent, Yii.

Java - Hibernate, JPA, MyBatis, iBATIS

Django

.Net - Entity Framework, NHibernate, DatabaseObjects, iBATIS

C++ - ODB

iOS - Core Data

Python - SQLObject

Ruby On Rails - Active Record, iBATIS

Web/Application Servers

Knowing the basics of relevant Web or Application server can also be considered as part of full-stack development since the application also need a server to run the backend. The popular web servers are listed below.

PHP, JavaScript - Apache, Nginx, IIS

JavaScript - Node.js

Java - Tomcat, GlassFish, JBoss, Jetty

.Net - IIS

Ruby - Passenger, Rack

DevOps

Continuous Integration (CI) and Continous Delivery (CD) are the inherent operations involved in software-defined lifecycles. CI is used for building and testing purpose, whereas CD handles the packaging and deployment part. Both CI and CD practices are involved in Development and Operations (DevOps) to shorten the system development life-cycle to frequently deliver the end application.

The popular tools and systems involved in DevOps are Jenkins, GitLab, Git, Gradle, Gulp, Bamboo, Docker, Vagrant, Kubernetes, Puppet, Ansible, etc.

Knowing these tools and practices is an added advantage for Full Stack Development.

Serverless Applications

Nowadays serverless applications are also trending. These applications utilize cloud-based infrastructure without worrying about the actual servers or database systems at an additional cost. It also eliminates the infrastructure management tasks. The popular platforms include AWS Lambda, Microsoft Azure, Google App Engine, and Google Cloud Platform. These platforms provide scalable environments which can handle both large data and traffic demands.

Write a Comment

Click on the captcha image to get new code.
Discussion Forum by DISQUS