La historia perdida de la programación orientada a objetos: Alan Kay
ฝัง
- เผยแพร่เมื่อ 6 ก.ย. 2024
- Hemos vivido engañados, la programación orientada a objetos no es lo que crees que es. En este video vemos a que se refería Alan Kay al momento de el crearla.
Mi música libre de copyright para youtube y twitch:
En Spotify: spoti.fi/2OdCxP5
En Apple Music: apple.co/3cgI3sm
Discord: bit.ly/3GnTA6y
Twitter: / _nasch_
Instagram: / naschurmann
Afiliados:
Kite: asistente de autocompletado que te ayuda a programar más rápido.
Descarga Kite: bit.ly/3o78VPK
Partes y teclados ensamblados 5% de dcto cupón HOLAMUNDO: www.littlekeyb...
7% de descuento en hosting Hostinger (cupón HOLAMUNDO)
bit.ly/36XPNOp
Todos mis cursos:
Curso gratuito de vim!: bit.ly/3rU5Llp
React - La guía definitiva: bit.ly/3CNF9qr
Python sin fronteras: bit.ly/2VeYSPN
Aprende Javascript ES9, HTML, CSS3 y NodeJS desde cero: bit.ly/37cZNm3
Testing con jest y enzyme bit.ly/3lyvqz9
react native sin fronteras bit.ly/3xopU4o
Patrones de diseño en javascript: bit.ly/3j9JnjX
Como implementar SCRUM con XP en tu proyecto o empresa bit.ly/3ykQj46
TDD en nodeJS, guia de test con jest bit.ly/2V4oGhB
Serverless RESTFul API con NodeJS: guía fácil y definitiva bit.ly/37aId2h
React, Redux, Typescript, Firebase: Fullstack Serverless bit.ly/2Va0Xwc
ReactJS y redux: experto en frontend en español bit.ly/3fmyDxD
Mi web: www.nicolas-schurmann.com
Libros de programación recomendados: kit.co/nschurm...
Mi setup de desarrollo y video: kit.co/nschurmann
todos :
que interesando el tema
yo :
que buena barba bro
jajaj te mamaste
Podrías hacer un video sobre tu ruta de aprendizaje para llegar a lo que eres ahora? o algo parecido?. eres bacan =)
Estaria interesante
Apoyo la idea
@HolaMundo, si estimado te lo agradeceríamos mucho 💪🏻👍🏻
Apoyo
Apoyo
Nicolás, buenas noches, te veo desde Argentina, tengo que decirte que me pone muy contento la calidad que está teniendo tu contenido, espero sigas así, porque está genial, creo que vas a llegar muy lejos 😁🔥
Hay no falta que le de un beso no mas😅
Estoy totalmente de acuerdo, con el profe. Una cosa son los líderes comerciales de la industria de la tecnología y otra, los que se destacan por el contenido técnico.
Ojalá en las universidades enseñaran esto y hubiesen profesores tan dedicados como tu. Excelente video!!!
Pienso lo mismo...
Es cierto el POO es muy iportante y a la hora de hacer Poliformismo puedo aclara que Python es muy efectivo y ademas el el unico que puede hacer simple y multiple Herencia, Instancia y Encapsulamento.
Gracias por su video es muy interesante sobre todo a quien que todavia no usa el modo de programa POO.
Hola, te recomiendo que veas los lenguajes Erlang/Elixir y Pony, implementan el modelo de actores, que es a lo que Kay se referia con POO. Alan Kay reconoció a Erlang como el lenguaje que más se acerca a su visión de POO. Joe Armstrong, co-creador de Erlang, prefería llamarlo Programación Orientada a la Concurrencia.
Se parece mucho esto a microservicios.
Exactamente lo mismo que yo pensé, para ser mas específicos me imagine microservicios integrados con alguna librería de mensajes como por ejemplo kafka
@@JAlbertSG yes, tecnológia grpc
Sisi, pense lo mismo
también se parece a cómo se trabaja con Redux
@@JAlbertSG de hecho me recordó a la teoría de sistemas distribuidos lo expuesto en el vídeo... De hecho recuerdo que había usado Kafka para emular un modelo de sistema distribuido...
Hola Mundo de Nicolás,
Me fascino este vídeo porque me permitió reencontrarme conmigo mismo, nunca he podido mascar el paradigma de la POO no sé porque, egresé de la USACH el 90 y salí con la programación de esos años y hasta que llegue al año 2K o 2k+1 donde construí o desarrolle mi mágnum opus, fui unos de los arquitectos del sistema de pago "Sencillito", en realidad lo había modelado en mi mente el año 91 cuando nos reunimos todos los compañeros egresados y todos habíamos cambiado de ser estudiantes mantenidos por recién casados con primeras pegas y fue en una de esas juntas en qué salió en la conversación además de hablar de pega el cacho en qué consistía pagar cuentas y salió la pregunta ¿No habrá un sistema donde vayas y pagues todas las cuentas juntas en vez de ir de banco en banco o de centro de pago en centro de pago? era poco eficiente y se perdía tiempo. En ese momento me vino a la mente la solución del "la máquina de estados", la compartí de inmediato con mi ex compañeros lo validamos y salió el OK, pero "donde echarlo a correr" y ahí salió lo pobre de nuestra visión de ese año 91.
Desde ese año 91 al 2000 me hice bueno para las bases de datos y programación en C y me hice consultor Oracle, estando en Oracle Chile un día en un pasillo en la oficina de Oracle escuche hablar a mis compañeros consultores referido al desarrollo de "Sistema Financiero de GTECH(Administrador de la red de terminales de La Polla en esos años)" , les pregunté ¿A qué se referían? por si se trataba del financiero contable del ERP de Oracle en GTECH y la respuesta de “Cristian L y Hestor P”, fue muy ambigua porque él no tenía claro como que estaban desarrollando y me dicen... "No es como un mecanismo donde vas donde juegas al Loto y pagas una cuenta de servicios del hogar", bueno mi respuesta fue la de un torpe ingeniero que no cuida lo que lo que vale y se produjo la siguiente conversación:
Yo: "Es re fácil"
Hestor P y Cristian L; ¿Porque es fácil?
Yo: "¿Dónde correrá el Sistema Financiero de GTECH?, ¿En el mismo servidor de los terminales del Loto?
Hestor P y Cristian L; "¡No tenemos idea! "
Yo: "¿La base Oracle estará instalada en algún servidor UNIX o en el VMS del Loto? "
Hestor P y Cristian L; "¡No sabemos todavía!"
Yo: "Si están en máquinas diferentes desarrollas un socket en el Servidor Oracle y lo comunicas con el VMS en base al protocolo de comunicación", Les consulté ¿Cuál sería el ancho de banda entre los servidores?
Hestor P y Cristian L; "¡Cachamos menos de los nos estás preguntando! "
Yo: me retire del pasillo hablando en voz alta diciendo "Si el canal es 10 mb habría que programar las "TLI"de la capa 2 del TCP y desarrollar la máquina de estado en el lado del Oracle".
Paso un par de semanas "Cristian L y Hestor P" me invitaron a ser parte del equipo "Sistema Financiero de GTECH" y qwe me encargaría de las comunicaciones.
Yo les dije que bueno, les volví a preguntar lo del canal de conexión y si tenían la respuesta
Cristian L y Hestor P: "Los servidores estarán conectados por fibra óptica(hilacha de ojo)".
Yo: "Es más fácil entonces solo hay que programar la aplicación(la máquina de estado)", les pregunté ¿Tienen el protocolo de la mensajería?
Cristian L y Hestor P: "¡No tenemos idea! "
Bueno en reuniones posteriores apareció el protocolo de mensajería he hice mi pega que en esencia motivo esté relato, esa máquina de estado que es el gestor transaccional (ACID) lo explique antes de programarlo como explicas la POO según "Alan"
Saludos Nik
Muchas gracias por esta historia, muy motivante sin duda
Me recuerda a lo que es el modelo de actores al momento de que explicas la forma en la que los mensajes son despachados. Hace un tiempo trabajé en sistemas de compra/venta de acciones y se utilizaba el modelo de actores para establecer comunicación entre las diferentes partes del sistema dentro de lo que era el scope de la aplicación propiamente tal. La herencia siempre me ha parecido tóxica por eso es importante creo yo favorecer lo que es la composición frente a lo que es la herencia y un nivel más allá sería utilizar lo que es inyección de dependencias para poder visibilizar jerarquías y colaboraciones si es que quieres algo más estructurado. Para sistemas distribuidos conozco 2 formas de organizar las colaboraciones 1.- Mediante orquestación 2.- Mediante coreografía en base a mi experiencia las orquestaciones son siempre un poco menos caoticas que las coreografías puesto que la coreografía no centraliza las dependencias en un único punto de unión para la colaboración y se hace necesario tener un dibujo a mano de la arquitectura si o si para poder entender donde va cada cosa. Otra cosa con la que he pecado y he visto es responder de forma sincrona en componentes que no requieren respuesta... en sistemas distribuidos que requieren un alto performance y baja latencia lo mejor en un contexto de comunicaciones basadas en el protocolo http es arrojar un 202 lo antes posible para liberar recursos de red y no bloquear los sistemas. Creo que me desvié del tema y escribí demaciado jajajaja
Si a usted la Herencia le parece tóxica es porque bajo su conocimiento no puede concebirla más allá de la reutilización de código. Lástima que vea tan poco potencial en esa característica.
Esto lo leí en su día, pero no recuerdo si por vía de Uncle Bob, o curioseando directamente por algún blog. El caso es que lo he seguido leyendo aplicado a otras áreas como el testing (Steve Freeman, Nat Pryce) o como dicen más abajo, a microservicios.
Me pareció bastante iluminador cuando lo leí por primera vez, pero se me ha ido difuminando junto a toda la pila de conceptos que uno va recogiendo por el camino. A mí parecer muchos de los principios SOLID derivan en parte de esa primera intuición, que no es más que dotar de autonomía a cada entidad y limitarlo a una canal de comunicación controlado. Pero entiendo que recurrir a una analogía física sea tan socorrido y útil para explicar otro tipo de abstracciones.
Muy top el vídeo.
Buen aporte el de mencionar el fundamento matemático (teoría de las categorías) de los paradigmas que utilizamos para programar. Muchas gracias.
Gracias Shifu, si tan solo hubiera más gente como tú. Creo que esto de la educación a distancia sería todo un éxito. Eres un genio. Gracias por todo tu esfuerzo
Excelente explicación es un mundo el cambio de la POO que se escucha en la calle, a la verdadera teoría pura de objetos, hace poco termine unos cursos sobre esto y me cambio mi manera de pensar y de programar en un 1000%.
suena interesante, pero existe alguna comparativa de algun producto real vs su version digamos en C o java, me interesa para ver que ventajas podria tener. Siempre se dice que lo mas complicado es tener un soft que sea adaptable a los cambios sin hacer tanto refactor, que ventaja tendria en este sentido?
@@JOSECCB10 puedes hacer unas pruebas en smalltalk que es un ambiente de objetos vivos, pero el mayor concepto es la aplicación de los lineamientos de la teoría verdadera y pura de objetos en cualquier lenguaje hasta donde te lo permita, yo la aplico usando .netcore creando representaciones reales del dominio en forma de objetos y haciendo colaboraciones entre ellos. La empresa 10 pines da cursos internacionales sobre diseño avanzado con objeto bajo los lineamientos de Alan Kay
"Bueno, creo que ya entendiste ese punto", lo mejor😂😂😂😂
Excelente. Los enemigos de la OOP (la de Java y C++ digo) son mis amigos.
Un video fantástico 10/10
PD: Estoy haciendo tu curso de Javascript , HTML, CSS3 y NodeJS desde cero y es increíble.
felicidades :D
donde está ese curso??
Yo igual estoy haciendones esa ruta de aprendizaje pero con video de otros programadores en TH-cam. He aprendido un monton. Igual quisiera tomar esos cursos. Pregunta; Que tal los cursos de él? Me imaginos que son bueno.
@@juanpabloshortfilms Son bastante buenos, cada tema es un vídeo de entre 5-10 min así que no hay pierde y además los temas los explica de manera muy clara
100% recomendado
Css3 es una version antigua, hay que actualizarse
@@erickfernandocastaneda9871 xD?
Has un curso de programación orientada a objetos, con tu conocimiento y explicación podría ser el mejor curso de POO jamás antes visto.
excelente video yo siempre pense que la orientacion a objetos eran solo colocar botones o imagenes y cosas asi y ya que estoy empezando esto me va genial entenderlo
Lo que pensaba Alan Kay de la P.O.O me recuerda mucho a la implementación de los microservicios.
Al final casi siempre son las mismas soluciones con nombres distintos y en distintas áreas
Eso mismo iba a comentar!!
De acuerdo 100%
con la diferencia de que el sujeto lo propuso 40 años antes de que se implementara...
Microservicio es algo completamente diferente pero entiendo lo que mencionas, aunque esto tiende más a parecerse a la programación reactiva asíncrona y basado en eventos.
Ahora entiendo el porque React se ha ido apartando del uso de clases, y el uso del reducer con el dispatch, estupendo video. Gracias por tus aportes.
@@EzioEG sin embargo existe quienes quieren trabajar con Javascript orientado a objetos si o si
De verdad me gustó tu vídeo. Excelente.
Ojalá pudieses hablar un poco más de las aplicaciones de la Teoría de Categorías a las Ciencias de la Computación.
Fue toda una revelación para mí este vídeo.
La Teoría de Categorías al igual que toda formalización de sistemas axiomáticos de la Lógica Simbólica se implementa exclusivamente en ámbitos de la Computación Teórica, donde, se abordan teoremas relacionados a la decibilidad, complejidad y solución de algoritmos bajo su enfoque más teorético. En la práctica, son ineludiblemente carentes de viabilidad de uso, ya que, la gramática formal misma en la cual se fundamentan los Lenguajes de Programación debe apegarse a la concepción del modelo de la Máquina de Turing.
Es imposible crear un lenguaje de programación puro que corresponda a abstracciones matemáticas, ya que, las computadoras se rigen físicamente por estados. Sin embargo, por eso se inventaron las tecnologías de alto nivel para crear capas de abstracción y poder trabajar lo más cercano posible a estas axiomatizaciones (lenguajes como Haskell, por ejemplo); no obstante, son demasiado complejos de aprender y, a los programadores actuales, no les gusta lo difícil.
que bueno lo de aclarar sobre leyendas comerciales e informáticas
soy diseñador ui y maquetador web (maqueto para angular y react.js en estos momentos) hace más de 7 años, también me he metido en la programación en los proyectos y aunque aveces me cuesta entender estos vídeos son oro puro, gracias por compartir tu conocimiento con nosotros.
Últimamente me he metido con temas design patterns y como la POO no soluciona todos los problemas, estaría genial que hablaras en un vídeo de Design Patterns, Gran video
Me gustó el video pero me hubiera gustado más si en la última explicación hubieses aclarado bien la diferencia entre esa teoría y la implementación con las clases, porque la verdad si no estoy mal todo lo que dijiste creo que se puede hacer normalmente con la POO de Java y C++. También me hubiera gustado ver un ejemplo de la verdadera POO en Javascript o Python y por qué es más parecido a lo que decía Alan Kay. Bueno, de todas formas buen video, sigue así.
De acuerdo, hubiera sido bueno un paralelo como el que propones.
Sin embargo, de lo que entendí es que Alan Kay le da una calificación de penosa a la POO de Java (y al Java mismo, ver el otro video), y esa frase viniendo de alguien que sabe de lo que habla tiene su peso. Esa es la primera pista. La segunda pista en este video la dan cuando Nicolás cuenta que un lenguaje que maneja subclases equivoca la versión original de Alan Kay. Y la última pista la da cuando cita a Eric Elliot criticando al _"fallido experimento de la herencia por clases"_ y _"la necesidad de integrar áreas matemáticas en el desarrollo"._ En ese sentido, la Teoría de Categorías debería ser de obligatorio aprendizaje en la formación o autoformación de los programadores.
Como cuestión crucial, deberíamos entender de que aunque en Java se puedan hacer programas que funcionarán por siempre (con su particular POO), no significa que la manera en que fueron programados sea la mejor implementación, ni logra el mínimo costo de horas por humano, ni es la más simple o la más eficiente
Me parece un tema Interesante!, de hecho una de mi principal barrera mental que tengo en la programación es entender afondo la programación orientada a objetos solo entiendo la punta del Iceberg en este tema, me gustaría saber donde puedo obtener más documentación sobre este paradigma de programación, te felicito Nicolás! tus videos son muy motivantes para seguir en esta carrera. un saludo desde Colombia y muchos éxitos!
De los mejores videos que he visto en tu canal. Gracias por el contenido! En base a la poca experiencia que tengo, puedo decir que Ruby si implementa el modelo de Alan Kay de OOP. Fue muy inflienciado por SmallTalk. Si algún beginner ve este comentario, le recomiendo mucho que aprenda Ruby en vez de Java para OOP.
Excelente video, muy interesante: "POO: El regreso de la promesa", entiendo la idea pienso que al alcanzar ese punto vendría otro nivel en la seguridad.
Sarpado el vídeo... Estoy con Laravel aplicando POO me vino de 10! Saludos desde Salta-Argentina
En la teoria suena genial, pero en la práctica aun tengo mis dudas, sobre todo por el consumo de recursos....investigaré mas al respecto. ¡Gracias!
investiga sobre micro servicios y veras que estos conceptos ya son aplicados allí
Investiga también el modelo a de actores de Erlang. Se parece mucho a lo que debía ser la POO descrita por Kay.
Muchas gracias, lo tomaré en cuenta.
Hola mundo!!. Muy buena tu explicación. Mas claro échale agua!.
Lo que Alan propone requiere que las limitaciones colocadas por la infraestructura sean reemplazadas o abstraídas (puertos, servicios, peticiones HTTP, sockets). Algo que algunos lenguajes de programación han tratado de hacer desde hace mucho (ASP.NET, J2EE, Python) pero les ha quedado grande.
Buena onda que hagas conocer al obra de Alan Kay, genio de las cs de la computacion. Pero como programador de Smalltalk desde hace 6 años, pienso que no hay porque ser tan drástico con el punto del "fracaso de la herencia" como mencionas al final del video. Si, es cierto que POO se trata mas de objetos, mensajes y colaboraciones... que de clases y herencia. Pero estos no son conceptos contrapuestos. Como bien dijiste, C++ y Java solo tomaron una porcion de los conceptos de la programacion orientada a objetos... entre esos conceptos tomados, estan las clases, la jerarquizacion del conocimiento y la herencia del mismo. Es decir, estos conceptos ya estaban en Smalltalk (no recuerdo exactamente en que version, pero en la 80 ya estaba seguro). De hecho en Smalltalk, las clases son un objeto como cualquier otro, si hasta los mensajes son objetos! que digo! hasta el propio Smalltalk es un entorno vivo (es decir, un objeto!).
Por lo tanto, esto no va contra la idea original de Alan Kay, es cierto que no es la esencia, pero coexisten... Voy un paso mas alla, usar clases no solo no contradice lo hecho por Alan Kay, sino que Smalltalk es un dialecto de POO que se inclina mas para el lado de la categorizacion del conocimiento en familias jerarquicas (es decir, usar clases), muy por el contrario al lenguaje Self que tambien pertenece al paradigma orientado a objetos y por el contrario, es un lenguaje de objetos prototipados y ahi si, no existen las clases (es decir, ahi si que se puede implementar el patron Singleton correctamente jaja).
Entonces, lo malo de haber pensado POO en la manera que nos enseñó C++ y Java, no es por usar clases (que repito, no está mal, no es grave, ni siquiera contradice el trabajo que se hizo en Smalltalk)... lo malo es que las practicas usadas en dichos lenguajes hicieron que los programadores, durante decadas no respetaran los conceptos de encapsulamiento (todos usan setters y getters impunemente), no trabajen la cohesion de sus objetos, el acoplamiento de sus modulos (es muy comun que un mismo objeto de modelo sepa como renderizarse, como bajarse a disco, como imprimirse en pantalla, como transformarse en un json... mezclando las responsabilidades y desaprovechando el concepto de mensajeria). Creo que el tema va por ahi, y de hecho podrian ser excelentes temas para que hables en videos. Buenas practicas de programacion.
Finalmente, leyendo algunos de los comentarios, creo que muchisimos entendieron que el tema de la mensajeria y los objetos aislados, hace referencia a arquitecturas distribuidas, microservicios o sistemas de brokers o queues... cosas que no necesariamente van de la mano. Nuevamente, lo importante no es el mensaje en sí... lo importante es que el mensaje tambien es un objeto y tiene las mismas caracteristicas que todos los objetos, solo conoce sus colaboradores internos y eventualmente externos. El emisor del mensaje conoce al receptor, pero el receptor no conoce al emisor, asegurando asi, que el comportamiento reactivo del receptor no dependa de quien fue el emisor, sino que depende unicamente del contenido del mensaje (que eventualmente podria incluir la referencia del emisor... pero no es lo usual). En cambio, cuando hablamos de brokers o colas de mensajeria... como rabbitmq o apache kafka, claramente hay una red de por medio, hay protocolos de nivel de transporte, de aplicacion... hay handshake de ambas partes, se conocen mutuamente y se intercambian mensajes mutuamente todo el tiempo (por ejemplo un heartbeat). Por lo tanto, me parece que se fueron por las ramas haciendo ese tipo de comparaciones.... creo que hubiera sido mejor si tu ejemplo se hubiera basado en algo que no involucre un servidor, una vista, un almacenamiento, etc... podias hacer un simple ejemplo con objetos solo de modelo y ya.. y hasta en un entorno como Pharo, para mostrar como es eso de crear, modificar o eliminar objetos en runtime.
Espero que muestres mas videos de POO y Smalltalk! Buen canal, saludos desde argentina
¡Interesante opinión! Una pregunta: ¿Es complicado aprender Smalltalk?
@@cerealguyfrank5509 yo creo que smalltalk es de los lenguajes mas intuitivos y fáciles de aprender. Tiene una sintaxis muy simple y concisa (tiene solo un puñado de palabras reservadas... true, false, nil, self y super).. todo lo demas se puede sobreescribir.
Encima eso de "Todo es un objeto en smalltalk", hasta el ambiente, que está vivo... es espectacular. Te da muchisimas ventajas... Tenes el codigo de todo el lenguaje, del entorno y de la vm ahi a tu alcance, podes cambiarlo a tu antojo. Poder debuggear el codigo con un debugger super amigable, tanto que te permita ver el contenido de variables, resultados intermedios de codigo, modificar el codigo on-the-fly... no tiene precio.
Quizas lo mas complicado es la parte "filosofica" y "paradigmatica" de smalltalk... mas si venis de otros lenguajes bien imperativos como C++ o Java. Si es tu primer lenguaje, creo que es un paseo por el parque.. es mas parecido a experimentar y jugar en un jupyter notebook, con una sintaxis aun mas facil. Por otro lado, si efectivamente venis de C++ o Java, lo mas dificil es empezar a dejar de pensar en imperativo, para pasar a pensar en colaboraciones de objetos que se comunican por mensajes... eso puede ser un salto mental enorme, pero vale la pena.
Despues de eso, no solo aprendes un lenguaje nuevo, sino que para mi, te llevas un monton de re buenas practicas de modelado a otros lenguajes donde eso no es moneda corriente.
Quiero felicitarte por tu canal, tienes una buena combinación de tu dia a dia en un pais tan distante, tendencias de software y aspectos técnicos. Estoy muy agradecido por tus vídeos que resultan entretenidos, educativos y motivacionales. Exitos!
Muy interesante tema .
Ahora estoy aprendiendo HTML, CSS , Javascript ,NodeJS en su curso .
Mi profesor de POO-1 conoció a Alan Kay. Él lo invito a una conferencia en Argentina y se presentó. Un crack.
Quien fue tu profesor de poo?
Muy bueno, me gustan tus videos me los estoy viendo todos desde eo primero hasta el mas actualizado, saludos desde colombia
Qué pasada! Lambda calculo, categorías, álgebras de verificación... Me quito el sombrero. Gracias por el vídeo. Increíblemente didáctico para la profundidad que alcanzaste.
En la startup en la que trabajo, el líder nos preguntó a todo el equipo de tech: “qué es programación orientada a objetos?” La verdad, pocos supimos explicar bien qué era.
Muchas gracias por explicar, ya tengo un enfoque más claro de lo que es y de lo que originalmente era.
1 ahora soy fan de Ivan Sutherland y Alan Kay que carajo tan pro.... 2 alan key es una mente 3 este es el mejor video para explicar como trabaja una funcion (function) cuan importante es y porque debes trabajar con informacion dinamica y no estatica; Los valores no se limitan a si una simple accion el objetivo de trabajar con programación orientada a objectos es simple, reutilizar y limitar el acceso a diferentes acciones sin tener que limitar nuestro trabajo ...
Man 10 de 10 este video, complejo si pero muestra lo que todo coder necesita saber de la programacion orientada a objetos
Es la mejor información que he visto acerca de programacion orientada a objetos.
Wooo. Me encantan estas cápsulas informativas, muchas gracias por la cátedra.
Me recuerda mucho al patrón MVC (modelo - vista - controlador). Creo que la mayoría de los frameworks han implementado esta visión de orientación a objetos en cierta manera, aunque se olvidaron de los sistemas distribuidos y en red en favor de una caché centralizada. Ojalá se avance en este aspecto con más fuerza.
Gracias por el vídeo, me recordaste simula, smalltalk (para mí el más avanzado de la época en orientación a objetos). List era una caña, para mí ha sido el mayor desperdicio de la programación actual.
Ójala estos conceptos tengan un renacimiento adaptado al siglo xxi.
LLevaba tiempo sin ver contenido de esta calidad, me encanta
Y como podemos llegar a implementar el álgebra y sus funciones para reemplazar la herencia y en qué libros o cursos podemos aprender a hacerlo???
Interesante el video. Despues de años recien ahora estoy aprendiendo OOP mediante el estudio de los patrones de diseño. Eh visto algo de oido de funcional, como lo hacia de objetos. El polimorfismo es una manera muy interesante de abstraer detalles de conceptos de implementacion, creo que la OOP te da una vision estructral/arquitectonica muy solida para organizar el codigo, para mi son interesantes las dos maneras funcional, y OOP.
Ambas son equivalentes, ninguna es mejor que la otra. De hecho, la concepción de objetos como estructuras algebraicas se venía abordando desde muchísimo antes. No obstante, la Orientación a Objetos superó las expectativas cuando introdujo acepciones como la Herencia a la mesa.
Deberías hacer videos sobre las ciencias de la computación y como programar con las bases de estas.... Saludos!!!!
Estas definiendo lo que es el modelo MVVM. Esto lo llevo usando desde hace 20 años.
Saludos desde México, la verdad es que mientras programo te escucho y de todos los canales que sigo, uno de los más prominentes es el tuyo, me gusta que además del conocimiento que aportas a los programadores también nos instruyas en cosas que no vemos muy a menudo en los videos.
Sería interesante si hicieras un vídeo sobre los lenguajes lógicos/relacionales, como Prolog, que nació en la misma época que Lisp, pero nunca ha llegado tener una apreciación igual a otros paradigmas por la industria y la academia
En mi universidad se le dio bastante importancia y dios mío, fue un dolor de cabeza entenderlo. Actualmente se usa para inferir información de un texto mola mucho :P
@@nassreml curioso, yo apenas entraré a la universidad y por lo que he visto es algo opcional y ya en un punto avanzado en la carrera, de todas formas me interesa y estoy aprendiendo por mi cuenta, algún consejo?
@@sergiosanchez3229 Sí, cierto. Es ya en un punto más avanzado donde también se da web semántica, inferencia de información... El consejo que te puedo dar es que practiques mucho y que cuando veas que no puedes resolverlo busca otros puntos de vista evita perder el tiempo estando estancado, no ganas nada ahí, intenta despejarte, hacer otras cosas
Muy interesante, lo curioso es que lo que explicas es la definición de micro servicios jejejeje, son piezas independientes que se comunican por mensajes y cada uno se encarga de sus propios métodos y problemas sin externalizarlos. Muy buen dato histórico
En un punto casi se podría reemplazar el término "objeto" por micro servicio y cumpliría con la definición. Teniendo sus métodos autocontenidos, accionando ante disparadores externos e interactuando con el exterior a partir de ese primer evento o, tal vez, un trigger por schedule. Es muy interesante la cantidad de paralelismos que se pueden realizar.
Me gustó el video.... Felicitaciones es la misma duda que tuve siembre y con miedo de expresar... Al final es importante pensar en lógica... Mantenerse activo...
donde puedo encontrar mas información sobre ese tema? en el transcurso del recorrido de información cuanto se activan esos eventos es vulnerable en cuanto a ciber seguridad?
La selección de música es bestial!
Como dibujante eres un excelente programador amigo.
😂
Después de ver el vídeo, la opinión que me deja es que un paradigma mucho más parecido a la idea original de Alan Kay, es la Programación Orientada a Agentes.
Yo hice mi tesis de grado basada en un sistema multiagente y, mientras más hablabas, más recordaba los fundamentos y mecanismos para la construcción de este tipo de sistemas.
Mientras veía el vídeo, muchas cosas "familiares" aparecían en el camino. La forma en que se propone un sistema basado en la conexión de "objetos" basados en mensajes, al igual como algunos frameworks de JS funcionan al día de hoy: React - Redux, Vue - Vuex, aplicando particularmente la lógica de listening y mutating para los componentes con los que se conforma el sistema/aplicación. Buen video!
Excelente información muchas gracias, felicitaciones por el canal, muchos éxitos.
Hola! En videos como este sería genial que coloques las referencias en las que te basas para tus videos, asi, quienes lo desean, pueden profundizar más.
Excelente la manera en la que explicas. 10 de 10.
Q entretenido es escuchar toda la historia y me encantó los videos q subes soy nuevo aquí y llegué aquí buscando cosas de programascion por q nose si inclinarme a eso me encanta mucho pero tengo miedo de q sea muy difícil
Totalmente de acuerdo, por el lado Steve Jobs fué Paul Allen el genio en Microsoft y por el lado de Steve Jobs fué Steve Wosniak en Apple, mi preferido de todos. Aunque si nos vamos a principios de los 80 lo único que recuerdo es el Commodore 64, El 128 y el Apple 2C, los mejores! Y el nunca bien ponderado mi Sinclair ZX81 con 1KB. 8) ok, ok, y el Atari 800XL, ya está... todos contentos.
Hola podrias hacer un video sobre herramientas de desarrollo de software donde se evidencia el uso de teoria de categorias y de los metodos formales. Gracias.
Es interesante ver cómo la Arquitecta de microservicios, se parece mucho a lo explicado en el vídeo, el desarrollo de componentes distribuidos, los apigetways, la abstracción de objetos como servicio y su antología sobre el guardar el estado, etc.
Primero que nada, muchas felicidades por tu éxito y por tu canal, me parece que compartes contenido muy interesante y lo suficientemente claro y entendible para que sea apto para todo público.
Dicho esto, me gustaría saber si de casualidad me podrías compartir la información sobre la tablet y el software que utilizaste en el video para poder explicar el tema de los componentes y "objetos".
De antemano te agradezco tu atención y te envío un cordial saludo desde México
Yo tengo la misma duda...
Hola! veo tus vídeos y son geniales, paso por aquí para preguntar ¿Qué hay de PHP en los próximos tiempos?
Excelente aclaración respecto de porque no son incluidos esos 3 personajes que mencionas al inicio.
haz estrenado la tablet buen video Master
Sobre las clases y herencia, debo decir que si se mira el codigo del administrador de memoria de un sistema operativo como minix y el codigo intermedio que genera el compilador de c y c con clases, uno tiende a pensar que se promovio mas por la optimizacion del codigo ejecutable ( relocalizacion, pila, subprocesos), que por el hecho de que sea un buen metodo de reutilizacion de codigo para programas complejos.
*Increíbles tus videos. Cuando vi el primer video tuyo, me suscribí al minuto de verlo. Tienes mucho talento. Gracias por el contenido.*
Todos tus videos son muy explícitos y gracias a que me enganchó la manera en que explicas, adquirí tu curso de html, css, Java... Y el de react native.
Pero tengo una duda. ¿En qué órden debería de ver tus cursos, si es que los tuviera todos? Gracias y saludos!
Un vídeo sobre clases tienes? Recién me suscribí. Empecé a programar en Python y espero usar pronto Ruby. Soy ingeniero civil entusiasta de la programación. He hecho algunas macros en Visual Basic para optimizar el uso de las hojas en Excel. Gracias por tu aporte.
Hola Nico, saludos y felicitaciones por tu canal, gracias por compartir tu conocimiento. Te pregunto: Puedes subir una explicacion sobre la tecnologia 'Blockchain' y si es verdad que es segura para evitar duplicidades o copias?
Creo que si partimos a describir java desde su versión EE y usamos Remote EJB podemos describirlos de la misma manera que se describió la programación orientada objetos son objetos independiente (diferente JVM incluso) compartiendo mensajes entre sí o si nos vamos a una técnicos más “común” cosas como streaming API son programas que se comunican mediante mensajes y su única manera de acoplamiento son los mensajes y estos solo se comunican cuando tenemos un ménsaje como resultado, lo digo para mostrar que creen en lo que dices es algo que está resurgiendo con los años.
Me gustaría un vídeo de tu opinión sobre la programación orientada a objetos vs la programación funcional.
Me encantó, vamos por este
Esta bien interesante que la antigua forma de análisis a través de eventos se bien reflejada en el manejo de estado de react, como que tomaron muy en cuenta esto para mantener el ciclo de vida de un componente.
Que genial. Estoy aprendiendo código y para empezar solo js. css. y html. Aquí entendí mucho más claro que es un objeto. Ya he visto varios de tus videos y me encantan. Explicas muy bien. ¿Podrías hacer un video hablando sobre algo técnico avancada? Algo para los que saben y para los que no sabemos, tener una idea de cuánto universo nos queda por aprender.
Interesante vídeo, y la verdad tiene mucho sentido el modelo original de Kay... No sé, pero se me asemeja en algunos aspectos a la teoría de sistemas distribuidos...
Excelente explicación
Visto en 17/08/2020
gracias por los videos cada semanas son temas muy interesantes y que siempre espero para ver, este video lo repeti como 5 veces y aun asi no logro entenderlo del todo jajajaja
Estoy por iniciar mi 7mo semestre en la carrera de Ing. Sistemas computacionales y mi meta es poder desarrollar en Canadá (soy mexicano) y la verdad es que me he esforzado por algún día cumplir mi sueño, sé hablar inglés muy bien y mi lógica de programación no está nada mal, mi pregunta es, ¿es posible que al graduarme pueda ser contratado por alguna empresa de Canadá o muy probablemente necesitaré experiencia laboral primero?. Saludos y excelente video, buena calidad!
100% de acuerdo contigo.... Tu opinión la comparto y para mi es una verdad inobjetable.
La musica y la explicacion es como si revelaran los secretos del area 51. Muy buen video. Lo relacioné con el MVC y la arquitectura de microservicios.
excelente video y gracias por la investigación y desarrollo del tema!
eso estoy tratando de hacer desde hace mucho 🤣🤣🤣🤣🤣🤣, incluso cree un microprograma en phyton que actuaba solo si recibia la orden de otro programa hecho en visual basic, funciona, pero aun estoy pensando como solucionar el problema de un posible rollback por x motivos, para eso se me ocurrio una programación orientada (privado), despues lo dare a conocer, buen video amigo
Si quieren aprender como programar Poo correctamente deben tomar el curso de escuelait de profesor luis de programación orientada objeto, es increíble y te habla de todo con base de libros, y conceptos muy profundo. Les aseguro que no se van arrepentir por a mi me funcionó para entender la POO correctamente, saludos.
Yo les recomiendo mooc.pharo.org/
Es gratuito
Con este video me subscribi, lei todo eso hace tiempo me costo entenderlo, pero to lo explicaste de una manera tan simple me gusto mucho el video.
Muy bien video, me gusta mucho el diseño original de POO, se ve mucho más robusto y modular.
Excelente tema, una vez trabajé en la actualización de un proyecto custom donde todo estaba orientado a objetos, las vistas, las consultas de la base de datos, todo, era muy interesante pero lo considero poco práctico para un desarrollo rápido, los frameworks actuales se hacen mas orientados a programación funcional porque es mas fácil de leer e interpretar para los seres humanos.
ejemplo de esto reactjs.org/docs/components-and-props.html
Excelente vídeo!!! Se puede intuir que la teoría de POO elaborada por Alan Kay constituye la base fundamental de la arquitectura de sistemas basadas en microservicios, la cual funciona mediante sistemas independientes los cuales se comunican a través de mensajes, indicando los resultados de la operación solicitada. Estos sistemas pueden estar desarrollados en distintos lenguajes ya que utilizan el protocolo universal http para comunicarse entre ellos. Tu explicación ha sido de 10, sigue así crack !!
Creo que esté repaso está muy bueno, lo había olvidado
Que opinas de la metologia orientada a objetos concurrentes de Hassan Gomaa?COMET: A UML-Based Software Design Method for Single Systems
An example of a UML-based software design method for single systems is COMET (Concurrent Object Modeling and Architectural Design Method), which is described in Gomaa 2000. COMET is a highly iterative object-oriented software development method that addresses the requirements, analysis, and design modeling phases of the object-oriented development life cycle. The functional requirements of the system are defined in terms of actors and use cases. Each use case defines a sequence of interactions between one or more actors and the system. A use case can be viewed at various levels of detail. In a requirements model, the functional requirements of the system are defined in terms of actors and use cases. In an analysis model, the use case is realized to describe the objects that participate in the use case, and their interactions. In the design model, the software architecture is developed, addressing issues of distribution, concurrency, and information hiding. Sections 1.7.1 through 1.7.3 discuss each of these phases of object-oriented development.
Brutal tus vídeos !!! 👏👏👏👏👏👍 Me dedico al mundo del Front desde hace años y nunca dejo de aprender ! ¿ Cómo puedes saber tanto ? Eres un crack 👍👍
Actualmente estoy quebrandome la cabeza con POO y JS T-T
Increíble video
Saludo soy un poco nuevo en esto de programación y me gusta un montón puede encañar como implementar el patrón DTO y los que es SOLID pro favor
El concepto de "objetos" que entendí es muy similar a los microservicios. Estos se comunican en un formato común (JSON, XML, etc) y pueden estar escritos en cualquier lenguaje que interprete los mensajes.
Sos un GEnioooo...!!! Schurman...!!!
ya estoy inscripto...!! y te seguimos teacher....!!!
Wow lo había estado esperando mucho desde que mencionaste que ibas a hacer este video, un saludo desde México, eres de mis creadores de contenido favoritos, un abrazo y mucho éxito Nico!
Me recuerda a los selectors de Objective-C. Objective-C tiene objetos que responden a mensajes. Los mensajes pueden ser enviados en el runtime desde un string: [objeto performSelector:@"mensaje:" with: argumento]. Las documentaciones de las APIs de Apple se refieren muchas veces a "emisores" y "receptores".