2009-06-23 25 views
7

Sono uno sviluppatore .NET. Non ho esperienza su Python. Quale piattaforma è più scalabile? Quale piattaforma è più adatta per i siti Web ad alto traffico di grandi dimensioni? Se hai esperienza di scalabilità su queste piattaforme, ti preghiamo di informarci.Python/Django o C#/ASP.NET per lo sviluppo web?

Grazie.

risposta

14

Proprio come amo Python (e, questo è MOLTO! -), se sei molto abile in C# e, come dici tu, "non hai esperienza su Python", il tuo codice sarà più scalabile e adatto (per i prossimi diversi mesi, almeno) se ti infili con ciò che sai meglio. Per uno sviluppatore ipotetico estremamente competente su entrambe le piattaforme, la scalabilità sarebbe essenzialmente un lavaggio, e Python migliorerebbe la produttività dello sviluppatore; ma diventare bravi in ​​qualsiasi tecnologia richiede alcuni mesi di pratica, non "semplicemente accade" magicamente.

Quindi, a meno che tu non stia cercando di ampliare la tua gamma di competenze e opportunità di lavoro o di migliorare la tua produttività, ma piuttosto sono specificamente focalizzati sulla scalabilità delle app web che stai codificando in questo momento, ho, in buona coscienza, raccomandare di restare con C#. Dovresti anche provare IronPython (e ottenere il fantastico libro "IronPython in Action" da Mannings - avviso di polarizzazione, sono amico dell'autore ed è stato un revisore tecnico di quel libro ;-) per tutti i tipi di codice di supporto non di produzione , per avere un assaggio di esso e l'incredibile aumento di produttività che può darti ... ma, per offrire il massimo valore ai tuoi clienti o datori di lavoro, attenersi a ciò che VERAMENTE TU padroneggia, C#, per qualsiasi lavoro di scalabilità critico che offri a loro!

13

Quasi tutti i framework e le lingue conosciute possono scalare.

Non importa quale si utilizza. Riguarda quanto bene si struttura il codice che conta di più.

A livello personale è sempre bene conoscere più di una lingua.

Tuttavia, è possibile creare applicazioni Python, PHP, .NET perfettamente scalabili. La qualità del codice è la scalabilità del primo posto che cadrà non nella lingua.

+0

Così vero, molto bene detto! Se sei una programmazione perfetta ... allora userei .net per via della scalabilità, ma se vuoi affidabilità, per il momento utilizzerei PHP. –

3

Derek ha avuto un'ottima risposta, quindi non lo ripeterò.

Vorrei fare un'osservazione, tuttavia. Mentre per la maggior parte, la scelta della lingua non è davvero un grosso problema in questi giorni, se hai davvero bisogno di alte prestazioni e scalabilità, la natura dinamica di Python potrebbe tornare a perseguitarti. Per tutti i vantaggi che può offrire un linguaggio dinamico, questi vantaggi sono a costo di costi aggiuntivi. La piattaforma .NET offre linguaggi completamente compilati e offre una varietà di modi per ottimizzare le prestazioni del codice compilato (incluso il supporto per ngen, in modo da poter creare moduli compilati in modo nativo che non devono essere JITted.)

I do not sapere se i linguaggi compilati con .NET rispetto a Python sono davvero sufficienti per la tua particolare applicazione, ma dato che sei già uno sviluppatore .NET, andare con ASP.NET potrebbe essere l'opzione migliore.

+0

sì, mi sono chiesto questo fatto (interpretato vs lingue compilate) come mai grandi pistole come google e facebook gestiscono con linguaggi interpretati?Anche il minimo vantaggio farebbe un grande diff, anche per gmail e you tube (che è giusto Python?) Ive ha sentito che i linguaggi interpretati possono funzionare fino a 10 volte più lentamente dei linguaggi compilati ?? – gideon

+0

Le aziende "spigolose" non vogliono essere schiave della SM, né i costi ad esse associati. Se lanci abbastanza hardware praticamente a tutte le implementazioni ben scritte, sopravvivrai perfettamente. Ecco perché aziende come Facebook possono usare qualcosa di lento come PHP, ma non impedisce loro di tentare di risolvere i problemi di prestazioni con Hiphop. Il problema è che Joe non può lanciare quel tipo di hardware o risorse al problema. C++, C# e Java sono i re della collina in performanceville e C# .NET è una soluzione solida per lo sviluppo rapido di progetti su larga scala. – jsteinmann

1

C'è un costo di scalabilità aggiunto con andare su .NET su Python, il costo delle licenze di Windows Server (come minimo, di solito si aggiunge anche SQL Server).

+1

Le applicazioni ASP.NET possono essere distribuite anche su Linux, utilizzando Mono. (Ho esperienza del mondo reale nella distribuzione di applicazioni ASP.NET su server Apache e nginx.) Il costo monetario non è un problema in quanto non è necessaria alcuna licenza di Windows, a meno che non si faccia uso di funzionalità .NET non implementate in Mono . – cdhowie

+0

In alcuni ambienti, il "costo della scalabilità" è praticamente inesistente a causa delle dimensioni di team, risorse, ecc. Quindi quando si parla di una "licenza server", un singolo server Windows IIS può * servire * molti siti Web. Nella maggior parte dei casi, questa risposta non è sequitur. – IAbstract