Hi everyone !
I’d just like to have your advice on one specific topic : sustainaibility of an online business project through a web framework.
Let me explain : I’m a self taught developer. During my free time I love to play with web development and this why I’ve chosen Django.
I’m also interested by the world of startups and self entrepreneurship.
Which leads to the following question : what if (one day maybe) I have an online business that I’ve built from scratch with Django and encounter issues for whatever reason ? Using the forum while customers are waiting for bug fixing ?
Because if for example I would choose ASP.NET core MVC, I’d have Microsoft support for cheap right ?
To put it in a nutshell : I love Python cleanliness and Django by far but in the context of the creation of an online business I’m sceptic about code support possibilities (Open community) in comparison with .NET Core MVC (Backed by Microsoft) ?
Thank you in advance
<highly opinionated post>
Couple different points here. First, I spent 28 years working for a large corporation, where over the last 15 years of my tenure there, we paid large sums of money to various software firms for “Support Contracts”. From my perspective, the value that our division saw from them wasn’t worth 1% of what was paid.
My opinion was that they were a “CYA” move by middle / upper management to deflect responsibility for some core systems.
But heaven help you if you tried to contact any of them about a problem that was your fault. As soon as that was determined, the category changed from a defect as part of the contract to a support request getting billed at the hourly rate.
The worst part is that you almost never end up dealing with the same “level 1” support person twice. You always start out by going through their script of “trivial issues” before you even begin to address your problem.
No, I’m no fan of corporate software support. Not for the cost you end up paying for it - and not just the dollars up front, but the amount of time you spend actually getting to someone who can really help.
On the other hand, getting support from smaller companies generally worked out better for us. You get to know your support person and they get to know you. They grow to realize that you’re not the type to call because you’ve forgotten to plug the monitor in. (Yes, there’s always the risk that your contact leaves that company, but that happens a whole lot less often than getting passed around from person to person until you happen to find the right person at a help desk consisting of hundreds of people.)
There are a number of very competent Django firms that I’m sure you could put on retainer. I’m not going to name names for fear of missing someone, but if you want a good place to start, check out the list of sponsors from the last few DjangoCons. By no means are they the only firms providing support, but they’re probably the most visible.
<conjecture>
I can’t speak for any of them, but I’d have to believe you could find one or two who would be delighted to create a support contract to back you up in case you run into something you really can’t handle.
</conjecture>
</highly opinionated post>
Hi @KenWhitesell, thank you for your valuable answer.
I started learning ASP.NET Core MVC a few days ago.
I really like C# as well, but man, it is a lot more complicated than Django which has everything built-in.
From what I’ve seen on the web, .NET Core is a lot faster :
So :
- Would Django be a suitable solution for high traffic websites with a little VPS server to begin with ?
- Where to find such companies that provide someone with help for Django ?
Whether to use an open source or proprietory framework:
Having been through the mangle on this, and having seen more and more examples that I felt disinclined to be associated with, I think it has to be the open source all the way.
I think the prime reason for this is continuity – at least you know that what you have today is what you’ll have tomorrow, you won’t have someone changing the rules and/or pulling the plug. The other reason is that if there is a bug/problem, at least you have the opportunity to find and fix that bug.
Is Django up to scratch for large sites:
There’s quite an old blog post here about scaling Disqus to 8 billion hits per month:
Here’s a slightly updated account:
Lists of sites running Django:
I’m pretty sure a web search would throw up options for Python/Django support.
Hi @typonaut !
Thanks for your very interesting answer.
Yet, it is not a debate against open source vs proprietary framework as both Django and .NET Core are open source.
My concerns are about :
- Finding professional support for an online business app or SaaS if needed
- Performance for an online business app or SaaS
I think that the examples given in the links I posted show that Django can perform in high traffic environments. I would also guess that this demonstrates that the support for this is out there, because people are doing it. I can’t point you to specific suppliers of support services, but a web search will get you some of the way (possibly dependent upon the Django modules you are using).
Couple different ways to approach this. You could start by searching for “Firms providing Django support”. I get a page worth of results of various sites with lists.
You could also look at companies that sponsor Django (and possibly Python) on various conference sites.
The Django Corporate Members list also has some well-established firms on there.
Thank you @typonaut and @KenWhitesell
One of the thing which also triggered my curiosity is this article :
Is this quote :
Python is understood as slower than C or java, but it isn’t slow for a business logic programming language. Since an ERP system commonly depends on the database as a backend, the foremost bottleneck is the latency to retrieve data from a database, not python. So in this case, the difference of gap of ultimate performance between python and others, like java wouldn’t even be noticed.
- What do you think about it ?
- Performance wise, do you have an opinion on what the above benchmark says ?
- Because actually, what do we mean by “fast backend” is 500 requests / s fast, 1000 requests / s ?
There are three kinds of lies: lies, damned lies, and statistics. (Original source unknown. Generally wrongly attributed to Mark Twain.)
The quote you reference is almost always correct. It is very rare that the real bottleneck within a corporate system is a properly designed web app. (I’ve seen some miserable corporate web apps, usually Java, where the performance is horrible - all caused by some really poor design decisions.)
<opinion>
Web development within the corporate environment is nothing like commercial / public web development.
Public web development is filled with over-designed / over-engineered UX/UI where style is more important than substance.
In the corporate world, it’s the substance that matters. You’re also usually dealing with a more consistent and predictable user base. For most of those types of apps, you can count on needing to support a fairly well-bounded set of browsers and/or mobile devices.
You also typically don’t need to worry about any reasonable response time. I believe the general rule-of-thumb out in the wild is that a page needs to render in about 3 seconds or else you start losing eyes.
It’s nothing for us to expect people to wait 15 - 30 seconds for a particularly knarly page to render.
Finally, in a large corporation (50,000 - 100,000 employees), your typical ERP system probably has 500 - 1000 regular and consistent users and possibly as many as 5,000 - 10,000 infrequent or limited usage users. You really don’t need a large server to support that sort of load.
</opinion>
Apart from what Ken writes (it’s not all “style is more important than substance”!), my experience is that the significant bottleneck is data querying and transfer/processing of that data. Mitigation of that problem is all about crafting SQL.
Ok I see.
So why would people use .NET Core or Java Spring for instance instead of Django if the framework / language is not the main actor for building fast web apps ?
That’s a philosophical question really. There may be reasons why a particular framework/language is desired over another, or it may be just what someone has used in the past. One of the other bottlenecks is manipulation of data, and if a framework/language is paticularly good at that, then that may be a reason for someone to choose it, if they are looking at large data sets.
At the end of the day it is not all about raw speed, it is about the benefits of the whole solution compared to other options.
<opinion>
You ask “X” number of people that question, you’ll probably get 2X+3 number of responses. I can only relate what I’ve seen from 40+years working in large corporate environments.
There are valid reasons to select those products. It’s not a “Python Good / Everything else Bad” situation. There are many reasons why you might choose them, and they would be valid in those particular contexts. Whether it’s corporate culture, support of existing systems or related technologies, or even just management familiarity with products, decisions like this in corporate environments rarely come down to purely technical issues.
You mentioned a big one - the availability of developers with the skills to help move things forward. That’s a valid concern for managers for whom getting the work done is worth a premium price. (If you’ve got a development team of 100 Java programmers, you’re going to get a lot more work done sooner if you develop your app in Java than if you try to retrain them in Python.)
<opinion>
1 Like