Otra forma de hacer esta pregunta es: ¿qué es Inversión de control según usted?¿La inversión de control es específica de los lenguajes OO?
Formulo esta pregunta porque el artículo de Wikipedia en IoC ha sido secuestrado por una explicación que no es de OO. Esto está tomado de la discussion page y es a partir de 2007:
he tomado la libertad de reescribir por completo la página, ya que el contenido anterior fue completamente absorbido por "orientado a objetos" balbuceo sin sentido ...
No veo cómo la inversión de control tiene sentido fuera del lenguaje OO. Ya hay muchas explicaciones para ceder el control en los lenguajes de procedimiento (la programación de eventos es una) y los lenguajes puramente funcionales no necesitan un concepto como Inversion of Control, ya que tienen funciones de orden superior.
Además, en el article, donde Martin Fowler elabora IoC, maneja exclusivamente ejemplos de OO.
Entonces, ¿IoC es exclusivamente un concepto OO, y qué es exactamente?
Para mí, IoC intenta convertir las funciones en datos dentro de las limitaciones que imponen la mayoría de los lenguajes OO, e intenta pasar esas funciones como datos como argumentos para otras funciones. Esa no es la única parte de IoC, pero hay algo de eso.
También existe el patrón de diseño de fábrica, donde se construyen y configuran árboles de objetos antes de pasarlos.
Para mí, IoC es exclusivamente un concepto OO.
¿Cuál es tu respuesta?
Totalmente de acuerdo con que es más fácil de usar con un sistema de tipo rico. Se vuelve incluso más fácil con las funciones de ciudadanos de primera clase. – xtofl