No te parece que estaria copado que nuestros Smalltalks no tuvieran
"undefined behavior?  Bueno, como logramos eso cuando en general no
nos importan los standards?

2009/7/25 Esteban A. Maringolo <[email protected]>:
>
> Andrés:
>
> Concuerdo mucho con lo que decis, pero no entiendo a que apunta tu comentario.
>
>
> Saludos.
>
> Esteban A. Maringolo
>
>
>
> El 25 de julio de 2009 01:38, Andres Valloud<[email protected]> 
> escribió:
>>
>> Es preferible hacer las cosas, totalmente.  A eso le agregaria que no
>> todo lo que brilla tiene que ser Smalltalk :).  Por poner ejemplos
>> propios... cuando aprendi Smalltalk deje de programar todos los dias
>> en Pascal/assembler pensando que lo que habia hecho era totalmente
>> obsoleto.  Lo de la obsolescencia probablemente siga siendo cierto.
>> Pero, siendo que hoy trabajo todos los dias en C, tengo que decir que
>> C no me parece tan horrible.
>>
>> Bueno, ahora, un comentario al margen.  Segun lo que voy aprendiendo
>> del mundo procedural, hay cosas que si hacen que C sea horrible.  Es
>> super importante entender como la mentalidad estandar de programar
>> Smalltalk se lleva a las patadas con la realidad de lo que es
>> programar para la mayoria.  Por ejemplo, esta el tema de los
>> standards.  A nosotros los Smalltalkers en general (y segun mi
>> experiencia), los standards no nos importan.  Una consecuencia de esto
>> es que, en la imagen, lo normal es *no ver* objetos que dependen del
>> sistema operativo segun sus standards correspondientes.  De hecho,
>> demasiadas veces se considera razonable tomar la decision conciente de
>> *ignorar* los standards y APIs del sistema operativo o libreria que
>> corresponda.
>>
>> Que importa de esto?  Que entonces es *imposible* predecir la conducta
>> de nuestro programa.  Lo peor es que, entonces, nuestros programas
>> *parecen* funcionar.  Me cuesta encontrar una expresion que comunique
>> la violencia intelectual que implica decir que algo *parece*
>> funcionar.  No es una especie de "me rindo, no le encuentro mas bugs".
>>  Es mucho peor, es decir que el hecho de que un programa funcione es
>> simplemente un *accidente*.
>>
>> Los ejemplos concretos son brutales.  Por ejemplo, supongamos que
>> estamos escribiendo una maquina virtual para Linux.  Pues bien, algo
>> que hay que escribir son los signal handlers.  Los signal handlers
>> tienen su standard, y el standard dice que los signal handlers se
>> pueden escribir usando funciones de una lista limitada.  Pueden ver la
>> lista si van a http://www.unix.org/single_unix_specification/ (no
>> cuesta registrarse) y se fijan casi al final del articulo "signal
>> concepts".  Al final de la lista, el standard dice:
>>
>> "All functions not in the above table are considered to be unsafe with
>> respect to signals. In the presence of signals, all functions defined
>> by this volume of IEEE Std 1003.1-2001 shall behave as defined when
>> called from or interrupted by a signal-catching function, with a
>> single exception: when a signal interrupts an unsafe function and the
>> signal-catching function calls an unsafe function, the behavior is
>> undefined."
>>
>> Una funcion que no esta en la lista es printf().  Por lo tanto, no es
>> seguro usar printf() en signal handlers para debuggear cosas.  Ahora,
>> supongamos que uno "es macho y se la banca" (digamos) y usa printf()
>> lo mismo.  Para debuggear, entonces, el programa puede *parecer*
>> funcionar.  Sin embargo, el standard dice:
>>
>> "All functions not in the above table are considered to be unsafe with
>> respect to signals [...] when a signal interrupts an unsafe function
>> and the signal-catching function calls an unsafe function, the
>> behavior is undefined."
>>
>> El tema es esa palabrita, "undefined".  Si nuestro programa llega al
>> punto de tener *undefined behavior*, entonces, desde el momento que
>> (en nuestro ejemplo) se ejecuta printf() en un signal handler, no es
>> posible hacer ninguna suposicion acerca de nada.  Si nuestro programa
>> parece funcionar, pues bien gracias, pero nada dice que en alguna otra
>> oportunidad la conducta no vaya a ser "formatear todos los discos,
>> seguido de un colgazo".
>>
>> En terminos practicos, cada vez que un standard de esta naturaleza
>> dice "undefined behavior", el 99.9% de las veces se puede reemplazar
>> "undefined behavior" por "segmentation fault".  Y ese, exactamente, es
>> el problema de ignorar los standards.  Hay standards (o, en su
>> defecto, documentacion) para un monton de cosas.  Sockets, archivos,
>> memoria, graficos, dispositivos externos, librerias, el sistema
>> operativo, etc.  O sea, ignorar los standards hacen que basicamente
>> cualquier cosa interesante que hagamos tiene, en efecto, "undefined
>> behavior".
>>
>> Cuando programamos en Smalltalk, lo mas normal es que no nos importen
>> ninguno de estos (voluminosos!!!) standards o tomos de documentacion.
>> Es tan facil crear cosas nuevas que a veces caemos en el vandalismo
>> inverso del que habla Alan Kay... hacer cosas porque es posible
>> hacerlas.  Para cosas como los objetos del dominio, o para los objetos
>> del negocio, o para estructurar los requerimientos del cliente, esa
>> actitud puede ser increiblemente productiva y Smalltalk esta mandado a
>> hacer para ayudar en esta clase de trabajo.  Pero para todo lo que
>> tenga documentacion, como www.msdn.com (por mas mala que sea), o el
>> Single Unix Specification, la actitud de reinventar las cosas porque
>> en Smalltalk seguro sale mejor *no sirve*.  Simplemente, es una
>> actitud incompatible con la realidad.
>>
>> Desde que programo maquinas virtuales, esto es cada vez mas obvio para
>> mi.  Pero, hace 3 años, si alguien me hubiera preguntado acerca del
>> Single Unix Specification, habria contestado "lo que?".  Eso es lo
>> triste.  Supongo que hay Smalltalkers mucho mas iluminados que yo.
>> Sin embargo, despues de leer standards y programar cosas segun dice el
>> standard, es increiblemente dificil convencer a Smalltalkers
>> "promedio" de que no esta bien pensar cosas que, en efecto, son
>> equivalentes a "yo soy mas genio en 3 segundos que miles de personas
>> trabajando durante años".
>>
>> Lo que tambien es triste es ver que no tenemos standards en Smalltalk.
>>  Si agarramos a un programador promedio, lo mas probable es que sepa
>> que quieren decir los terminos "standard" y "documentacion".  Que es
>> lo mejor que podemos decirle a alguien que recien empieza?  Esta el
>> ANSI standard de 1998, cubre una parte de la libreria base, pero del
>> resto (sockets, archivos, memoria, graficos, dispositivos externos,
>> librerias, el sistema operativo, etc), depende de lo que haga cada
>> Smalltalk.  Por supuesto, esto es absolutamente ridiculo porque
>> supuestamente todos los Smalltalks estan regidos por los mismos
>> standards!  Es decir, si Dolphin, Squeak, VA, VisualWorks y tantos
>> otros funcionan en Windows, todos deberian tener implementaciones de
>> sockets basicamente equivalentes que reflejen la documentacion de
>> MSDN.  Y lo mismo con archivos, memoria, graficos, dispositivos
>> externos, librerias, y el sistema operativo.  En la practica, lo mas
>> probable es que todos ellos tengan "undefined behavior".
>>
>> Bueno... podria seguir, pero espero que con esto que escribi haya
>> podido transmitir con un minimo de claridad lo que hoy hace que se me
>> caiga el pelo.
>>
>>
>> 2009/7/24 Germán Arduino <[email protected]>:
>>>
>>> A veces el tiempo no da y no queda otra que, para no perder la
>>> oportunidad de hacer lo que uno necesita o desea hacer, hay que
>>> recurrir a otros productos como el que señalás. Pero, en lo
>>> particular, me gustaría mucho tener todos mis sitios y todo lo que
>>> hago en Smalltalk, ya que se supone que de eso vivo y ahí está mi know
>>> how.
>>>
>>> Ahora estoy en proceso de ver si armo todo el aplicativo de
>>> venta/renovaciones/etc de webhosting en Smalltalk, veremos si me da el
>>> tiempo y las posibilidades.
>>>
>>> Saludos.
>>>
>>> El 24 de julio de 2009 20:46, Andres Valloud<[email protected]> 
>>> escribió:
>>>>
>>>> Y, no se si estoy tan de acuerdo con que las paginas de Smalltalk
>>>> tienen que estar hechas en Smalltalk... por ejemplo, a mi no me parece
>>>> mal que www.visualworksforums.org este hecha en otra cosa.
>>>>
>>>> 2009/7/24 Mariano Martinez Peck <[email protected]>:
>>>>>
>>>>>
>>>>> 2009/7/24 Pablo Gancharov <[email protected]>
>>>>>>
>>>>>> Llego a vos a través de un post que vi en taringa.
>>>>>>
>>>>>> Me presento:
>>>>>> Soy Pablo Gancharov y soy estudiante de ingeniería en sistemas de
>>>>>> información de la UTN, regional Concepción del Uruguay.
>>>>>>
>>>>>> El motivo de este mensaje es que me gusta mucho el paradigma de Objetos  
>>>>>> y
>>>>>> estoy un poco desilusionado por la poca aceptacion que tiene Smalltalk 
>>>>>> entre
>>>>>> los programadores, tal vez porque es muy revolucionario para los
>>>>>> programadores y en realidad intenta que los no-programadores lo utilicen.
>>>>>>
>>>>>> El punto es que No me gusta que las cosas queden como están y me puse
>>>>>> manos a la obra con un proyecto, crear una pagina web donde la comunidad 
>>>>>> de
>>>>>> Smalltalk de habla hispana pueda compartir sus experiencias y sus 
>>>>>> códigos,
>>>>>
>>>>> Cualquier intento de fomentar el uso de Smalltalk es más que bienvenido 
>>>>> para
>>>>> mí.
>>>>>
>>>>>>
>>>>>> No soy un diseñador de Paginas por eso tome un CMS conocido: Drupal y lo
>>>>>> armé, como me pareció que debe ser.
>>>>>>
>>>>>>
>>>>>> Estoy trabajando solo en este momento, por eso estoy tratando de
>>>>>> conectarme con gente que le entusiasme mi proyecto.
>>>>>>
>>>>>> http://www.unapalabra.eshost.com.ar/
>>>>>>
>>>>>>
>>>>>> Bueno desde ya muchas gracias y espero recibir tus consejos acerca de mi
>>>>>> proyecto.
>>>>>
>>>>> El primer consejo que te puedo dar es que ni bien estes familiarizado con
>>>>> herramientas como Seaside, Pier y Magritte migres tu sitio de drupal a 
>>>>> Pier.
>>>>> O sea, suponete alguien que está entrando en el mundo smalltalk y entra a 
>>>>> la
>>>>> página, se va a desilucionar si no está escrita en Smalltalk. Vah, no se,
>>>>> eso es lo que me pasaría a mi ajaja.
>>>>>
>>>>> Te dejo los links por si te interesa y no los conoces:
>>>>>
>>>>> - http://www.seaside.st/
>>>>> - http://www.piercms.com/
>>>>>
>>>>> Saludos y felicitaciones por la idea!
>>>>>
>>>>> Mariano
>>>>>
>>>>>>
>>>>>> (Obviamente que están invitados a participar, tal ves podamos unir
>>>>>> fuerzas)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> >
>>>>>
>>>>
>>>> >
>>>>
>>>
>>>
>>>
>>> --
>>> Germán S. Arduino
>>> http://www.arsol.biz
>>> http://www.arsol.net
>>>
>>> >
>>>
>>
>> >
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~

To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

http://www.clubSmalltalk.org
-~----------~----~----~----~------~----~------~--~---

Responder a