> That's not a full comparison. It actually doesn't even touch on some of the advantages to using SQLAlchemy (i.e. in the more complex queries). It even says this at the bottom. Did you see that?
Well those are most of the comparisons that could be made, from the top of my head I can't think of any other features that the two share.
> Too many junior developers make the mistake of thinking that their problem, project or app is somehow a unique snowflake and end up reinventing the wheel because they had no idea the wheel existed. Semi-experienced developers will still make this mistake by making bad architectural decisions in the name of flexibility or performance that end up locking them out of library ecosystems that means they are forced to reinvent the wheel even when they know it exists.
Doesn't sticking with Django lock you into the ORM and it's capabilities itself? Unless the library you're using is a Django extension you have the same pool of libraries available to you, so that's an invalid point.
> It's a myth that Django is heavy weight.
I saw that blog post too, however by heavy weight I meant all the remaining stuff you don't need for an API, e.g. you don't need the template, view, form, ... layers
Again my argument is based on building an API not a Website.
>Doesn't sticking with Django lock you into the ORM and it's capabilities itself?
Not really. You're always free to use raw SQL, and it makes it pretty convenient to do so for the occasions when what you want exceeds the ORM's capabilities (which will likely happen).
>Unless the library you're using is a Django extension you have the same pool of libraries available to you, so that's an invalid point.
I was talking about the django extensions. Stuff like a rate limiter, for instance, or a pluggable social media authentication backend. Or the one mentioned by the OP. All useful when making APIs.
>I saw that blog post too, however by heavy weight I meant all the remaining stuff you don't need for an API, e.g. you don't need the template, view, form, ... layers
You're not railroaded into using any of those things if you don't want to (the same way you are with RoR). All of them are optional and most of them are even swappable without too much effort.
So this argument has now been forked into Django's ORM capabilities and wether or not you should use Django for an API. The former is up to taste, the latter is not.
> Not really. You're always free to use raw SQL, and it makes it pretty convenient to do so for the occasions when what you want exceeds the ORM's capabilities (which will likely happen).
I can't argue with this, fine.
> Stuff like a rate limiter, for instance, or a pluggable social media authentication backend. Or the one mentioned by the OP. All useful when making APIs.
Rate limiter is framework independent, can be built using Redis with a few lines of code. So not applicable.
Pluggable social media authentication backend is for websites not APIs for APIs you most commonly use API key/secret. for an api you can still build your portal in Django and do all authentication/whatever there and simply sign requests for the API.
> You're not railroaded into using any of those things if you don't want to (the same way you are with RoR). All of them are optional and most of them are even swappable without too much effort.
I am familiar with Django, and I know that you can (not the ORM though), but do you want to drive a monster truck when all you need is a car to get around? You could, you will get odd looks though.
Since you can't use Django's ORM anywhere else you need to use something that another "car" supports.
I'll leave you with: "if all you have is a hammer everything looks like a nail"
>So this argument has now been forked into Django's ORM capabilities and wether or not you should use Django for an API.
The two are inextricably linked as far as this thread is concerned.
>Rate limiter is framework independent, can be built using Redis with a few lines of code. So not applicable.
Mine is apparently 200 lines of code (library total) and tied to the framework. I guess you are more of a "reinvent the wheel" type programmer.
>Pluggable social media authentication backend is for websites not APIs
APIs do all manner of different things.
Last time I built an API it was a back end for an iphone app. It needed an authentication backend. By using a pluggable framework I could not only let the app log in/sign up using facebook tokens, I could with one added line add twitter or ~40 other back ends, saving me from... reinventing the wheel.
> for an api you can still build your portal in Django and do all authentication/whatever there and simply sign requests for the API.
Or you could just use django for the API as well the portal since it handles everything about making APIs pretty well (with the exception of high load APIs).
>for APIs you most commonly use API key/secret.
For APIs there are many common ways of doing authentication. There's no standard. Basic auth over https, token, oauth, key/secret, cryptographic signature. If you ascribe to a "one true way" you lack judgement and experience.
>I am familiar with Django, and I know that you can (not the ORM though), but do you want to drive a monster truck when all you need is a car to get around?
I already refuted your point that it was a monolithic heavyweight beast. It's composed of multiple small modules all of which exhibit loose coupling and each of which can be used independently or not at all.
>Since you can't use Django's ORM anywhere else
Utterly false. You can use it wherever you like, independently of everything else (sometimes I do that).
Feel free to argue that you don't like it or it's wrong for whatever situation but please refrain from making shit up to justify your point.
Some advice also: curb your instinct to reinvent the wheel, no matter how simple that wheel may seem.
I'm not arsed to explain to you half of what is wrong with that comment, wtf I know you can use the ORM outside of Django but why the f*ck would you.
You're just arguing like a 10 year old fan boy now. Django is great for sites I love it. I also use other tools when I need different things. As for reinventing the wheel it's a very simple code snippet taken from a reliable source then changed to fit needs. So go home sleep learn new things... Don't attempt to build the next OS in Django.
Well those are most of the comparisons that could be made, from the top of my head I can't think of any other features that the two share.
> Too many junior developers make the mistake of thinking that their problem, project or app is somehow a unique snowflake and end up reinventing the wheel because they had no idea the wheel existed. Semi-experienced developers will still make this mistake by making bad architectural decisions in the name of flexibility or performance that end up locking them out of library ecosystems that means they are forced to reinvent the wheel even when they know it exists.
Doesn't sticking with Django lock you into the ORM and it's capabilities itself? Unless the library you're using is a Django extension you have the same pool of libraries available to you, so that's an invalid point.
> It's a myth that Django is heavy weight.
I saw that blog post too, however by heavy weight I meant all the remaining stuff you don't need for an API, e.g. you don't need the template, view, form, ... layers
Again my argument is based on building an API not a Website.