Voulez-vous commencer à apprendre Smalltalk?

Mes questions sont simples!

  1. Voulez-vous commencer à apprendre Smalltalk si vous aviez le temps? Pourquoi? Pourquoi pas?
  2. Connaissez-vous déjà Smalltalk? Pourquoi recommanderiez-vous Smalltalk? Pourquoi pas?

Personnellement, je suis un programmeur Ruby on Rails et je l’aime vraiment. Cependant, je pense à Smalltalk parce que je lis divers blogs et que certaines personnes appellent Ruby quelque chose comme “Smalltalk Light”. La deuxième raison pour laquelle je m’intéresse à Smalltalk est Seaside .

Peut-être que quelqu’un a fait la même transition avant?

EDIT: En fait, ce qui m’a le plus excité à propos de Smalltalk / Seaside est l’épisode suivant de WebDevRadio: Episode 52: Randal Schwartz sur Seaside (entre autres)

Si vous aimez Ruby, vous aimerez probablement Smalltalk. IIRC Seaside a été porté sur Gemstone VM, qui fait partie de Gemstone / S OODBMS. Cela a un meilleur support des threads que Ruby, donc c’est un meilleur back-end pour un système à haut volume. Cela pourrait être une bonne raison de l’examiner de près.

Raisons d’apprendre Smalltalk:

  • C’est un environnement de programmation vraiment sympa. Une fois que vous avez compris (cela a tendance à être un choc culturel pour les personnes habituées à C ++ ou à Java), vous trouverez que c’est un très bon environnement de travail. Même un petit groupe vraiment minable comme le Les anciens Digitalk que j’ai utilisés sont un système remarquablement agréable à utiliser. De nombreux anciens types de gourous de XP et d’OO, comme Kent Beck et Martin Fowler, se sont fait les dents sur Smalltalk à l’époque et peuvent parfois entendre le bon vieux temps en public (Merci à Frank Shearer, +1) – Le développement agile est né sur cette plate-forme.

  • C’est l’une des plateformes de développement les plus productives de l’histoire.

  • Plusieurs implémentations matures existent et il existe une base de code étonnamment large. À un certain moment, il est devenu très à la mode dans les cercles des marchés financiers où la productivité des développeurs et le délai de mise sur le marché sont assez importants. Jusqu’au milieu des années 1990, c’était plus ou moins le seul jeu en ville (à l’exception peut-être du LISP) si vous vouliez un langage de haut niveau pris en charge par le commerce et adapté au développement d’applications.

  • Le déploiement est simple – déposez simplement le fichier image dans le répertoire approprié.

  • Ce n’est pas vraiment une raison, mais le Gang of Four Book utilise Smalltalk pour pas mal d’exemples.

Raisons pour ne pas apprendre Smalltalk:

  • C’est un marché de niche. Vous pouvez avoir du mal à trouver du travail. Toutefois, si vous produisez une sorte d’ application .com dans laquelle vous possédez les serveurs, cela peut ne pas être un problème.

  • Il est considéré comme un système hérité par beaucoup. Il y a relativement peu de nouveaux développements sur la plate-forme (bien que Seaside semble conduire à une renaissance).

  • Il a tendance à ne pas bien jouer avec les systèmes de contrôle de source traditionnels (du moins au début du milieu des années 90 lorsque je l’ai utilisé). Cela peut ou peut ne pas être encore le cas.

  • C’est un peu insulaire et aime jouer seul. Python ou Ruby sont conçus pour l’intégration à partir de zéro et ont tendance à être plus évidents et donc plus faciles à intégrer aux logiciels tiers. Cependant, divers autres systèmes plus conventionnels souffrent plus ou moins de ce type d’insularité et cela ne semble pas entraver leur utilisation.

Eh bien, puisque vous m’avez mentionné par mon nom, je pense que je devrais

Comme je l’ai dit dans cette interview de podcast, et comme je l’ai démontré à plusieurs resockets sur mon blog à l’ adresse http://MethodsAndMessages.vox.com/ , il s’agit de « l’année du petit format ». Et après avoir mené à bien le plaidoyer Smalltalk au cours des dix derniers mois, je peux voir que cela se produit réellement. De plus en plus de clients se tournent vers Smalltalk et Seaside, et les fournisseurs de Smalltalk travaillent tous dur pour capter ce nouvel afstream d’attention. Des conférences Smalltalk plus importantes sont prévues. Plus d’offres d’emploi sont affichées. Plus de blogs sont en cours de création.

Si vous vous adressez à Smalltalk aujourd’hui, vous n’êtes pas seul. Il y en a beaucoup d’autres qui sont là aussi.

modifier

Eh bien, plusieurs années plus tard, je recommande maintenant Dart à la place. C’est une grande langue originaire de Google, mais maintenant détenue par un comité de l’ECMA. Il s’exécute en serveur dans le style node.js, mais également dans les navigateurs modernes en transposant en JavaScript. Beaucoup de bons livres, blogs, canaux d’aide, support IDE, pâte live live . Je pense que ça a vraiment des jambes… assez pour que j’écrive des didacticiels pour l’enseigner sur place ou en ligne, et je suis presque certain qu’il ya un livre ou deux dans les œuvres de ma part. Et Gilad Bracha, un ancien Smalltalker, est un consortingbuteur majeur au design, donc il y a beaucoup de Smalltalk dans Dart.

Smalltalk est un bon langage à apprendre, et le plus important est qu’il ne faut qu’une journée pour le faire. C’est beaucoup plus qu’une langue académique. Les gens construisent des applications gigantesques, évolutives et reproductibles qui traitent des milliards de dollars. Ils n’en parlent pas beaucoup. Voir, par exemple, GemStone et Orient Overseas Container Lines: une étude de cas sur l’indussortinge maritime .

Le bord de mer est une bonne raison pour apprendre Smalltalk, mais je ne pense pas que vous le trouverez mieux que Rails.

La chose qui m’a convaincu était GemStone. J’aime vraiment le GLASS de Gemstone (GemStone, Linux, Apache, Smalltalk, Seaside). La partie la plus meursortingère est GemStone, qui gère la persistance de tous les objects pour la plupart sans y penser. Voir certaines de leurs démos et entendre parler de ce que font les gens avec GemStone réinitialise mon idée de la signification de la “grande application”.

La partie qui m’inspire le plus à propos de Rails est le mapping object-relationnel. Ce n’est rien contre Ruby, car il craint tout aussi dur dans GLORP (qui gère ActiveRecord pour Smalltalk), ou Perl, ou autre chose. Mapper des objects aux tables de firebase database est tout simplement douloureux. Avec GemStone, la reflection sur la firebase database disparaît et le travail avec la firebase database disparaît également. C’est comme si une grosse pierre (ou une troupe de singes) était enlevée de mon dos.

Learning Smalltalk vous donnera une base en développement de logiciels orientés object du sharepoint vue de l’homme qui a inventé OO (Alan Kay). L’idée d’un environnement à fenêtres se chevauchant est venue de Smalltalk.

Un obstacle à l’apprentissage de Smalltalk est qu’il s’agit d’un système de transmission de messages avec une syntaxe étrange pour le contrôle de stream, comme:

i < 60 ifTrue: [ self walk ] 

Il a une bibliothèque de classe très mature qui a une cohérence que je n'ai pas vu trop d'endroits. La bibliothèque de classes dans tous les environnements (même commerciaux Smalltalks) a une source disponible qui vous permet d'apprendre des maîtres de la langue. Lors de la programmation de Smalltalk, je pose toujours la question de savoir comment cela se passe dans l’environnement.

Smalltalk est généralement implémenté dans une image qui est un environnement en direct pour tous les objects de votre système.

Le débogueur interactif sépare vraiment Smalltalk de Ruby.

Seaside est le cadre de développement Web et a donné à Smalltalk un nouveau coup de projecteur. C'est un environnement basé sur la continuation qui permet le débogage intra-hit et une expérience de développement de type Rich Client fluide (le stream applicatif supérieur peut être conçu en une seule méthode). Son intégration à script.aculo.us a été faite de telle manière qu’elle soit facilement appelée depuis Smalltalk.

> ne pouvait pas trouver un environnement de développement Smalltalk qui ne coûtait pas les deux arm et une jambe

Google – free smalltalk

Cincom Smalltalk, Squeak, GNU Smalltalk