[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

Entrevista a Sergio Garcia Canto

Traducccion automatica


S8 la nueva plastilina(titulo tentativo)
Sergio Garcia Canto tiene un amplio recorrido como docente de POO (UBA, UNlaM, UB), como así también un solida experiencia como desarrollador Smalltalk en el ámbito industrial. En los últimos años ha tenido la oportunidad de volcarse al mundo del entretenimiento, específicamente en el área de eventos y juegos. Algunas de sus experiencias se remontan a los inicios de S8, donde pudo recorrer distintas modalidades de trabajo, hasta llegar a moldear su propio entorno de desarrollo.

S8 the new plasticine.
Sergio Garcia Canto has a long way as a teacher of OOP (UBA, UNLaM, UB), as well a solid Smalltalk developer experience in industry. In recent years he had the opportunity to approach the world of entertainment, specifically in events and games area. Some of their experiences back to the beginning of S8, where he could go different ways of working, down to shape their own development environment.




Contame como es tu experiencia con S8, en que lo estas usando, tu visión, etc.
Sergio: El S8 me parece muy interesante. Tengo bastantes cosas hechas en Smalltalk y notaba que el soporte Smalltalk estaba decayendo bastante. Y por otro lado se producía también el efecto que algunos Smalltalks se volvieron muy inestables, hay demasiadas versiones, etc. Además, mi opinión es que a nivel tecnología quien está marcando el rumbo es google. Se desarrollan cosas con características similares a las que yo desarrollo en Smalltalk. En su mayoría cosas simples y bien concretas. Estas son el tipo de aspectos que yo suelo investigar que están desarrolladas en Google y que intento capitalizar en mis trabajos.


Could you tell us how is your experience with S8?
Sergio: I find S8 very interesting. I have quite a few things done in Smalltalk, on the other hand I note Smalltalk support was declining fairly. In addition, there is also the fact that some Smalltalks became very unstable, too many versions, etc.. In my opinion, today, Google is leading the technology way. Things are developed with similar characteristics to I develop in Smalltalk. For the most, simple and very concrete things. These are the kind of issues that I usually investigate in Google and I try to capitalize on my work.

Por ejemplo?
Sergio: El Goolge Maps, es algo muy grande y funciona rapidísimo. No hay flash, solo HTML5 y javascript. Yo ya me estaba orientando a usar HTML5+Javascript. Para mi forma de trabajo me simplifica mucho. Hay un montón de beneficios y yo ya venía por ese lado. Al encontrarme con S8, me pareció que estaba muy bueno porque es una forma de seguir los pasos de Google, usando toda la experiencia que ya tengo hecha en Smalltalk. Esto a mi me da la facilidad de trasladar código en concreto, de muchísimas cosas que ya tengo.
Tuve un trabajo alrededor de agosto del 2012, una reunión empresarial de Telefónica y de Movistar donde se reúnen todos los líderes de las empresas y evalúan como mejorar cosas. Hacia dónde va la empresa, etc. Y me pidieron dos cosas para ese evento: tenía que hacer un juego, que se jugaba en unos dispositivos multitouch, una trivia. Y después me pidieron hacer la asistencia de dinámicas de grupo. Cada 8 personas había una computadora. Eso generalmente se hace en papel ahora me lo habían pedido en computadora.


For example?
Sergio: The Goolge Maps, is very large and works very fast. No flash, just HTML5 and javascript. I was already guiding using HTML5 + Javascript. In many ways help me to simplify my working way. In meeting S8, I thought it was very good because it is a way to follow the footsteps of Google, using all the experience that I have done in Smalltalk. This allow me the facility to move many code already I have.
I had a work around August 2012, a business meeting (Movistar & Telefonica) whither leaders to evaluate how to improve things. And I asked for two things for that event: a game, which was played on a multitouch devices, a trivia. And second, I was asked to do the assistance of group dynamics. Each 8 people had a computer. That is usually done on paper now I have to virtualize on computers.

Que serian dinámicas de grupo?
Sergio: En estas reuniones van alrededor de 1000 personas, lo cual hace muy difícil una puesta en común, o que alguien lea lo que dicen todos para sacar las conclusiones. Entonces dan una maquina cada determinada cantidad de personas (en este caso fueron 800 personas y era una notebook cada 8 personas, con unas 100 mesas). Luego se hizo una exposición de un tema, y posteriormente se pidió que la gente escriba en tres puntos un resumen, o lo que más le llamo la atención, o lo que más le sirve de la charla para su trabajo diario de lo que se hablo hasta el momento. Dinámicas de grupo hay muchas técnicas, pero en este caso se usaba para anotar las conclusiones y después se juntaba el registro de todos. La persona que guiaba la dinámica podía decir: “bueno miremos lo que dijo la mesa tal”.
Para hacer desde cero esto tenía menos de una semana. Y tenía que salir andando bien. Entonces decidí probar el S8.
Yo ya venía haciendo cosas de este estilo. Es decir ya he hecho cosas para otros eventos y lo venía haciendo sobre javascript en el cliente y el servidor con Squeak. Mi idea con S8 era tener NodeJS como servidor y en el cliente tener S8 directamente.
He llegado a estar un día sin dormir, menos de una semana para hacer algo y además en estas cosas que es todo marketing se gasta mucha plata. No puede fallar. Mucha presión. Pero, yo se que esa es la mejor forma de probar algo. Bajo presión con poco tiempo y tener que sacar andando algo si o si, para mi es la mejor forma de probar algo.
Lo hice en S8, el juego salió bien! Tuve solo problemas con los acentos y las ‘ñ’ un tema de codificación de caracteres que no lo pude resolver como corresponde. Lo que hice fue algo muy simple, en el servidor le cambiaba esos caracteres por otros tres caracteres ASCII y enviaba las preguntas en esa forma desde el servidor al cliente.


Could you talk a bit about group dynamics?
Sergio: These meetings are about 1000 people, which makes it very difficult a pooling, or can read everyone says to draw conclusions. So there is a machine every certain number of people (in this case were 800 people and was a notebook every 8 people, with about 100 tables). Then a topic presentation is made, and then asked people to write on three points a short, or whatever caught his eye, or whatever is usefull to their daily work of what was previously discussed. There are many group dynamics techniques, but in this case it was used to record the closures. The person guiding the dynamics could say, "Well, lets look what certain table said".
To make this from scratch, I had less than a week. And the soft had to work well. So I decided to try S8.
I was already doing things in this style. I mean I've done things like taht for other events and it has been doing on javascript on the client and Squeak on the server. My idea with S8 was to have NodeJS as a server and S8 client.
I have become a day without sleep, less than a week to do something and besides all these marketing things spent a lot of money. It can not fail. A lot of pressure. But, I know this is the best way to test something. Under pressure with little time is the best way to test something.
I did it with S8, the game went well! I only had trouble with accents and 'ñ', an issue of character encoding that I could not resolve properly. What I did was something very simple, the server will change these characters for three ASCII characters and sent the questions in this way from the server to the client.


En qué consistía el juego? Eran preguntas y respuestas?
Sergio: Eran trivias. Ponían 10 preguntas con un número variable de respuestas para elegir. Y además había que tomar el tiempo que se tardaba en responder y una forma de puntuar las preguntas. Al final la persona ponía su identificación (dni), participaba y le mostraba el tiempo y el puntaje. Luego el de mayor puntaje era el ganador.
Lo que tenia hecho, que era configurable, era un archivo de texto en el servidor con las preguntas y respuestas. Ahí tenía el problema, yo lo transportaba por medio de ajax y cuando me llegaban lo hacían con los caracteres cambiados. Después decidí probar el local storage en el cliente. La verdad es que me funciono bien.


What was the game about? questions and answers?
Sergio: It was trivia. They put 10 questions with a variable number of answers to choose from, and had to take the time it took to respond and a way to grade the questions. At the end the person entered their identification (id), and the time and the score was shown. Then the highest score was the winner.
What I had it was a configured approach, it was a text file on the server with questions and answers. Here was the problem, I was carrying it through ajax and when info arrived, it had changed characters. In addition, I decided to try the local storage on the client. It worked very well.

En este caso entonces usaste los storage como almacenamiento distribuido y posteriormente captaste todo lo que estaba grabado en los clientes?
Sergio: Lo que pasa que como es algo muy crítico tengo que tomar varios recaudos. Lo que escribe la gente viaja al servidor en el mismo momento guardándose en un archivo en el servidor (no use base de datos), pero además quedaba guardado en cada cliente. Si tenía un problema podía ir a levantar todos los resultados de un cliente determinado.
En ese momento llegue a algunas conclusiones con respecto al S8. Si hubiera hecho lo mismo directamente en javascript usando una librería grafica como ExtJS (aunque use S8, use también ExtJS) yo creo que me hubiera llevado más tiempo lograr lo que hice.
Usando el S8 me arme un mecanismo que al abrir un browser (Chrome en este caso) me abre otro browser al lado. De manera que en este ultimo tenía dos paneles de texto. En uno escribía código Smalltalk y cuando lo ejecutaba le pedía que se evalue en el primer browser. Utilizaba un browser como ámbito de desarrollo y otro como espacio donde se ejecutaban las cosas. Fui creando de esa forma. Trabajaba de a poco en uno, e iba armando en el otro, iba viendo y probando en el otro. Si hubiera trabajando en javascript tendría que haber escrito ASCII y ejecutar todo de una vez y ver qué pasaba.


So in this case the the local storage was used as a distributed storage and then you caught everything that was recorded on the clients?
Sergio: The issue was very critical, I had to take several precautions. What people wrote, traveled to the server at the same time tucking into a file on the server (I did not use database), but also was kept on each client. If I had a problem, I could take up all results of a particular client.
At that time I came to some conclusions regarding the S8. If I had done the same thing directly in javascript using a graphic library like ExtJS (although use S8, also use ExtJS ) I think I would have taken longer to achieve what I did.
Using the S8, I built a mechanism that whenever open a browser (Chrome in this case) I open another browser next. So in latter I had two text panels. When I wrote Smalltalk code, it is evaluated on first browser. I used a browser as an area of development and another one as space where things ran. I was creating and working in that way, working a little in one, and started to take shape on the other, testing on the other. If I had working on javascript I should have written ASCII and run all at once and see what happened.

...ahí tuvo el tufillo de Smalltalk de siempre.
Sergio: El S8 que use todavía no tenia los tools como el Class Hierachy Browser (NE. En el momento de esta experiencia aun no existía WI8 + UI8). Era un workspace y nada más. Así y todo trabaje más rápido. Trabaje como se trabaja en Smalltalk, armando en el momento con “las manos” y corrigiendo en el momento. De pronto cuando tenía un problema con algún método lo que hacía era poner el nombre de la clase #methodDictionary #at: el nombre y me aparecía el source. En ese sentido fue muy a pulmón pero creo que hice mucho más rápido que si hubiera hecho directamente en javascript. Extrañe mucho las herramientas. El debugger es vital (NE. En el momento de esta experiencia aun no existía U8 Debugger). Terminaba debuggeando con la consola del Chrome.


...there was the usual Smalltalk whiff.
Sergio: The S8 that I used, did not have tools like Hierachy Class Browser (Note. At the time of this experience was not yet WI8 + UI8). It was a workspace and nothing else. Even so I could work faster. Working like you work in Smalltalk, building in-place with "hands" and editing at the time. Suddenly when I had a problem with any method I wrote the name of class #methodDictionary #at: the method name and the source appeared to me. In that sense, it was done "through sheer grit" (algo asi como "a puro garra corazon y huevo". Ver traduccion) but I think I made much faster than if I had done directly in javascript. I missed a lot of tools. The debugger is vital (Note. At the time of this experience was not yet U8 Debugger)


Muy impresionante. Y con la trivia como se resolvio?
Sergio: Las trivias las instale de manera local. Eso fue un error. Fue una persona maquina por maquina. Instalaba el Squeak como servidor e instalaba el Chrome, y este llamaba a la dirección de loopback.
Después me arrepentí. Si instalaba el servidor en un solo lugar y centralizaba los resultados y me era más fácil. Eso hubiera sido mucho mejor. Pero hubo muy poco tiempo e hice lo mejor que pude, me falto coordinar con la gente de soporte.


Very impressive. How trivia was resolved?
Sergio: The trivia was installed locally. That was a mistake. Squeak was installed as server on each computer, and Chrome as a client calling the loopback address.
If you installed the server in a single place and centralized the results and it was easier. That would have been much better. But there was no time and did the best I could, I could not coordinate with people support .


Con tan poco tiempo lograste un resultado sorprendente!!
Sergio: Me gusto el S8. Le encontré algunos errores no te voy a decir que no. Por ejemplo hay uno que esta buenísimo (risas), el nil, el cero, el false, los tres son lo mismo… entonces a veces pones ifNil y te dice false, pero es nil. Eso fue un dolor de cabeza. Hasta que me di cuenta, y encontré como arreglarlo.(aquí sería interesante hacer alguna aclaración de cómo manejarse y cuál es el estado actual de esto. Sería bueno hablar con Ale a ver cómo podemos complementar mas info al estilo N.E)(Esta pregunta no va)


so little time and you acomplish a surprising result!
Sergio: I like the S8. We found a few errors. For example there is one that is great (laughs), the nil, zero, and false, the three are the same ... then sometimes put ifNil and says false, but is nil. That was a headache. Until I realized, and I found how to fix it.
(Esta pregunta no va)

Y la asistencia a dinámica de grupo, como sucedió?
Sergio: en un momento me decían: primera conclusión. Entonces yo desde el servidor mandaba un mensaje al diciendo algo así como, “habilitar primera dinámica”. Y automáticamente en la pantalla de los clientes les aparecía una hoja de carpeta. Ahí la gente iba respondiendo. En el momento que terminaba, decía “enviar repuesta” y eso se enviaba al servidor. Luego me decían ”pasemos a la segunda dinámica” y yo habilitaba la segunda dinámica y así sucesivamente.
Eso funciono bien. Me paso algo curioso -hay que tener en cuenta toda la presión que significo todo esto, no?- en un momento me dicen: “no graba!! Mira graba mal! No me deja escribir!!”. No fue cualquiera el que me lo dijo. Fue la directora de Telefónica responsable de todo el evento. Fui a la maquina que me marcaron como “problemática” y con F12 abrí la consola de Chrome, abriendo el debugger, empecé a abrir los códigos de los métodos smalltalk y comencé a poner “console.log” para ver donde estaba el problema. Y ahí en el mismo cliente, donde mostro el error, encontré el problema y lo arreglé.
Hasta aquí en general a mi me pareció muy bueno. Pero al mismo tiempo me desilusionó un poco el hecho de no tener las herramientas de desarrollo (N.E en el momento de esta experiencia no existían una versión tan sofisticada de WI8 + UI8 y el U8 Debugger). Además uno tiene todas las limitaciones de sandbox, el esquema de seguridad. Aunque lo del local storage a mi me dejo tranquilo, porque podrías simular un archivo, etc. Por otro lado funciono correctamente en los casos que se colgó alguna maquina.

Luego en otra ocasión me llaman para otra promoción de otro producto. En esta ocasión requería interacción con una tablet. Para esto implemente un tragamonedas. Ahí es donde necesite la parte de animación.
En ese momento en U8 ya estaba el ambiente con el CHB (Class Hierarchy Browser) y el Workspace. Entonces logre mezclar eso que estaba en U8 (esas herramientas) en mi S8. De manera de tener algo “standalone” sin entrar a algún lado. Le agregue a la imagen de S8 las herramientas de desarrollo. Pero con la salvedad que mantuve la filosofía que comente antes. Por un lado tengo un browser con las herramientas de desarrollo y otro browser donde se plasma lo que se desarrolla. Le cree a este ambiente un CHB y un Workspace remoto. Cuando se comienza el desarrollo al ingresar la url, se abre un Chrome en blanco y al lado otro Chrome con la barra de herramientas. Para comenzar mi desarrollo abrí un CHB remoto y empecé a agregar cosas.
Lo primero que hice fue agregar una imagen que se moviera. Para esto use lo que en DHTML5 se llama ‘Canvas’. Sucesivamente fui agregando complejidad en el movimiento plasmando velocidad y aceleración, hasta lograr mecanismos que me permitan hacer cosas como mover una imagen con tal velocidad, después lograr mover con una aceleración especifica hasta llegar a una velocidad determinada. Y así iba enriqueciendo la animación hasta ir acercándolo a lo que necesitaba en el tragamonedas, el “jackspot”. Este proceso si, fue bien al estilo Smalltalk.(todo esto en color rojo oscuro fue modidifcado, la pregunta y la respuesta que va es la que sigue a continuacion)


Y la asistencia a dinámica de grupo, como sucedió?
Sergio: en un momento me decían: primera conclusión. Entonces yo desde el servidor mandaba un mensaje al diciendo algo así como, “habilitar primera dinámica”. Y automáticamente en la pantalla de los clientes les aparecía una hoja de carpeta. Ahí la gente iba respondiendo. En el momento que terminaba, decía “enviar repuesta” y eso se enviaba al servidor. Luego me decían ”pasemos a la segunda dinámica” y yo habilitaba la segunda dinámica y así sucesivamente.
Eso funciono bien. Me paso algo curioso -hay que tener en cuenta toda la presión que significo todo esto, no?- en un momento me reportan que la trivia no grababa las respuestas. Fui a la maquina que me marcaron como “problemática” y con la consola, empecé a abrir los códigos de los métodos smalltalk y comencé a poner “console.log” para ver donde estaba el problema. Y ahí en el mismo cliente, donde mostro el error, encontré el problema y lo arreglé.
Hasta aquí en general a mi me pareció muy bueno. Pero al mismo tiempo me desilusionó un poco el hecho de no tener las herramientas de desarrollo. Además uno tiene todas las limitaciones de sandbox, el esquema de seguridad. Aunque lo del local storage a mi me dejo tranquilo, porque podrías simular un archivo, etc.

Luego en otra ocasión me llaman para otra promoción de otro producto. En esta ocasión requería interacción con una tablet. Para esto implemente un tragamonedas. Ahí es donde necesite la parte de animación.
En ese momento en U8 ya estaba el ambiente con el CHB (Class Hierarchy Browser) y el Workspace. Entonces logre mezclar eso que estaba en U8 (esas herramientas) en mi S8. De manera de tener algo “standalone” sin entrar a algún lado. Le agregue a la imagen de S8 las herramientas de desarrollo. Pero con la salvedad que mantuve la filosofía que comente antes. Por un lado tengo un browser con las herramientas de desarrollo y otro browser donde se plasma lo que se desarrolla. Le cree a este ambiente un CHB y un Workspace remoto. Cuando se comienza el desarrollo al ingresar la url, se abre un Chrome en blanco y al lado otro Chrome con la barra de herramientas. Para comenzar mi desarrollo abrí un CHB remoto y empecé a agregar cosas.
Lo primero que hice fue agregar una imagen que se moviera. Para esto use lo que en DHTML5 se llama ‘Canvas’. Sucesivamente fui agregando complejidad en el movimiento plasmando velocidad y aceleración, hasta lograr mecanismos que me permitan hacer cosas como mover una imagen con tal velocidad, después lograr mover con una aceleración especifica hasta llegar a una velocidad determinada. Y así iba enriqueciendo la animación hasta ir acercándolo a lo que necesitaba en el tragamonedas, el “jackspot”.


What about group dynamics?
Sergio: At certain moment someone said "first conclusion". So from server I sent a message, something like, "first dynamic enabled". And automatically on the client screen appeared a blank sheet where people can respond. Eventually response was sent to the server. So again someone said "let's turn to the second dynamic" and I empowered the second dynamic and so on.
That worked well. I had only one stumble -we must take into account all pressure this experience mean- in a moment someone reports me that trivia did not record the answers. I went to the machine that was marked as "problematic" and through the console started opening codes smalltalk methods and started to put "console.log" to see where was the problem. And there on the same client, which showed the error, I found the problem and fixed it.
So far overall I thought it was very good. But at the same time I was a little disappointed not having the development tools. Furthermore we have all the limitations of sandbox, the security scheme. Although with local storage you could simulate a file, etc.
Then another time I called for another promotion of a product. This time required interaction with a tablet. For this I implemented a slot machine. This is where I had animation needs.
At that moment U8 already had CHB (Class Hierarchy Browser) and Workspace. So I mix U8 tools in my S8, to have some "standalone" development kit. In addition I kept the philosophy I comment before. On one hand I have a browser with development tools and other blank browser to capture and evaluate what is developed. In this enviroment I built a remote CHB and a remote Workspace. When development begins by entering the url, it opens a blank Chrome and Chrome side with another toolbar. To begin my development I open a remote CHB and just adding stuff.
The first thing I did was add an image that moved. For this I used what is called, in DHTML5, the 'Canvas'. Later I added complexity in shaping movement speed and acceleration, to achieve mechanisms that allow me to do things like move an image with such speed, and then moving an object at a specified acceleration up to a certain speed. And that would enrich the animation to go it closer to what I needed in the slot machine animation, the "jackspot".


este proceso si fue bien al estilo Smalltalk.
Sergio: Como agarrar una plastilina e irlo moldeando. Como aprende un nene cuando es chiquito. Lo pones y ves que pasa. Si se cae entonces hay que ponerle algo, etc.

This process was very Smalltalk style.
Sergio: It is like modeling plasticine. As a child learning. You play something and see what happens. If it falls then you have to modify or put something else, etc...

es importante esto último. La idea del S8 es que siga manteniendo el espíritu Smalltalkero de siempre.
Sergio: Cuando comencé a usar el canvas, fui a internet y busque un ejemplo. Algo abordable en javascript y simple. Una vez probado (asegurándome que funciona correctamente) lo meto dentro de smalltalk. Y al meterlo en Smalltalk, la próxima vez que lo tengo que usar no tengo que escribir todo. Escribo tres palabras y ya está funcionando.
Cuando tenía que hacer algo nuevo, por ejemplo que un elemento div me aparezca siempre centrado, esto lo investigue una vez, arme un mensaje que decía “colocar el frame centrado” y me olvide!
Supongamos que para hacer eso en javascript tengamos que escribir 10 líneas. Por mi experiencia yo se que de esas 10 líneas yo podría automatizar 6, 7 no más. Hay 3 que las tengo que modificar si o si cada vez que lo uso. En cambio en Smalltalk, no. Es muy simple volver a usar las cosas.
Antes del evento de Telefónica, tuve 4 mas. Variante más o menos la complejidad y la presión siempre es la misma. Las veces anteriores yo no tenía S8 y trabaje todo con javascript. Fui acumulando código en javascript de esas experiencias...


...latter is important. S8 idea is to continue to keep the Smalltalk spirit.
Sergio: When I started using the canvas, I went to the Internet and look for an example. Something affordable in javascript and simple. After testing (making sure it works properly) I put in smalltalk. Once these chunk of javascript inside Smalltalk, the next time I have to use it, I have not to write everything. I need to write three words and that's working.
When I had to do something new, for example a div element always appears centered, this was investigated once, then I implemented a message that said "place the frame centered" and forget about it!
Suppose to do that in javascript you have to write 10 lines. From my experience I know that these 10 lines I could automate six, seven, no more. There are three I have to change every time I use it. It is not the case in Smalltalk. It's very simple to reuse things.
Before Telefonica event, I had four previous events. Complexity and pressure is always the same. The previous times there weren't S8 I had to work all in javascript. I was accumulating javascript code from those experiences...


Podríamos decir que previo a S8 ya tenías experticia en javascript.
Sergio: Justamente por eso lo comento. Yo comparo lo que me costaba antes encontrar donde estaba el pedazo de código que podía reusar (porque yo sabía que estaba hecho esa porción de código) pero encontrarlo era algo muy costoso. Y además, lo copiaba y no me funcionaba… tenía que copiarlo todo y sacarle líneas. En cambio con S8 trabajando a pulmón, no me paso.
Esta comparación que hago me pareciera que no es algo subjetivo…


We could say prior to S8 you already had javascript expertise.
Sergio: That's exactly why I talking about this. I am comparing the cost to find a chunk of used code I could reuse (because I knew that chunck of code was done ) but finding it was very expensive. And besides, I copied and did not work... had to copy everything and delete a lot of lines. In contrast with S8 never happenend.
This comparison seems to me not a subjective issue...


El uso que le has dado a S8 es a muy bajo nivel. Inclusive sin usar casi nada, solo con una consola javascript y editores de texto. Seguramente cuando la herramienta alcance cierta madurez (N.E. En el momento de esta entrevista WI8 + UI8, ni U8 Debugger no tenían el nivel de desarrollo que tienen hoy), la gente con menos experticia lo podrá vivenciar de manera más accesible.
Sergio: …en el comienzo de los desarrollos uso indistintamente javascript y smalltalk (mediante la sintaxis de {}) pero a medida que se sigue desarrollando se puede ir acomodando el uso de los trozos de código de bajo nivel (javascript), armando el código smalltalk. A mí el uso de S8 me ayudo a organizar el código, me ayudo en la abstracción. Algo que necesitaba. Necesitaba abstraer para hacer más rápido.
Otro aspecto para destacar es que reacomodar clases en javascript no es trivial. En Smalltalk es más fácil detectar que falta alguna clase en el medio. Es decir, detectar que uno tiene comportamiento desparramado por varias clases y que estos retazos de comportamiento podrían ir en una sola clase, me pareciera que es más notorio en Smalltalk. Poder ver esto en código javascript y poder articularlo, requiere que uno tenga que tener una capacidad de abstracción muy grande, casi como un jugador de ajedrez. Tener todo en la cabeza y ver el panorama por adelantado.


The use you've given S8 is mostly at very low level. Even without using almost nothing but a javascript console and text editors. Your success may also be due in part to your long trip as a javascript programmer. Surely when the tool reaches a certain maturity (NE At the time of this interview WI8 + ui8 or U8 Debugger did not have the level of development they have today), people with less expertise may be experiencing it more accessible.
Sergio: ...at the beginning of development I use either javascript or smalltalk (using the syntax of {}) as development move forward, the use of pieces of low-level code (javascript) can be reorganized. The use of S8 helped me organizing code, helped me into abstraction. Something I needed. I needed build abstractions to develop quickly.
Another aspect to note is that rearrange classes in javascript is not trivial task. In Smalltalk it is easier to detect a missing class in between. That is, detecting scattered behavior on several clases and these bits of behavior could go in one class, I seem to be more noticeable in Smalltalk. To see this in javascript code and reimplement it, requires that developer has to have a very large abstraction capacity , almost like a chess player. Having everything in your head and see the picture in advance.