Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 130 sur 183 PremièrePremière ... 3080120122123124125126127128129130131132133134135136137138140180 ... DernièreDernière
Affichage des résultats 3 871 à 3 900 sur 5469
  1. #3871
    Citation Envoyé par vectra Voir le message
    La plupart des bouquins Packt que j'ai testés, franchement ils sont limites pas bons.
    J'ai l'impression que Packt est aux éditeurs classiques ce que TedX est à Ted. On est parfois pas loin de l'auto-édition je trouve...
    Ha ben un truc qui doit jouer : à peu près n'importe qui peut être relecteur ou auteur chez Packpub, leurs compétences ne sembles pas vérifiées. Je ne sais pas comment ça se passe chez la concurrence cela dit.
    Bref, ils visent très large, quantité over qualitay ^^. Mais le bon côté c'est que si tu cherches ton premier éditeur, tu auras facilement ta chance. En plus le % de droits d'auteur est avantageux chez eux.

  2. #3872
    Citation Envoyé par XWolverine Voir le message
    Je ne sais plus comment ça marche, l'ADA, j'ai juste souvenir quand je l'ai vu à l'école que c'était effectivement bien rigide, notamment les casts obligatoirement explicites.
    C'est effectivement assez rigide, du coup. Le typage est très fort et très contraint, donc ça vient avec...

    Perso ce n'est pas ça qui m'a dérangé avec ce langage, il est certes contraignant sur ce point mais avec ça c'est presque du "compiler c'est gagner".
    Beaucoup de problèmes sont détectés avant même de produire l'exécutable.

    Ce qui m'a vraiment dérangé c'est sa syntaxe. Je comprends vraiment pas les choix qui ont été faits à ce niveau.
    Anecdote là-dessus : au précédent taf, celui où j'ai fait de l'Ada, on avait un bouquin sur le langage, l'auteur était un vendu total. Dans la préface, il disait regretter que le Java ait adopté une syntaxe très proche du C/C++.
    Ce qu'il faut pas lire quand même...
    Parce que bon... ces trois-là ont une syntaxe relativement sympa, et celle de ton Ada elle est moisie mon gars, c'est aussi simple que ça.


    Citation Envoyé par Nilsou Voir le message
    En même temps, même en C c'est considéré comme une mauvaise pratique de faire des cast implicites. Donc ça me parait pas déconnant de l'interdire carrément.
    Citation Envoyé par rOut Voir le message
    C'est ce que fait Rust d'ailleurs, tout est explicite, y compris les conversions entières dès que les types ne sont pas identiques.
    Oui pour le coup autant forcer le cast explicite. Et éventuellement définir clairement les règles si une valeur sort des limites autorisées. Là c'est top.

  3. #3873
    Citation Envoyé par Taro Voir le message
    Effectivement c'est pas mal !
    D'ailleurs pour l'exemple des tableaux avec un nombre min/max d'éléments tu peux le faire en partie en TS avec des tuples :

    Code:
    type Pixel = {
      red: number,
      green: number,
      blue: number
    }
    
    type Pixels = [Pixel, Pixel, Pixel?, Pixel?] // Min 2 éléments, 4 max
    
    const a: Pixel = {
      red: 0,
      green: 0,
      blue: 0
    }
    
    const b1: Pixels = [a] // Error
    const b2: Pixels = [a, a, a, a] // Ok
    const b3: Pixels = [a, a, a, a, a] // Error
    
    const b4: Pixels = [a, a, a, a]
    
    b2[0].blue // OK
    b2[3].blue // Error
    b2[5] // Error
    b2[0] = b2[3] // Error
    b2[3] = b2[1] // OK
    b2[0] = b2[3] // OK car détection de l'assignation au dessus
    
    type Pixels2 = [Pixel, Pixel,  ...Pixel[]] // Min 2 éléments, pas de max
    
    const c1: Pixels2 = [a] // Error
    const c2: Pixels2 = [a, a] // Ok
    
    c2[0].blue // OK
    c2[3].blue // Error si compil avec noUncheckedIndexedAccess, OK sinon (ou alors il faut déclarer le type comme ça [Pixel, Pixel, ...(Pixel | undefined)[]])
    c2[3] // OK
    c2[0] = c2[3] // Error
    c2[3] = c2[1] // OK
    c2[0] = c2[3] // OK car détection de l'assignation au dessus
    Par contre ça reste limité vu que :
    - y'a pas de check sur les méthodes de modifications des arrays (pop, push, splice, etc)
    - la déclaration de type est clairement pas faisable avec des min/max importants

    Citation Envoyé par Taro Voir le message
    Et justement, je préfère ce qui est détecté à la compilation. L'Ada est justement très fort pour ça. Tout ce qui est détecté avant le runtime est bon à prendre.
    Ah clairement mais si tu peux avoir les deux c'est encore mieux.
    C'est la faute à Arteis

  4. #3874
    Citation Envoyé par Captain_Cowkill Voir le message
    Dites les canards, est-ce que l'un de vous aurait suivi une formation JavaScript en ligne qu'il aurait trouvé intéressante ? Jusque là je suivais les "cours" de MDN, mais avec JavaScript je vois bien les limites des leçons gratuites (trop d'enrobage pour rien, pas assez d'exos, explications parfois trop succinctes, manque d'exemples clairs, pas mal de coquilles...).
    Je crois que Pluralsight est gratuit pour tout le mois d’avril. J’ai un accès via le boulot et je trouve ça vraiment bien.

  5. #3875
    En parlant d'Ada, j'ai souvent lu qu'Ariane 5 avait explosé en raison d'un oubli d'une compilation finale avec toutes les détections activées. Ce qui aurait permis de détecter un dépassement de valeur. Au final je ne sais pas, mais le rapport d'enquête indique que (http://www.astrosurf.com/luxorion/as...riane-v501.htm) :


    A cet instant, une partie de ces données ne contenait pas
    des données de vol proprement dites mais affichait un profil de bit spécifique
    de la panne du calculateur du SRI 2 qui a été interprété comme étant
    des données de vol ; la raison pour laquelle le SRI 2 actif n'a pas
    transmis des données d'attitude correctes tient au fait que l'unité
    avait déclaré une panne due à une exception logiciel ; l'OBC n'a pas pu
    basculer sur le SRI 1 de secours car cette unité avait déjà cessé de
    fonctionner durant le précédent cycle de données (période de 72
    millisecondes) pour la même raison que le SRI 2 ; l'exception logiciel
    interne du SRI s'est produite pendant une conversion de données de représentation
    flottante à 64 bits en valeurs entières à 16 bits. Le nombre en représentation
    flottante qui a été converti avait une valeur qui était supérieure à
    ce que pouvait exprimer un nombre entier à 16 bits. Il en est résulté
    une erreur d'opérande. Les instructions de conversion de données (en
    code Ada) n'étaient pas protégées contre le déclenchement d'une erreur
    d'opérande bien que d'autres conversions de variables comparables présentes
    à la même place dans le code aient été protégées; l'erreur s'est
    produite dans une partie du logiciel qui n'assure que l'alignement de la
    plate-forme inertielle à composants liés
    Ce qui est bien un problème de transtypage.
    Rien ne me choque moi, je suis un scientifique ! - I. Jones

  6. #3876
    Citation Envoyé par Taro Voir le message
    Ce qui m'a vraiment dérangé c'est sa syntaxe. Je comprends vraiment pas les choix qui ont été faits à ce niveau.
    Anecdote là-dessus : au précédent taf, celui où j'ai fait de l'Ada, on avait un bouquin sur le langage, l'auteur était un vendu total. Dans la préface, il disait regretter que le Java ait adopté une syntaxe très proche du C/C++.
    Ce qu'il faut pas lire quand même...
    Parce que bon... ces trois-là ont une syntaxe relativement sympa, et celle de ton Ada elle est moisie mon gars, c'est aussi simple que ça.

    Je suis pas vraiment d'accord. J'irais même jusqu'a dire qu'elle est très explicite, comme le reste du language... du moment qu'on connait les features de celui-ci. Si on connaît la logique des types contraints et des index variables d'Ada, ça passe tout de suite mieux.

    Perso, j'ai fait du Ada dans mes deux dernières années d'études, et j'avoue regretter un peu de ne pas avoir l'occasion d'en faire dans ma vie professionnelle. C'est un language que je trouve très élégants.
    Ce qu'il faut savoir, c'est qu'on ment beaucoup aux minmatars, surtout lorsqu'ils posent des questions du style: "t'es sûr que ça vole, ce truc ?" Cooking Momo, le 30/08/09

  7. #3877
    Citation Envoyé par vectra Voir le message
    C'est pas la faute du langage s'ils sont cons, surtout depuis C++17.
    S'il fallait prendre ce genre d'exemples pour accréditer/discréditer un langage, ceux prisés par les débutants seraient disqualifiés d'office.
    Mais où a tu vu que je parlais du langage : je parlais exclusivement de l'équipe et de son mauvais choix techno (pour son équipe/cas d'application).

    On n'insiste pas assez là dessus : il n'y a pas de mauvaise techno que de mauvaise applications.
    Et ce sujet est justement un parfait moyen de connaître le niveau de l'équipe que de parler de ce genre de choses. Limite en entretiens aujourd'hui c'est presque une des choses que dont j'aime le plus parler, ça illustre très bien l'équipe, et ta propre vision des choses en retour.

  8. #3878
    Je ne dis rien d'autre.
    C'est pas la faute de C++ s'il est choisi par une équipe qui me semble très peu compétente de certains points de vue, et visiblement pas au fait de ce que la précédente version de C++ propose.

    Très dur à dire, ce genre de choses, quand on ne connaît pas l'équipe ni les ressorts de leur décision. Entre TBB, OMP, std, Qt (etc), il y a largement de quoi faire en parallélisation facile de code portable pour les nuls, mais le diable est parfois dans les détails aussi.

  9. #3879
    Citation Envoyé par Frypolar Voir le message
    Je crois que Pluralsight est gratuit pour tout le mois d’avril. J’ai un accès via le boulot et je trouve ça vraiment bien.
    +1, j'en ai déjà parlé, mais c'est vraiment bien (même si un peu cher).

    Après, ça va dépendre des intervenants. Sur Angular, par exemple, de base y'a Deborah Kurata qui est top. Hyper claire, hyper didactique, elle prend son temps pour les explications, etc.
    A l'inverse, pour Material Design, Ajden Towfeek est pressé et putain, pour le suivre, faut tout le temps mettre en pause, le temps de taper/copier-coller le code.

  10. #3880
    Citation Envoyé par Teocali Voir le message
    Je suis pas vraiment d'accord. J'irais même jusqu'a dire qu'elle est très explicite, comme le reste du language... du moment qu'on connait les features de celui-ci. Si on connaît la logique des types contraints et des index variables d'Ada, ça passe tout de suite mieux.
    Oui pour la définition des types elle est relativement claire, ça va.

    Mais pour déréférencer un pointeur, choper l'adresse d'une variable/d'un objet, par exemple, c'est vraiment naze je trouve.
    Pareil faut passer par les "pointeurs à échelle de classe" (wut ?) pour avoir la notation pointée. Sinon c'est de l'objet à la C/Python et tu dois passer le this à tes "méthodes". C'est dommage.

    Et puis cette syntaxe au global est verbeuse à souhait... Faut écrire un roman pour coder le moindre truc, perso je trouve ça usant.

    Mais affaire de point de vue, j'en conviens.

  11. #3881
    Citation Envoyé par Taro Voir le message
    A l'instant précis où j'ai vu qu'il fallait passer le thi... pardon, le self en premier paramètre de chaque métho... euh fonction.
    C’est parce qu’il paraît que tu peux utiliser ce que tu veux d’autre (this par exemple) mais j’ai essayé, je me suis fait jeter.
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  12. #3882
    Oui j'avais essayé aussi (bon la vérité, j'avais écrit this par réflexe), ça m'a jeté également.

  13. #3883
    Citation Envoyé par Captain_Cowkill Voir le message
    Dites les canards, est-ce que l'un de vous aurait suivi une formation JavaScript en ligne qu'il aurait trouvé intéressante ? Jusque là je suivais les "cours" de MDN, mais avec JavaScript je vois bien les limites des leçons gratuites (trop d'enrobage pour rien, pas assez d'exos, explications parfois trop succinctes, manque d'exemples clairs, pas mal de coquilles...).
    Je me répète, mais tu peux tester le cours et le projet de la semaine 5 de CS50 Web Sinon, je recommande les cours bien notés de Coursera qui m'ont toujours satisfait (pas fait de JS par contre).

  14. #3884
    Citation Envoyé par Taro Voir le message
    Sinon c'est de l'objet à la C/Python et tu dois passer le this à tes "méthodes". C'est dommage.
    Beaucoup de gens ne sont pas d'accord avec ça (privilégier magiquement un paramètre à tes fonctions, le "plus à gauche").
    Pense au multiple dispatch.
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  15. #3885
    Yup tu as raison sur ce point.

    C’est juste que personnellement je n’ai jamais ressenti le besoin de ce genre de fonctionnalité
    A l’inverse j’apprécie de faire de la notation pointée, je trouve ça lourd de mentionner le this partout alors que tout ce que j’en fais est de le passer d’appel en appel.

    Encore une fois le langage parfait n’existe pas, mais le mien ce serait un C++ avec 2-3 trucs récupérés d’ailleurs

  16. #3886
    Citation Envoyé par Tramb Voir le message
    Beaucoup de gens ne sont pas d'accord avec ça (privilégier magiquement un paramètre à tes fonctions, le "plus à gauche").
    Pense au multiple dispatch.
    D'ailleurs c'est comme les types de retour, franchement une seule valeur c'est un peu nul. Bon Rust s'en sort pas trop mal mais c'est juste parce qu'ils ont "match" qui fait de la magie. Python et la destructuration des tuples / array en retour, on n'en parle pas vu que tu te rends compte seulement au runtime que tu t'es planté sur le nombre de valeurs retournées.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  17. #3887
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  18. #3888
    Citation Envoyé par ducon Voir le message
    C’est parce qu’il paraît que tu peux utiliser ce que tu veux d’autre (this par exemple) mais j’ai essayé, je me suis fait jeter.
    C'est ton éditeur ou IDE qui doit te jeter. L'interpréteur te laissera faire car le self n'a absolument rien de spécial pour le langage ; il faut juste que la méthode accepte au moins avec un paramètre positionnel pour pouvoir l'appeler via une instance, du fait de la mécanique qui lie les méthodes aux instances.

  19. #3889
    Citation Envoyé par Frypolar Voir le message
    Je crois que Pluralsight est gratuit pour tout le mois d’avril. J’ai un accès via le boulot et je trouve ça vraiment bien.
    Citation Envoyé par deathdigger Voir le message
    +1, j'en ai déjà parlé, mais c'est vraiment bien (même si un peu cher).

    Après, ça va dépendre des intervenants. Sur Angular, par exemple, de base y'a Deborah Kurata qui est top. Hyper claire, hyper didactique, elle prend son temps pour les explications, etc.
    A l'inverse, pour Material Design, Ajden Towfeek est pressé et putain, pour le suivre, faut tout le temps mettre en pause, le temps de taper/copier-coller le code.
    Citation Envoyé par MrBeaner Voir le message
    Je me répète, mais tu peux tester le cours et le projet de la semaine 5 de CS50 Web Sinon, je recommande les cours bien notés de Coursera qui m'ont toujours satisfait (pas fait de JS par contre).
    Merci merci

  20. #3890
    Citation Envoyé par Le poussin Voir le message
    C'est ton éditeur ou IDE qui doit te jeter. L'interpréteur te laissera faire car le self n'a absolument rien de spécial pour le langage ; il faut juste que la méthode accepte au moins avec un paramètre positionnel pour pouvoir l'appeler via une instance, du fait de la mécanique qui lie les méthodes aux instances.
    M’enfin, j’avais essayé et ça a foiré.
    Là, ça marche :
    Code:
    > cat essai.py 
    #!/usr/bin/python3
    
    class essai():
      def __init__(this,n):
        this.n=n
      def __str__(this):
        return str(this.n)
    
    a=essai(123)
    print(a)
    Dernière modification par ducon ; 20/04/2021 à 10h08.
    une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
    Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
    Canard lecture

  21. #3891
    Citation Envoyé par Frypolar Voir le message
    Je crois que Pluralsight est gratuit pour tout le mois d’avril. J’ai un accès via le boulot et je trouve ça vraiment bien.
    Merci pour le tip! J'en ai profité et j'en profite pour revoir les bases de JS. Ça passe très bien comme apprentissage passif

  22. #3892
    Citation Envoyé par rOut Voir le message
    D'ailleurs c'est comme les types de retour, franchement une seule valeur c'est un peu nul. Bon Rust s'en sort pas trop mal mais c'est juste parce qu'ils ont "match" qui fait de la magie. Python et la destructuration des tuples / array en retour, on n'en parle pas vu que tu te rends compte seulement au runtime que tu t'es planté sur le nombre de valeurs retournées.
    Perso j'aime bien la vieille méthode du C la dessus : une structure toute mimi : c'est propre, c'est carré.

  23. #3893
    Citation Envoyé par rOut Voir le message
    Python et la destructuration des tuples / array en retour,
    On a ça en C++, tu sais ?

  24. #3894
    Citation Envoyé par vectra Voir le message
    On a ça en C++, tu sais ?
    Et en Swift.
    Et en C#.
    Et en Kotlin.
    Et en Typescript.

    Pour ces 2 derniers ça fonctionne pour les objets aussi, pas que les tuples/arrays.
    C'est la faute à Arteis

  25. #3895
    Citation Envoyé par vectra Voir le message
    On a ça en C++, tu sais ?
    J'ai un black-out complet sur le C++, bizarrement. (oui je sais mais c'est pas là depuis longtemps et ça reste du tuple-like, certes checké à la compil).

    - - - Mise à jour - - -

    Citation Envoyé par Orhin Voir le message
    Et en Swift.
    Et en C#.
    Et en Kotlin.
    Et en Typescript.

    Pour ces 2 derniers ça fonctionne pour les objets aussi, pas que les tuples/arrays.
    Bah justement, je trouve que le retour de tuple c'est un workaround. En particulier quand le tuple en question il s'écrit std::tuple<a, b, c> et nécessite un entête de douze milliards de lignes.

    Après c'était plus pour la blague parce qu'on disait que le format habituel des fonctions en POO (avec un paramètre privilégié) n'avait en vrai pas tant de sens que ça. Donc le paramètre de retour unique non plus.

    En C# / Kotlin c'est via in / out ou c'est autre chose?
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  26. #3896
    Tu ferais comment pour retourner plusieurs valeurs sans tuple ?
    Plus exactement, y aurait-il un intérêt à ne pas rendre ça compatible avec les tuples ?

    Un tuple est un type qui groupe un nombre fini et prédeterminé de valeurs, chacune avec son type (pour les langages statiquement typés). Ça correspond exactement au besoin de valeurs de retour multiples.
    Ça n'est pas pour rien qu'autant de langages (tous ?) l'implémentent avec un tuple ou ce qu'ils ont de plus proche. Bonus : il n'y a rien à ajouter au langage pour que ça marche.

    Ensuite chaque langage fait avec ce qu'il a à disposition (vérification runtime ou pas, déstructuration, ...).

  27. #3897
    (Très) souvent un tuple se remplace par un objet du domaine. Et si tu vois pas comment le modéliser par un objet du domaine faut ptet se poser la question de ce que fait ta fonction.

    D'ailleurs c'est pas pour rien que les langages avancés rajoutent du sucre syntaxiques pour les ramener sur une structure objet avec des propriétés bien nommée (mais arrivé là, mieux vaux créer son objet comme un grand).
    Dernière modification par Dross ; 21/04/2021 à 05h13.

  28. #3898
    Citation Envoyé par rOut Voir le message
    En C# / Kotlin c'est via in / out ou c'est autre chose?
    Pour C# je sais pas mais pour kotlin c’est via des methodes componentX()
    Ce qu'il faut savoir, c'est qu'on ment beaucoup aux minmatars, surtout lorsqu'ils posent des questions du style: "t'es sûr que ça vole, ce truc ?" Cooking Momo, le 30/08/09

  29. #3899
    Citation Envoyé par rOut Voir le message
    Bah justement, je trouve que le retour de tuple c'est un workaround. En particulier quand le tuple en question il s'écrit std::tuple<a, b, c> et nécessite un entête de douze milliards de lignes.
    C'est toujours un poil laborieux pour écrire une méthode qui renvoie un tuple, mais depuis les structured bindings c'est simplissime à l'appel :

    Code:
    auto [a,b,c] = foo();
    Citation Envoyé par Sidus Preclarum Voir le message
    Ben du caramel pas sucré alors...
    "Avant, j'étais dyslexique, masi aujorudh'ui je vasi meiux."

  30. #3900
    Citation Envoyé par Lazyjoe Voir le message
    C'est toujours un poil laborieux pour écrire une méthode qui renvoie un tuple, mais depuis les structured bindings c'est simplissime à l'appel :

    Code:
    auto [a,b,c] = foo();
    Cette syntaxe tu la retrouves dans beaucoup de langages modernes.
    La seule différence va être de remplacer les parenthèses par des crochets ou des accolades parfois.
    C'est la faute à Arteis

Page 130 sur 183 PremièrePremière ... 3080120122123124125126127128129130131132133134135136137138140180 ... DernièreDernière

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •