A continuación ntroducimos a nuestro ejemplo la posibilidad de realizarel viaje en taxi, y de nuevo nos preguntamos qué conceptos utiliza unapersona que viaja en taxi. Podemos imaginar que esa persona no requieresaber tanto de las calles como el que maneja su propio auto, essuficiente con conocer la dirección del destino e indicarlo alconductor.
Sin embargo, podemos observar que todos los conceptos enlos que nosotros pensĆ”bamos antes, no han dejado de existir, endefinitiva el taxi es un auto y probablemente el taxista realice elmismo camino que harĆamos si condujĆ©ramos nosotros mismos.
Nosencontramos entonces con que los conceptos no desaparecieron sino quehubo una división de responsabilidades. Antes el viajero conocĆa sudestino, elegĆa un camino y lo ejecutaba. Ahora sólo conoce su destino:con esa información y el conocimiento de las calles de la ciudad elconductor puede determinar el camino mĆ”s adecuado.
En esta división entonces a nosotros nos interesarÔ destacar tres partes que intervienen para resolver el problema:
- el objetivo (ir a Campus),
- el conocimiento (de las calles de Buenos Aires)
- y un tercer elemento (en este caso el conductor) que sabe utilizar ese conocimiento para cumplir el objetivo.
Nosinteresa este ejemplo porque una división similar a esta sueleutilizarse en programación, a ese estilo de programación lo llamamos
declarativo. Entonces en una pieza de software construida segĆŗn esta idea encontraremos esas tres partes.
En programación al tercer elemento, el que sabe manipular el conocimiento para cumplir el objetivo, lo denominamos:
motor.Dependiendo del tipo de conocimiento que queramos manipular un motorpuede ser muy complejo o muy simple. Muchas herramientas modernasutilizan diferentes motores, mÔs o menos simples. Inclusive puede serútil construir un motor nosotros mismos en muchos casos.
De losparadigmas que vamos a aprender, hay dos que utilizan fuertemente esteconcepto y por eso solemos llamarlos paradigmas declarativos, sinembargo, la declaratividad o no de lo que hagamos no depende tanto delas herramientas que usemos como de la forma en que las usemos, de lamisma manera que si yo me subo a un taxi y le digo esquina por esquinaquĆ© hacer, no estarĆa aprovechando la posibilidad de desentenderme deesa tarea.