Web Frameworks
Python Flask is only one of a wide variety for website platforms. We’ve listed some of the most popular ones below for most of the major programming languages.
Python
Python is a very popular language with a long history of web development.
- Django is the predominant web framework for Python. It is a very large framework, handling many factors common to major websites. Well suited to people investing a large amount of time into full-featured websites.
- web2py is a very, very comprehensive framework. It comes with it’s own web-based editor and administrative interface, so it can be good for creating big websites when you aren’t so comfortable with raw code and command lines. It currently supports Python 2.
- Bottle is a popular micro-framework, almost identical to Flask. Unlike Flask it has native Python 3 support, but documentation is not quite as complete.
- Flask is the micro-framework used in the workshop today. At this moment it does not officially support Python 3.
Ruby
Similar to Python in many ways, Ruby is also a scripting language with cross-platform support and a popular choice for web development.
- Ruby on Rails is the main Ruby web framework. Like Django it is a large framework with a great number of features. It is one of the most popular web frameworks in computing today. Suited to people spending a lot of time writing websites.
- Sinatra is a very popular micro-framework, very similar to Flask. The Ruby language is even more flexible than Python, so the code can look very clean.
PHP
PHP is unique in being the only language created just to make web pages. Originally it was more like a template language, like how we used a for loop inside HTML during the workshop. But over time it has developed some very sophisticated frameworks.
- CakePHP provides the basics of a web framework and is very popular.
- Symfony is another PHP web framework with a long history and a strong following.
Java
Java is still one of the most popular languages for websites. It’s history as an “enterprise platform” though has made it not very popular amongst enthusiasts. That said, it is still a good option for services that require high performance.
- Spring Web MVC is part of the Spring Framework and the most popular of the Java web frameworks. Compared to Ruby and Python frameworks it requires more configuration, but there are sample applications included that can help get you started. Historically it predates all the other frameworks here, but though there may be a few rough edges it has stood the test of time.
Groovy
The Groovy programming language is an attempt to make a Python/Ruby-esque scripting language for the Java platform. It aims to combine the simplicity of scripting languages with the power and speed of Java.
- Grails is the dominant framework for Groovy. As the name suggests it was inspired by Ruby on Rails.
Scala
Scala is another Java platform language. It aims for a “better Java” type of programming language. The language itself can be very technical, with lots of features and interesting mechanisms.
- Play is a popular framework inspired from the newer Django and Ruby on Rails frameworks. It tends to go it’s own way though as the Java platform is not particularly suited to Django/Rails-style development.
.NET / Mono
The Microsoft .NET platform is technically very similar to Java, though only intended to run on Microsoft Windows. Seeing as most services are Linux based and many developers are on OSX that makes it a tough sell. But the platform is technically sound and has many productive programmers. Fortunately much of the technology is free to use for developers now. You just have to pay for the servers.
Mono is an open-source implementation of the .NET platform. It is reasonably complete in many ways, but not quite as polished as .NET.
- ASP.NET MVC is the current website platform for .NET. It is reasonably complete as a framework, somewhere around the Spring Web MVC/Ruby on Rails/Django mark.
- Nancy is a minimalist framework aiming to support the “super-duper-happy-path”. It works on .NET and Mono.
Javascript
The Javascript language (completely unrelated to the Java language) is often used on the server these days thanks to the Node server. It’s a popular choice for people who already know Javascript.