Scegliere la lingua principale per la piattaforma Web su larga scala

0

Ora ho lavorato un po 'con PHP e ASP.NET e ho anche giocato su poche altre lingue per lo sviluppo web. Ora sono a un punto in cui è necessario iniziare a costruire una piattaforma di back-end che avrà la capacità di supportare un ampio set di applicazioni e sto cercando di capire quale lingua voglio scegliere come lingua principale. Quando dico "core language" intendo la lingua in cui sarà inserita la maggior parte del codice backend. Questo non vuol dire che altre lingue non saranno usate perché la mia ipotesi è che lo faranno ma voglio una grande maggioranza del codice (90% -98%) per essere in 1 lingua. Mentre vedo trarre vantaggio dall'uso della lingua migliore per il lavoro, avendo il 15% in php, il 15% in ASP.NET, il 5% in perl, il 10% in python, il 15% in ruby, ecc ... sembra proprio un cattiva idea per me (per non parlare di integrare tutto senza problemi probabilmente aggiungerebbe un po 'di overhead).

Se stavi per costruire una piattaforma web su larga scala che necessitasse di supportare più applicazioni da zero, quale sceglieresti come linguaggio principale e perché?

    
posta ryanzec 28.06.2011 - 22:00
fonte

3 risposte

1

Sono d'accordo sul fatto che non vuoi creare un Whitman's Sampler di lingue. Il monitoraggio di versioni diverse di lingue diverse crea un serio onere di manutenzione, che viene moltiplicato su tutti i sistemi utilizzati per sviluppare e implementare la tua app. Significa anche che i membri del tuo team devono essere multilingue per gestire le operazioni quotidiane.

Per una serie di ragioni, Python è la mia lingua preferita, ma nel mercato del lavoro sembrano esserci meno programmatori Python esperti di quanti siano i programmatori PHP o Java. Poiché la descrivi come una piattaforma web su larga scala , devi prendere in considerazione il tuo TCO ( ciò significa che il TCO della propria azienda e / o del cliente) e la scelta della lingua possono avere un impatto decisivo su di essa: in termini di personale disponibile, tempo / costi di sviluppo iniziale e manutenzione e aggiornamenti a lungo termine.

Da un punto di vista prestazionale, la scelta del database avrà sicuramente un impatto molto maggiore sul progetto rispetto alla lingua di implementazione.

    
risposta data 28.06.2011 - 22:15
fonte
0

Se vai con Java e JVM ottieni un sacco di ottime lingue che puoi usare anche tu. Groovy, Scala sono simili a Java, quindi la curva di apprendimento non è eccezionale ma ottieni caratteristiche diverse con tutti e tre.

    
risposta data 28.06.2011 - 22:05
fonte
-2

La lingua che scegli dipende in gran parte dalla tua squadra e dalla tua esperienza. Usare una lingua superiore per qualcosa con cui sei intimamente familiare può dare qualche beneficio linguistico - ma passerai molto più tempo ad imparare quel nuovo ambiente. (Ma noi tutti scegliamo le cose nuove e brillanti, vero?)

Ciò che conta ancora di più è la piattaforma su cui lavorerai:

Essendo io stesso un programmatore .NET, posso solo consigliarti di andare con uno stack UNIX.

Perché:?

Ho iniziato a divertirmi molto con Ruby e, come altri hanno già detto, se si esegue una JVM si ha accesso a un sacco di linguaggi interessanti e innovativi pur essendo in grado di automatizzare la maggior parte delle attività tramite strumenti Unix. Essere su .NET non mi dà quella flessibilità. Non riesco ad eseguire altri linguaggi sulla piattaforma .NET (ad eccezione dei pochi che Microsoft sta sviluppando da sé) mentre tutto il resto deve essere trasferito. E quelle porte di solito non sono veloci o stabili come i loro equivalenti Unix.

Inoltre, su Windows ogni release di un server di produzione è un problema (a meno che tu non spenda molto tempo a migliorare quel processo) mentre le distribuzioni Unix di solito implicano qualche script bash con SSH o se hai bisogno di qualcosa in più puoi andare con Maven o Capistrano ..

Inoltre, devo dire che una volta che sei su un server Windows inizia a sembrare triste per altre lingue. Se decidi più tardi nel progetto che preferiresti usare Ruby, puoi eseguire IIS su CGI, non c'è dubbio, ma avrai un sacco di tempo per provare a far funzionare Ruby su Windows (compilando i driver del database) o alcune gemme native sono di solito un incubo). E anche MingW / CygWin non sono soluzioni reali a questo.

Anche andare con una soluzione .NET implica anche andare con MSSQL - e buona fortuna trovare driver di lavoro per la maggior parte dei kit open source per questo.

    
risposta data 28.06.2011 - 23:41
fonte

Leggi altre domande sui tag