12

¿Cómo puedo escribir una GIU en Squeak? Soy un novato de Smalltalk y estoy usando VisualWorks de Cincom por el momento, pero me gustaría darle una oportunidad a Squeak. Veo que Squeak tiene Morphic para gráficos, pero por mi vida parece que no puedo encontrar un paquete para escribir una GUI basada en MVC.Escribir una GUI en chirrido

Respuesta

7

Squeak incluye todas las clases de MVC clásicas, pero también puedes crear GUIs usando Morphic, de hecho mucho más interesantes de las que puedes (fácilmente) con MVC, ¡eso es después de todo por qué se creó Squeak!

Tenga en cuenta que puede obtener una mejor respuesta publicando en algún lugar más específico - no parece haber muchas personas de Smalltalk en SO. Pruebe http://news.gmane.org/gmane.comp.lang.smalltalk.squeak.beginners para comenzar.

+0

Gracias Neil, es de esperar más Smalltalkers gravitará en SO - no es un mal sitio ... – KHWP

4

GUIs y Squeak son ante todo muy confusos. Es bastante fácil crear una GUI usando Squeak. Básicamente, solo dibuja algunos rectángulos, copia algunos cuadros de texto, los halos de mucho morph permiten la clonación y luego puedes soltar estos morphs en tu nueva IU. Es más difícil agregar SU comportamiento a la interfaz de usuario que acaba de crear, ya que de alguna manera tiene que encontrar su widget en el navegador de códigos.

Esta es la parte en la que me gustaría señalar que considero que la implementación de Morphic en Squeak es muy molesta. Entonces, tal vez me he equivocado con todo esto, pero así es como lo veo. Morphic fue DISEÑADO para permitirle construir gráficamente su propia IU con solo unos pocos clics. Y fue diseñado así en el entorno de programación Self, donde no hay espacio entre los objetos del navegador. Registrar tu clon en el árbol de código ordinario es una trivialidad en ti mismo. (Por supuesto, no es trivial exportar su programa, pero de nuevo, en Smalltalk eso nunca es fácil de todos modos).

Por lo tanto, el código mórfico del mundo real que encuentro generalmente trata morfos como cualquier otro objeto de infraestructura de UI: crear la interfaz de usuario desde el código, ignorando el edificio gráfico. No he visto una forma conveniente de "congelar" una interfaz de usuario mórfica en un archivo como lo hace Interface Builder en Mac OS X. O, de manera más general, si haces clic en una interfaz de usuario mórfica, es difícil acceder a ella desde el código. Navegador.

La pista de Neil para dejar a un lado todo lo de Morphic y recurrir a MVC podría ser comprensible. Sin embargo, las pocas veces que tuve que lidiar con interfaces de usuario en Squeak, examiné el código de generación de IU alrededor de la imagen e intenté imitar su estilo.

3

Depende de lo que quiere hacer, de quién es su audiencia. El MVC original es rápido pero en realidad ya no se mantiene, y parece muy antiguo. El Morphic original en Self podría haber sido agradable, pero en Squeak se ha convertido en un desastre de espagueti. Echar un vistazo a algunas clases en la parte superior de la jerarquía de herencia Morph 's ...

Hay un poco de esfuerzo en Pharo que le dan un aspecto más agradable a los widgets mórficos, por lo que no asusta a los recién llegados de distancia que la segunda abre una imagen. También hay enlaces GTK y Objective-C prometedores en el trabajo que me encantaría ver ganar más uso. Finalmente, vemos cada vez más aplicaciones web ... Seaside puede ser una buena alternativa a las UI nativas, ya que se destaca en aplicaciones web con flujos complejos.

1

Tenemos una aplicación para Windows, lista para usar, escrita en Squeak. La mayor parte se hace con Morphic. Morphic proporciona mucho valor para la experiencia principal del usuario. Sin embargo, la configuración del software era 'extraña' cuando usaba cuadros de diálogo, selección de archivos, etc.

Estuve feliz de descubrir WxSqueak recientemente, lo que le da una experiencia nativa de Windows. Lo estoy usando junto con Morphic.