HTML i.e. HyperText Markup Language was designed for static websites. When it was devised, we didn’t visualize the internet the way it is today. And hence HTML carries a lot of shortcomings for current web application development where displayed information is dynamic in nature. To overcome this shortcoming quite a few frameworks were developed. AngularJS is such a framework for dynamic web applications.
In last 5 to 10 years, mobile penetration has grown by about 25% across the globe. This was also accompanied by increased usage of mobile internet resulting in people spending more time on their smartphones. Since it is easy for mobile users to get distracted, it became absolutely important for websites to be really fast. This gave rise to a framework called AMP – Accelerated Mobile Pages.
Big Data – the buzzword making rounds for last few years! Big Data refers to data sets so voluminous and complex that traditional data processing applications become inadequate. The data needs special provisioning for storage, analysis, sharing, and querying etc. This is where Apache Hadoop, Apache Spark come to your rescue.
A few days back I wrote about Python-based web application framework called Django. Let’s talk about another framework for web app development framework which is built in PHP. It is called as Laravel and has become popular in PHP community for various reasons.
What is Laravel?
Laravel is a PHP based framework which is build using Symphony2 components. Being a framework it provides services and libraries to handle web requests, database etc. This implements MVC architecture (Model-View-Controller) and has 3 different components meant for MVC.
Eloquent provides Object Relational Mapping (ORM) component, which interacts with an underlying database such as MySQL, PostgreSQL or MSSQL.
Blade is a component that provides the view in this framework. It is the templating engine that Laravel uses, supports inheritance and support extensible control structures
Controllers provide a way to group request handling logic and is used in conjunction with Routes to handle the HTTP requests.
Why is Laravel becoming popular?
- Routing system
- Intuitive Templating Engine – Blade
- Open source
- Built-in support for authentication
- Uses Inversion of Control (IoC) design pattern to remove dependencies on third-party components, yet maintaining the functionality and flexibility for the developers
- Built-in support for unit testing.
- Built-in command line tool – Artisan
- Support database migration to facilitate incremental development.
- Interface to various Queues such as Amazon SQS, IronMQ, Redis Queues
- Abstraction layer for filesystem – supports Amazon S3, FTP/SFTP, Local or Dropbox!
Laravel has shown consistent releases at regular intervals. It has great community support and hence has gained a lot of traction and attention from PHP community in last 2-3 years. You can see complete timeline on Wikipedia page
Django is a web app framework built using Python language. It is free and open-source (BSD license) framework used by many leading and well-known websites.
What are the features of Django?
It uses Model-View-Controller architecture. The framework consists of:
- Object-relational-mapper (ORM) which connects the data model with backend database (Model).
- Web templating system to process HTTP requests (View)
- URL dispatcher (Controller)
Being a framework, it also includes several components to ease the creation of complex web apps such as authentication module, web server, form component, cache module, support for XML and JSON representations and many more. As an addon, the distribution also contains tools to generate RSS/Atom feeds, Google Sitemaps, built-in mitigation for several vulnerabilities and also administrative interface.
Django framework implicitly enforces a certain way of developing your application, which might be construed as a limitation. However, this in itself maintains the sanctity of the code that is getting developed and keeps the code readable/maintainable even for your teammates.
Which websites are using Django framework?
The list is impressive. Disqus, Bitbucket, Instagram, Mozilla Firefox. Even Pinterest was built using Django, which later was migrated to Flask, another web app framework.
Alternatives for Django:
- Ruby On Rails
- Spring MVC
- ASP .NET MVC
Why would you choose Django?
This framework is written in Python, which is easy to learn and also is one of the most popular languages. Built-in components and supporting modules make the development of the web app very fast. The add-ons provide the modules required for security. However, one of the important features of Django is template inheritance! You can define a base template and extend it for your further use.
- It is pronounced as Jango (D is silent with emphasis on J)
- It was created in 2003 by two developers working at a newspaper.
- It was made open source and Django Software Foundation was formed to maintain the software.
- Framework as has been named after a guitarist Django Reinhardt.