barmic 🩩 a Ă©crit 6263 commentaires

  • [^] # Re: Shell

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  3.

    Exactement sauf que je n'utilise jamais de conjonction de bloque donc pas de {...} && {...} || {...} (c'est verbeux et piégeux, par exemple il manque un ; dans ton dernier exemple d'aprÚs mon dash 0.5.12) et j'évite les return en shell particuliÚrement parce que maintenant bash ne les accepte plus que dans certaines conditions.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: sealed ?

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  3.

    J'avais écris le code rapidement sur téléphone, la version vérifiée c'est :

    sealed interface A {
     record B(int i) implements A {}
     record C(long l) implements A {}
    }

    Mais je pense avoir compris ce que tu veux dire et je me suis clairement mélangé les pinceaux entre propriété de classe et d'instances.

    Sans parler de Liskov ou de subtyping behavior, à mon avis il faut avoir conscience de ce que ça contraint sur le code et qu'il faut choisir une balance entre implémenter des comportements dans les class et faire porter le comportement dans des méthodes extérieures aux classes.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: sealed ?

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  2.

    Euh je vois pas. Quelle est la propriété que décrite sealed que tu peux appliquer aux filles ?

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: sealed ?

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  2. DerniĂšre modification le 18 octobre 2023 Ă  00:02.

    Pas tellement d’accord, j’ai l’impression que c’est plutĂŽt une utilisation du principe de liskov pour implĂ©menter un pseudo type somme en java.

    Comment l'absence de partage de trait pourrait ĂȘtre une utilisation du principe de Liskov ?

    Si j'écris

    sealed interface A {
     record B(int i) extend A {}
     record C(long l) extend A {}
    }

    Et si on applique le principe de Liskov, il n'y a pas de propriĂ©tĂ©s prouvable sur A a appliquer Ă  B ou C. Le behavioural subtyping de la mĂȘme façon parle d'un comportement dĂ©fini dans le parent qui doit ĂȘtre respectĂ© dans les enfants.

    Tout le principe du sealed/switch c'est de ne pas faire porter le comportement sur le type. Je suis d'accord pour dire que ce n'est pas un viol du behavioral subtyping ou du principe de Liskov, mais c'est fait en se plaçant hors de leur champ : on retire la propriété prouvable sur le type parent.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: sealed ?

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  3.

    C’est pas plutĂŽt le Principe ouvert fermĂ© (O de SOLID), ça ? Si c’était impliquĂ© par le principe de Liskov il n’y aurait pas besoin de l’avoir en principe en plus.

    Tu montre bien qu'il y a des recoupements entre les concepts que l'on nomme 😊

    Et je ne vois pas vraiment que le principe de Liskov implique que ton code doive compiler si tu rajoutes un sous type. Le seul truc du principe c’est qu’un sous type ne doit pas casser les invariants comportementaux d’un super type.

    Non effectivement il ne s'intéresse pas ou peu à l'utilisation, mais je pense qu'il s'agit d'un évitement du principe de Liskov, car l'objectif c'est de retirer des traits du parents et de les implémenter dans le code utilisateur.

    Le fait que le code ne compile pas est extrĂȘmement important et il faut vraiment y faire attention. Le type A peut techniquement ĂȘtre dans une bibliothĂšque chargĂ©e dynamiquement par exemple. L'utilisation et l'exposition de ce genre de type est plus risquĂ© que du polymorphisme car l'arbre de type va faire partie du contrat (et pas uniquement le type parent).

    Notamment parce que par principe le fait que ce soit "Sealed", justement, empĂȘche l’extension. Le sous typage est toujours possible en sous-typant les cas connus ?

    En java en tout cas oui. À noter qu'il n'est pas possible de tricher par contre. Sealed est vĂ©rifiĂ© Ă  la compilation et Ă  l'exĂ©cution. La jvm t'interdira de charger une nouvelle sous classe ni vu ni connu en jouant avec le bytecode.

    Je n'ai aucun problÚme à utiliser sealed, il y en a déjà un certains nombre dans mon code de prod et je suis impatient de pouvoir enfin utiliser les switch expression avec. Mais je comprends les gens qui sont un peu orthodoxes de la POO qui voient des problÚmes avec cette forme de polymorphisme (il y en a aussi dans le polymorphisme de classe mais ils ne sont pas nouveaux pour eux).

    Désolé pour mon commentaire plus bas j'avais oublié de le soumettre

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: sealed ?

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  3.

    Comme je le disais plus haut ça viole un principe de substitution (sans parler de Liskov) car le code appelant est conscient de l'ensemble du typage et donc que tu ne peu plus ajouter un sous type sans récrire le code qui utilise ton objet.

    Je comprends que Liskov ne s'intĂ©resse qu'Ă  la modĂ©lisation et pas Ă  comment ils sont utilisĂ©s, mais ici il s'agit de retirer les traits du type pour le mettre dans le code appelant. On peut effectivement dire que ça n'est pas un viol du principe de Liskov, mais c'est une maniĂšre de s'en passer. Dans des cas extrĂȘmes, mais qui ne sont pas difficiles Ă  trouver, tu n'a aucun trait dans le type parent.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: sealed ?

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  5.

    Dans ton exemple la mĂ©thode foo doit pouvoir prendre en paramĂštre n’importe quel sous-type de A en respectant le contrat (sur A) de la mĂ©thode formatted, donc si formatted est implĂ©mentĂ©e correctement Ă  mon avis on est bon pour le principe de substitution.

    Si tu crée un nouveau sous type de A, ta fonction ne compile plus.

    Le fais que du code utilisateur soit conscient des sous type de ses paramĂštres (ou de ce qu'il reçoit d'une fonction) empĂȘche la substitution.

    Mais tu veux ptete parler du principe d’encapsulation ?

    On parle de typage et pas de l'état interne des objets donc je dirais que non.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: sealed ?

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  3.

    La classe mÚre qui liste ses classes filles d'une part et parce que c'est globalement fait pour écrire :

    public String foo(A a) {
     return switch(a) {
     case B b -> "B: %s".formatted(b);
     case C c -> "C: %s".formatted(c);
     };
    }

    Ce qui blesse le cƓur de tout ceux qui expliqueraient (non sans raison) que le polymorphisme c'est bien et qu'il faudrait une mĂ©thode dĂ©crite dans A et implĂ©mentĂ©e dans B et C. Ici le fait qu'une mĂ©thode hors de A, B ou C, cherche Ă  dĂ©terminer le type sous-jacent de la rĂ©fĂ©rence a est la violation la plus classique de Liskov.

    PrĂ©sentĂ© autrement : en respectant Liskov si tu crĂ©e un sous-type du type T tu devrais pouvoir remplacer n'importe quelle rĂ©fĂ©rence de T par une instance de ton sous-type sans changement du code qui utilise la rĂ©fĂ©rence. Ce n'est Ă©videment pas le cas ici et c'est mĂȘme un effet recherchĂ©.

    C'est pour ça qu'il faut manier avec précaution dans un langage comme java qui utilise surtout le polymorphisme de classe et qui commence tout juste à utiliser ce genre de mécanismes (tout le monde appel ça du pattern matching, mais ça n'en est pas en java).

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: et ses serveurs ?

    PostĂ© par . En rĂ©ponse au lien Le PDG d'HashiCorp prĂ©dit "une Silicon Valley sans logiciel libre". ÉvaluĂ© Ă  2.

    Le sens de la phrase c'est : les entreprises de la Silicone Valley ne feront plus de LL pas n'en utiliseront plus.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: j'ai du mal Ă  comprendre un truc ....

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  3.

    [...] potentiellement au prix d'avoir atomise les autres transactions qui étaient potentiellement en cours dans le meme process (donc potentiellement, pas nul du tout).

    En erlang les threads userlands sont appelĂ©s process (ouai je trouve pas que ce soit un super nommage) et je pense que ça de ça qu'il parlait donc ça ne devrait pas ĂȘtre aussi impactant.

    Tu peux probablement trouver une variante de ce probleme qui ne se résoud pas en changeant l'énoncé de la question, mais dans ce cas ci, ca se résoud tres facilement.

    Oui le nommage de ma fonction à l'arrache n'était pas génial et tu as mieux exprimé que moi ce que je voulais dire par le fait que c'est une question de sémantique.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: et l'inverse ?

    PostĂ© par . En rĂ©ponse au lien Le PDG d'HashiCorp prĂ©dit "une Silicon Valley sans logiciel libre". ÉvaluĂ© Ă  3.

    Il me semble que l'on a un tropisme Ă  ce sujet. La Chine et le BrĂ©sil font beaucoup de choses qu'on ne connaĂźt pas trop. Et pour la Chine ils ont mĂȘme leurs Big tech qui font du libre Ă  la marge quand ça les arrange Ă  la Google.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Rappel

    PostĂ© par . En rĂ©ponse au lien Le PDG d'HashiCorp prĂ©dit "une Silicon Valley sans logiciel libre". ÉvaluĂ© Ă  6.

    C'est le PDG qui a décidé de passer d'une licence open source qui a fait connaßtre son produit à une licence non open source car plus bankable une fois le produit connu et utilisé, car ça marche pour le moment plutÎt pas mal comme méthode pour maximiser le business.

    Ça n'est pas un rappel, c'est le sujet de l'article.

    Pour ceux qui lisent plus les commentaires que les articles. Le PDG d'Hashicorp rĂ©agi au fait que la Linux Fondation hĂ©berge le fork sous licence MPL de Terraform qui est passĂ© sous BUSL en aoĂ»t dernier. Évidement qu'il n'est pas content. La phrase mise en avant vient du fait qu'il dit qu'il n'est que l'une des entreprises qui ont fait ce mouvement et il croit que si le libre « n'Ă©volue pas » tous les acteurs finiront par faire ce mouvement.

    Je pense que la question peut tout de mĂȘme ĂȘtre intĂ©ressante posĂ©e autrement :

    Il existe un mouvement depuis quelques annĂ©es de logiciel qui sortent du libre comme ça. D'oĂč est-ce que ça vient et oĂč est-ce que ça va aller ? Et peut ĂȘtre est-ce qu'il y a un moyen de l'endiguer et est-ce que c'est souhaitable ?

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Shell

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  5.

    J'ai mis trop de temps pour éditer mon message

    J’ai lu une fois qu’on pouvait toujours utiliser || ou && (avec les accolades qui vont bien si nĂ©cessaires) pour remplacer, de maniĂšre fort Ă©lĂ©gante je trouve aussi, l’utilisation d’un if (et des then et fi sans lequel il n’est rien qu’une erreur de syntaxe !). Il semblerait donc que ce soit toujours possible sauf dans le cas[...]

    Pour moi c'est un peu comme si tu trouve un vert trĂšs joli et que du coup tu repeins TOUT ton logement dans cette couleur du sol au plafond, fenĂȘtres et vaisselles inclue. Il y a des cas oĂč c'est trĂšs Ă©lĂ©gant d'utiliser ce genre de construction, mais quand on l'utilise lĂ  oĂč elle n'a pas particuliĂšrement de sens voir qu'elle oblige Ă  faire des circonvolutions ça devient moche.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Shell

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  2.

    Sinon en dehors de ça, pour ce qui est est des constructions programmatique contre-intuitives mais souvent pratiques et concises, il y a l’utilisation du mĂ©canisme de gestion des exceptions pour implĂ©menter la logique du programme, c’est manifestement une chose souvent bien vue, en Python notamment, bien que ce langage se prĂ©sente comme le plus « Ă©vident », le moins piĂ©geux. Le try() ... catch ... n’a pourtant pas Ă©tĂ© créé comme une construction usuelle Ă  la base !

    J'ai pas compris ce que tu voulais dire.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Optional<T>

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  3.

    Non, c’est plus vaste que ça, ça permet en particulier d’écrire des chaines d’appels complĂštes sans avoir Ă  gĂ©rer des null en plein milieu et de couper la logique fonctionnelle avec des batteries de if.

    Ça n'est pas plus vaste, c'est un choix de vouloir continuer Ă  avoir une API fluent un peut plus loin que les Stream. Je ne crois pas que le prix en vaille la chandelle. Avoir une API fluent ce n'est pas de la programmation fonctionnelle, ça vient Ă  mon avis d'un mĂ©lange : la programmation fonctionnelle ne connaĂźt que des expressions et pas d'instruction et Ă©ventuellement ils ont des monades quand ils ont besoin.

    Note aussi que, dĂšs aujourd’hui, tu peux aussi utiliser l’un des trop nombreux frameworks qui permettent de gĂ©rer les null avec des annotations @Nullable / @NonNull. C’est juste moins intĂ©grĂ© au langage lui-mĂȘme.

    La JSR305 est sympa mĂȘme si elle mĂ©riterait d'avoir un peu plus d'amour (de la part de ces concepteurs et des utilisateurs). Elle a l'avantage d'ĂȘtre utilisable dans bien plus de cas.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Optional<T>

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  3.

    Bof si c'est pour findAny() et findFirst(), ils auraient pu retourner des valeur null comme le fait l'API de collection. Ça me parait moins pire que de se coltiner du code des dĂ©cennies alors qu'on avait dĂ©jĂ  planifiĂ© au moment de son Ă©criture qu'elle allait ĂȘtre dĂ©suĂšte. Le plus drĂŽle c'est que vavr utilise dĂ©jĂ  ce genre de design avec java 7...

    Dans 2 ans on aura :

    • les fonctions qui retournent null
    • les fonctions qui retournent Optional
    • les fonctions qui retournent Neither ou un truc comme ça qui tirera profit de ce qu'on a actuellement

    Ouai !...

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: j'ai du mal Ă  comprendre un truc ....

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  4.

    A quel point la notion est utile ou mĂȘme obligatoire en informatique?

    À moins que ça m'Ă©chappe je ne connais pas de langages de programmation commun1 qui ne l'implĂ©mentent pas il me semble. Mais il y a 2 maniĂšres de faire soit c'est une valeur qui est valide dans tous les types nullables (donc toute rĂ©fĂ©rences en java, tout pointeur en C/C++, etc) soit c'est un type.

    Quand c'est un type généralement le langage permet de créer des types sommes ce qui permet de créer un type « entier ou null » et ça t'oblige à vérifier que c'est un entier avant de pouvoir utiliser ta variable. Je trouve ça plus élégant personnellement.


    1. Je ne classe pas Malbolge comme commun, ni les langages simulant une machine de Turing ↩

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: j'ai du mal Ă  comprendre un truc ....

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  4.

    Null n'est pas un type en java.

    Ça m'embĂȘte supposĂ© trĂšs doctrinal. Ça dĂ©pend complĂštement de la sĂ©mantique que tu donne. Si je compte la taille d'un message, je peux vouloir considĂ©rer que sa taille est nulle ou valant 0 qu'il s'agisse d'une chaĂźne vide, d'un champ absent ou d'un champ ayant pour valeur null ou undefine si c'est reprĂ©sentĂ© par du json par exemple. Multiplier les chemins d'exĂ©cutions pour ça n'a pas de sens et planter pour relancer le processus est un bug : une valeur nulle n'est pas synonyme d'erreur.

    Penser que les choses ont un sens intrinsÚque et que ton modÚle est universel est à mon avis une erreur pas lié au langage ou à la stack utilisée.

    Tu peux vouloir Ă©liminer les valeurs null en les reprĂ©sentants dans ton typage et c'est trĂšs bien, tu n'a plus Ă  avoir ce genre de garde dans tes fonctions mais c'est pas une absence de programmation dĂ©fensive, elle est dĂ©placĂ©e aux entrĂ©es de ton programme. Mais ça ne me paraĂźt pas pertinent si le langage ne permet pas de l'exprimer. Java ne le permet pas et il me semble qu'erlang non plus toute rĂ©fĂ©rences peuvent ĂȘtre nil il me semble.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: j'ai du mal Ă  comprendre un truc ....

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  5.

    Ça n'est pas forcĂ©ment un cas exceptionnel.

    Tu peux vouloir écrire :

    int size(String str) {
     return str == null ? 0 : str.size();
    }

    Mais sinon c'est une option Ă  prendre en compte : ne rien faire et laisser l'exception arriver. Maintenant que les NullPointerException donnent (enfin !) des informations sur ce qui Ă©tait null. Ça vaut le coup de laisser faire le langage naturellement.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: sealed ?

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  6.

    Sealed c'est un moyen de contrÎler l'héritage d'une classe ou d'une interface.

    Jusqu'à l'arrivée de sealed on avait le mot clef final qui indiquait qu'une classe ne pouvait avoir de fille. sealed permet d'indiquer la liste exhaustive des filles direct d'une classe. Dans l'exemple au dessus, Optional<T> n'a que 2 soustype Present et Absent.

    Ça peut ĂȘtre assez dĂ©routant parce que ça contreviens au principe de substitution de Liskov, mais c'est pratique pour certaines choses. Ça ne doit pas ĂȘtre utilisĂ© pour tout, mais pour des cas oĂč on sait qu'on a un arbre de types limitĂ© qui ne devrait pas Ă©voluer sans que le code qui l'utilise le prenne en compte.

    Imaginons (je tire l'exemple de mon chapeau c'est peut ĂȘtre pas un bon exemple), tu veut gĂ©rer une machine Ă  Ă©tats finis, mais ça t'arrangerait que l'Ă©tat soit plus qu'une simple valeur (donc pas un enum) par exemple pour aider au debug. Tu peut alors crĂ©er une classe ou une interface et dont tu sais que toutes les filles direct reprĂ©sente un Ă©tat de ta machine.

    L'intĂ©rĂȘt c'est de pouvoir utiliser ça avec le pattern matching et les switch expressions, puisque tu va pouvoir manipuler ton Ă©tat tout en garantissant l’exhaustivitĂ© des cas. Si tu ajoute un nouvel Ă©tat c'est un nouveau sous-type et tu devra l'implĂ©menter dans tout les endroits oĂč tu a eu besoin de traiter tes Ă©tats.

    Une autre maniĂšre de voir c'est de s'en servir comme un type somme du pauvre. Tu peut crĂ©er un type T qui est soit A, soit B, soit C,... et Ă©crire des fonctions qui sont polymorphiques sur leur paramĂštre (tu prend en paramĂštre un type T et en fonction du sous-type tu rĂ©agi diffĂ©remment). Du pauvre parce que les sous-type ne peuvent pas ĂȘtre arbitraires comme tu le ferait en haskel.

    Je suis un peu loquace ?

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Shell

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  7.

    J'aime beaucoup perl pour ça :

    condition or die "Arg !";

    et je le reproduit en shell quand le cas se présente en écrivant ma propre méthode die()

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Optional<T>

    PostĂ© par . En rĂ©ponse au journal La plus belle ligne de code. ÉvaluĂ© Ă  4.

    Je n'ai jamais compris pourquoi ils ont implĂ©mentĂ© Optional aussi tĂŽt... Ils avaient dĂ©jĂ  l'idĂ©e de ce qui allait se faire et aujourd'hui je trouve que c'est une classe qui utilise mal le langage. À mon avis Optional devrait ĂȘtre une interface sealed implĂ©mentĂ©e par un record disons Present et une classe (voir un singleton) Absent. Il ne devrait pas y avoir de mĂ©thode get() et l'interface ne devrait porter que le mĂ©thodes qui en font une monade. Tu aurais une classe dont aucune des mĂ©thodes ne peut lever de NPE et au lieu d'avoir tous les analyseurs statiques qui doivent tenter de vĂ©rifier si tu utilise get() dans un endroit sĂ»r ce serait vĂ©rifiĂ© dans le langage par le typage (et pour le quel l'inlining peut rendre ton code efficace). Et tu n'aurait plus besoin de la mĂ©thode get() grĂące au pattern matching (qui n'en est pas vraiment un en java). On va garder encore 20 ans une classe qui aura finalement rapidement Ă©tait hors de ce que Java peut produire.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: https ?

    PostĂ© par . En rĂ©ponse au lien Perdu.com est mort. ÉvaluĂ© Ă  6.

    Pour moi aussi c'était une référence en non https, mais je pense plutÎt que le domaine a était perdu et que DreamHost fais des redirections https dans ce genre de cas.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Taxe sur les transactions financiĂšres

    PostĂ© par . En rĂ©ponse au lien HĂŽpital-Le gouvernement veut encore gratter 600 millions (et surtt, on applaudit bien sur le balcon). ÉvaluĂ© Ă  2.

    Tu compte l'argent en mille romain ? :p

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Tout est dans les dĂ©tails

    PostĂ© par . En rĂ©ponse au lien Arangodb veut passer son code sous BUSL 1. ÉvaluĂ© Ă  3.

    Je ne connais pas le cas d'AOSP, mais je suppose que l'idée, c'est de forcer les constructeurs à passer par Google pour avoir le code à l'heure dite.

    Il n'y en a pas besoin. Ils ne peuvent pas vendre de tĂ©lĂ©phone avec les "services Google" (ou gapps). Ils n'ont mĂȘme pas le droit de vendre des tĂ©lĂ©phones sous AOSP et sous Android d'aprĂšs ce que j'avais lu de fairephone. Comme toutes les grosses boites, Google sait verrouiller sa clientĂšle.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll