• [^] # Re: XAML et l'avenir de GNOME

    Posté par . En réponse à la dépêche XAML et l'avenir de GNOME. Évalué à 2.

    Bon, je suis partial, c'est sûr, mais je suis d'accord sur la qualité d'Objective-C ;-)
    -- plus exactement, ce n'est pas le meilleur langage objet que je connais, mais c'est au moins un de ceux qui a le rapport puissance/simplicité/rapidité le plus intéressant.

    Honnêtement je pense que son problème a d'abord été un manque de reconnaissance/compilateur par rapport au C++, et n'oublions pas que pendant pas mal de temps, la POO, c'était pas vraiment à la mode non plus hein...

    Sinon, je ne pense pas qu'un développeur C s'adapte réellement facilement à Java, C++ ou C# -- j'aurais plutôt tendance à penser qu'il a l'impression d'une similitude, car la syntaxe ne change pas, et que donc il mette peut être plus de bonne volonté; mais le véritable problème de la POO porte d'abord sur la conception du programme, pas sur le sucre syntaxique utilisé par le langage objet... et franchement, je pense que c'est le problème #1 des programmeurs C qui veulent faire de la POO.
    D'ailleurs je trouve que c'est le problème courant avec C++ ... des gens qui continuent à programmer en procédural. Mais bon, C++ est "multi-paradigme" nous dit-on..

    Donc certes, on peut éventuellement dire qu'Objective-C est peut être plus dur à appréhender, tout simplement car il encourage la programmation objet, et que la POO, c'est pas évident au début. Mais on peut difficilement dire qu'il soit difficile à appréhender concernant sa syntaxe ! il n'y a qu'UNE addition syntaxique par rapport au C, permettant d'exprimer l'envoi de messages entre objets:

    [monObjet reçoitCeMessage]

    De plus, je trouve que le fait que la syntaxe soit différente exprime beaucoup mieux que l'on envoi un message et non qu'on fait un appel de fonction sur une structure... j'aurais donc plutôt tendance à penser que cet ajout syntaxique facilite l'écriture et la clareté du code. Accessoirement, le coup des arguments "nommés" est ce qui fait le plus "bizarre" au début en Objective-C, et par contre, c'est vraiment quelque chose qui me manque sur d'autres langages maintenant que je m'y suis habitué; en effet, on prends vite l'habitude de faire "des phrases" :

    [monObjet imprimeToi];

    [monObjet imprimeToiSur: imprimante];

    [monObjet imprimeToiSur: imprimante enFormat: a4];

    ce qui corresponds en C++ à :

    monObjet.imprimeToi ();
    monObjet.imprimeToiSur (imprimante);
    monObjet.imprimeToiSurEnFormat (imprimante, a4);

    Les noms des méthodes ObjC (leur signature) étant en fait:

    imprimeToi
    imprimeToiSur:
    imprimeToiSur:enFormat:

    ... on voit clairement qu'avec une méthode qui prends plus d'un paramètre, mettre les arguments "dans" le nom de la fonction permet une bien meilleur lisibilité du code.

    Accessoirement, on peut ne pas utiliser les arguments nommés, il suffit d'utiliser les ":" pour séparer les arguments. M'enfin l'intérêt est limité hein ;-)