Comment déterminer si un langage de programmation est verbeux ou laconique?


17

Les langages de programmation peuvent souvent être décrits comme verbeux ou laconique .

D'après ma compréhension, une langue verbeuse est facile à lire et à comprendre, tandis qu'une langue laconique est concise et soignée, mais plus difficile à lire. Devrait-il y avoir d'autres choses à considérer dans les définitions?

Il semble que la plupart des langages de programmation populaires d'aujourd'hui soient verbeux, et ces deux termes ne sont utilisés que pour décrire un langage comme étant plus ou moins, par rapport à un autre langage.

Comment déterminer si un langage de programmation est plus verbeux / laconique qu'un autre?

Exemple: C # est-il plus verbeux que Java?

Réponses:


30

D'après ma compréhension, une langue verbeuse est facile à lire et à comprendre, tandis qu'une langue laconique est concise et soignée, mais plus difficile à lire.

C'est faux. Verbose signifie beaucoup de symboles. Terse signifie moins de symboles.

Cela n'a rien à voir avec la facilité de lecture ou la facilité de compréhension.

Certaines personnes trouvent que le COBOL verbeux est facile à lire, d'autres le confondent car il faut tellement de symboles pour faire si peu.

Certaines personnes trouvent que les I / J / K et APL sont faciles à lire car le programme est très court. D'autres ont du mal à lire car les symboles sont obscurs.

Terse / Verbose n'a aucun rapport avec facile à lire ou facile à comprendre.

Devrait-il y avoir d'autres choses à considérer dans les définitions?

Non. Les définitions de laconique et verbeux sont bonnes.

Ce qui est important, c'est que ces définitions n'ont rien à voir avec "faciles à lire et à comprendre"

Il semble que la plupart des langages de programmation populaires d'aujourd'hui soient verbeux.

Vraiment?

Comment déterminer si un langage de programmation est plus verbeux / laconique qu'un autre?

Comptez les jetons pour faire quelque chose.

Add 2 TO A GIVING B.

7 jetons

b = a + 2;

6 jetons

http://dictionary.reference.com/browse/verbose

http://dictionary.reference.com/browse/terse


5
+1 pour "Terse / Verbose n'a aucun rapport avec facile à lire ou facile à comprendre." Je pense toujours à la notation mathématique qui, lorsqu'elle est correctement exécutée, est remarquablement dense et pourtant relativement lisible.
Frank Shearar

5
@sunpech: C'est ce que les mots anglais signifient. "verbeux" signifie beaucoup de mots. "laconique" signifie moins de mots. Rien à voir avec la lisibilité. Le mot compte. Tout ce que j'ai fait, c'est remplacer "mot" par "jeton". C'est juste anglais, rien de spécial.
S.Lott

1
Nous pourrions également considérer la longueur des jetons. Common Lisp semble verbeux parce que beaucoup de mots-clés sont longs, ce qui ajoute également à la verbosité de COBOL.
David Thornley

1
@Frank Shearar: Absolument faux, pensez au temps qu'il faut aux élèves pour apprendre les mathématiques. C'est aussi illisible que possible (mathématiques sérieuses) et même après 6 ans d'enseignement secondaire, la majorité n'est toujours pas capable de le lire sérieusement. Ce n'est pas qu'être illisible est une mauvaise chose! Mais dire que les mathématiques sont une notation lisible est un commentaire à courte vue, c'est le moins qu'on puisse dire.
David Mulder

2
@DavidMulder: La notation mathématique varie énormément, donc je soupçonne que nous commettons tous les deux des péchés d'hyperbole. Vous considérez sûrement que la notation de l'algèbre, de la théorie des ensembles et du calcul de base est transparente? D'un autre côté, je considère la notation abstraite des tenseurs comme un non-sens illisible. (Mais ensuite, je n'ai pas non plus pris le temps d'apprendre correctement la notation.)
Frank Shearar

6

Comment déterminer si un langage de programmation est plus verbeux / laconique qu'un autre?

En comparant les constructions de langage équivalentes ou similaires, en particulier comment la tâche identique ou équivalente peut être résolue dans une langue par rapport à l'autre.

C # est-il plus verbeux que Java?

Java est en général plus verbeux que C #. Les différences les plus évidentes concernent les délégués et les expressions lambda, où Java nécessite de définir, de sous-classer et d'instancier une interface distincte afin de réaliser ce qui est possible en utilisant une seule expression lambda en C #.


1
Java prend désormais en charge les expressions lambda avec Java 8 ( docs.oracle.com/javase/tutorial/java/javaOO/… )
shanraisshan

1
@shanraisshan: oui, cela s'est amélioré avec le temps, mais AFAIK Java est toujours un peu plus verbeux. Par exemple, dans les documents auxquels vous avez lié, le code contient de nombreuses p.getAge()instructions. En C #, je créerais une propriété Age, qui apporte le même degré d'encapsulation qu'une fonction membre getAge, mais permet d'écrire à la p.Ageplace.
Doc Brown

1
De plus, bien que Java se soit amélioré, C # n'a pas non plus été exactement une cible statique.
Jules

3

Donnez un extrait de code à un non-programmeur et demandez-lui d'expliquer ce que cet extrait essaie de faire. Si vous obtenez la réponse la plus proche, elle est verbeuse. si vous obtenez l'expression WTF, elle est laconique.


2

La mesure est appelée expressivité de la langue. La mesure typique pour cela consiste à mesurer des lignes de code normalisées ou des instructions nécessaires pour implémenter la même fonctionnalité.

Quelques valeurs du Wiki - combien d'instructions / lignes de code C faut-il pour implémenter une fonctionnalité d'une instruction / ligne dans:

  • C - déclarations: 1 lignes: 1
  • C ++ - instructions: 2,5 lignes: 1
  • Fortran - relevés: 2,5 lignes: 0,8
  • Java - instructions: 2,5 lignes: 1,5
  • Perl - déclarations: 6 lignes: 6
  • Smalltalk - déclarations: 6 lignes: 6,25
  • Python - instructions: 6 lignes: 6,5

Je pense que le fait que l'une de ces mesures suggère que FORTRAN est plus expressif que C par une certaine marge (!) Tandis que l'autre indique le contraire tout en déclarant que C ++ est également expressif à C (!!) résume l'utilité de ces "mesures" ".
Jules
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.