Quand les fils se touchent… on peut croiser Dieu.
Je vais vous raconter comment je suis devenu par hasard commiteur Python. Cela sera l’occasion d’entrer dans les arcanes du langage, puisque nous allons le modifier profondément, avec quelques lignes de code.
1. Chapitre 1 : L’inspiration
Je regarde une vidéo de Martin Odersky sur les nouveautés de Scala dans le moteur Dotty [1], la prochaine version de Scala. Je découvre la syntaxe UserName | Password pour les types disjoints [2] :
case class UserName(name: String)
case class Password(hash: Hash)
def help(id: UserName | Password) = {
val user = id match {
case UserName(name) => lookupName(name)
case Password(hash) =>
lookupPassword(hash)
}
...
}
Pour un programmeur objet classique, cette fonctionnalité semble étrange. On s’en passe depuis 20 ans. Avec un langage avec un typage fort, comme Java ou C++, il est possible de définir deux versions d’une fonction, en modulant les types des paramètres...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première