IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

OK ?, le langage de programmation moderne, dynamiquement typé


Sujet :

Langages de programmation

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    mai 2019
    Messages
    1 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2019
    Messages : 1 130
    Points : 22 841
    Points
    22 841
    Par défaut OK ?, le langage de programmation moderne, dynamiquement typé
    OK ?, le langage de programmation moderne, dynamiquement typé,
    élimine la complexité inutile des langages de programmation actuels

    OK ? est présenté comme un langage de programmation moderne, dynamiquement typé, avec une vision pour l'avenir. La mission d'OK ? serait d'éliminer la complexité inutile des langages de programmation actuels et de vous permettre de vous concentrer sur ce qui compte : écrire du code qui fait la différence. Face à la multitude des langages de programmation, quel pourrait être selon vous l'intérêt de ce langage ? Véritable innovation ? ou alors blague étudiante pour faire le buzz ?

    Nom : OKB.png
Affichages : 27844
Taille : 48,7 Ko

    Conditionnels

    Très tôt dans sa conception, il a été décidé que OK ? ne comporterait pas d'opérateur ternaire. L'opérateur ternaire ressemble à ceci :

    let a = isprod ? 'prod' : 'dev' ;
    Que signifie le point d'interrogation ? Que signifient les deux points ? Dans OK ?, nous laissons ces questions aux philosophes pour nous concentrer sur l'essentiel : écrire un code propre.

    Un langage n'a besoin que d'une seule construction de flux de contrôle conditionnel, et dans OK ?, cette construction est l'instruction switch. Les instructions switch sont plus polyvalentes et expressives que les opérateurs ternaires et les instructions if, et après un certain temps, vous oublierez l'existence de ces autres constructions. Voici l'instruction ci-dessus en langage idiomatique OK ?

    Code OK ? : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    let a = switch isprod {
    case true : "prod" ;
    case false : "dev" ;
    }


    La forme switch, bien que plus longue, est incontestablement plus claire. Comprendre la valeur de la simplicité par rapport à la complexité est la première étape de l'apprentissage de OK ?

    Des Switches lisibles

    Étant donné que les Switches sont si centraux dans OK ?, les responsables du langage voulaient éviter certains pièges communs autour des Switches trouvés dans d'autres langages. Dans d'autres langages, il est courant qu'une seule instruction de switch prenne plusieurs pages d'un éditeur avec une logique gonflée qui est poussée dans chaque cas de switch, donc dans OK ? il est question que l'utilisateur ne puisse avoir qu'une seule instruction par cas :

    Si l'utilisateur veut exécuter plusieurs instructions par switch case, il suffit de les intégrer dans une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // INVALID:
    switch x {
      case true:
        z = z + 2
      case false:
        x = x + 1;
        y = y - 1; // <-- ERROR: switch blocks can only contain a single statement
    }
    
    // VALID:
    let onfalse = fn() {
      x = x + 1;
      y = y - 1;
    };
    
    switch x {
      case true: z = z + 2;
      case false: onfalse();
    }
    Cela garantit la séparation des préoccupations : la logique spécifique à chaque cas est supprimée et les cas eux-mêmes sont mis au premier plan.

    Les valeurs nulles ne sont pas acceptables

    Null implicite est une épine dans le pied de tout développeur qui se respecte et c'est pourquoi dans OK ? les valeurs nulles ne sont PAS OK, OK ?

    Les valeurs nulles auraient pu être dans OK ?, « mais vous auriez alors oublié à quel point elles sont mauvaises, alors nous les avons incluses, représentées non pas par nil ou null mais par NO !, qui est la seule réponse sensée à la question Are nulls OK ? », déclarent les responables du langage. Pour faire passer le message, ils ont également ajouté une fonction intégrée appelée ayok ? qui prend une valeur et retourne si cette valeur est OK.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    let x = NO!
    puts(ayok?(x)) // prints 'false'
    
    let y = 10
    puts(ayok?(y)) // prints 'true'
    Gestion des erreurs

    Dans OK ?, les erreurs sont simplement des valeurs, comme n'importe quelle autre valeur. Une valeur à laquelle elles ressemblent particulièrement est la chaîne de caractères, car par convention, elles sont en fait des chaînes de caractères. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    let divide = fn(a, b) {
      return switch b {
        case 0: [NO!, "cannot divide by zero"];
        default: [a / b, ""];
      };
    };
    
    result = divide(5, 0)
    switch result[1] {
      case "": puts(result[0])
      default: puts(result[1]) // prints "cannot divide by zero"
    }
    Seulement les tableaux et les chaînes de caractères.

    Opérateurs logiques lisibles

    Dans le cas d'une instruction conditionnelle qui enchaîne un tas de longues expressions booléennes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    switch p.isactive() && p.credits() >= reqcreds && p.nottype("Admin") {
      ...
    }
    Dans OK ?, les opérateurs && et || ne peuvent agir que sur des variables, afin que le lecteur puisse comprendre ce qui se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // ERROR: '&&' operator must act on variables
    switch p.isactive() && p.credits() >= reqcreds && p.nottype("Admin") {
      ...
    }
    Voici comment l'instruction de commutation ci-dessus serait effectuée dans OK ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    let isactive = p.isactive()
    let enoughcr = p.credits() >= reqcreds
    let notadmin = p.nottype("Admin")
    switch isactive && enoughcr && notadmin {
      ...
    }
    Cela reflète un principe central de OK ? : être gentil avec le lecteur. Si l'utilisateur a besoin de raccourcir les conditionnels, il peut utiliser le mot-clé lazy :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    let isactive = p.isactive()
    let enoughcr = lazy p.credits() >= reqcredits
    let notadmin = lazy p.nottype("Admin")
    switch isactive && enoughcr && notadmin {
      ...
    }
    Prépondérance des opérateurs simple

    Dans OK ?, 5 + 2 * 3 donne 21 et non 11, car l'addition et la multiplication ont la même préséance d'opérateur. Si l'utilisateur souhaite évaluer son expression dans un autre ordre, il suffit d'utiliser des parenthèses : 5 + (2 * 3).

    Ce simple ordre par défaut de gauche à droite évite d'avoir à chercher sur Internet une table de précédence des opérateurs et permet de garder les yeux sur le code.

    MLes classes

    Les auteurs de OK ? ont assisté à l'explosion de la popularité des langages orientés objet (OO), pour les voir bientôt crouler sous leur propre poids. Au cœur de cette obésité clinique se trouve la classe.

    « Une classe reprend une idée sensée, à savoir la définition de données et de méthodes qui agissent sur ces données, puis la pousse du haut d'une falaise en ajoutant l'héritage et le polymorphisme des sous-types », déclare Jesse Duffield, Créateur de lazygit, lazydocker, horcrux, et du langage OK ?. « Il n'est pas surprenant qu'un groupe de vieux aristocrates obsédés par les classes dans les années 60, qui passaient probablement tout leur temps à décider quel enfant devait hériter de la plupart des biens, aient décidé d'ajouter une construction appelée "classe" qui tourne autour de l'héritage », poursuit-il.

    Jesse Duffield précis : « Eh bien, la révolution est enfin arrivée ! Il n'y a pas d'héritage dans OK ? en solidarité avec tous ceux qui se sont battus contre la bourgeoisie dans le passé. D'autres langages ont opté pour les structures au lieu des classes, mais malgré le fait que leurs développeurs dénoncent honorablement l'OO, les vieilles habitudes ont la vie dure et certains prononcent accidentellement "classe" alors qu'ils veulent dire "structure". Certains développeurs disent même "class" délibérément, un moyen de revenir à l'époque où l'aristocratie OO tenait encore la profession de développeur par la gorge. »

    Afin de lever toute ambiguïté et de garantir un engagement total en faveur de la mort des classes, l'équipe de OK ? a décidé d'utiliser sa propre terminologie : notaclass, ou nac en abrégé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    notaclass person {
      field name
      field email
    }
    Tous les champs sont privés

    Il n'est pas possible de marquer un champ comme public dans OK ? parce que l'API publique d'un nac doit décrire un comportement, pas un état.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    let p = new person()
    p.name = "Jesse" // <-- ERROR: access of private field 'name'
    Pour des circonstances exceptionnelles, vous pouvez définir une reconnaissance de confidentialité avec le mot-clé pack, permettant au code externe d'accéder aux champs d'un nac s'il inclut la reconnaissance dans un commentaire, précédé de I acknowledge that :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    notaclass person {
      pack "I am a stupid piece of shit who should not be doing this"
    
      field name
      field email
    }
    
    let p = new person()
    // I acknowledge that I am a stupid piece of shit who should not be doing this
    p.name = "Jesse"  // <-- No error

    Pas de constructeurs

    Les constructeurs sont une chose basée sur les classes, et OK ? n'a pas de classes. Le mot Constructeur contient également le mot struct, et OK ? n'a pas de structs. Si vous voulez définir l'état initial d'un nac, il suffit de l'ajouter comme une méthode distincte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    notaclass person {
      field name
      field email
    
      public init fn(selfish, name, email) {
        selfish.name = name;
        selfish.email = email;
      }
    }
    
    let p = new person()
    p.init("Jesse", "jesse@test.com")
    L'évolution plutôt que la composition

    Selon Jesse Duffield, la composition corrige le problème fragile de la classe de base introduit par l'héritage, pour ensuite introduire son propre problème de composant de base, où vous ne pouvez pas vous défaire du sentiment que vous vous êtes en fait un peu handicapé en dépendant de la composition pour la réutilisation du code, surtout lorsque le composant n'a pas la capacité d'interagir avec son parent.

    Pour activer l'évolution, il suffit de définir une méthode evolve dans votre nac. La méthode evolve est invoquée après l'exécution de toute autre méthode du nac et détermine si les conditions préalables ont été remplies pour faire évoluer l'instance du nac vers un nouveau type de nac.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    notaclass brgousie {
      public whoami fn(selfish) {
        return "a good-for-nothing aristocrat who likes classes"
      }
    }
    
    notaclass person {
      field name
      field email
      field likeclas
    
      ...
    
      public whoami fn(selfish) {
        return selfish.name;
      }
    
      public makeold fn(selfish) {
        selfish.likeclas = true;
      }
    
      evolve fn(selfish) {
        switch selfish.likeclas {
          case true:
            return new brgousie();
          default:
            return NO!;
        }
      }
    }
    
    let p = new person();
    p.init("John", "")
    puts(p.whoami()); // prints "John"
    p.makeold(); // evolve() method is called behind the scenes
    puts(p.whoami()); // prints "a good-for-nothing aristocrat who likes classes"
    Source : GitHub

    Et vous ?

    Quel est votre avis sur le langage OK ? ?

    Face à la multitude des langages de programmation, quel pourrait être selon vous l'intérêt du langage OK ? ?

    Véritable innovation ? ou alors blague étudiante pour faire le buzz ?

    Voir aussi :

    80 % des technologies pourraient être créées par des professionnels extérieurs à l'informatique d'ici 2024, grâce aux outils low-code, selon Gartner

    Forrester : l'utilisation des plateformes de développement low-code gagne du terrain dans les processus de transformation numérique des entreprises

    Le marché mondial des technologies de développement low-code va augmenter de 23 % en 2021, selon les prévisions de Gartner

    Microsoft lance Power Fx, un nouveau langage de programmation low-code open source basé sur Excel
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    septembre 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2014
    Messages : 154
    Points : 518
    Points
    518
    Par défaut
    Encore un langage qui va finir dans les poubelles de l'histoire

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur réseau
    Inscrit en
    mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur réseau

    Informations forums :
    Inscription : mars 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    À quoi servirai une poubelle !!!!?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2021
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2021
    Messages : 640
    Points : 1 674
    Points
    1 674
    Par défaut
    Quel est votre avis sur le langage OK ? ?
    Face à la multitude des langages de programmation, quel pourrait être selon vous l'intérêt du langage OK ? ?
    Je renvoie une autre question : quel sont les performances de OK ?, à l'heure des économies d'énergies ?
    Je n'en sait rien, mais je pense que cet élément est un des plus importants, si ce n'est pas le plus important.

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    septembre 2020
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : septembre 2020
    Messages : 448
    Points : 1 977
    Points
    1 977
    Par défaut
    L'interpréteur du langage Ok est écrit en Go, un très mauvais choix.

    En effet, dans les conditions générales d'utilisation du compilateur Go, il est clairement écrit qu'il est interdit d'écrire sa propre implémentation du langage sans l'accord de Google, et que cela constituerait une violation des brevets. Le compilateur Go est pour l'instant libre, mais qu'en sera-t-il pour les futures versions ?

    Bref, quitte à être moderne, utilisez un langage de type Rust qui n'inclut pas ce genre de clause.

  6. #6
    Membre éprouvé
    Homme Profil pro
    retraité
    Inscrit en
    septembre 2014
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : septembre 2014
    Messages : 508
    Points : 1 273
    Points
    1 273
    Par défaut
    Quand l'idéologie politique se mélange à la construction d'un langage de programmation, on arrive à ce type de langage.
    Parmi de nombreux langages modernes, voire très récents, je suis étonné que l'instruction de type switch / cas of soit encore un sujet de discussion.
    Dans un vieux langage que je connais bien, le COBOL, la problématique a été résolue ainsi :
    https://www.ibm.com/docs/en/cobol-zo...uate-statement
    C'est franchement puissant et très élégant. OK? comme bien d'autres langages, me semble des plus laids, et des plus compliqué (pourquoi on ne pourrait pas avoir plus d'une instruction dans une branche d'un "switch" ? Pourquoi on ne pourrait pas tester une variable par rapport à une chaine de caractères ?).

  7. #7
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    10 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 055
    Points : 27 560
    Points
    27 560
    Par défaut
    J'adore tous ces nouveaux langages qui prétendre (ré)inventer le fil à couper le beurre,
    qui, sous prétexte de simplifie ceci, complexifie cela,
    qui, sous prétexte de dénoncer le diable dans certains autres langages s'emploie méthodiquement à faire moins bien que ces mêmes langages....

    De ce que j'en vois là, je me croirais revenu 15 à 20 ans en arrière

    Il ne reste plus qu'à interdire le procédural et (ré)imposer la programmation linéaire et inventer une instruction magique, GOTO, pour se déplacer dans le code, et ce langage sera parfait.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  8. #8
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    avril 2002
    Messages
    4 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : avril 2002
    Messages : 4 480
    Points : 14 755
    Points
    14 755
    Par défaut
    Citation Envoyé par Bruno Voir le message
    Quel est votre avis sur le langage OK ? ?

    Face à la multitude des langages de programmation, quel pourrait être selon vous l'intérêt du langage OK ? ?
    En soi je n'ai rien contre de nouveaux langages a condition de comprendre ce qu'ils apportent, et la pour le coup je comprend pas quel est l'objectif sauf peut être la blague, mais dans ce cas là aussi c'est loupé, car d'autres on fait bien mieux avant.
    Simplifier peut être intéressant, encore faut il voir une vision claire. La j'ai juste l'impression qu'ils on sabré au hasard, on a l'impression d'un langage blague mal assumé.

    Citation Envoyé par OrthodoxWindows Voir le message
    Je renvoie une autre question : quel sont les performances de OK ?, à l'heure des économies d'énergies ?
    Je n'en sait rien, mais je pense que cet élément est un des plus importants, si ce n'est pas le plus important.
    Sur un tel langage, je ne suis pas certain que ça soit une préoccupation majeure, il semble plutôt vouloir concurrencer les langages de script comme Python, que les langages orientés performance comme C, C++, Rust, ... ou même Go ou Java

    Citation Envoyé par Jeff_67 Voir le message
    L'interpréteur du langage Ok est écrit en Go, un très mauvais choix.

    En effet, dans les conditions générales d'utilisation du compilateur Go, il est clairement écrit qu'il est interdit d'écrire sa propre implémentation du langage sans l'accord de Google, et que cela constituerait une violation des brevets. Le compilateur Go est pour l'instant libre, mais qu'en sera-t-il pour les futures versions ?
    Tu as des sources précises qui détaillent ça ? Car je n'ai rien vu de tel. Et d’ailleurs ça parait juste impossible car de telles restrictions seraient en complète contradiction avec la licence libre du compilateur qui ajoute même une clause d'exclusion des brevets.

  9. #9
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : juillet 2007
    Messages : 868
    Points : 1 960
    Points
    1 960
    Par défaut Language complexe
    On est au tout début du language et rien que le switch est complexe avec plein de règles dans tout les sens. Déjà le nom est tordu, il ne simplifie pas la recherche dans un moteur de recherche...
    Tout ce que j'écris est libre de droits (Licence CC0) et je vous incite à faire de même.

  10. #10
    Membre expérimenté
    Homme Profil pro
    ingénieur qualité
    Inscrit en
    mars 2015
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : ingénieur qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : mars 2015
    Messages : 480
    Points : 1 652
    Points
    1 652
    Par défaut
    J'ai l'impression que ce langage s'adresse aux "développeurs du dimanche" ou autres "gars qui fait son petit truc dans son coin" parce qu'ils simplifient des fonctions qui font trembler les débutants.
    Mais soyons honnêtes tout débutant est capable de gérer un if then else ou un switch très vite. C'est en général abordé dans la première demie journée de formation.

    Ce langage semble s'attaquer aux premiers obstacles du débutant, sauf que le débutant est capable de les comprendre et de s'y adapter vite.
    Et supprimer ces obstacles c'est aussi en ajouter de la complexité dans la conception de l'algo.

    Bref, si ni vous ni moi trouvent ça pertinent, je ne vois pas bien qui va y adhérer... A part le marketeux qui risque de venir me voir avec les belles phrases de type
    les valeurs nulles ne sont PAS OK, OK ?
    représentées non pas par nil ou null mais par NO !, qui est la seule réponse sensée à la question Are nulls OK ?
    PS : Ma réponse à Are nulls OK? et OUI et elles ma facilitent parfois bien la vie.

    Dans OK ?, 5 + 2 * 3 donne 21 et non 11, car l'addition et la multiplication ont la même préséance d'opérateur
    Alors en CE2 (je penses) on m'a expliqué que la multiplication est prioritaire sur l'addition.
    Casser cette norme ,ne ressemble pas à une simplification de mon point de vue...

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2004
    Messages : 369
    Points : 1 334
    Points
    1 334
    Par défaut
    Haha j'adore

    Le meilleur passage est le "6 opérateurs de comparaison, c'est trop compliqué, alors on n'a mis que >=, et si vous voulez vérifier que deux valeurs sont différentes, vous n'avez qu'à écrire let x = !(a >= b); let y = !(b >= a); x || y"

  12. #12
    Membre chevronné
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    septembre 2020
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : septembre 2020
    Messages : 448
    Points : 1 977
    Points
    1 977
    Par défaut
    Citation Envoyé par Uther Voir le message
    Tu as des sources précises qui détaillent ça ? Car je n'ai rien vu de tel. Et d’ailleurs ça parait juste impossible car de telles restrictions seraient en complète contradiction avec la licence libre du compilateur qui ajoute même une clause d'exclusion des brevets.
    C'est écrit noir sur blanc dans les conditions d'utilisation qu'il faut demander une licence spécifique à Google pour développer sa propre implémentation de Go en accord avec les brevets déposés. La page wikipédia française du langage Go a un lien qui pointe directement vers le paragraphe en question.

    Tu est libre de modifier et redistribuer le compilateur existant, mais pas d'en écrire un totalement nouveau sans l'accord de Google.

  13. #13
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2013
    Messages
    1 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 1 381
    Points : 8 641
    Points
    8 641
    Billets dans le blog
    43
    Par défaut
    Langage divertissant. A prendre plutôt comme une blague un peu trollesque je pense.
    Un seul opérateur de comparaison, des identificateurs limités à 8 caractères, ou encore le notaclass.
    Le gars a voulu s'amuser et pourquoi pas.
    Tutoriels et FAQ TypeScript

  14. #14
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    10 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 055
    Points : 27 560
    Points
    27 560
    Par défaut
    Ca ressemble quand même à une grosse blague pour faire le buzz (et ça marche, en tout cas ici).

    Ou alors c'est juste le résultat d'un exercice scolaire demandé à des étudiants
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  15. #15
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2004
    Messages : 369
    Points : 1 334
    Points
    1 334
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Ca ressemble quand même à une grosse blague pour faire le buzz (et ça marche, en tout cas ici).

    Ou alors c'est juste le résultat d'un exercice scolaire demandé à des étudiants
    Bah je pense que le mec a un humour bien marqué, ses autres repos sont de la même veine

  16. #16
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    avril 2002
    Messages
    4 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : avril 2002
    Messages : 4 480
    Points : 14 755
    Points
    14 755
    Par défaut
    Citation Envoyé par Jeff_67 Voir le message
    C'est écrit noir sur blanc dans les conditions d'utilisation qu'il faut demander une licence spécifique à Google pour développer sa propre implémentation de Go en accord avec les brevets déposés. La page wikipédia française du langage Go a un lien qui pointe directement vers le paragraphe en question.

    Tu est libre de modifier et redistribuer le compilateur existant, mais pas d'en écrire un totalement nouveau sans l'accord de Google.
    Ok donc il s'agit d'une histoire de brevets, comme Java. Google peut certes essayer de porter plainte pour violation de leurs brevets si tu fait une implémentation de Go qui les utilise, et il peut d'ailleurs le faire quelque soit le langage utilisé pour faire ton implémentation.
    Par contre dans le cas présent ça ne pose pas de soucis : la licence du compilateur Go t'autorise bien a coder tout ce que tu veux avec, y compris ton propre langage. Google ne pourra rien dire car il n'a pas de brevets sur ton langage.

  17. #17
    Membre chevronné
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    septembre 2020
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : septembre 2020
    Messages : 448
    Points : 1 977
    Points
    1 977
    Par défaut
    Citation Envoyé par Uther Voir le message
    Ok donc il s'agit d'une histoire de brevets, comme Java. Google peut essayer de porter plainte pour violation de leurs brevets si tu fait une implémentation de Go qui les utilise, mais il peut le faire quelque soit le langage utilisé pour faire ton implémentation.
    Par contre la licence du compilateur Go t'autorise bien a coder tout ce que tu veux avec, y compris ton propre langage et Google ne pourra rien dire car il n'a pas de brevets sur ton langage.
    Sauf que si Google décide de changer la licence du compilateur Go dans les futures versions, et que cette dernière ne te convient pas. T'es marron et tu dois réécrire tout ton code à échéance plus ou moins longue (quand le compilateur que tu utilises n'es plus maintenu).

    Coder avec Go, c'est accepter d'avoir une épée de Damoclès au-dessus de la tête.

  18. #18
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    avril 2002
    Messages
    4 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : avril 2002
    Messages : 4 480
    Points : 14 755
    Points
    14 755
    Par défaut
    Quelque soit le langage, une fin de support est toujours un problème. Mais la licence du compilateur avec exemption de brevets permet justement à des tiers de continuer la maintenance si le propriétaire change de licence, comme c'est le cas actuellement avec OpenJDK qui a plusieurs projets libres qui assurent une maintenance, alors que Oracle a sa version propriétaire avec un support gratuit très limité.

  19. #19
    Membre éprouvé

    Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    juillet 2010
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2010
    Messages : 449
    Points : 1 108
    Points
    1 108
    Par défaut
    leur inspiration pour ce langage:



    https://github.com/BSLang/BS

  20. #20
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    mai 2002
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2002
    Messages : 2 635
    Points : 6 597
    Points
    6 597
    Par défaut
    Je préfère le langage "Ook!", variante du "brainfuck":
    https://fr.wikipedia.org/wiki/Brainfuck
    (décrit en bas de page)

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise
    OpenGL 2.1 - Oracle 10g - Interbase (7 - XE) - PostgreSQL 11.6

Discussions similaires

  1. [Questions]Le langage de programmation Binaire existe t-il ?
    Par Nasky dans le forum Langages de programmation
    Réponses: 30
    Dernier message: 16/11/2012, 10h09
  2. PHP en tant que langage de programmation dynamique
    Par hatem10 dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2007, 20h53
  3. Apprendre un langage de programmation moderne
    Par aegal dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 22/02/2006, 15h15
  4. Création d'un langage de programmation
    Par liquid_stone dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 09/11/2003, 17h44
  5. Nombre de langage de programmation total
    Par Adrael dans le forum Langages de programmation
    Réponses: 16
    Dernier message: 22/07/2003, 01h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo