Come determinare se un linguaggio di programmazione è prolisso o conciso?

17

I linguaggi di programmazione possono spesso essere descritti come verbose o terse .

Da quanto ho capito, un linguaggio verboso è facile da leggere e comprendere, mentre un linguaggio laconico è conciso e ordinato, ma più difficile da leggere. Ci dovrebbero essere altre cose da considerare nelle definizioni?

Sembra che molti dei linguaggi di programmazione popolari di oggi siano prolissi, e questi termini due termini sono usati solo per descrivere una lingua come più o meno, relativa a un'altra lingua.

Come determiniamo se un linguaggio di programmazione è più verboso / terso su un altro?

Esempio: C # è più dettagliato di Java?

    
posta spong 21.02.2011 - 15:42
fonte

4 risposte

30

From my understanding, a verbose language is easy to read and understand, while a terse language is concise and neat, but more difficult to read.

Questo è falso. Verboso significa molti simboli. Terse significa meno simboli.

Questo ha niente da fare con facilità di lettura o facilità di comprensione.

Alcune persone trovano COBOL prolisso facile da leggere, altri trovano confuso perché così tanti simboli sono necessari per fare così poco.

Alcune persone trovano che I / J / K e APL sono facili da leggere perché il programma è molto breve. Altri lo trovano difficile da leggere perché i simboli sono oscuri.

Terse / Verbose non ha alcuna relazione con facile lettura o facile comprensione.

Should there be other things to consider in the definitions?

No. Le definizioni di terse e verbose vanno bene.

Ciò che è importante è che queste definizioni non hanno nulla a che fare con "facile da leggere e capire"

It seems much of the popular programming languages of today are verbose.

Davvero?

How do we determine if a programming language is more verbose/terse over another?

Contare i token per fare qualcosa.

Add 2 TO A GIVING B.

7 token

b = a + 2;

6 token

link

link

    
risposta data 21.02.2011 - 16:25
fonte
6

How do we determine if a programming language is more verbose/terse over another?

Confrontando i costrutti linguistici equivalenti o simili, in particolare in che modo è possibile risolvere lo stesso compito o un'attività equivalente in una lingua o l'altra.

Is C# more verbose than Java?

Java è in generale più dettagliato di C #. Le differenze più evidenti includono i delegati e le espressioni lambda, in cui Java richiede la definizione, la sottoclassi e l'istanziazione di un'interfaccia distinta per ottenere ciò che è possibile fare usando una singola espressione lambda in C #.

    
risposta data 21.02.2011 - 15:49
fonte
3

Fornisci uno snippet di codice a non programmatore e chiedigli di spiegare cosa sta cercando di fare quel frammento. Se ottieni la risposta più vicina, allora è prolissa. se ottieni l'espressione WTF, allora è terso.

    
risposta data 21.02.2011 - 16:14
fonte
2

La misura si chiama espressività della lingua. La metrica tipica per questo è la misurazione di righe standard di codice o istruzioni necessarie per implementare la stessa funzionalità.

Alcuni valori del Wiki - quante istruzioni / righe di codice C servono per implementare una funzionalità di una istruzione / riga in:

  • C - istruzioni: 1 righe: 1
  • C ++ - istruzioni: 2.5 righe: 1
  • Fortran - istruzioni: 2.5 righe: 0.8
  • Istruzioni Java: 2.5 righe: 1.5
  • Perl - istruzioni: 6 righe: 6
  • Smalltalk - istruzioni: 6 righe: 6.25
  • Python - istruzioni: 6 righe: 6.5
risposta data 21.02.2011 - 17:26
fonte

Leggi altre domande sui tag