Hola MitoCode, me alegra mucho ver que sigues constante en tu canal de RU-vid. No sabes cuan agradecido estoy que nos compartas tus conocimientos. Yo tomé un curso contigo en el 2016 y me ayudó mucho. Ahora estoy tratando de actualizarme más en el mundo de la programación y lo que me alegra es de que mi lógica de programación ha ido mejorando mucho más cada año. Es un reto y frustra cuando no tienes esa habilidad innata pero con mucha práctica y determinación se logra. Gracias por inspirarnos a todos los programadores. Espero más adelante volver a tomar un curso tuyo. Sigue adelante y muchos éxitos!
Me gustaría que youtube permitiera dar muchas veces me gusta, de seguro lo haría con estos videos, este en especifico me ayudo mucho con un proyecto de la universidad. ¡Gracias!
Muy buen material Mito, siempre he pensado que los suscriptores son pocos frente a tu trabajo. Gracias Por tanto y perdon por lo poco! saludos de Chile
Apenas estoy migrando a Java y este curso es super util, eh estado tratando de justo trabajar de esta forma con las collecciones y objetos pero aun no daba con la forma correcta de hacerlo de esta manera, gran docente por cierto.
Muchas gracias por el aporte. Ahora humildemente digo que el método getAge() es una funcion que deberia ser responsabilidad de la clase Persona y no de App.
Pregunta: ¿La programación funcional internamente es imperativa?, Me parece que a nosotros como devs nos facilita el uso lo funcional pero es solo como usar una "pequeña librería" que nos encapsula lo imperativo, se me ocurre un tipo jQuery (ya sé que son dos extremos distintos, pero quizá se adapte el ejemplo)
En realidad cualquier cosa termina siendo imperativa, a día de hoy cualquier lenguaje de programación termina por ser una abstracción de alto nivel de lenguaje de máquina (11001110). Por tanto tu razonamiento según yo es correcto. Piensa en las estructuras de control o de secuencia, todas ellas son funciones que por detrás tienen algo de imperativo. Lo que si hay que señalar respecto al concepto de "imperativo" es que bajo este esquema los programadores siempre tenemos el control de todo lo que sucede, la programación funcional llega para justamente abstraernos de cosas que quizás no son necesarias manejarlas y ceder el control a un algoritmo o rutina la cual seguramente ya fue probada hasta el cansancio y que garantiza el correcto funcionamiento de algo. Todo lambda se basa en el concepto de Cálculo Lambda, el cual profesa comportarse como una función de orden superior, lo que significa que recibe varias funciones -> realiza cálculos con las salidas de esas funciones y devuelve un resultado en otra única función. La cuestión aquí es, ¿por detrás siempre hay algo de imperativo? y para mí sí, siempre lo hay, donde para mí radica la diferencia es qué tan explícito o implícito resulta todo. Por ejemplo todos sabemos para qué sirve la sentencia "for" pero pocos sabemos cómo funciona por detrás y he ahí cuando las cosas imperativas se tornan importante. En fin, es un tema a debatir. De todos modos suerte en la búsqueda de respuesta a tu pregunta, la que por cierto es muy buena.
La idea es que el resultado de alguna bd se pueda seguir procesando a nivel backend o tengas lógica de programación escrita en paradigma funcional. Es un paradigma por lo tanto es una forma distinta de hacer las cosas , no se puede decir que sea mejor o peor que otros paradigmas
Respecto al nombre de la clase Person en inglés es correcto, People no se usa, ambos son sustantivos válidos en el habla diario, pero se usan en contextos distintos. En habla hispana algún developer usa o llama una clase Gente? ... es lo mismo en inglés existe el sustantivo Person y los developers de habla inglesa la usan en el nombre de sus clases.
Jajajaja QQuien sabe el de la burbuja! A mi parecer es el más básico y entendible. Los otros no recordar o no entender en mi caso. Chale me hiciste recordar... gg Saludos.
Me gusta mucho la forma como abordas el tema, pero me genera la duda.. En el time 1:04:30 hablas sobre el método sorted, pero en los compararor solo indicas con que atributo vas a comparar, pero no le dices como.. Si asc o desc, eso lo haces en el nombre del comparator. Si es importante??? O como le digo que debe ser ascendente??
Como concateno más de una instrucción en un bucle? ej: arreglo.forEach( a -> System.out.println(a)); // Si quisiera que me pintara el arreglo y además, no se, me incrementara un contador, por ejemplo, por cada posición que recorre, como concateno esas dos instrucciones con esta sintaxis? Por cierto, increíble tus videos. Da gusto con profesores así ;)
Me auto-respondo que ya lo he descubierto (por si a alguien le surge la misma duda) : arreglo.forEach(a -> { // Aquí irían todas las instrucciones }); 😁
Una pregunta al predicate que has echo Predicate startsWithPredicate = person-> person.getName().startsWith("J"); puedes ponerle que en vez de j sera un parametro, es decir que no tiene que empezar siempre por j si no por otra letra ? y si se puede como se le pasaria un parametro al predicate ?
Recomiendas aprender primero javascript con programacion funcional y luego pasar a java con programacion funcional, por que todos estos métodos los estoy viendo en javascript también. Varios metodos de los que has dicho los he visto en js, como map, filter, reduce, every, any , keys,some,sort,toString etc