2

J'ai fait un certain nombre de projets dans Delphi, qui utilise le langage Pascal, insensible à la casse, et je me demandais quel est l'avantage des langages sensibles à la casse.
Jason argues que "l'insensibilité Case introduit beaucoup d'ambiguïté". Je ne suis pas d'accord. Si vous vous rendez compte que la langue est insensible à la casse, vous savez que WHILE signifie la même chose que while, même si vous n'écrivez jamais le premier. Idem pour les variables et les fonctions; l'enveloppe de chameau est agréable, mais la première lettre était-elle aussi une capitale ou pas? Et qu'en est-il des fonctions dont le nom commence par un underscore? En cas de langues insensibles aucun problème: _fooBar fera tout aussi bien que _FooBar. Alors, où est l'ambiguïté dont parle Jason? Oui, vous pouvez écrire une variable de différentes manières, mais la signification est sans ambiguïté! FooBar == foobar!Quel est l'avantage des langages sensibles à la casse par rapport aux caractères insensibles à la casse?

Dans le même fil Delnan says que Capitalization is the difference between "I had to help my uncle Jack off a horse.." and "I had to help my uncle jack off a horse..". Très intelligent :-). Mais plutôt un point par rapport à la sensibilité à la casse: accepteriez-vous que votre code se détraque à cause d'une seule erreur de capitalisation? Encore une fois, dans un langage insensible à la casse, si Jack est une personne, il en va de même pour jack.

Question: Y at-il quelqu'un qui utilise cette fonctionnalité dans des langages sensibles à la casse que vous pouvez définir deux variables différentes ou des fonctions différentes par des majuscules différentes? Parce que c'est le seul avantage que je peux y voir. Bien sûr, vous allez dire, j'écris le nom de la variable avec l'enveloppe de chameau et la constante tout en majuscules. Mais IMO ils sont incompatibles; userName comme une variable a du sens, mais USERNAME comme une constante ne fait pas.

(je me rends compte que beaucoup de programmeurs utilisent des langues cas sensibles, donc je suis prêt pour une réception :-) indésirable)

modifier
L'élément déclencheur de cette question était « ActionScript 3.0 de Lynda.com dans flash CS3 vidéo formation professionnelle », où Todd Perkins passe la moitié de son temps :-) mettant l'accent sur la capitalisation

+4

Je pense que vous devriez plutôt demander cela sur http://Programmers.stackexchange.com. – Jonas

+1

Je pense que vous ne devriez pas ** demander ** ceci sur Programmers.SE, parce qu'il était déjà [demandé] (http://programmers.stackexchange.com/questions/9965) là. –

+0

@Pavel, n'est-ce pas le fait qu'il a été demandé là (et non fermé) un bon signe que c'est * en fait * le lieu correct? –

Répondre

5

Oui, je absolument utiliser tout le temps en C#:

private readonly string name; 
public string Name { get { return name; } } 

J'ai eu tendance à utiliser des langages sensibles à la casse, et je n'en ai pas vraiment vu les inconvénients - en dehors de toute autre chose, ils ont une cohérence de boîtier.

C'est vraiment une chose de préférence personnelle cependant, je pense.

+0

J'ai travaillé avec des langages sensibles à la casse tout au long de ma carrière, et je souhaite parfois que C# ne l'était pas! Eh bien, ça n'arrivera jamais! –

+1

Plus d'une chose d'état d'esprit qu'une chose de préférence que je compte. Quand je suis arrivé au C# de Delphi, j'étais horrifié par ce style de codage. Maintenant, je l'utilise tout le temps et je vais bien avec. Je vais bien avec Delphi insensible à la casse aussi. –

3

Personnellement, j'aime le code propre et bien rangé. Si votre langue n'est pas sensible à la casse, elle risque d'être salissante si tout le monde ne s'en tient pas aux règles.

private String myName = "Shawn"; 

    if(myname.equals("Shawn"){ 
    MYNAME = myname + "Vader"; 
    } 

    System.out.println("His name is " + MyName); 

Même dans un cas langage sensible, nous passons beaucoup de temps en vous assurant que tout est cohérent, comme la course des outils d'analyse pour faire respecter les conventions de nommage des champs et des règles de mise en forme et des paramètres de méthode finale.

Donc, pour moi, c'est une question de conformité.

Questions connexes