If so, why?
If so, why?
I think Django is just a good package. It’s really productive and the ORM is better and easier to use than entity. The real winner for me is it’s stability though. In the time we’ve gone from classic ASP to web-forms to MVC to modern MVC to .net Core and now soon the new .Net version. Django has remained relatively stable and relatively easy to upgrade.
And make no mistake, we absolutely still operate web-forms applications that will likely never get rewritten in something else.
At the end of the day, tech stacks aren’t really that important though.
Additionally, it has amalgameted into a hybrid framework, where adding a high performance API to an existing MVC app has become trivial.
Not to mention, the excellent language and support for tech like gRPC. On the whole, Asp.net core looks poised to evolve and adapt to changing tech landscape.
I do agree that the stability of Django has made it extremely easy to get an MVP off the ground, especially for a seasoned developer.
I have used both and somehow, the strong typing in C# puts enough constraints on me to reason about my web app as a proper app.
In Django and flask, I would often settle into thinking everything in terms of pieces of data, moreso because of the dynamic nature of Python.
For other use cases, there are better frameworks out there.
Lots of people love ORMs although I’ve found complex queries slow with a hefty object model system, to the point where I’d rather write parameterised sql queries than work with a ORM optimization strategy.
The templating system is nice although these days I mostly use javascript talking to json endpoints, with nearly zero need for a templating system.
Honestly when your need is: “javascript talks to endpoint and endpoint talks to database” I don’t see a greater need than python, nodejs, golang or whatever language you prefer plus a couple of libraries. Most server frameworks add more stuff you probably don’t need, unless you can’t work without an integrated ORM.
We dropped PHP due to the lack of any really good frameworks, but now we have Laravel. PHP is still a solid choice and it’s fast.
In the end we went with Django because we liked Python and Django is really well documented and easy to learn.
For simpler sites Laravel vs Django probably just comes down to which ecosystem you are most familiar with.
We are a .NET shop, we'd love to use Django, Drupal, etc. But does that also mean we need a dedicated Python resource to support these CMS'?
Or could we use these CMS' out of the box?
Or would we just be better off with a .NET CMS like Umbraco or Orchid?
It only ever makes sense to use Python for data-science one-offs and munging if you have competency in Java/C#/etc. It's not a language well suited to application development.
Threads which start like that rarely end up contributing anything of value or convincing anyone who didn’t already agree with the author.
I work with Python every day and have for years and it's strengths and weaknesses are readily apparent to me but not to everyone apparently.
Since this is a Django thread, that could be covering things about, say, why you prefer .Net forms or trade offs from various ORMs.
I think C# is a quite respectable language so you could cover, say, why its typing is more productive than something like mypy or how package management compares.
Big nono!!
C# is a powerful language that is highly expressive, has a great type system, excellent compiler and great IDE, excellent async support, fast HTTP stack in standard library, blessed application development framework and object relational mapper, etc. Basically everything you could ask for in an ecosystem for developing a long-lived web application.
Python is a scripting language which is great for one-offs and has great data-science libraries but lacks static typing, poor IDE experience, slow runtime performance, poor portability because of it's reliance on FFI, poor long-term application maintenance track record, no blessed frameworks, competing and incompatible async solutions, etc.
Tbh I don't think there is much contest. Yes you can write a bunch of Python quickly that will do something but if you already know C# which is much better suited for the task it's clearly a better choice.
Maybe but you should always ask for what, that's the main-point. Sometimes Java or even Javascript/Node is the best stack. Many many point's play into a decision for a web-stack, maybe he wants that "quickly", maybe he works in a C# shop and so on....
Hopefully it changes now that C# is open source, but for now it's quite a big downside.
I don’t know if that is still true today.