Una misura della velocità di sviluppo

9

Ho visto molti test misurare la velocità di esecuzione dei linguaggi di programmazione, ma non ho mai trovato test che misurino la velocità di sviluppo.

Ho sentito che la velocità di sviluppo aumenta quando si lavora con linguaggi dinamici, ma ce ne sono prove? Non sto cercando di dire che i linguaggi dinamici non sono efficienti, ma mi piacerebbe vedere i risultati di uno studio scientifico, se esiste una cosa del genere.

Ancora meglio sarebbero le informazioni sulla struttura di manutenzione. Alcune lingue sono più facili da eseguire per il debug rispetto ad altre?

EDIT: Sono principalmente interessato alle differenze tra due lingue che sono vicine nella sintassi. Ad esempio, suppongo che la programmazione in C di solito sia più lenta della programmazione in Java; ma la programmazione in Java è più veloce della programmazione in C #?

    
posta DistantEcho 27.10.2010 - 16:44
fonte

5 risposte

6

Assolutamente il linguaggio di programmazione fa la differenza. Tuttavia, ritengo che la differenza dipenda molto dalla familiarità del programmatore con ciascuna lingua rispetto a qualsiasi aspetto particolare della lingua, soprattutto in considerazione del vincolo delle lingue con sintassi simile.

    
risposta data 27.10.2010 - 17:05
fonte
2

Per me è analogo a quale tipo di pennello ti permette di dipingere più rapidamente.

Se consideri ciò che dipingi una merce, allora più grande è il pennello più velocemente dipingi.

Se vedi un buon codice come forma d'arte, allora è inferiore alle dimensioni del pennello e più esattamente quello che fai con i tuoi pennelli.

Mi spiace, questa è una non risposta alla domanda vera e propria.

    
risposta data 27.10.2010 - 16:50
fonte
1

Non sono sicuro che sia pertinente, ma è interessante

Nel mese di Mythical Man, Fred Brooks cita studi che confrontano l'assemblaggio e i linguaggi di livello superiore. Hanno scoperto che i programmatori producevano la stessa quantità di istruzioni all'anno in entrambi, ma le istruzioni per un linguaggio di alto livello erano uguali a più istruzioni di linguaggio assembly. Quindi, passando al linguaggio di alto livello, i programmatori hanno ottenuto un aumento qualunque sia il multiplo medio delle istruzioni di assemblaggio alle istruzioni linguistiche in termini di produttività.

Lo stesso dovrebbe valere per C vs Java / C #, non conosco la vera differenza tra C # e Java. Ma ogni volta che aumenti il livello di astrazione, aumenterai la produttività. Tuttavia, penso anche che ridurrà il controllo su ciò che la macchina sta effettivamente facendo. Devi credere che la lingua sta facendo quello che vuoi. Ad esempio, nel software ad alte prestazioni, la garbage collection è inaccettabile, tranne se hai il controllo completo su quando viene eseguito e per quanto tempo viene eseguito.

    
risposta data 27.10.2010 - 23:46
fonte
1

Che cos'è la produttività? Che cos'è prodotto , anche? Nessuno lo sa, matematicamente parlando.

KLOC?

Complessità ciclomatica?

Punti funzione?

Credo che dovresti esaminare il livello aziendale ed eseguire confronti percentili con altri programmatori che eseguono lavori simili, quindi misurare le funzionalità fornite per programmatore. Questi sono punti molto sofisticati e sottili per essere in grado di misurare statisticamente e mantenere il significato.

    
risposta data 28.10.2010 - 00:17
fonte
0

Immagina come questo sarebbe stato testato: devi avere un progetto del mondo reale sviluppato indipendentemente sia ripetutamente con lo stesso linguaggio (per togliere la variabilità dell'esperienza e della conoscenza del programmatore) sia con linguaggi diversi (per ottenere alcuni dati per confrontare il le lingue). Mi sembra che l'esperimento cresca rapidamente a dimensioni ingestibili.

Mi piacerebbe sapere come "ridurre" l'esperimento o i tentativi di eseguire effettivamente l'esperimento come indicato.

    
risposta data 27.10.2010 - 17:11
fonte

Leggi altre domande sui tag