1
00:00:00,560 --> 00:00:03,280
En esta sesión
veremos qué es Pharo.
2
00:00:03,680 --> 00:00:06,080
Es un lenguaje de objeto puro.
3
00:00:06,440 --> 00:00:10,720
Pero también es un IDE,
Un entorno de desarrollo integrado.
4
00:00:11,080 --> 00:00:14,040
Está inspirado en Smalltalk.
Ese es su padre espiritual.
5
00:00:14,200 --> 00:00:18,520
Es un lenguaje potente y elegante
que es divertido para programar.
6
00:00:18,680 --> 00:00:23,320
Hay una gran comunidad de personas.
que hacen una variedad de cosas con él.
7
00:00:23,480 --> 00:00:27,480
Lo que trataremos de enseñarle en
Este curso, con la ayuda de videos,
8
00:00:27,640 --> 00:00:30,960
es que, es un sistema vivo,
puede escribir guiones a medida que avanza.
9
00:00:31,600 --> 00:00:36,240
Puede tomar Pharo con su licencia MIT
y hacer lo que quiera con él.
10
00:00:36,880 --> 00:00:41,760
Cuando digo que Pharo es elegante
tengo argumentos para respaldarlo.
11
00:00:42,000 --> 00:00:44,160
La sintaxis cabe en una tarjeta postal
12
00:00:44,320 --> 00:00:46,840
y el simple
y potente modelo de objeto
13
00:00:47,000 --> 00:00:49,080
ocupa cuatro lineas
Le mostrare...
14
00:00:49,920 --> 00:00:52,800
En esta diapositiva
Tiene la sintaxis completa de Pharo.
15
00:00:52,960 --> 00:00:55,120
Me refiero a "completa", no hay nada más.
16
00:00:55,280 --> 00:01:00,840
Eso no significa que pueda entender
La sintaxis con solo leer esta diapositiva.
17
00:01:01,000 --> 00:01:03,840
Tendremos varias sesiones,
para descifrar
18
00:01:04,000 --> 00:01:07,640
y ayudarle a entender
cómo está estructurada la sintaxis
19
00:01:07,800 --> 00:01:11,120
Pero le da una idea
del trabajo a realizar.
20
00:01:11,280 --> 00:01:14,320
No hay nada mas
que esta sintaxis.
21
00:01:14,560 --> 00:01:17,960
Del mismo modo, el modelo de objeto
se resume en esa diapositiva.
22
00:01:18,120 --> 00:01:20,520
Todo los tipos son definidos dinámicamente,
23
00:01:20,680 --> 00:01:22,840
todo es una instancia de objeto
de una clase,
24
00:01:23,000 --> 00:01:27,000
todos los métodos son públicos virtuales,
todos los atributos son protegidos,
25
00:01:27,160 --> 00:01:28,640
y hay una sola herencia.
26
00:01:28,800 --> 00:01:33,520
No se maneja el concepto de boxing,
ningún tipo primitivo y no primitivo,
27
00:01:33,680 --> 00:01:36,120
no hay tipos genéricos, y así sucesivamente
28
00:01:36,280 --> 00:01:37,160
Lo tiene todo.
29
00:01:37,320 --> 00:01:39,960
Acaba de ver la
sintaxis y el modelo de Pharo.
30
00:01:40,120 --> 00:01:41,720
Volveremos a eso,
31
00:01:41,880 --> 00:01:45,960
pero es solo para darle una idea
de la complejidad del sistema.
32
00:01:46,840 --> 00:01:50,200
Tiene que darte cuenta de que Pharo
está completamente escrito en sí mismo.
33
00:01:50,360 --> 00:01:54,160
¿A qué me refiero con Pharo? Me refiero
a las cadenas de caracteres, caracteres,
34
00:01:54,320 --> 00:01:58,000
booleanos, IDE, compilador, sockets ...
35
00:01:58,160 --> 00:02:00,040
Todo está escrito en Pharo.
36
00:02:00,200 --> 00:02:05,600
Entonces si domina esta sintaxis,
escrita en una página, y este modelo,
37
00:02:05,760 --> 00:02:08,880
entonces tendrá acceso
a la totalidad de Pharo.
38
00:02:09,120 --> 00:02:11,840
Creo que esto es emocionante
intelectualmente
39
00:02:12,000 --> 00:02:15,040
porque tiene
esta pequeña puerta de entrada
40
00:02:15,200 --> 00:02:17,080
en un mundo gigantesco
41
00:02:17,680 --> 00:02:20,840
Entonces si ve
en el título de este mooc,
42
00:02:21,080 --> 00:02:24,960
incluye la palabra "inmersivo".
¿Por qué es esto?
43
00:02:25,200 --> 00:02:27,440
Porque Pharo no es una caja negra.
44
00:02:27,600 --> 00:02:30,280
Todo el sistema
es completamente inspeccionable,
45
00:02:30,440 --> 00:02:33,440
para que puedas ir y ver
cómo se implementa
46
00:02:33,600 --> 00:02:35,480
Y Pharo es reflexivo.
47
00:02:35,640 --> 00:02:37,840
Tiene una representación de sí mismo
48
00:02:38,000 --> 00:02:40,480
que puede usar
para entenderlo
49
00:02:40,640 --> 00:02:44,880
Esto significa que puede sumergirse
por completo en un mundo de objetos.
50
00:02:45,040 --> 00:02:48,080
Me gusta esta metáfora de la pecera.
51
00:02:48,240 --> 00:02:51,240
Un idioma suele ser una caja negra.
52
00:02:51,400 --> 00:02:54,920
Pharo no es una caja negra,
es un tanque de peces,
53
00:02:55,080 --> 00:02:59,560
donde puede ver los objetos
y constituyentes del sistema mismo,
54
00:02:59,720 --> 00:03:03,960
pero también puede sumergirse en el tanque
e interactuar con los objetos.
55
00:03:04,120 --> 00:03:06,520
Entonces, realmente es en ese sentido.
56
00:03:06,680 --> 00:03:10,080
que te estamos invitandole
para jugar con Pharo.
57
00:03:11,160 --> 00:03:14,920
Aquí le muestro un ejemplo
de un sistema inmersivo
58
00:03:15,680 --> 00:03:19,000
Lo que llamamos inmersivo
o interactivo.
59
00:03:19,360 --> 00:03:24,120
A la izquierda tienes el código.
A la derecha, lo que produce.
60
00:03:24,800 --> 00:03:30,440
Cada vez que el programador
presiona la clave de compilación,
61
00:03:30,600 --> 00:03:33,880
la pantalla se vuelve azul
y el resultado está a la derecha.
62
00:03:34,040 --> 00:03:36,680
Está constantemente modificando su código
63
00:03:36,840 --> 00:03:40,360
y viendo lo que está haciendo
en la ventana derecha.
64
00:03:40,520 --> 00:03:43,800
Puedes hacerlo
con cualquier elemento del sistema,
65
00:03:43,960 --> 00:03:47,000
ya sea un zócalo, un archivo ...
66
00:03:47,720 --> 00:03:51,240
3D, como aquí.
Pero un servidor web sería el mismo.
67
00:03:51,400 --> 00:03:55,000
El servidor web funciona
y puede modificarlo a medida que avanza.
68
00:03:57,560 --> 00:04:00,960
Ahora le voy a mostrar
los soportes disponibles
69
00:04:01,120 --> 00:04:03,600
si quieres trabajar Pharo
fuera de este mooc.
70
00:04:03,760 --> 00:04:06,520
Hay varios libros,
todo de código abierto.
71
00:04:06,680 --> 00:04:10,440
Hay Pharo by Example,
Para principiantes, en varios idiomas.
72
00:04:10,600 --> 00:04:14,800
Actualmente se está actualizando
para Pharo 5
73
00:04:14,960 --> 00:04:17,600
Deep into Pharo i> es más avanzado,
74
00:04:17,760 --> 00:04:19,840
entrando en las bibliotecas,
75
00:04:20,000 --> 00:04:24,760
en aspectos menos conocidos
del idioma y las herramientas.
76
00:04:25,400 --> 00:04:28,160
Está
Enterprise Pharo, a Web Perspective,
77
00:04:28,320 --> 00:04:30,840
que pone el énfasis
en bibliotecas web,
78
00:04:31,000 --> 00:04:35,280
como WebSockets,
Servidores HTTP / HTTPS
79
00:04:35,440 --> 00:04:37,480
y plantillas.
80
00:04:37,680 --> 00:04:38,920
Todos son de código abierto.
81
00:04:39,080 --> 00:04:43,120
Lo que usaremos principalmente para este
curso es un marco web, Seaside i>.
82
00:04:43,280 --> 00:04:47,080
Tiene 300 páginas disponibles
en la direccion indicada
83
00:04:47,240 --> 00:04:50,840
Puede leer el libro
si quiere saber más
84
00:04:51,000 --> 00:04:54,240
Pero le daremos todo lo que necesita
para seguir el mooc
85
00:04:54,400 --> 00:04:57,400
sin tener que leer el libro también.
86
00:04:58,440 --> 00:05:00,840
Para los interesados
en otros aspectos,
87
00:05:01,000 --> 00:05:06,000
Hay un libro de unas 300 páginas.
sobre los métodos numéricos en Pharo,
88
00:05:06,160 --> 00:05:09,600
yendo de cosas
como series estadísticas,
89
00:05:09,760 --> 00:05:13,280
a algoritmos iterativos y agrupaciones.
90
00:05:14,240 --> 00:05:19,120
Le dije que Pharo
es un sistema para aprender.
91
00:05:19,280 --> 00:05:22,800
Le daré algunas ilustraciones.
92
00:05:22,960 --> 00:05:25,880
Los veremos de nuevo
en los videos
93
00:05:26,040 --> 00:05:29,440
Cada elemento gráfico de Pharo
sobre el que hagas clic ...
94
00:05:29,600 --> 00:05:32,320
Con Cmd+Shift+Option,
95
00:05:32,480 --> 00:05:37,840
obtendrá un pequeño menú
alrededor del elemento gráfico.
96
00:05:38,120 --> 00:05:42,320
Al usar estos menús,
puede entrar directamente
97
00:05:42,480 --> 00:05:46,600
y manipular los elementos visuales
con que está lidiando
98
00:05:46,760 --> 00:05:48,680
Le mostraremos lo que
un inspector es,
99
00:05:48,840 --> 00:05:53,120
un objeto que le permite manipular
las propiedades de otros objetos,
100
00:05:53,280 --> 00:05:55,560
y comenzar a implementarlos.
101
00:05:55,720 --> 00:05:58,480
También tenemos un objeto
llamado Finder para realizar búsquedas.
102
00:05:58,640 --> 00:06:00,680
Entonces puedo preguntar al Finder
103
00:06:00,840 --> 00:06:04,400
para encontrar todos los métodos del sistema
que contienen la palabra "match".
104
00:06:04,560 --> 00:06:08,640
Me muestra una lista y puedo acceder
el código del método directamente.
105
00:06:08,960 --> 00:06:13,800
También hay una herramienta llamada Spotter,
que obtiene con Shift+Enter.
106
00:06:14,120 --> 00:06:16,000
Y le dices lo que quiere.
107
00:06:16,160 --> 00:06:20,200
Spotter lo ayudará a encontrar
clases, métodos o recursos.
108
00:06:20,360 --> 00:06:22,800
Tendrá videos
para explicar todo eso
109
00:06:22,960 --> 00:06:25,600
Pero otra vez,
Spotter está escrito en Pharo.
110
00:06:26,760 --> 00:06:29,680
El buscador tiene una buena función,
111
00:06:29,840 --> 00:06:32,040
cuando empiezas a aprender Pharo.
112
00:06:32,200 --> 00:06:34,560
Habrá un video sobre esto también.
113
00:06:34,720 --> 00:06:37,240
Puede dar ejemplos y decir:
114
00:06:37,400 --> 00:06:41,720
"Esto es lo que quiero hacer, pero no
se cómo escribirlo en Pharo ".
115
00:06:42,200 --> 00:06:45,360
Finder buscará métodos.
116
00:06:45,520 --> 00:06:47,160
Tengo un ejemplo.
117
00:06:47,320 --> 00:06:51,120
Digo: "Tengo dos cadenas, AB y C.
Me gustaría concatenarlos ".
118
00:06:51,280 --> 00:06:55,240
Y sé que el resultado
debe ser la cadena ABC.
119
00:06:55,400 --> 00:06:56,480
Suena simple
120
00:06:56,640 --> 00:06:58,320
Entonces le digo al sistema:
121
00:06:58,480 --> 00:07:02,080
"Dame el mensaje,
si existe,
122
00:07:02,240 --> 00:07:05,400
"que me dejará
concatenar estas cadenas ".
123
00:07:05,560 --> 00:07:08,000
Y eso es lo que puede ver aquí.
124
00:07:08,160 --> 00:07:11,040
Dice "," es un método implementado
en SequencableCollection.
125
00:07:11,200 --> 00:07:14,680
Esto se enviará a mi primera cadena,
126
00:07:14,840 --> 00:07:17,480
y obtendré mi tercera cadena.
127
00:07:17,640 --> 00:07:21,240
Podrá usar este buscador
en ejemplos,
128
00:07:21,400 --> 00:07:24,040
para hacerse más rápido en Pharo.
129
00:07:24,520 --> 00:07:28,520
En este Mooc hablaremos sobre
el diseño orientado a objetos, que es parte
130
00:07:28,760 --> 00:07:31,000
del ADN de Pharo.
131
00:07:31,240 --> 00:07:35,080
La gente que programa en Pharo
piensa OO de una manera elegante.
132
00:07:35,320 --> 00:07:38,280
Le mostraré los ejercicios que
estaremos presentando
133
00:07:38,520 --> 00:07:42,280
A menudo nos preguntan
cómo no se implementa
134
00:07:42,440 --> 00:07:46,240
La gente a menudo se pregunta
si esta es una pregunta interesante
135
00:07:46,400 --> 00:07:51,240
Es interesante porque
Las reglas fundamentales resultan de ello.
136
00:07:51,400 --> 00:07:53,720
Será parte del ejercicio.
137
00:07:53,880 --> 00:07:57,960
Una vez que tienes Pharo
y ve cómo no se implementa,
138
00:07:58,120 --> 00:08:00,760
empezarás a pensar
de una manera diferente.
139
00:08:00,920 --> 00:08:04,480
Esto realmente es parte de la cultura.
de las personas que usan Pharo:
140
00:08:04,720 --> 00:08:07,800
pensar un diseño
De una manera muy elegante.
141
00:08:08,040 --> 00:08:13,480
Puede instalar Pharo
como se describe en el sitio web de Pharo.
142
00:08:13,640 --> 00:08:18,000
Por supuesto, durante el MOOC
y en el sitio FUN,
143
00:08:18,160 --> 00:08:21,280
obtendrá todas las instrucciones
144
00:08:21,440 --> 00:08:23,920
para instalar Pharo en cualquier sistema.
145
00:08:24,080 --> 00:08:26,920
Pharo es muy fácil de instalar,
146
00:08:27,080 --> 00:08:30,920
como un arrastrar y soltar,
en cualquier sistema operativo.