2008-09-29 29 views
75

¡Mi pregunta es simple!¿Comenzarías a aprender Smalltalk?

  1. ¿Comenzarías a aprender Smalltalk si tuvieras tiempo? ¿Por qué? Por qué no?
  2. ¿Ya conoces Smalltalk? ¿Por qué recomendarías Smalltalk? Por qué no?

Personalmente soy un programador de Ruby on Rails y realmente me gusta. Sin embargo, estoy pensando en Smalltalk porque leo varios blogs y algunas personas llaman a Ruby algo así como "Smalltalk Light". La segunda razón por la que estoy interesado en Smalltalk es Seaside.

Tal vez alguien haya hecho la misma transición antes?

EDIT: En realidad, lo que me tiene más entusiasmado Smalltalk/Mar es el siguiente episodio de WebDevRadio: Episode 52: Randal Schwartz on Seaside (among other things)

Respuesta

57

Si te gusta Ruby, es probable que te guste Smalltalk. IIRC Seaside se ha portado al Gemstone VM, que es parte de su Gemstone/S OODBMS. Esto tiene mucho mejor soporte de subprocesos que Ruby, por lo que es un mejor back-end para un sistema de gran volumen. Esta podría ser una buena razón para echarle un vistazo de cerca.

Razones para aprender Smalltalk:

  • Es un entorno de programación muy, muy agradable. Una vez que lo haya entendido (tiende a ser un shock cultural para las personas acostumbradas a C++ o Java), encontrará que es un muy buen entorno para trabajar. Incluso un pequeño y muy cutre como el Old Digitalk que usé es un sistema notablemente agradable de usar. Muchos de los antiguos gurús de XP y O-O como Kent Beck y Martin Fowler cortaron sus dientes en Smalltalk en el día and can occasionally be heard yearning for the good old days in public (gracias a Frank Shearer por la cita, +1) - El desarrollo ágil se originó en esta plataforma.

  • Es una de las plataformas de desarrollo más productivas de la historia.

  • Existen varias implementaciones maduras y existe una base de códigos sorprendentemente grande. En un momento dado, se puso bastante de moda en los círculos de los mercados financieros, donde la productividad de los desarrolladores y el tiempo de lanzamiento al mercado es bastante importante. Hasta mediados de la década de 1990, era más o menos el único juego de la ciudad (con la posible excepción de LISP) si quería un lenguaje de alto nivel compatible con el mercado que fuera adecuado para el desarrollo de aplicaciones.

  • La implementación es fácil: simplemente suelte el archivo de imagen en el directorio apropiado.

  • No es realmente una razón, pero el Gang of Four Book utiliza Smalltalk para algunos de sus ejemplos.

razones para no aprender Smalltalk:

  • Es algo de un nicho de mercado. Puede tener problemas para encontrar trabajo. Sin embargo, si está produciendo algún tipo de .com application where you own the servers, esto podría no ser un problema.

  • Muchos lo ven como un sistema heredado. Hay relativamente poco desarrollo en la plataforma (aunque Seaside parece estar impulsando un poco el renacimiento).

  • Tiende a no jugar muy bien con los sistemas de control de fuente tradicionales (al menos a partir de principios de los 90 cuando lo usé). Esto puede o no ser el caso.

  • Es algo insular y le gusta jugar solo. Python o Ruby están diseñados para una integración desde cero y tienden a ser más promiscuos y, por lo tanto, más fáciles de integrar con software de terceros. Sin embargo, los sistemas various other more mainstream sufren este tipo de insularidad en mayor o menor grado y eso no parece impedir su uso.

+1

Rubí también ha sido portado a la piedra preciosa: se llama levitación magnética: http://www.infoq.com/news/2008/04/maglev-gemstone-builds-ruby –

+0

¿Qué quiere decir con "tiende a no jugar bien con sistemas de control de fuente tradicionales "? – detly

+4

La forma en que un código fuente tradicional Smalltalk almacenado significaba que se inserta dentro de la imagen y asocia las fuentes y los cambios de archivos. Que no dan un buen juego limpio de archivos de programa como el que se obtendría con (digamos) C. Sistemas de Smalltalk tienden a requerir sistemas de control de fuente de Smalltalk-conscientes especializados, que tendían a ser (a) de propiedad, (b) y caro (c) incompatible con todo lo demás. – ConcernedOfTunbridgeWells

3

me enseñaron Smalltalk en uno de los cursos de programación-objeto oriente primer nivel universitario graduado (circa 1988). La maestra pensó que era mejor comenzar con un lenguaje OO "puro", antes de pasar a uno más moderno (hicimos un poco de C++ al final del semestre).

En esa medida, es mejor comenzar con OO puro, aunque en estos días tenemos Java & C#, ambos de los cuales son OO "casi puro" lo suficientemente cerca que se puede obtener ignorando el OO características de ellos, y limitándose al subconjunto Pure-OO de los lenguajes.

-5

Sí, estoy interesado. Intenté comenzar una vez, pero no pude encontrar un entorno de desarrollo Smalltalk que no costara tanto para los brazos como para las piernas.

+1

Squeak (de http://squeak.org) es una implementación gratuita de código abierto basada en la imagen original de Smalltalk-80. –

+0

VisualWorks también está disponible ahora como free-bit. Puede obtenerlo en http://www.cincomsmalltalk.com/ – ConcernedOfTunbridgeWells

+1

Pharo .. es gratis y genial. – RubyDev

8

No sé Rubí ..

Smalltalk es un lenguaje orientado a objetos puro . Si sientes la necesidad de comprender realmente OO, y no solo el OO simulado de los lenguajes 'OO' más populares (como C++, Java, etc.), entonces te recomendaría que juegues con smalltalk.

En smalltalk todo es un objeto, con atributos, comportamiento y meta. En las simulaciones tienes tipos de datos que usas en tus objetos.

Yo diría que jugar con él, usted solo se beneficiará.

+1

En SmallTalk, incluso "clases" son objetos, instancias de la clase Class !!! ¡Esto me volvió loco hasta que lo asimilé! –

+1

Ruby es también un lenguaje OO puro en el sentido de que incluso las Clases son objetos. También lo son los bloques, los métodos y la referencia de un puntero nulo. – Alan

+4

Ruby takes (Matz declarará esto libremente) muchas ideas de Smalltalk. En muchos sentidos, se puede ver como un lenguaje "pragmático" (se disculpa con Hunt y Thomas). – ConcernedOfTunbridgeWells

13

> No se pudo encontrar un entorno de desarrollo Smalltalk que no cuesta ambos brazos y una pierna

Google - Smalltalk libre

Cincom Smalltalk, Squeak, GNU Smalltalk

+0

¡Squeak es realmente agradable! Pure OOP, interfaz de usuario completamente gráfica, adorable, de código abierto (algunos no están de acuerdo con esto), más o menos portátil ... –

+1

+1 para Squeak, y tiene una gran comunidad con una buena lista de correo para principiantes. –

+0

+1 para Squeak, el explorador de objetos (o como se llame) es invaluable para aprender cómo funciona el modelo de objetos. –

15

Aprender Smalltalk le dará una base en el desarrollo de software orientado a objetos desde la perspectiva del hombre que inventó OO (Alan Kay). La idea de un entorno de ventanas superpuestas vino de Smalltalk.

Un obstáculo para el aprendizaje de Smalltalk es que se trata de un mensaje del sistema que pasa con una sintaxis extraña para el control de flujo como:

i < 60 
    ifTrue: [ self walk ] 

Tiene una biblioteca de clases muy madura que tiene una consistencia que he visto, no demasiados lugares La biblioteca de clases en todos los entornos (incluso Smalltalks comerciales) tiene una fuente disponible que le permite aprender de los maestros del idioma. Cuando programo Smalltalk, siempre me pregunto cómo se hace en el entorno.

Smalltalk generalmente se implementa en una imagen que es un entorno en vivo para todos los objetos en su sistema.

El depurador interactivo realmente separa Smalltalk de Ruby.

Seaside es el marco de desarrollo web y ha dado a Smalltalk un nuevo centro de atención. Es un entorno basado en la continuación que permite la depuración dentro de los hits y una experiencia de desarrollo de tipo de cliente enriquecido sin problemas (el flujo de aplicaciones principal se puede diseñar en un único método). Su integración con script.aculo.us ha sido hecha de tal manera que se puede llamar fácilmente desde Smalltalk.

+1

La sintaxis no es extraña, es realmente MUY elegante. Debe leerse como: hey, cualquiera que sea el resultado de "i <60", aquí hay un fragmento de código (código-objeto pasado como argumento), para ser evaluado si crees que eres verdadero. Lo curioso es que incluso funciona, si "i <60" devuelve una cosa borrosa y estadística. – blabla999

+0

... y esa cosa borrosa y estadística puede decidir (como método) cómo lidiar con eso. No hay un solo operador integrado o una estructura de control que no se pueda redefinir de esta manera. – blabla999

3

He sido ingeniero de software desde hace unos años. He escuchado que la gente menciona Smalltalk algunas veces, y ciertamente Smalltalk ha existido desde aproximadamente 1980, pero es uno de esos idiomas que nunca pareció entrar en el mainstream del software. Algo así como Objective C, CLIPS, PL/I, etc. - algo de lo que quizás haya oído hablar, pero algo en lo que la mayoría de la gente nunca ha programado.

Probablemente no me tome el tiempo para aprender Smalltalk a menos que lo necesite para un trabajo particular. Hace unos años observé algunos tutoriales y ejemplos de Smalltalk, y parece que tiene algunas ventajas claras para ciertos aspectos de la programación de OO (como el concepto del mensaje parece genial). Pero lamentablemente, no es la corriente principal, y no parece estar ganando mucho impulso.

+3

Objective-C ... no creo que la declaración aún se mantenga a partir de 2012. :) – sjas

+0

@sjas ¡Qué cierto! Ahora, todas las necesidades de Smalltalk es que un desarrollador importante cree un nuevo nicho de mercado para dispositivos y especifique Smalltalk como el lenguaje de facto para escribir aplicaciones para el dispositivo. –

1

Realmente no sé lo que estás buscando.

Si está buscando un idioma diferente para escribir, creo que eso dependerá en gran medida de las bibliotecas disponibles. No conozco ni a Ruby ni a Smalltalk, pero parece probable que la forma más eficiente de escribir Ruby on Rails: tipos de aplicaciones no sea Smalltalk.

Si está buscando aprender las ideas detrás de Ruby, esta podría ser una muy buena movida. No tengo nada cuantitativo, pero siempre me sentí mejor sobre el uso de herramientas (como los sistemas de lenguaje) si sabía más que solo las herramientas, si conocía las ideas detrás de ellas o cómo funcionaban.

Si desea aprender diferentes tipos de lenguajes orientados a objetos, es posible que desee aprender Smalltalk (si difiere significativamente de Ruby), algo como Java o C++, y quizás también el Common Lisp Object System.

Si solo quieres aprender algo diferente, Smalltalk puede ser una buena opción. También sugeriría Common Lisp, y otras personas sin duda tendrán otras sugerencias (¿pueden obtener un buen sistema Forth hoy en día?).

+0

Está claro que no echó un vistazo a Seaside. La forma más eficiente de escribir aplicaciones de Ruby-on-Rails es claramente en Seaside. –

+0

No eché un vistazo a Seaside, y no he usado Ruby o Smalltalk, así que este es un consejo general. Gracias por señalar Seaside. –

42

Bueno, ya que me ha mencionado por su nombre, siento que debería meter su cuchara.

Como dije en esa entrevista podcast, y como he demostrado en varias ocasiones en mi blog en http://MethodsAndMessages.vox.com/, esto es " el año de smalltalk ". Y después de haber hecho la defensa de Smalltalk durante los últimos diez meses, puedo ver que realmente está sucediendo. Cada vez más clientes recurren a Smalltalk and Seaside, y los vendedores de Smalltalk trabajan arduamente para captar esta nueva afluencia de atención. Se están planeando conferencias de Smalltalk más grandes. Se publican más anuncios de trabajo. Se están haciendo más publicaciones en el blog.

Si recurre a Smalltalk hoy, no está solo. Hay muchos otros que están allí también.

Editar

Bueno, varios años más tarde, ahora estoy recomendando Dart lugar. Es un lenguaje excelente originado por Google, pero ahora pertenece a un comité de ECMA. Se ejecuta en el servidor en el estilo node.js, pero también en el lado del cliente en los navegadores modernos al transpilar a JavaScript. Muchos buenos libros, blogs, canales de ayuda, soporte IDE, public live pastebin. Creo que definitivamente tiene piernas ... lo suficiente para escribir el material didáctico para enseñarlo en el sitio o en línea, y estoy bastante seguro de que hay uno o dos libros en mis manos. Y Gilad Bracha, un Oldtalker antiguo, es uno de los principales contribuyentes al diseño, por lo que hay un montón de Smalltalk en Dart.

+2

¡Es por eso que Stack Overflow es genial! ¡Gracias por su respuesta! –

+0

Por curiosidad, ¿puede dar más detalles sobre la afluencia de atención? ¿Alguna idea de dónde viene el interés? – ConcernedOfTunbridgeWells

+0

Ruby ciertamente ayudó, creo que Javascript y Objective-C también. Para las personas que no reciben la cosa OO pura, esos lenguajes proporcionan un punto de partida familiarizado desde donde se puede extrapolar cómo brilla Smalltalk. –

26

Smalltalk es un buen lenguaje para aprender, y lo bueno es que solo lleva un día hacerlo. Es mucho más que solo un lenguaje académico. La gente está construyendo aplicaciones enormes, escalables y replicables manejando miles de millones de dólares. Simplemente no hablan mucho de eso. Ver, por ejemplo, GemStone and Orient Overseas Container Lines: A Shipping Industry Case Study.

Seaside es una buena razón para aprender Smalltalk, pero no creo que lo encuentres en órdenes de magnitud mejor que Rails.

Lo que me convenció fue GemStone. Me gusta mucho el GLASS de Gemstone (GemStone, Linux, Apache, Smalltalk, Seaside). La parte más importante de eso es GemStone, que maneja toda la persistencia de objetos principalmente sin que usted lo piense. Al ver algunas de sus demos y escuchar lo que las personas están haciendo con GemStone, reinicié mi idea de lo que significaba "gran aplicación".

La parte que más me molesta acerca de Rails es el mapeo relacional de objetos. Eso no es nada en contra de Ruby porque apesta tanto en GLORP (que maneja ActiveRecord para Smalltalk), Perl o cualquier otra cosa. Asignar objetos a las tablas de la base de datos es doloroso. Con GemStone, el pensamiento sobre la base de datos desaparece, por lo que el trabajo con la base de datos también desaparece. Es como si me quitaran una piedra enorme (o una tropa de monos) de mi espalda.

+1

me gustaría poder votar dos veces ... estoy totalmente de acuerdo. –

+1

+1 para mostrar la superioridad de ODB sobre ORM. ir de uno a otro es definitivamente algo que puedes * sentir * – ryan0

9

Nigel, una cita que tengo es la siguiente:

Aunque es ahora mucho tiempo que no lo hice nada con ella, propongo Smalltalk, todavía no he encontrado nada que se le parezca por ser capaz de transferir pensamientos en el código de la computadora. No es solo el lenguaje: es el maravilloso entorno de navegación, las bibliotecas y la cultura de escribir código claro y bien diseñado tan rápido como cualquier otra cosa puede producir espaguetis. Cuando los participantes de JavaOne ensalzaron que Java era mucho más productivo que cualquier otra cosa, necesitaba una bolsa de papel marrón. Bueno, volviendo a ordenar mis classpaths ... - Martin Fowler (Software Development Magazine, enero de 2001)

Lo encontré here.

+0

Gracias. He editado mi publicación para incluirla. – ConcernedOfTunbridgeWells

8

No estaría de acuerdo con el afiche que considera que no usaría Smalltalk para aplicaciones grandes, es precisamente allí donde brilla. Pero también he creado prototipos bastante geniales (nota minúscula) en menos de una semana.

Aprendí OO en ST a partir de 92, increíblemente contenta de haberlo hecho. Me dio un fondo real en OO. Pensando en clases Sin tipos. ST tiene un énfasis real en la mensajería. Si quiere saber algo, envíe un mensaje a un objeto y obtenga una respuesta. En mi humilde opinión, el ethos y el IDE realmente lo aliento a hacer lo correcto con su acoplamiento y cohesión.

En mi trabajo diario en Java, estoy atascado con archivos, genéricos, IDE como eclipse que son órdenes de magnitud menos productivas que cualquier ST IDE. Estaba usando ST la única vez que terminé un desarrollo antes de lo previsto. De hecho, fue muy productivo, y obtuvimos tanta reutilización que tuve que mudarme a otro proyecto, ¡ya que no tenía nada que hacer! (Ok, tal vez podría haber pasado tiempo aprendiendo a estimar ...)

Descargar chillido, buscar un buen libro y jugar. El único inconveniente es que si su función de día está usando Java o C#, terminará deseando poder usar ST. Llegarías a casa más pronto

Chris Brooks

5

No sería comenzar a aprender que si tuviera el tiempo. Por qué no? Porque sería más productivo y lucrativo financieramente aprender C# o Java.

Por otro lado, si es un aficionado y le gustaría hacer una excavación arqueológica, le sugiero que pase un rato mirando qué, cuándo, por qué y cómo de smalltalk investigando a Alan Kay. Una historia fascinante y una persona increíble (después de todo, ganó el Premio Turning). Entonces tal vez juegue con chirrido un poco para tener una idea del idioma. Después de esto, es posible que tenga un nuevo respeto/comprensión de bloques, cierres y principios orientados a objetos.

Sé y uso Smalltalk, tengo desde hace 15 años, todavía manteniendo y no le recomendaría Smalltalk a un amigo. Por qué no? El empleo es algo bueno tener y seguir recibiendo. Aunque puede aprender mucho de Smalltalk, no puede convertirlo fácilmente en un empleo remunerado en este día y edad.

Además, parecía estar entusiasmado con Seaside y yo asumiría la asociación Seaside/GemStone. He usado GemStone durante bastante tiempo y los dos juntos son muy atractivos. Espero que puedan obtener la cuota de mercado y el impulso necesarios para tener éxito.

8

Recomiendo a todos que aprendan Lisp (Scheme) o Smalltalk.

Smalltalks tienen IDE maravillosos que no querrá perderse una vez que haya superado el choque cultural. Y sí, hay más de uno gratis: Squeak, Dolphin, Smalltalk/X y Visualworks (No Comercial).

Lisp puede ser incluso más limpio en su base matemática.

respecto

PS: De hecho, me recomiendan el aprendizaje tanto!

+1

+1 para "aprender los dos" –

7

Estoy totalmente en sus zapatos. Estoy usando RoR y buscando en la tierra de Smalltalk.He aquí algunos pros & contras me parece importante:

Pros:

  • maduro & entorno estable
  • ciclo de desarrollo rápido
  • Te hace pensar más y escribir menos

Contras:

  • Requiere pensar diferente
  • Aún no logran entender que

Es muy curioso cómo llegué a saber sobre Smalltalk. Fue esta una cosa que se mantuvo apareciendo en los resultados de Google cuando buscaba cosas de Lisp y Erlang. Un día lo verifiqué y quedé impresionado con el agradable entorno de Windows. Pocos momentos después encontré el framework Aida/Web. Me enganché y comencé a aprender Smalltalk a través del desarrollo web con este marco.

Aún no está del todo allí, pero es tan malditamente interesante que simplemente no me puedo sentar quieto ... :-) Me estoy divirtiendo de nuevo.

2

Este mensaje ha llegado a ser muy real para mí. Estoy planeando una migración de software a una aplicación web. Es un software basado en una base de datos. Estoy especialmente comprobando las alternativas 1) Carriles 2) Mar

Si puedo obtener las cifras de Gemstone/S como base de datos, lo consideraré también. Entonces para mí significa que tengo que aprender Smalltalk (mejor) que antes. Porque podría ser que sea mi trabajo durante los próximos 15 años. Deberías (y no deberías) trabajar con un software que no te gusta por tanto tiempo ;-). Tengo la impresión de que Gemstone/S es una de las aplicaciones "asesinas". Pero la persistencia de Objetos sigue siendo un campo muy difícil ...

4

¡No! Si realmente comienzas a aprenderlo, es posible que no quieras programar en otra cosa nunca más.

Esto puede no ser cierto, si usted es un programador de lisp.

3

Absolutamente, aprender Smalltalk! Esto es 2015 y Smalltalk está en aumento de nuevo, gracias a Pharo. Pharo es GRATIS. Pharo está evolucionando rápidamente en una poderosa herramienta empresarial. En la versión 4.0, y pronto será 5.0, ¡ha madurado mucho en solo cuatro años!

Luego está Amber, que es Smalltalk para la web. También es GRATIS y evoluciona rápidamente.

A pesar de Smalltalk's reputation, este no es Smalltalk de su padre.Modern Smalltalk es emocionante y prometedor.

Es cierto que los trabajos de Smalltalk no son (todavía) abundantes. Pero si una cantidad suficiente de ustedes se agrega a una nueva ola de Smalltalkers, entonces la industria se adaptará a ella y veremos una adopción más amplia de Smalltalk en los negocios. La pregunta es, ¿tienes la visión?

2

1) Sí! Siempre es bueno aprender un idioma. Si va a aprender un idioma, conviértalo en un lenguaje poderoso e influyente que se puede aprender fácil y rápidamente.

Smalltalk sigue siendo un idioma y entorno preeminente para el aprendizaje de los conceptos OO.

Es todos los objetos, todo el camino hacia abajo. Esto permite un enfoque realmente coherente para trabajar.

Los enteros son instancias de entero de clase. Las cadenas son una colección de objetos de carácter. Las clases son objetos instancia únicos para la clase que definen.

Las estructuras de control funcionan al enviar y recibir mensajes a instancias de clase booleana.

Incluso los métodos anónimos (bloques de código, también conocidos como bloques) son objetos.

Todo se hace enviando un mensaje a un objeto. La sintaxis se puede ajustar en una postal.

La claridad de los conceptos y su implementación en Smalltalk significa que puede desarrollar formas de pensamiento que se transfieren directamente a Java, Ruby y C#. Espero que sea cierto para Python, también.

Es tan bueno para aclarar los conceptos que una importante Universidad de Reino Unido usó Smalltalk para capacitar a 5,000 personas al año en computación orientada a objetos.

Squeak 5, acaba de ser lanzado. Ha obtenido importantes aumentos en el rendimiento de su nueva máquina virtual Cog/Spur, que se caracteriza por la recolección progresiva de basura.

Pharo 4 tiene un bonito y limpio aspecto de escritorio. La próxima versión, Pharo 5, se lanzará pronto. Pasará a utilizar la máquina virtual Cog/Spur, tendrá alrededor de 5.000 clases en la versión, y paquetes adicionales de clases están disponibles en la red a través de la herramienta del navegador de configuración.

Squeak 5 funciona incluso en Raspberry Pis de primera generación, y es casi un 50% más rápido en el nuevo Raspberry Pi de $ 5 cero. $ 99 le compra un Raspberry Pi 2, pantalla y estuche - ejecuta un IDE maduro, completamente funcional.

investigación de vanguardia se está haciendo en, sistemas OO distribuidos coordinados en Smalltalk (por ejemplo náyade y cuchara).

Algunas de las bases de datos corporativas más grandes del mundo se ejecutan en Smalltalk, incluido el seguimiento del 60% de los contenedores de envío del mundo y los sistemas de comercio en el banco más grande del mundo.

Puede utilizar Smalltalk como una especie de CoffeeScript super-potencia, escribiendo en Amber Smalltalk y transpiling tener JavaScript, que se ejecuta en el navegador.

Squeak, Pharo, y Amber son, de código abierto, lenguajes y entornos de licencia abierta todo gratis.

Squeak y Pharo proveen de una sola escritura, ejecutar en cualquier lugar instalaciones para MacOS, Windows y Linux. (Posiblemente RiscOS, también).

Dolphin Smalltalk se dirige firmemente a la apariencia nativa de Windows, y le permite compilar los archivos .ex cerrados de su trabajo terminado para su distribución a los usuarios finales. El desarrollo adicional de Dolphin por parte del proveedor se ha detenido, pero es completamente funcional y, como todos los Smalltalks, está diseñado para ser extensible de forma masiva. (¿Mencioné que Pharo ahora tiene 5.000 clases, en comparación con 3.000 de Squeak? Pharo es un tenedor de Squeak 3.9)

** Hay una guía práctica para instalar e iniciar Squeak, Amber, Pharo, Cuis y Dolphin at: ** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk-up-and-running.html

El marco web de Seaside se ejecuta en Squeak y en Pharo. Es una maravillosa herramienta madura, como es el marco más tradicional de AidaWeb.

VisualAge, VisualWorks y Gemstone proporcionan sistemas robustos de nivel empresarial. Gemstone proporciona una base de datos de objetos infinitamente escalable con transacciones y persistencia.

2) Sí, ya lo uso.

Lo aprendí a través de la Open University, e inmediatamente fui productivo en Ruby (una copia del libro de Pica y la referencia de la biblioteca a mi lado). Me ayudó enormemente con Java y con Xerox Moo-code.

Acabo de volver para escribir aplicaciones para controlar la administración y distribución de aplicaciones móviles masivas y multiplataforma.

Espero que pronto voy a volver a escribir mis aplicaciones móviles de JavaScript con Amber, también.