Anjana Vakil
I suffer from a chronic case of curiosity, which led me from philosophy to English teaching to computational linguistics to software development. As a freelance engineer, educator, and developer relations consultant, these days I split my time between San Francisco and Berlin, though you can often find me traveling (in a mask) to events around the world to speak about the joy of programming and advocate for a more equitable & ethical tech industry. I love nerding out about functional programming & JavaScript, introducing folks to the Recurse Center & Outreachy, and rocking a karaoke mic!
– Tomado del sitio persona de Anjana
Day-2 Conference: Programming Across Paradigms By Anjana Vakil
Enlace https://youtu.be/j5Oys1aL27w
Notas del video Anjana Vakil - Oops! OOP’s not what I thought | Øredev 2018
Enlace https://youtu.be/qMdxExJCD5s
Estas notas son comunitarias, pueden usarlo para tomar notas compartidas
F.O.M.O. (Fear of missing out) Miedo de perderse en algo.
O.O.P. (Object Oriented Programming) Programación orientada a objetos.
ruidajo
https://www.outreachy.org/
Outreachy provides internships in open source. Outreachy provides internships to people subject to systemic bias and impacted by underrepresentation in the technical industry where they are living.
Outreachy internships are:
💵 Paid - $7,000 USD total internship stipend.
🌍 Remote - both interns and mentors work remotely.
🕰 3 months - internships run May to August, or December to March.
Diferentes paradigmas de programación.
OOP
Que no es importante
- Objetos (Objects)
- Classes (Classes)
- Herencias (Inheritance)
- Jerarquía (Hierarchy)
Alan Kay parte del grupo de creación de smalltalk
y acuño el termino de programación orientada a objetos.
es más importante la noción de células y organos.
Si una célula muere otras pueden seguir trabajando o soportando la función de las celulas perdidas.
Alan Kay se arrepiente de acuñar orientada a objetos,
porque enfoca la mirada en una idea menor,
la idea mayor está en los mensajes,
como se comunican las celulas, los objetos.
Ejemplo de código: thing.do(some, stuff)
to: thing
subject: pretty please? :D
message: "do", some, stuff
thing
recibe el mensaje
do(some, stuff)
mensaje
do
nombre del método
(some, stuff)
argumentos
.
la forma en que se envía el mensaje
El objeto es un verbo, como se comporta en relación a su contexto e interacciones.
Late binding. Behavior.
Declaración de una clase llamada Friend
class Friend:
def __init__(self, friends):
self.friends = friends
def is_friend_of(self, name):
return name in self.friends
Ejecución sobre esa clase
buddy = Friend(['alan', 'alonzo'])
buddy.is_friend_of('guy') => False
En la segunda linea => False
representa el resultado
de la ejecución de buddy.is_friend_of('guy')
.
Smalltalk
La definición de booleans es dada por comportamiento
class True
ifTrue: a ifFalse: b
^ a value
class False
ifTrue: a ifFalse: b
^ b value
Cálculo Lambda
En lógica matemática, el cálculo lambda es un sistema formal diseñado para investigar la definición de función, la noción de aplicación de funciones y la recursión.
TRUE: := λx.λy.x
FALSE := λx.λy.y
Paradigma procedural o imperativa
La metáfora de un reloj, una máquina sin posibilidad de dividirse.
Early binding. Data.