I have been using Django for many years (since Django 1.2). and in the past, I used different type of web frameworks (such as CakePHP, Rails, ASP.NET MVC, and some other full-stack framework)
I'm a big fan of Django. I start to be amazed by how Django design its framework. It is so unique that every time I wanted to try a new programming language (such as Go, Scala, Ruby, Haskell), I always looks for a framework that is almost similar to Django.
Django is so different in how we develop the apps:
- it encourage pluggable apps:
- uses Model View Template instead of MVC:
- mentioned in FAQ.
- view describes which data is presented
- template describes how the data is presented
- a view normally delegates to a template
- controller is probably the framework itself: the machinery that sends a request to the appropriate view, according to the Django URL configuration.
I would not believe that Django pioneer the concept of pluggable/reusable apps and the MVT framework. I believed this pattern is very common in Framework Design. Just that I completely have no idea, what is this (design) pattern called? This concept is very useful to be applied in other framework. I believed knowing the name of the pattern could help me understand or even build a new framework on different language with the same concept.
Currently there are tons of web framework, most of them are following the classic MVC pattern. Some use the concept of plugin to add certain capability, in which to me plugin is just like python-pip. These are not the core feature I'm looking for.
So I did tried to learn as many framework I could in order to find an alternative framework in different languages. Hoping that I could find out the pattern that Django use. However, it is impossible for me to learn all of them. In fact, I haven't found one.
I have been searching for:
- Django like framework in 'ruby'
- Django like framework in 'Java'
- Django like framework in 'Haskell'
- Django like framework in 'Go-Lang'
- Django like framework in 'Scala'
Unfortunately, none of them really, highlight the unique part of Django which we are interested in.
In this Q&A, I would like to know what do people call such framework? (Or What pattern is Django use?)
Aucun commentaire:
Enregistrer un commentaire