¡Los cursos con este profesor son geniales!, ojalá saquen más pronto
Concuerdo contigo!
EJEMPLO C#
// Declarativo
var listofNumbers = new int[] {1, 2,3 ,4, 5};
var item1 = listofNumbers.FirstOrDefault (p => p=1);
Console.Writeln(item1);
//Imperativo
var listofNumbers = new int[] {1, 2,3 ,4, 5};
for (int i=0; i < listofNumbers.length; i++ ) {
if (listOfNumbers[i] == 1)
Console.Writeln(listOfNumbers[i]);
}
La diferencia de esto es que la imperativa te va a traer varios datos en los cuales listOfNumber[i] == 1, en cambio la declarativa te trae el primero que encuentre que cumpla la condicion. Lo que podes hacer es lisOfNumber.where(x=> x == 1).toArray(); entonces te traerá todos :')
o en su defecto aun siendo declarativo para imprimir todos los numeros que son iguales a 1.
var listofNumbers =newint[]{1,2,3,4,5};var items = listofNumbers.Where(p=> p ==1);foreach(var item in items){Console.WriteLine(item);}//Aun sigue siendo un enfoque declarativo ya que estas indicando que condiciones deben cumplir los elementos en lugar de detallar como buscarlos.
La programación declarativa podría ser una bomba de humo, por qué? y la respuesta es otra pregunta... todo eso y bajo que costo ? dentro de esos metodos probablemente ya hay mucha más programación imperativa, que en relación al costo beneficio en algunas ocasiones es optimo y en otras no tanto. Es bueno ser cuidadoso y estudiar los caso donde es practico usar la programación declarativa cuando se habla de metodos que no fueron creados por nosotros mismos.
Comparativa
**Programacion Declarativa **
Paradigama de programacion
instruciones donde especifico lo que quiero y no como lo quiero
contraciposion de a la programacion impertariva
fiable y simple
Nota : la programacion declarativa son funciones o metodos ya definidos con una para realizar acciones espeficos, lo cuales no ahoran lineas de condigo. solo tenemos que saber que realiza cada funcion para utilizarla lo mas eficiente posible , poder enteder codigo otro desarrollado con programacion declarativa, por mi parte me gustar no me gusta usar tanto metodos al mismo tiempo porque de pone mas complejo saber que realiza el codigo
**Programacion Imperativa **
Paradigama de programacion
Secuencia de paso a paso de intrucciones
Contraposicion a la programacion declarativa
Codigo mas extenso mas facil de interpretar
Nota : la programacion imperativa debemos programar paso a paso lo que queremos hacer, tiene sus ventajas es mas facil de compreder al mometo debuguearlo, pero puede se mucho extenso.
Ejemplos
//declarativovarListOfNumeber=newInt[]{1,2,3,4,5};var item =ListOfNumeber.FirstOrDefault(p=> p ==1)console.WriteLine(item )//ImperativavarListOfNumeber=newInt[]{1,2,3,4,5};int[]ListOfNumbers=newint[]{1,2,3,4,5};for(int i =0; i <ListOfNumbers.Length; i++){if(ListOfNumbers[i]==1){Console.WriteLine("El valor es igual a 1");}}
Programación declarativa vs. imperativa: una comparación
Programación imperativa:
Se centra en cómo se ejecuta el programa, proporcionando instrucciones paso a paso para realizar una tarea.
El programador controla el flujo de ejecución y el estado del programa.
Ejemplos de lenguajes imperativos: C, Java, Python.
Programación declarativa:
Se centra en qué se quiere obtener del programa, especificando el resultado deseado sin indicar cómo se debe alcanzar.
El programador define el problema y deja que el sistema determine cómo resolverlo.
Ejemplos de lenguajes declarativos: SQL, Prolog, Haskell.
Ventajas de la programación declarativa:
Código más conciso y legible: El programador no necesita preocuparse por los detalles de la implementación.
Facilidad de mantenimiento: El código es más fácil de entender y modificar.
Corrección: El sistema se encarga de garantizar la corrección del resultado.
Desventajas de la programación declarativa:
Menos control: El programador tiene menos control sobre el flujo de ejecución y el estado del programa.
Menos eficiente: En algunos casos, la programación declarativa puede ser menos eficiente que la imperativa.
En resumen:
La programación imperativa es adecuada para tareas que requieren un control preciso del flujo de ejecución.
La programación declarativa es ideal para tareas en las que el resultado deseado es más importante que el proceso para llegar a él.
La elección del paradigma de programación adecuado depende de las necesidades específicas del proyecto.
Otra diferencia es que la programación Declarativa es más abstraida que la Imperativa.
Debido a esta diferencia en la abstracción del código, en la Declarativa, se vé más simple pero un poco más dificil de entender, mientras que en la Imperativa ocurre lo contrario, se ve más extenso y no tan dificil de entender.
Actualmente utilizo LINQ en la empresa de desarrollo de software donde trabajo. Digamos que pude aprender LINQ sobre la marcha y decidí tomar este curso para reforzar lo aprendido.
Honestamente LINQ es super importante en el desarrollo de software y para nada que es un desperdicio.
Altamente recomendado este curso y con este tremendo instructor. 10/10
Linq utiliza el paradigma de programacion Delcarativo
Soy solo yo o el video de esta clase se pausa demasiado y se queda cargando sin importar cual servidor (A, B, o C) este utilizando ? (ya revisé mi ancho de banda del internet y soporta videos en Full HD sin problemas )
Por favor reporta el problema al equipo tecnico de platzi y esperemos una soluci[on rapida
Hay diferencia en los tiempos de respuesta entre usar programación imperativa vs declarativa?
En general, la elección entre programación imperativa y declarativa no afecta directamente los tiempos de respuesta de una aplicación. Tanto la programación imperativa como la declarativa se pueden utilizar para escribir código que resuelva un problema determinado, y ambas pueden producir soluciones eficientes y escalables.
La diferencia entre programación imperativa y declarativa radica en cómo se enfoca el código y cómo se expresa la lógica de la solución. En programación imperativa, se describe cómo se debe hacer algo paso a paso, utilizando estructuras de control de flujo como bucles, condicionales y funciones. En programación declarativa, se describe qué se debe hacer sin especificar cómo se debe hacer, utilizando abstracciones como funciones de alto nivel, operaciones funcionales y consultas.
En C#, la programación imperativa es el enfoque predominante, pero el lenguaje también admite un estilo de programación más declarativo mediante el uso de LINQ (Language Integrated Query), que proporciona una sintaxis más concisa y expresiva para trabajar con colecciones de datos.
En términos de rendimiento, no es necesariamente el enfoque de programación en sí lo que afecta los tiempos de respuesta, sino más bien la calidad del código y la eficiencia de los algoritmos y estructuras de datos utilizados. El rendimiento de una aplicación puede verse afectado por factores como la complejidad del problema, la cantidad de datos que se manejan, la calidad del código y la eficiencia de los algoritmos y estructuras de datos utilizados.
Acabo de descubrir que tiendo a codear de primeras imperativamente, siento que tengo más control, aunque muchas veces termino refactorizando a declarativo cuando compruebo que mi código funciona.