Scala a été qualifié de complexe avec ses riches fonctionnalités définies par beaucoup de mes collègues et certains ont même blâmé toutes ces nouvelles fonctionnalités. Alors que la plupart des programmeurs connaissent les fonctionnalités OO, et au moins les décents connaissent également la programmation fonctionnelle, il y a une fonctionnalité en particulier dans Scala pour laquelle je ne connais pas ses origines historiques.
Étant donné qu'un mantra majeur de notre profession est de ne pas réinventer la roue, je suis plutôt confiant, que Scala n'a pas des inouïes-avant caractéristiques réelles, mais je me tiens à corriger sur celui - ci si nécessaire.
Pour arriver à la vraie question, alors que je suis conscient de l'origine de la plupart des fonctionnalités de Scala, je n'ai jamais vu quelque chose comme ses implicit
déclarations auparavant. Existe-t-il d'autres langues (plus anciennes!) Qui offrent également cette fonctionnalité?
Est-il judicieux de distinguer les différents cas d'implicits (car ils peuvent provenir de différentes sources), à savoir les conversions implicites et les paramètres implicites?
Réponses:
Je ne suis pas d'accord avec la réponse de Brian sur cette autre question.
Pour autant que je sache, il n'y a pas de concept implicite sur une autre langue. L'historique des changements pour Scala implique que les implications étaient une généralisation des limites de vue, et une limite de vue est, en soi, une généralisation de la conversion automatique de type, ce qui est en effet très courant.
Les implicits ont ensuite activé les classes de types, mais je serais très surpris si c'était l'intention initiale.
Éditer
Les notes de publication de Scala 2.0 (2006) disent:
Cela ne signifie pas, bien sûr, que des paramètres implicites ont été introduits dans le but de remplacer les vues.
Cependant, Odersky aime clairement quand une fois le concept peut remplacer plusieurs. En ce sens, il se pourrait bien qu'Odersky veuille des classes de type, mais ne voulait pas introduire un mécanisme pour gérer cela exclusivement, et, par conséquent, a proposé autre chose qui lui a permis de supprimer un concept (Vues) et de le remplacer avec un concept plus générique qui gère à la fois les vues et les classes de type.
Au cas où quelqu'un serait intéressé, les classes de types de Poor Man, mentionnées par Brian à Stack Overflow, datent également de 2006. Clairement, Odersky était conscient du lien entre les implicits et les classes de types lorsqu'il les a introduits.
Pourtant, je maintiens ma revendication. :-)
la source
Implicit
en scala signifie deux choses différentesimplict
mot - clé) qui précède la première version de Scala d'environ un an.la source
J'ai posé une question similaire sur Stack Overflow. La réponse la plus votée et d' autres suggèrent que les origines sont à Haskell.
la source