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 ?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 |
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 |
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();
} |
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 |
1 2 3 4 5 | let x = NO! puts(ayok?(x)) // prints 'false' let y = 10 puts(ayok?(y)) // prints 'true' |
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 |
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"
} |
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 |
1 2 3 | switch p.isactive() && p.credits() >= reqcreds && p.nottype("Admin") {
...
} |
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Quel est votre avis sur le langage OK ? ?