2009-12-18 10 views
9

Estoy empezando a aprender Smalltalk. Ahora estoy usando Squeak, pero hay alguna forma de desarrollar en Smalltalk sin usar máquinas virtuales, pero algo así como un IDE?¿Hay alguna forma de desarrollar en Smalltalk sin usar una VM?

+3

Sugeriría acostumbrarse al Squeak IDE. No es tan malo una vez que te acostumbras; de hecho, escuché que en realidad es muy productivo en comparación con el ciclo normal de escritura/compilación/ejecución. (Solo he jugado con eso, así que no puedo responderlo, pero el consenso general es que Smalltalk> IDEs tradicionales.) –

Respuesta

24

Una imagen en Smalltalk es análoga a la máquina VMware: simplemente es un estado congelado de una aplicación Smalltalk en ejecución. Todos Smalltalks usan imágenes, y desarrollar con una es la forma preferida de hacer desarrollo en todos los Smalltalks. Del mismo modo, todos los Smalltalks compilan para codificar y ejecutar en máquinas virtuales, al igual que Java, .NET, Python y otros. Pero eso no tiene ninguna relación con el programa que utilizas para desarrollar un programa Smalltalk, y qué tan original se siente la experiencia.

Como han mencionado otros, Squeak en realidad viene con un extremadamente bueno IDE —, es decir, todos Squeak. Sin embargo, no creo que sea eso lo que realmente estás preguntando. Lo mejor que puedo entender es que su pregunta sea una o ambas:

  1. ¿Puedo desarrollar Smalltalk en herramientas con las que estoy familiarizado, en métodos que conozco? Por ejemplo, archivo por archivo, en un editor de texto normal?
  2. ¿Puedo hacer aplicaciones de apariencia normal usando Smalltalk?

¿Puedo desarrollar Smalltalk en herramientas con las que estoy familiarizado?

Respondiendo a la primera: para casi todos los Smalltalks, no. El formato de archivo de Smalltalk fue diseñado para ser manipulado dentro de un Smalltalk IDE, en lugar de directamente en un editor de texto. Es por eso que Squeak, Pharo, VisualWorks, VisualAge y todos los demás Smalltalk que he usado evitan que edites el código fuente directamente y, en cambio, proporcionan sus propios IDEs personalizados. Debido a que estas herramientas son multiplataforma, sus IDE generalmente no son nativas, sino que representan una sensación simulada multiplataforma. Mientras que puede editar la fuente directamente para todos estos sistemas (por ejemplo, puede editar el archivo foo.sources para una imagen Squeak, luego use el Navegador Cambiar para cargar sus ediciones), nadie realmente hace eso.

Existen dos rutas que pueden hacerlo sentir más feliz al respecto. En primer lugar, como han señalado otros, GNU Smalltalk rompe el molde y, de hecho, tiene un formato de archivo amigable para el editor. GNU Smalltalk no funcionó bien en Windows la última vez que lo verifiqué, y tiene licencia GPL, lo que puede ser un problema para usted. Pero le permite usar el editor de su elección. Tanto vim como Emacs tienen resaltado de sintaxis para GNU Smalltalk, y aunque no conozco un paquete para NetBeans, Emacs o uno de los otros IDE principales, no sería muy difícil escribir uno.

La segunda ruta que podría tomar, si su única preocupación es que Squeak se ve "feo", sería usar Dolphin Smalltalk. Dolphin Smalltalk es una versión nativa de Windows de Smalltalk. Si bien su futuro es confuso en este momento, es posible que desee echarle un vistazo, ya que probablemente se sienta mucho más a gusto en su entorno nativo, si Squeak le molesta.

¿Puedo hacer aplicaciones de aspecto nativo?

Si realmente quieres widgets nativos, tienes algunas opciones por el momento. Dolphin proporciona widgets nativos, pero, como mencioné anteriormente, su futuro es actualmente incierto. Squeak, VisualWorks y GNU Smalltalk proporcionan buenos sistemas FFI, y por lo tanto, podría hacer UI nativas, pero hacerlo sería comparativamente arduo y complicado. Entonces, básicamente: si esto es muy importante para usted, entonces, en este momento, usar Smalltalk puede no ser su mejor opción.

Tenga en cuenta que hay muchas aplicaciones para las que tener widgets nativos no es importante. Los juegos y quioscos ciertamente no necesitan usar widgets estándar, pero si miras a tu alrededor, muy pocas aplicaciones tradicionales se molestan en usarlos. Los propios productos de Microsoft son conocidos por tener una apariencia personalizada, Chrome se ve extrañamente fuera de lugar en todas las plataformas en las que se ejecuta, iTunes es increíblemente popular a pesar de parecer realmente extraño en los sistemas Windows, y así sucesivamente. La gran cantidad de interfaces en los sitios web también han aclimatado a las personas a interfaces no estándar. Entonces, existe la posibilidad real de que simplemente no te importe, y como la interfaz de Squeak es altamente temible, hacer que se vea "bonita" cuando estés cerca del envío no será difícil.

(GNU Smalltalk hace tienen muy buenos enlaces de GTK +, que pueden ser aceptables para usted, dependiendo de lo que estamos tratando de hacer. Hay grandes aplicaciones, tales como GIMP y Pidgin, escrito contra GTK + que se ven Bien en Windows. Sin embargo, te perdonaría por no considerar esa opción viable.)

Mi recomendación

Para ser honesto, yo le animo fuertemente para encontrar uno de los Smalltalks con un IDE te gusta, y lo utilizan. Serás mucho más productivo que tratar de usar un editor de texto, ya sea uno eclipsado como Eclipse, o uno malo como Scite. Te perderás una gran cantidad de la grandeza de Smalltalk si vas por otras rutas: sin REPL, depuración inferior, navegación de código inferior, y así sucesivamente.

Si insiste en usar un entorno de desarrollo tradicional, la mejor opción es GNU Smalltalk. Debe evaluar cuidadosamente si está contento con su estabilidad y rendimiento en Windows antes de usarlo, y asegurarse de que se siente cómodo con las implicaciones de su licencia GPL, pero si lo hace, es el único Smalltalk que realmente y verdaderamente respalda una modelo de desarrollo basado en archivos.

+2

+1 Excelente encuesta de las opciones actuales. Gracias. –

+0

No del todo: puede construir aplicaciones (incluso aplicaciones de línea de comandos no gui) en Smalltalk/X utilizando make y el compilador stc (que también es una herramienta de línea de comandos). ST/X en sí está construido sin imagen y se compila a partir de archivos st-source individuales. Pero ST/X también incluye un IDE, si lo prefiere. Así que desarrolla en el IDE, fileout y make es posible. – blabla999

+0

A menos que te gusten las minas terrestres ... –

2

El uso de una máquina virtual no le impide utilizar un IDE. La pregunta que debería hacerse es qué IDE tiene una buena integración con Smalltalk. Squeak es definitivamente el camino a seguir para un Smalltalk IDE

Quizás otros tengan otros IDE en mente, ya que usted ya está usando Squeak y no parece estar contento. ¿Qué estás buscando exactamente que Squeak no proporciona?

+2

Quiero desarrollar Windows para Windows, sin usar esa interfaz difícil de Squeak. –

4

Squeak es un IDE. ¡El concepto de "IDE" podría decirse que vino de Smalltalk! ¿Quizás desee un flujo de trabajo "orientado a archivos"? GNU Smalltalk es una implementación que funciona de esa manera.

+4

+1 A pesar de mi afirmación de que tal cosa ya no sería Smalltalk, GNU Smalltalk probablemente esté muy cerca de lo que OP tenía en mente. –

4

En general, la respuesta es no porque Smalltalk no es solo un lenguaje, sino también el entorno, incluidos los cambios que se le hacen. Podría traducirlo a un tipo de sistema más estático con un marco en lugar de un universo de objetos en vivo, pero sería una cosa diferente. NeXTSTEP y, por lo tanto, Cocoa esencialmente hizo esto. Entonces la respuesta podría ser "seguro, se llama Objective-C".

EDITAR: Todo lo dicho, ver la referencia de Logan a GNU Smalltalk.

1

Trabajar en una imagen de Squeak puede ser realmente divertido.

El entorno es un poco confuso al principio, pero es muy poderoso.

Trabajar en un sistema en vivo hace que sea fácil explorar y cambiar las cosas. Puede tomar un objeto en la pantalla para ver su estado, jugar con él, examinar la clase de objeto, ejecutar un código y ver el cambio del mundo.

El navegador Smalltalk también se enfoca mucho más en "explorar" el código que en escribirlo. Puede encontrar rápidamente todos los lugares donde se utiliza una clase (desde el compilador hasta el servidor http) y comprender cómo encajan todos.

Intenta acostumbrarte a la imagen por un tiempo. Creo que perderías algo al usar un IDE externo.

0

Si carga el proyecto SVI desde squeaksource, puede usar enlaces VI en las herramientas de Smalltalk. Lo actualicé para ejecutar en Squeak 4.1, no estoy seguro acerca de 4.2.

Cuestiones relacionadas