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 -~----------~----~----~----~------~----~------~--~---
