Closed mishelashala closed 8 years ago
No me queda muy claro el razonamiento detrás de esta práctica, y creo que por eso tampoco me queda muy claro de qué se trataría la charla. Me gustaría leer una síntesis sobre qué es tu plática y porqué es importante presentarla en vivo, ¿qué opinan @javascriptmx/fellows?
Lei esto y aun no entiendo que es OLOO. Me gustaba más el tema de jQuery (https://github.com/javascriptmx/chelajs/issues/2) Quizas ahi puedes introducir algunos conceptops de aquí como high-order functions.
Yo estoy muy entre dos lados, por un lado está buenísimo que nos hayas mandado una propuesta tan detallada, y como curador de propuestas eso me hace muy feliz. Por otro lado como ingeniero veo que hay enunciados muy fuertes cuyo razonamiento nunca se explica, como:
// NEVER touch the Function's prototype
// it works, but it is a bad idea!
y veo que el código usa la propiedad __proto__
para establecer el prototipo de un objeto cuyo uso de acuerdo a MDN está fuertemente desalentado porque es muy lento. Se referencia su estandarización en ES6 únicamente como opción para código legado y en los links que encuentro hablan de que es hasta 90% más lento que usar simplemente objetos y modificar los prototipos.
A mi entender en JS en 2015 hay dos corrientes que han tomado mucha popularidad:
new (function Class (){})
o preferentemente new (class Class {})
) y composición para lograr lo que se quiera (este link al respecto me gusta)Creo que podría ir hacia allá si te apasiona el tema de la creación de objetos en JS.
Estoy de acuerdo con los comentarios de Jeduan. Entonces, tomando del final de esos comentarios digo...
Uuuuuu! Me encantaría que alguien hablará sobre programación funcional en JavaScript. Por lo que he visto en tu Twitter, a ti también te gusta el tema. Que piensas sobre ese tema?
On Tuesday, November 10, 2015, Jeduan Cornejo notifications@github.com wrote:
Yo estoy muy entre dos lados, por un lado está buenísimo que nos hayas mandado una propuesta tan detallada, y como curador de propuestas eso me hace muy feliz. Por otro lado como ingeniero veo que hay enunciados muy fuertes cuyo razonamiento nunca se explica, como:
// NEVER touch the Function's prototype
y veo que el código usa la propiedad proto para establecer el prototipo de un objeto cuyo uso de acuerdo a MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FObject%2Fproto está fuertemente desalentado porque es muy lento. Se referencia su estandarización en ES6 únicamente como opción para código legado y en los links que encuentro http://blog.getify.com/sanity-check-object-creation-performance hablan de que es hasta 90% más lento que usar simplemente objetos y modificar los prototipos.
A mi entender en JS en 2015 hay dos corrientes que han tomado mucha popularidad:
- Usar clases (mediante new (function Class (){}) o preferentemente new (class Class {})) y composición para lograr lo que se quiera (este link al respecto me gusta https://alexsexton.com/blog/2013/04/understanding-javascript-inheritance/ )
- Usar funciones puras.
Creo que podría ir hacia allá si te apasiona el tema de la creación de objetos en JS.
— Reply to this email directly or view it on GitHub https://github.com/javascriptmx/chelajs/issues/29#issuecomment-155616087 .
Richard Kaufman
Mark-to-sweep por inactividad. Este issue se cerrará en 30 días salvo que se alguien adopte la charla.
Cerrando por inactividad.
OLOO as the JavaScript Paradigm
1. What is and what isn't JavaScript
JavaScript = [ 'imperative', 'almost-functional', 'prototype-based' ]; JavaScript !== OOP;
2. Understanding proto and prototype.
Prototype-based means: every object inherits properties and methods from other objects, not from classes.
example:
3. Understanding functional JavaScript
1. Pure functions
2. High-order functions
3. Stateless
4. Inmutability
4. What's wrong with OOP JavaScript?
1. Constructor pattern!
Constructor pattern is broken
Don't touch the prototype!
**By the way... Why are we inheriting from functions?***
How can we do inheritance?
It's a freaking hell!
What about module pattern?
Same problem, more complexity, more code.
5. The solution: OLOO
Best practices
Conclusion
I love OLOO.