Django vs ExtJS

580 views
Skip to first unread message

Joris Benschop

unread,
Dec 29, 2014, 9:55:57 AM12/29/14
to django...@googlegroups.com
Hi List,

I;m a data maangement specialist in a rather large multinational. I'm trying to push Django as a fast development framework for front-end applications of our databases. Currently the company is focusing on Sencha ExtJS and java solutions. Can you help me with pointers why Django is better? The free-as-in-beer argument is not very convincing by itself. 

Thanks
Joris

Guilherme Leal

unread,
Dec 29, 2014, 10:52:00 AM12/29/14
to django...@googlegroups.com
Sincerely, I can't see the ExtJS's Models as true models on an MVC (or MVT for instance) context, since the only real uses I've seen of them is to bind form controls to any "model like" (basically anything) structure. Therefore, the best comparsion for the ExtJS would be AngularJS (this is my point of view, I might be wrong on this one).

But if you REALLY want to compare them, I would say that the biggest point that django excels ExtJS, is that ExtJS doesn't have any meaningfull way to introspect your DB to build the models dynamically, and with django you can. As an exemple, with django, you can build an app that read your DB metadata and build everithing from there (basicaly models; the views and templates you can build in a way that they can read everything on a given standard).

If you provide more specific info about the project, maybe we can come with some more concrete comparsions.
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/53e17853-9922-4f77-bf9a-4cea7d35ade3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Joris Benschop

unread,
Dec 30, 2014, 3:47:54 AM12/30/14
to django...@googlegroups.com
Thank you, this is already very helpful.
Currently company policy is to create REST services in java for each backend and use ExtJS to query and visualize the results. With DJango I'm trying to combine these into one, whilst staying compatible by using tastypie as a REST service (so ExtJS can connect to that).

joris



On 29-12-14 16:51, Guilherme Leal wrote:
Sincerely, I can't see the ExtJS's Models as true models on an MVC (or MVT for instance) context, since the only real uses I've seen of them is to bind form controls to any "model like" (basically anything) structure. Therefore, the best comparsion for the ExtJS would be AngularJS (this is my point of view, I might be wrong on this one).

But if you REALLY want to compare them, I would say that the biggest point that django excels ExtJS, is that ExtJS doesn't have any meaningfull way to introspect your DB to build the models dynamically, and with django you can. As an exemple, with django, you can build an app that read your DB metadata and build everithing from there (basicaly models; the views and templates you can build in a way that they can read everything on a given standard).

If you provide more specific info about the project, maybe we can come with some more concrete comparsions.

Em Mon Dec 29 2014 at 12:56:05, Joris Benschop <joris.b...@gmail.com> escreveu:
Hi List,

I;m a data maangement specialist in a rather large multinational. I'm trying to push Django as a fast development framework for front-end applications of our databases. Currently the company is focusing on Sencha ExtJS and java solutions. Can you help me with pointers why Django is better? The free-as-in-beer argument is not very convincing by itself. 

Thanks
Joris
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/gbI1X93KjQg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.

Guilherme Leal

unread,
Dec 30, 2014, 5:34:56 AM12/30/14
to django...@googlegroups.com
Given your scenario, we can say that with django, you wouldn't have to worry about creating REST services. You would create only one service, and let django manage the backend switch (with db routers). If you build your service well, you would have an abstract REST view/url generator (tastypie for instance), and with a little bit of effort (REALLY little), you could serialize the resource structure (metadata) on the request, and let ExtJS read that structure to build your frontend. Of course, this aproach requires a little bit of cache (to save some time on the read structure/build html for ExtJS). With that, you would have to write basically only the models (and of course, any exceptional case that might occur). And if you use django 1.7+, you can LITTERALLY forget about db admin, since django handles the migrations as well.

I've done basically the same thing with Django REST Framework and AngularJS for the frontend. Works like a charm, and with the business logic on the signals, reduces the dev time by 90%. And worls like a charm.


Em Tue Dec 30 2014 at 06:47:19, Joris Benschop <joris.b...@gmail.com> escreveu:
Thank you, this is already very helpful.
Currently company policy is to create REST services in java for each backend and use ExtJS to query and visualize the results. With DJango I'm trying to combine these into one, whilst staying compatible by using tastypie as a REST service (so ExtJS can connect to that).

joris



On 29-12-14 16:51, Guilherme Leal wrote:
Sincerely, I can't see the ExtJS's Models as true models on an MVC (or MVT for instance) context, since the only real uses I've seen of them is to bind form controls to any "model like" (basically anything) structure. Therefore, the best comparsion for the ExtJS would be AngularJS (this is my point of view, I might be wrong on this one).

But if you REALLY want to compare them, I would say that the biggest point that django excels ExtJS, is that ExtJS doesn't have any meaningfull way to introspect your DB to build the models dynamically, and with django you can. As an exemple, with django, you can build an app that read your DB metadata and build everithing from there (basicaly models; the views and templates you can build in a way that they can read everything on a given standard).

If you provide more specific info about the project, maybe we can come with some more concrete comparsions.

Em Mon Dec 29 2014 at 12:56:05, Joris Benschop <joris.b...@gmail.com> escreveu:
Hi List,

I;m a data maangement specialist in a rather large multinational. I'm trying to push Django as a fast development framework for front-end applications of our databases. Currently the company is focusing on Sencha ExtJS and java solutions. Can you help me with pointers why Django is better? The free-as-in-beer argument is not very convincing by itself. 

Thanks
Joris
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/gbI1X93KjQg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to django-users+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.

Ariel Calzada

unread,
Dec 30, 2014, 5:37:20 AM12/30/14
to django-users
DJANGO + Tastypie is your TEAM for REST Services, forget Java :)

To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.

For more options, visit https://groups.google.com/d/optout.

Joris Benschop

unread,
Dec 30, 2014, 5:44:20 AM12/30/14
to django...@googlegroups.com
Thank you both for these answers. Personally Im already convinced of Django, but the trick is to convince others. The strong benefit of java is that it is really easy to hire senior java developers on a consultancy basis. For django it is not so simple, especially when the requirement is to have these devs on-site (.nl / .be area).


To unsubscribe from this group and all its topics, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.

Guilherme Leal

unread,
Dec 30, 2014, 5:51:47 AM12/30/14
to django...@googlegroups.com
I can say that, if you build your env like i tould you to, you would need only one senior dev, and only for critical cases (whole env crashed, or major new implementations). The other devs, can be junior devs, hired with the intent to be formed inside the company.

Frank Bieniek

unread,
Dec 30, 2014, 8:44:56 AM12/30/14
to django...@googlegroups.com
Hi Joris,
some of the best arguments for python + django,
you could find here - :

https://www.paypal-engineering.com/2014/12/10/10-myths-of-enterprise-python/
...
One language in particular has both a long history at eBay and PayPal and a growing mindshare among developers: Python.
...


Thanks
Frank


Am Dienstag, 30. Dezember 2014 11:44:20 UTC+1 schrieb Joris Benschop:
Thank you both for these answers. Personally Im already convinced of Django, but the trick is to convince others. The strong benefit of java is that it is really easy to hire senior java developers on a consultancy basis. For django it is not so simple, especially when the requirement is to have these devs on-site (.nl / .be area).



Op 30 dec. 2014 om 11:36 heeft Ariel Calzada <ariel....@gmail.com> het volgende geschreven:

DJANGO + Tastypie is your TEAM for REST Services, forget Java :)
2014-12-30 5:34 GMT-05:00 Guilherme Leal <leal...@gmail.com>:
Given your scenario, we can say that with django, you wouldn't have to worry about creating REST services. You would create only one service, and let django manage the backend switch (with db routers). If you build your service well, you would have an abstract REST view/url generator (tastypie for instance), and with a little bit of effort (REALLY little), you could serialize the resource structure (metadata) on the request, and let ExtJS read that structure to build your frontend. Of course, this aproach requires a little bit of cache (to save some time on the read structure/build html for ExtJS). With that, you would have to write basically only the models (and of course, any exceptional case that might occur). And if you use django 1.7+, you can LITTERALLY forget about db admin, since django handles the migrations as well.

I've done basically the same thing with Django REST Framework and AngularJS for the frontend. Works like a charm, and with the business logic on the signals, reduces the dev time by 90%. And worls like a charm.

Em Tue Dec 30 2014 at 06:47:19, Joris Benschop <joris.b...@gmail.com> escreveu:
Thank you, this is already very helpful.
Currently company policy is to create REST services in java for each backend and use ExtJS to query and visualize the results. With DJango I'm trying to combine these into one, whilst staying compatible by using tastypie as a REST service (so ExtJS can connect to that).

joris



On 29-12-14 16:51, Guilherme Leal wrote:
Sincerely, I can't see the ExtJS's Models as true models on an MVC (or MVT for instance) context, since the only real uses I've seen of them is to bind form controls to any "model like" (basically anything) structure. Therefore, the best comparsion for the ExtJS would be AngularJS (this is my point of view, I might be wrong on this one).

But if you REALLY want to compare them, I would say that the biggest point that django excels ExtJS, is that ExtJS doesn't have any meaningfull way to introspect your DB to build the models dynamically, and with django you can. As an exemple, with django, you can build an app that read your DB metadata and build everithing from there (basicaly models; the views and templates you can build in a way that they can read everything on a given standard).

If you provide more specific info about the project, maybe we can come with some more concrete comparsions.

Em Mon Dec 29 2014 at 12:56:05, Joris Benschop <joris.b...@gmail.com> escreveu:
Hi List,

I;m a data maangement specialist in a rather large multinational. I'm trying to push Django as a fast development framework for front-end applications of our databases. Currently the company is focusing on Sencha ExtJS and java solutions. Can you help me with pointers why Django is better? The free-as-in-beer argument is not very convincing by itself. 

Thanks
Joris
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
--
You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/gbI1X93KjQg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/54A2667B.9030105%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAOs3Lp5rA49SikYDxDydNvhkwvQdyXZXDfeBvOA%3D%2BiNyNgHeng%40mail.gmail.com.

For more options, visit https://groups.google.com/d/optout.

Jani Tiainen

unread,
Dec 30, 2014, 8:45:08 AM12/30/14
to django...@googlegroups.com
I'll give my late insight here. We're having rather large SPA's built
on top of ExtJS + Django and REST rather successfully.

Of course ExtJS and REST is really a joke - there is nothing that
really proper rest support in ExtJS, (no HATEOAS at all)

For a Django side REST tool we've been using DRF
(Django-Rest-Framework) which big gun for REST api.

Now why we picked Django over several others - We tried PHP, we
used Java for few web apps (and it's still in use). First reason was
the speed. We could implement features much faster with Python and
Django than we ever could do with Java (we did similiar apps with Java
as well but pace was definitely slower). Specially getting things
done within a reasonable time. Also lot of boilerplate code was
unnecessary. In Java we had really carefully plan every attribute and
getters and setters. Python makes lot of shortcuts there and it's much
more easier to do "magic". Though there lies a danger - you can write
Python code as Java (or even like C code) and that is not pretty
sight...

Another reason was level of complexity - even simplest Java app
(deployed on Tomcat) takes lot of efforts and "special" knowledge, not
to mention that you have to match versions you build with java versions
and complex configuration. Python is much more forgiving in those parts.

Of course we've ran a few issues on the road, like composite keys and
some "oo" features of Django ORM that were possible with Hibernate.

So current main setup in our development stack is Python (2.7), Django
(1.5), Oracle (10g and 11g), ExtJS (4.3), Dojotoolkit (1.6), OpenLayers
(2.x) and mapserver (6.x)

--

Jani Tiainen

--

Jani Tiainen

Antonio Saponara

unread,
Jun 5, 2015, 5:58:16 AM6/5/15
to django...@googlegroups.com
Hi
I am developing my REST proxy for Sencha,

I have tested with ExtJS and Sencha Touch frameworks and it does support, pagination, remote filters, remote sorting and so on.

It's developed with Zend Framework 2 and can support  different DB types on the same installation.

Have a look at:
http://apiskeleton.asaconsult.com/

Jani Tiainen

unread,
Jun 8, 2015, 7:23:18 AM6/8/15
to django...@googlegroups.com
Hi,

I've been working with relatively large (GIS) apps that do use ExtJS and Django.

What comes to ExtJS and it's "REST" that is pure joke. It's not even close what REST should be. There is even long standing thread on ExtJS forums about having better support for REST but I guess it's totally 2nd class citizen in ExtJS world. But we chose ExtJS because it's components, specially grids and trees are pretty much best you can get for the money.

And as ExtJS is purely Javascript framework it doesn't have anything to do with actually Django, which is server side Web framework, written with Python.

What comes to Django it's development speed. You can evaluate and iterate development much faster in Django than in Java (at least in my experience). With development server just change something, go browser and refresh. With django-rest-framework (the big gun for REST apis in Django) you can even develop rest services without having special frontend for that - drf provides nice html API tool that makes developing (and even testing) faster - while you're building and testing your API you can have your frontend devs to do that.

And that's where Django and Python excels. Also Django has rather extensive set of tools that are crafted to work with web and database. ORM, Admin (which is valuable tool while developing), basic user system, authentication and authorization, permissions, form handling and data validation, and much more.



On Mon, 29 Dec 2014 06:55:57 -0800 (PST)
Joris Benschop <joris.b...@gmail.com> wrote:

> --
> You received this message because you are subscribed to the Google Groups "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
> To post to this group, send email to django...@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/53e17853-9922-4f77-bf9a-4cea7d35ade3%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.


--
Jani Tiainen

Antonio Saponara

unread,
Jun 8, 2015, 1:12:17 PM6/8/15
to django...@googlegroups.com
ExtJS is a REST client wich uses  basic CRUD calls to obtain great results with few lines of code!

It supports CRUD, pagination, sorting and filtering out of the box! Please respect also the 2nd class citizen :-|

Django-rest-framework of course is  server-side so it is incomparable! It does a lot of things exactly like many other frameworks. The real point is that you, as a programmer appreciate django for features, reliability, and many other aspects, but your customers needs to see other things like available developers, competitors, references etc etc

I'd love to see django do the same thing i have done with my Zend proxy. Manage a table's crud created in realtime with zero added code!

I mean, you configure the db connection, and every REST calls will manage EVERY table in selected db via CRUD calls, automatically.
Without configuring table, keys, fields and so on.

This can be a great way to  scaffold a prototype really fast!

Once you are at an advanced stage, you can simply change the REST pointers to a more advanced rest-server ;-)

Jani Tiainen

unread,
Jun 9, 2015, 2:00:13 AM6/9/15
to django...@googlegroups.com
On Mon, 8 Jun 2015 10:12:17 -0700 (PDT)
Antonio Saponara <sap...@gmail.com> wrote:

> ExtJS is a REST *client* wich uses basic CRUD calls to obtain great
> results with *few lines of code*!

That is true.

> It supports CRUD, pagination, sorting and filtering out of the box! Please
> respect also the 2nd class citizen :-|

Sure, thing is that there is no support for HATEOAS, unless you code it your self so it makes working with anything more than simple data real painful. With ExtJS you have to know out of band information or like we did, wrote custom stuff to make things work better way. Begin fighting with ExtJS last 6 I've get used to take nothing as granted.

And what's painful is that ExtJS can't save relations (at least version 4.x). Unless you enhance saving functionality to do that.

> Django-rest-framework of course is server-side so it is incomparable! It
> does a lot of things exactly like many other frameworks. The real point is
> that you, as a programmer appreciate django for features, reliability, and
> many other aspects, but your customers needs to see other things like
> available developers, competitors, references etc etc
>
> I'd love to see django do the same thing i have done with my Zend proxy.
> Manage a table's crud created in realtime with zero added code!

Well with Django admin you get all that. Plus nice way to view and edit your data. With a bit of additional definitions (coding iow) in admin parts you get even pretty good system to manage data, specially while you're developing.

> I mean, you configure the db connection, and every REST calls will manage
> EVERY table in selected db via CRUD calls, automatically.
> Without configuring table, keys, fields and so on.
>
> This can be a great way to scaffold a prototype really fast!
>
> Once you are at an advanced stage, you can simply change the REST pointers
> to a more advanced rest-server ;-)

Well DRF can do that, it requires a bit of code, but not hundreds of rows. See DRF generic views in the docs.

With a bit of coding you get all the goodies like nested (de)serialization (which ExtJS REST doesn't even support for writing OOTB)

But development speed was one of the big reasons why we chose Django (drf didn't existed though back then) and lately been adopting DRF.

And we, as our customers have been really happy with the choise. It's cheaper for our customers, and cheaper for us to develop.

One problem, as you noted as well, is to hire Python and Django pros.

--
Jani Tiainen
Reply all
Reply to author
Forward
0 new messages