Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python/Django or C#/ASP.NET for web development?

I am a .NET developer. I have no experience on Python. Which platform is more scalable? Which platform is more suitable for large-size high-traffic web sites? If you have any experience about scalability on these platforms, please inform us.

Thank you.

like image 755
mokaymakci Avatar asked Jun 23 '09 09:06

mokaymakci


4 Answers

Much as I love Python (and, that's a LOT!-), if you're highly skilled at C# and, as you say, "have no experience on Python", your code will be more scalable and suitable (for the next several months, at least) if you stick with what you know best. For a hypothetical developer extremely skilled at both platforms, scalability would essentially be a wash, and Python would enhance that developer's productivity; but getting really good at any technology takes some months of practice, it doesn't "just happen" magically.

So, unless you're trying to broaden your range of skills and job opportunities, or enhance your productivity, but rather are specifically, strictly focused on the scalability of the web apps you're coding right now, I have, in good conscience, to recommend you stick with C#. You should also try IronPython (and get the great "IronPython in Action" book from Mannings -- bias alert, I'm friends with the author and was a tech reviewer of that book;-) for all sorts of non-production supporting code, to get a taste of it and the incredible productivity boost it can give you... but, to deliver best value to your clients or employers, stick with what you REALLY master, C#, for any scalability-critical work you deliver to them!

like image 160
Alex Martelli Avatar answered Oct 06 '22 00:10

Alex Martelli


Almost all the well known frameworks and languages can scale.

It doesn't really matter which one you use. Its about how well you structure the code that matters most.

On a personal level it is always good to know more than one language.

But, you can create perfectly scalable Python, PHP, .NET applications. The quality of the code is the first place scalability will fall down not the language.

like image 22
Derek Organ Avatar answered Oct 06 '22 01:10

Derek Organ


Derek had a great answer, so I won't repeat it.

I would like to make one observation, however. While for the most part, the language choice isn't really a big deal these days, if you really need high performance and scalability, the dynamic nature of python might come back to haunt you. For all the benefits that a dynamic language can provide, those benefits do come at the cost of additional overhead. The .NET platform offers fully compiled languages, and offers a variety of ways to tune the performance of compiled code (including ngen support, so you can create natively compiled modules that do not need to be JITted.)

I do not know if the performance edge .NET compiled languages have over Python is really enough for your particular application, but given that you are already a .NET developer, going with ASP.NET might be the best option.

like image 37
jrista Avatar answered Oct 05 '22 23:10

jrista


There is a added scalability cost with going with .NET over Python, the cost of Windows Server licenses (at the minimum, you usually add SQL Server to that as well).

like image 43
joemoe Avatar answered Oct 06 '22 00:10

joemoe