Si te gusta Ruby, probablemente te gustará Smalltalk. IIRC Seaside ha sido transferido a Gemstone VM, que es parte de su Gemstone / S OODBMS. Esto tiene un soporte de subprocesos mucho mejor que Ruby, por lo que es un mejor back-end para un sistema de alto volumen. Esta podría ser una buena razón para examinarla de cerca.
Razones para aprender Smalltalk:
Es un entorno de programación realmente agradable. Una vez que lo hayas comprendido (suele ser un choque cultural para las personas acostumbradas a C ++ o Java), descubrirás que es un entorno realmente bueno para trabajar. Incluso una pequeña charla realmente cutre como la Los antiguos de Digitalk que utilicé son un sistema muy agradable de usar. Muchos de los viejos tipos de gurú de XP y OO como Kent Beck y Martin Fowler se cortaron los dientes con Smalltalk en el pasado y ocasionalmente se les puede escuchar anhelando los buenos viejos tiempos en público (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 hay una base de código sorprendentemente grande por ahí. En un momento se puso bastante de moda en los círculos de los mercados financieros, donde la productividad de los desarrolladores y el tiempo de comercialización son un gran problema. Hasta mediados de la década de 1990, era más o menos el único juego en la ciudad (con la posible excepción de LISP) si querías un lenguaje de alto nivel con soporte comercial que fuera adecuado para el desarrollo de aplicaciones.
La implementación es fácil: simplemente coloque el archivo de imagen en el directorio apropiado.
No es realmente una razón, pero el Libro de la Banda de los Cuatro usa Smalltalk para algunos de sus ejemplos.
Razones para no aprender Smalltalk:
Es una especie de nicho de mercado. Puede tener problemas para encontrar trabajo. Sin embargo, si está produciendo algún tipo de aplicación .com donde es propietario de los servidores, esto podría no ser un problema.
Muchos lo consideran un sistema heredado. Hay relativamente poco desarrollo nuevo en la plataforma (aunque Seaside parece estar impulsando un renacimiento).
Tiende a no funcionar bien con los sistemas de control de fuente tradicionales (al menos a principios de mediados de los 90 cuando lo usé). Este puede ser el caso o no.
Es algo insular y le gusta jugar solo. Python o Ruby están diseñados para integrarse 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, varios otros sistemas más convencionales sufren este tipo de insularidad en mayor o menor grado y eso no parece impedir mucho su uso.
Bueno, ya que me mencionaste por mi nombre, creo que debería intervenir.
Como dije en esa entrevista de podcast, y como he demostrado repetidamente en mi blog en http://MethodsAndMessages.vox.com/ , este es " el año de smalltalk ". Y después de haber hecho defensa de Smalltalk durante los últimos diez meses, puedo ver que realmente está sucediendo. Más clientes están recurriendo a Smalltalk y Seaside, y todos los proveedores de Smalltalk están trabajando arduamente para captar esta nueva afluencia de atención. Se están planificando más conferencias Smalltalk más grandes. Se están publicando más ofertas de trabajo. Se están realizando más publicaciones en blogs.
Si recurre a Smalltalk hoy, no está solo. Hay muchos otros que también están ahí fuera.
Editar
Bueno, varios años después, ahora recomiendo Dart en su lugar. Es un gran lenguaje originado por Google, pero ahora es propiedad de un comité ECMA. Se ejecuta en el lado del servidor en 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, pastebin público en vivo . Creo que definitivamente tiene piernas ... lo suficiente como para que esté escribiendo cursos para enseñarlo en el sitio o en línea, y estoy bastante seguro de que hay uno o dos libros míos en proceso. Y Gilad Bracha, un Smalltalker de antaño, es un importante contribuyente al diseño, por lo que hay mucho Smalltalk en Dart.
fuente
Smalltalk es un buen idioma para aprender, y lo mejor es que solo se necesita un día para hacerlo. Es mucho más que un lenguaje académico. La gente está creando aplicaciones enormes, escalables y replicables que manejan miles de millones de dólares. Simplemente no hablan mucho de eso. Véase, por ejemplo, GemStone y Orient Overseas Container Lines: un estudio de caso de la industria naviera .
Seaside es una buena razón para aprender Smalltalk, pero no creo que lo encuentres mucho mejor que Rails.
Lo que me convenció fue GemStone. Realmente me gusta GLASS de Gemstone (GemStone, Linux, Apache, Smalltalk, Seaside). La parte decisiva de eso es GemStone, que maneja toda la persistencia de objetos por usted principalmente sin que usted lo piense. Ver algunas de sus demostraciones y escuchar lo que la gente está haciendo con GemStone restableció mi idea de lo que significaba "gran aplicación".
La parte que más me molesta de Rails es el mapeo relacional de objetos. Eso no es nada en contra de Ruby porque apesta igual de duro en GLORP (que maneja ActiveRecord para Smalltalk), o Perl, o cualquier otra cosa. Mapear objetos a tablas de bases de datos es simplemente doloroso. Con GemStone, pensar en 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 manada de monos) de la espalda.
fuente
> no pude encontrar un entorno de desarrollo de Smalltalk que no costara ni brazos ni piernas
Google - smalltalk gratuito
Cincom Smalltalk, Squeak, GNU Smalltalk
fuente
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 provino de Smalltalk.
Un obstáculo para aprender Smalltalk es que es un sistema de paso de mensajes con una sintaxis extraña para el control de flujo como:
Tiene una biblioteca de clases muy madura que tiene una consistencia que no he visto en muchos 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. Al programar 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 de su sistema.
El depurador interactivo realmente separa Smalltalk de Ruby.
Seaside es el marco de desarrollo web y ha dado a Smalltalk un nuevo foco de atención. Es un entorno basado en la continuación que permite la depuración intra-hit y una experiencia de desarrollo de tipo Rich Client sin problemas (el flujo de aplicaciones superior se puede diseñar en un solo método). Su integración con script.aculo.us se ha realizado de tal manera que se puede llamar fácilmente desde Smalltalk.
fuente
Nigel, una cita que tengo es esta:
Aunque hace mucho tiempo que no hice nada con él, nomino a Smalltalk, todavía no me he encontrado con nada parecido para poder transferir pensamientos al código de computadora. No es solo el idioma: es el maravilloso entorno del navegador, 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 ensalzaban cómo Java era mucho más productivo que cualquier otra cosa, necesitaba una bolsa de papel marrón. Bueno, volvamos a ordenar mis rutas de clases ... - Martin Fowler (Revista de desarrollo de software, enero de 2001)
Lo encontré aquí .
fuente
No estaría de acuerdo con el póster que cree que no usarías Smalltalk para aplicaciones grandes; ahí es precisamente donde brilla. Pero también he creado aplicaciones prototipo bastante maravillosas (nota en minúsculas) en menos de una semana.
Aprendí OO en ST a partir del 92, increíblemente contento de haberlo hecho. Me dio una experiencia real en OO. Pensando en clases. Sin tipos. ST tiene un énfasis real en la mensajería. Si quieres saber algo, envía un mensaje a un objeto y obtén una respuesta. En mi humilde opinión, el espíritu y el IDE realmente te animan a hacer lo correcto con tu acoplamiento y cohesión.
En mi trabajo diario de Java, estoy atrapado con archivos, genéricos, IDE como eclipse que son órdenes de magnitud menos productivos que cualquier ST IDE. Estaba usando ST la única vez que terminé un desarrollo antes de lo previsto. De hecho, fue tan 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 ...)
Descarga Squeak, encuentra un buen libro y juega. El único inconveniente es que si su trabajo diario está usando Java o C #, terminará deseando poder usar ST. Llegarías a casa antes.
Chris Brooks
fuente
Recomiendo a todos que aprendan Lisp (Scheme) o Smalltalk.
Smalltalks tiene 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).
Sin embargo, Lisp puede ser incluso más limpio en su base matemática.
Saludos
PD: ¡en realidad recomiendo aprender ambos!
fuente
No conozco a Ruby ..
Smalltalk es un lenguaje puro de OO. Si siente la necesidad de comprender realmente OO, y no solo el OO simulado de los lenguajes 'OO' más populares (como C ++, Java, etc.), entonces le recomendaría que juegue 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 juega con él, solo te beneficiarás.
fuente
Estoy totalmente en tus zapatos. Estoy usando RoR y mirando la tierra de Smalltalk. Aquí hay algunos pros y contras que considero importantes:
Pros:
Contras:
Es bastante curioso cómo llegué a conocer Smalltalk. Era esto lo que seguía apareciendo en los resultados de Google cuando se buscaban cosas de Lisp y Erlang. Un día lo comprobé y me sorprendió 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.
Todavía no estoy del todo bien, pero es tan interesante que no puedo quedarme quieto ... :-) Me estoy divirtiendo de nuevo.
fuente
No empezaría a aprenderlo si tuviera tiempo. Por qué no? Porque sería más productivo y lucrativo económicamente aprender C # o Java.
Por otro lado, si eres un aficionado y te gustaría realizar una excavación arqueológica, te sugiero que dediques un tiempo a mirar el 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 Turning Award). Entonces tal vez juegue un poco con chirriar para tener una idea del idioma. Después de esto, es posible que tenga un nuevo respeto / comprensión de los bloques, cierres y principios orientados a objetos.
Conozco y uso Smalltalk, lo tengo desde hace unos 15 años, todavía lo mantengo , y no recomendaría Smalltalk a un amigo. Por qué no? Es bueno tener empleo y seguir consiguiendo. Aunque puede aprender mucho de Smalltalk, no puede convertirlo fácilmente en un empleo remunerado en esta época.
Además, parecía estar emocionado 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 participación de mercado y el impulso necesarios para tener éxito.
fuente
¡No lo hagas! Si realmente comienzas a aprenderlo, es posible que ya no quieras programar en otra cosa.
Esto puede no ser cierto si es un programador lisp.
fuente
¡Por supuesto, aprende Smalltalk! Estamos en 2015 y Smalltalk está aumentando nuevamente, gracias a Pharo . Pharo es GRATIS. Pharo está evolucionando rápidamente hacia una poderosa herramienta empresarial. En la versión 4.0, que 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 la reputación de Smalltalk , este no es Smalltalk de tu padre. Modern Smalltalk es emocionante y prometedor.
Es cierto que los trabajos de Smalltalk no son (todavía) abundantes. Pero si suficientes de ustedes se agregan a una nueva ola de Smalltalkers, entonces la industria se adaptará y veremos una adopción más amplia de Smalltalk en los negocios. La pregunta es, ¿tienes la visión?
fuente
Me enseñaron Smalltalk en uno de los primeros cursos de programación de objetos orientados a nivel universitario (alrededor de 1988). El profesor pensó que lo mejor era comenzar con un lenguaje de OO "puro", antes de pasar a uno más moderno (hicimos un poco de C ++ al final del semestre).
Según esa medida, es mejor comenzar con OO puro, aunque en estos días tenemos Java y C #, los cuales son OO "casi puros", lo suficientemente cerca como para ignorar las características que no son OO. y limitarse al subconjunto Pure-OO de los idiomas.
fuente
Si quieres una mejor comprensión de la programación extrema (e incluso de Scrum), diría que sí .
Por qué los programadores de Java impacientes necesitan aprender Smalltalk:
http://www.dafydd.net/archive/2010/why-smalltalk-isnt-just-another-language/
fuente
He sido ingeniero de software desde hace bastantes años. He escuchado a la gente mencionar Smalltalk varias veces, y ciertamente Smalltalk ha existido desde aproximadamente 1980, pero es uno de esos lenguajes que parece que nunca se convirtió en el software principal. 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 tomaría el tiempo para aprender Smalltalk a menos que lo necesite para un trabajo en particular. Miré algunos tutoriales y ejemplos de Smalltalk brevemente hace unos años, y parece que tiene algunas ventajas claras para ciertos aspectos de la programación de OO (como si el concepto de mensaje parece genial). Pero, lamentablemente, no es una corriente principal y no parece estar ganando mucho impulso.
fuente
Este hilo se ha vuelto muy actual para mí. Estoy planeando una migración de software a una aplicación web. Es un software basado en bases de datos. Estoy revisando especialmente las alternativas 1) Raíles 2) Junto al 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. Trabajaría (y no debería) con software que no le gusta durante tanto tiempo ;-). Tengo la impresión de que Gemstone / S es una de las aplicaciones "asesinas". Pero la persistencia de los objetos sigue siendo un campo muy difícil ...
fuente
1) ¡Sí! Siempre es bueno aprender un idioma. Si va a aprender un idioma, conviértalo en un idioma poderoso e influyente que se pueda aprender fácil y rápidamente.
Smalltalk sigue siendo un lenguaje y un entorno preeminentes para el aprendizaje de conceptos orientados a objetos.
Son todos los objetos, hasta el final. Esto lo convierte en un enfoque de trabajo realmente coherente.
Los enteros son instancias de Class Integer. Las cadenas son una colección de objetos de carácter. Las clases son objetos de instancia singleton para la clase que definen.
Las estructuras de control funcionan enviando mensajes get a instancias de Class Boolean.
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 colocar 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 #. Supongo que también es cierto para Python.
Es tan bueno para aclarar los conceptos que una importante universidad del Reino Unido utilizó Smalltalk para capacitar a 5.000 personas al año en informática 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 cuenta con recolección de basura progresiva.
Pharo 4 tiene un hermoso tema de escritorio de aspecto limpio. La próxima versión, Pharo 5, se lanzará pronto. Pasará a usar Cog / Spur VM, 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 Configuration Browser.
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 zero de $ 5. $ 99 le compra una Raspberry Pi 2, pantalla y carcasa, con un IDE maduro y con todas las funciones.
Se están realizando investigaciones de vanguardia en sistemas OO coordinados y distribuidos en Smalltalk (por ejemplo, Naiad y Spoon).
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 comerciales del banco más grande del mundo.
Puede usar Smalltalk como una especie de CoffeeScript superpoderoso, escribiendo en Amber Smalltalk y transpirándolo a JavaScript, ejecutándose en el navegador.
Squeak, Pharo y Amber son todos lenguajes y entornos gratuitos, de código abierto y con licencia abierta.
Squeak y Pharo proporcionan funciones de escritura única y ejecución en cualquier lugar para MacOS, Windows y Linux. (Posiblemente también RiscOS).
Dolphin Smalltalk está dirigido firmemente a la apariencia nativa de Windows y le permite compilar .exes 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 las 3,000 de Squeak? Pharo es una bifurcación de Squeak 3.9)
** Hay una guía práctica para instalar e iniciar Squeak, Amber, Pharo, Cuis y Dolphin en: ** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk- up-and-running.html
El marco web Seaside se ejecuta en Squeak y en Pharo. Es una herramienta madura maravillosa, al igual que el marco AidaWeb más tradicional.
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 y fui productivo de inmediato en Ruby (una copia del libro Pickaxe y la referencia de la biblioteca a mi lado). Me ayudó enormemente con Java y con Xerox Moo-code.
Acabo de volver a escribir aplicaciones para controlar, administrar y distribuir aplicaciones móviles de gran capacidad y multiplataforma.
Espero que pronto también vuelva a escribir mis aplicaciones móviles de JavaScript utilizando Amber.
fuente
Realmente no sé lo que estás buscando.
Si está buscando un idioma diferente para escribir, creo que dependería 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-tipo de aplicaciones no sea Smalltalk.
Si está buscando aprender las ideas detrás de Ruby, esta podría ser una muy buena decisión. 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 desea aprender algo diferente, Smalltalk puede ser una buena opción. También sugeriría Common Lisp, y sin duda otras personas tendrán otras sugerencias (¿puedes conseguir un buen sistema Forth hoy en día?).
fuente
Sí, me interesa. Ya intenté comenzar una vez, pero no pude encontrar un entorno de desarrollo de Smalltalk que no costara tanto brazos como una pierna.
fuente