Oui, mais je pense que c'est pas forcément un design qu'on doit continuer à pousser à son paroxysme et qu'il faut le faire évoluer.
J'ai commencé à apprendre Rust il y a pas longtemps.
Quelque chose qui a fait clic dans mon crane, c'est la gestion des erreurs.
Tu veux renvoyer quelque chose de potentiellement nul, tu utilises Option, qui est une union entre None et Some(T). Une fonction peut échouer va renvoyer un Result, une union de Ok() et de Err().
Le langage et la lib standard sont explicites dans les concepts et utilise le typage pour ça, et pour la vérification.
Le C (ou du moins, le C tel qu'utilisé par Unix), c'est le contraire. Tu veux échouer, tu renvoies un nombre négatif, sauf si l'API dit que tu dois renvoyer 0, cad null. Il y a pas vraiment de typage fort, parce que justement, on veut garder ce pseudo polymorphisme de "tout est un FD" (polymorphisme datant d'avant le C++). C'est plus souple, oui. Mais c'est aussi à mon sens plus casse gueule.
Les systèmes plus modernes (BeOS, Windows) ont tentés d'avoir des APIs plus haut niveau, par exemple basé sur les objets C++ (au moins pour BeOS).
Du coup, est ce qu'avoir plus de typage, c'est aller dans la direction de l'esprit Unix, ou pas ?
Parce qu'on parle à l'origine de Plan 9, mais il ne faut pas oublier que si les idées de Plan 9 étaient si bien, on les aurait retrouvé dans Go vu qui a écrit le langage.
[^] # Re: Implémentation dans Linux ?
Posté par Misc (site web personnel) . En réponse au lien Éloge de Plan 9, par Drew DeVault. Évalué à 3.
Oui, mais je pense que c'est pas forcément un design qu'on doit continuer à pousser à son paroxysme et qu'il faut le faire évoluer.
J'ai commencé à apprendre Rust il y a pas longtemps.
Quelque chose qui a fait clic dans mon crane, c'est la gestion des erreurs.
Tu veux renvoyer quelque chose de potentiellement nul, tu utilises Option, qui est une union entre None et Some(T). Une fonction peut échouer va renvoyer un Result, une union de Ok() et de Err().
Le langage et la lib standard sont explicites dans les concepts et utilise le typage pour ça, et pour la vérification.
Le C (ou du moins, le C tel qu'utilisé par Unix), c'est le contraire. Tu veux échouer, tu renvoies un nombre négatif, sauf si l'API dit que tu dois renvoyer 0, cad null. Il y a pas vraiment de typage fort, parce que justement, on veut garder ce pseudo polymorphisme de "tout est un FD" (polymorphisme datant d'avant le C++). C'est plus souple, oui. Mais c'est aussi à mon sens plus casse gueule.
Les systèmes plus modernes (BeOS, Windows) ont tentés d'avoir des APIs plus haut niveau, par exemple basé sur les objets C++ (au moins pour BeOS).
Du coup, est ce qu'avoir plus de typage, c'est aller dans la direction de l'esprit Unix, ou pas ?
Parce qu'on parle à l'origine de Plan 9, mais il ne faut pas oublier que si les idées de Plan 9 étaient si bien, on les aurait retrouvé dans Go vu qui a écrit le langage.