2009-06-23 4 views
7

Ich bin ein .NET Entwickler. Ich habe keine Erfahrung mit Python. Welche Plattform ist besser skalierbar? Welche Plattform eignet sich besser für große Websites mit hohem Datenaufkommen? Wenn Sie Erfahrung mit Skalierbarkeit auf diesen Plattformen haben, informieren Sie uns bitte.Python/Django oder C#/ASP.NET für Web-Entwicklung?

Vielen Dank.

Antwort

14

So sehr ich Python liebe (und das ist ein LOS! -), wenn Sie C# sehr gut beherrschen und, wie Sie sagen, "keine Erfahrung mit Python haben", Ihr Code wird besser skalierbar und geeignet (für die nächsten Monate, zumindest), wenn Sie bei dem bleiben, was Sie am besten wissen. Für einen hypothetischen Entwickler, der auf beiden Plattformen sehr geschickt ist, wäre die Skalierbarkeit im Wesentlichen ein Wash, und Python würde die Produktivität dieses Entwicklers verbessern; Aber um wirklich gut in jeder Technologie zu sein, braucht man einige Monate Übung, es passiert nicht einfach "magisch".

Also, wenn Sie nicht versuchen, Ihre Palette von Fähigkeiten und Beschäftigungsmöglichkeiten zu erweitern, oder Ihre Produktivität zu erhöhen, sondern speziell auf die Skalierbarkeit der Web-Anwendungen konzentrieren, die Sie gerade codieren, habe ich, guten Gewissens, zu empfehlen, bei C# zu bleiben. Sie sollten auch IronPython ausprobieren (und das großartige Buch "IronPython in Action" von Mannings bekommen - Bias-Alarm, ich bin mit dem Autor befreundet und war ein technischer Rezensent dieses Buches ;-) für alle Arten von Nicht-Produktions-Support-Code , um einen Eindruck davon zu bekommen und den unglaublichen Produktivitätsschub, den es Ihnen geben kann ... aber, um Ihren Kunden oder Arbeitgebern den besten Wert zu liefern, bleiben Sie bei dem, was Sie WIRKLICH beherrschen, C# für Skalierbarkeit-kritische Arbeit, die Sie liefern zu ihnen!

13

Fast alle bekannten Frameworks und Sprachen können skaliert werden.

Es ist nicht wichtig, welche Sie verwenden. Es geht darum, wie gut Sie den Code, der am wichtigsten ist, strukturieren.

Auf einer persönlichen Ebene ist es immer gut, mehr als eine Sprache zu kennen.

Sie können jedoch perfekt skalierbare Python-, PHP-, .NET-Anwendungen erstellen. Die Qualität des Codes ist der erste Ort der Skalierbarkeit wird nicht die Sprache fallen.

+0

Also wahr, sehr gut gesagt! Wenn Sie eine perfekte Programmierung sind ... dann würde ich .net wegen der Skalierbarkeit verwenden, aber wenn Sie Zuverlässigkeit wollen, würde ich PHP für jetzt verwenden. –

3

Derek hatte eine großartige Antwort, also werde ich es nicht wiederholen.

Ich möchte jedoch eine Beobachtung machen. Obwohl die Sprachwahl heutzutage meist keine große Sache ist, wenn Sie wirklich hohe Leistung und Skalierbarkeit benötigen, könnte die dynamische Natur von Python Sie wieder heimsuchen. Bei allen Vorteilen, die eine dynamische Sprache bieten kann, werden diese zusätzlichen Kosten durch zusätzliche Kosten verursacht. Die .NET-Plattform bietet vollständig kompilierte Sprachen und bietet eine Vielzahl von Möglichkeiten zur Optimierung der Leistung von kompiliertem Code (einschließlich ngen-Unterstützung, sodass Sie nativ kompilierte Module erstellen können, die nicht JITted sein müssen.)

ich nicht wissen, ob die performance-rank .NET-kompilierten Sprachen über Python wirklich genug für Ihre spezielle Anwendung sind, aber da Sie bereits ein .NET-Entwickler sind, könnte die Verwendung von ASP.NET die beste Option sein.

+0

Ja, ich habe mich über diese Tatsache gewundert (interpretierte vs kompilierte Sprachen) Wie kommen große Gewehre wie Google und Facebook mit interpretierten Sprachen zurecht?Selbst die geringste Kante würde einen großen Unterschied machen, sogar für Google Mail und You Tube (Was ist Python oder?) Ich habe gehört, interpretierte Sprachen können bis zu 10-mal langsamer als kompilierte Sprachen laufen ?? – gideon

+0

"edgy" Unternehmen wollen weder MS-Sklaven noch die damit verbundenen Kosten sein. Wenn Sie genug Hardware bei praktisch allen gut geschriebenen Implementierungen einsetzen, werden Sie absolut überleben. Aus diesem Grund können Unternehmen wie Facebook etwas so langsames wie PHP verwenden, aber es hinderte sie auch nicht daran, die Performance-Probleme mit Hiphop zu beheben. Das Problem ist, dass ein durchschnittlicher Joe diese Art von Hardware oder Ressourcen nicht auf das Problem werfen kann. C++, C# und Java sind die Könige des Hügels in Performanceville, und C# .NET ist eine solide Lösung für die schnelle Entwicklung von Großprojekten. – jsteinmann

1

Es gibt eine zusätzliche Skalierbarkeit Kosten mit .NET über Python, die Kosten für Windows Server-Lizenzen (zumindest fügen Sie normalerweise auch SQL Server dazu).

+1

ASP.NET-Anwendungen können auch unter Linux mit Mono implementiert werden. (Ich habe praktische Erfahrungen mit der Bereitstellung von ASP.NET-Anwendungen auf Apache- und nginx-Servern.) Monetäre Kosten sind nicht wirklich ein Problem, da Sie überhaupt keine Windows-Lizenzen benötigen, es sei denn, Sie verwenden .NET-Funktionen, die nicht in Mono implementiert sind . – cdhowie

+0

In einigen Umgebungen sind die "Kosten der Skalierbarkeit" aufgrund der Größe der Teams, Ressourcen usw. praktisch unmöglich. Wenn Sie also von einer "Serverlizenz" sprechen, kann ein einzelner Windows IIS-Server viele Websites bedienen. In den meisten Fällen ist diese Antwort kein Widerspruch. – IAbstract

Verwandte Themen