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.
The popular Java-based frontend component frameworks include Vaadin and Wicket.
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.
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 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.
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.
Rocket and Actix are the popular frameworks used for backend development in Rust programming language.
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.
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.
Objective-C and SWIFT are the programming languages available to develop native applications for iOS.
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 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.
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, Cassandra, CouchDB, 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
.Net - Entity Framework, NHibernate, DatabaseObjects, iBATIS
C++ - ODB
iOS - Core Data
Python - SQLObject
Ruby On Rails - Active Record, iBATIS
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.
Java - Tomcat, GlassFish, JBoss, Jetty
.Net - IIS
Ruby - Passenger, Rack
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.
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.