Scegliere la lingua per costruire un'app basata sul mercato delle assunzioni vs prestazioni e manutenibilità [chiusa]

8

Mi trovo di fronte alla scelta se iniziare a creare componenti Haskell per una determinata app di produzione, tutto in Ruby.

Mi sto appoggiando a Haskell per diversi motivi, principalmente la velocità (Haskell è come 4-8x più veloce), una maggiore trasparenza (tramite il sistema di tipo Haskell) e una più sicura refactability (tipo sistema). Ho già scritto alcuni programmi open source e di produzione in Haskell e mi diverto molto a scriverlo.

La fattibilità non è un problema. Ho giocato con il framework web Haskell Snap e le librerie di database come PostgreSQL.Simple e sono soddisfatto che riscrivere un'app Rails e vari programmi di back-end con Haskell sia fattibile.

Il vero problema è assumere i programmatori quando abbiamo bisogno di scalare il team di sviluppo, o eventualmente di abbandonare del tutto le responsabilità di programmazione. È molto più facile trovare programmatori in Ruby che in Haskell. D'altra parte, la comunità di Haskell sembra crescere, e non è troppo difficile addestrare i programmatori a modificare parti di un programma Haskell se ci si avvicina come DSL (molto simile a Ruby on Rails). Anche il sistema di tipo Haskell sembra promettere una collaborazione molto più sicura rispetto a quella di Ruby dinamico.

Nel suo saggio "Beating the Averages" ( link ), Paul Graham sostiene che l'uso di una lingua superiore può essere vantaggio decisivo. Ma quando ha senso rinunciare ad usare una lingua superiore per facilitare l'aggiunta di programmatori alla tua squadra?

    
posta dan 10.07.2013 - 17:09
fonte

2 risposte

11

Se i vantaggi in termini di velocità, trasparenza e refactability di Haskell sono più importanti per il successo della tua app, allora i rischi di dover formare gli sviluppatori dovrebbero essere con Haskell.

Un programmatore ragionevolmente intelligente con tutoraggio dovrebbe essere in grado di contribuire al tuo sviluppo senza troppo dolore.

Assicurati di poterti permettere (in termini di tempo e costi) di fare quel tutoraggio.

    
risposta data 10.07.2013 - 17:23
fonte
5

Quanti giorni vorresti salvare usando Haskell anziché Ruby? Sarebbe più o meno il numero di giorni necessari per trovare i programmatori Haskell o addestrare programmatori non Haskell? Sei già pronto a insegnare ai programmatori non Haskell come usare Haskell? Sei disposto ad assumere programmatori che conoscono pienamente e bene che non saranno in grado di dimostrare la loro capacità di utilizzare Haskell fino a molto tempo dopo la loro assunzione iniziale?

Queste sono domande difficili a cui rispondere. Penso che il fattore decisivo qui dovrebbe essere se o non intendi continuare ad usare Haskell in futuro o se questo sarà solo per un progetto. Se prevedi di continuare ad utilizzare Haskell in futuro, mentre il programma richiederà più tempo, potrebbe anche essere considerato un investimento. Tuttavia, a mio modesto parere, la lingua non è importante quanto l'architettura. Se si utilizza il giusto framework e la giusta struttura del programma, si potrebbe facilmente sovraperformare lo stesso programma in un'altra lingua "superiore" con il framework sbagliato o la struttura del programma errata.

In altre parole, se il tempo deve essere investito nel fare correttamente un programma, penso che questa volta sarebbe meglio spendere l'analisi di un approccio prima di scrivere la prima riga di codice, che ha dimostrato di ridurre significativamente i tempi di programmazione fatto bene.

    
risposta data 10.07.2013 - 17:26
fonte

Leggi altre domande sui tag