• [^] # Re: Microsoft va-t-il LIBÉRER .net ?

    Posté par (site web personnel) . En réponse à la dépêche Tomboy vs Gnote. Évalué à 2.

    En fait, on se dispute sur un problème de philosphie sur le degré "d'hackitude" du langage.
    Ben en même temps on est sur LinuxFR, Linux, un OS fait par des hackers, utilisé par des hackers, etc.

    Il ne faut jamais oublier qu'à partir du moment ou un langage est "Turing complét", tu peux tout faire
    Avec une argumentation comme ça, on aurait tous du rester au COBOL.

    En JAVA tu passeras par une interface, ça rendra le code encore plus lourd à lire et verbeux, mais tu auras une sécurité sur le type de fonctions et la signature à passer.
    C'est évidemment la différence entre C# et le C : le typage fort à travers la notion de délégué. Les délégués sont aux fonctions ce que sont les références aux objets : l'équivalent d'un pointeur mais avec la sécurité du typage fort.

    Lambda expression
    Pareil, pas de vérification de contrat de signatures sur les types (philosophie non java).

    ??? Tu peux expliquer ???

    Mais bien évidemment, j'ai trouvé un équivalent sous java en cherchant un peu, mais ça ne fait pas partie des librairies standard.
    http://quaere.codehaus.org/.

    Non non et non, jel'ai pourtant clairement dit, dans LINQ il y a INTEGRATED : syntaxe native du langage. Pas une simple bibliothèque. Je le répète, mais LINQ en C# intègre les notions d'expression lambda, d'inférence de type, de type anonymes, autant de notions puissantes abstentes de Java.
    Une requête LINQ est fortement typée, son utilisation ainsi que son résultat est validée par le compilateur.

    Surement pas en une ligne, mais un code qui renvoie res avec les mêmes valeurs surement.
    Evidemment tu peux arriver au même résultat, là n'est pas la question. La question réside dans la puissance des expressions et dans l'apport au développeur.
    En l'occurence le développeur exprime ce qu'il veut obtenir plutôt que de coder une boucle for qui tente de déclarer le comment. L'approche est totalement différente.

    Je prend un exemple extrême, mais si c'est de la réplication sur plusieurs machines et synchronisation par réseau en //, je pense qu'erlang sera beaucoup plus adapté que n'importe quel autre langage.
    Erlang suppose une réécriture. Je te parle de pertinence dans le cas d'une application critique que l'on souhaite faire évoluer en douceur, justement parcque l'application est critique.
    Après oui, si tu pars du principe qu'il y a une réécriture complète, tu peux avoir 36 langages pertinents.

    Si personne ne connait C# ni l'a mis en oeuvre, mais que ce sont tous des cadors en "autre langage", c'est "autre langage" qui te permetra une transition en douceur.
    J'ai pris le soin de mettre .NET et pas C# : si l'application est codée en VB, la transition se fera naturellement vers VB.NET. Si l'application est codée en C++, la transition se fera naturellement vers C++/CLI. C'est l'un des atouts de la plateforme : un socle commun et plusieurs syntaxes pour s'adapter aux compétences des développeurs.

    Ce qui est rigolo, c'est que tu connais pas bien le langage C# mais tu restes persuader que c'est la même chose que Java.
    Ils sont évidemment utilisés dans les mêmes contextes, mais il y a des différences notables qui pour moi permettent d'être plus productif. Tu l'admets toi même en disant qu'en Java tu peux faire pareil en plus lourd et plus verbeux. Oui tu peux aussi faire la même chose en Cobol en plus lourd et plus verbeux.
    C# n'introduit pas uniquement des raccourcis syntaxiques. A moins que pour toi les paradigmes fonctionnels issus des langages ML ce soit que du sucre syntaxique.

    Tu sembles persuader que tout ce qui différencie C# de Java ce ne sont que des choses non maîtrisées par les développeurs et donc globalement peu utilisées : C# est un langage industriel, et généralement la plupart des "raccourcis" correspondent à un besoin réel qui les rendent indispensables : le framework s'appui très fortement sur la notion d'event et de property par exemple.
    Depuis le passage à LINQ, le framework de persistance BDD, le framework de collections d'objets ainsi que le moteur XML ont été bouleversés, et pour moi la productivité s'en ressent.