Question

Mes questions sont simples!

  1. Seriez-vous prêt à apprendre le Smalltalk si vous en 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 beaucoup. 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 de mon intérêt pour Smalltalk est Seaside .

Peut-être que quelqu'un a déjà fait la même transition auparavant?

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

Était-ce utile?

La solution

Si vous aimez Ruby, vous aimerez probablement Smalltalk. IIRC Seaside a été transféré sur la VM Gemstone , qui fait partie de leur système OODBMS Gemstone / S. Cela prend beaucoup mieux en charge les threads que Ruby, ce qui en fait un meilleur back-end pour un système à volume élevé. C'est peut-être une bonne raison pour l'examiner de près.

Raisons d'apprendre le Smalltalk:

  • C'est un environnement de programmation vraiment, vraiment sympa. Une fois que vous avez bien compris (cela a tendance à être un choc culturel pour les habitués de C ++ ou de Java), vous constaterez que c'est un très bon environnement de travail. Même un petit dialogue vraiment pourri, comme le Les anciens modèles Digitalk que j'ai utilisés sont un système remarquablement agréable à utiliser. Bon nombre d'anciens types de gourous XP et OO, tels que Kent Beck et Martin Fowler a fait ses armes sur Smalltalk dans la journée et peut parfois être entendu avec impatience le bon vieux temps en public ((Merci à Frank Shearer pour la citation, +1) - Le développement agile a pris naissance sur cette plate-forme.

  • C'est l'une des plates-formes de développement les plus productives de l'histoire.

  • Il existe plusieurs implémentations matures et il existe une base de code étonnamment volumineuse. À un moment donné, il est devenu très tendance 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 à peu près le seul jeu en ville (à l'exception peut-être de 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: il suffit de déposer le fichier image dans le répertoire approprié.

  • Ce n'est pas vraiment une raison, mais le livre Gang of Four . utilise Smalltalk pour quelques exemples.

Raisons pour ne pas apprendre le Smalltalk:

Autres conseils

Eh bien, puisque vous avez cité mon nom, je pense que je devrais intervenir.

Comme je l'ai dit dans cette interview en podcast et comme je l'ai démontré à plusieurs reprises sur mon blog à l'adresse http: // MethodsAndMessages. vox.com/ , c’est " l’année du smalltalk ". Et après avoir fait le plaidoyer Smalltalk au cours des dix derniers mois, je peux voir que cela se passe réellement. De plus en plus de clients se tournent vers Smalltalk et Seaside, et les fournisseurs Smalltalk s’efforcent tous de capter ce nouvel afflux d’attention. De plus grandes conférences Smalltalk sont en cours de planification. Plus d'offres d'emploi sont affichées. De plus en plus de blogs sont publiés.

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

Modifier

Eh bien, quelques années plus tard, je recommande désormais Dart . C'est un excellent langage créé par Google mais qui appartient maintenant à un comité ECMA. Il exécute serveride dans le style node.js, mais aussi clientes dans les navigateurs modernes en transpilant en JavaScript. Beaucoup de bons livres, blogs, canaux d'aide, support de l'EDI, pâte live publique . Je pense qu'il a définitivement des jambes… suffisamment pour que j'écrive un didacticiel pour l'enseigner sur place ou en ligne, et je suis à peu près sûr qu'il y a un livre ou deux en préparation de ma part. Et Gilad Bracha, un Smalltalker de l’époque, est un contributeur majeur à la conception. Il existe donc beaucoup de Smalltalk dans Dart.

Le Smalltalk est une bonne langue à apprendre, et l’atout majeur est qu’il ne faut qu’une journée pour le faire. C'est beaucoup plus qu'une simple langue académique. Les gens construisent d’énormes applications, évolutives et reproductibles, manipulant des milliards de dollars. Ils n'en parlent pas beaucoup. Voir, par exemple, les lignes de conteneur GemStone et Orient Overseas: Étude de cas sur l’industrie du transport maritime .

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

La chose qui m'a convaincu était GemStone. J'aime beaucoup le GLASS de Gemstone (GemStone, Linux, Apache, Smalltalk, Seaside). La partie la plus meurtrière est GemStone, qui gère toute la persistance des objets pour vous, la plupart du temps sans que vous n'y pensiez. Voir certaines de leurs démos et entendre parler de ce que les gens font avec GemStone m'a permis de réinitialiser mon idée de la "grande application". signifiait.

La partie qui me perturbe le plus à propos de Rails est le mappage objet-relationnel. Ce n’est rien contre Ruby, car il est aussi pénible dans GLORP (qui gère ActiveRecord pour Smalltalk), ou Perl, ou toute autre chose. Mapper des objets sur des tables de base de données est simplement douloureux. Avec GemStone, la réflexion sur la base de données disparaît et le travail avec la base de données disparaît également. C'est comme si on me retirait une énorme pierre (ou une troupe de singes).

> Impossible de trouver un environnement de développement Smalltalk qui ne coûte pas deux bras et une jambe

Google : conversation en petit groupe gratuite

Cincom Smalltalk, Squeak, GNU Smalltalk

L’apprentissage de Smalltalk vous permettra de vous familiariser avec le développement de logiciels orientés objet du point de vue de l’inventeur de OO (Alan Kay). L’idée d’un environnement de fenêtrage qui se chevauchait venait 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 flux, tel que:

i < 60
   ifTrue: [ self walk ]

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

Smalltalk est généralement implémenté dans une image constituant un environnement dynamique pour tous les objets 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. Il s’agit d’un environnement basé sur la continuation qui permet un débogage intra-hit et une expérience de développement fluide du type Rich Client (le flux d’applications de pointe peut être conçu de manière unique). Son intégration à script.aculo.us a été réalisée de manière à pouvoir être facilement appelée depuis Smalltalk.

Nigel, voici une citation:

Même si cela fait longtemps que je n’ai rien fait avec cela, j’ai proposé la candidature de Smalltalk, je n’ai toujours rien rencontré de tel qui permette de transférer des idées en code informatique. Ce n'est pas seulement la langue: c'est l'environnement merveilleux du navigateur, les bibliothèques et la culture de l'écriture de code clair et bien conçu aussi rapidement que tout le reste peut créer des spaghettis. Lorsque les participants à JavaOne vantaient les mérites de la productivité de Java, il me fallait un sac en papier brun. Eh bien, retour à trier mes chemins de classes ... - Martin Fowler (Software Development Magazine, Jan 2001)

Je l'ai trouvé ici .

Je recommande à tous d'apprendre Lisp (Scheme) ou Smalltalk.

Les Smalltalks ont de merveilleux IDE que vous ne voudrez pas manquer une fois que vous aurez surmonté le choc culturel. Et oui, il en existe plusieurs gratuites: Squeak, Dolphin, Smalltalk / X et Visualworks (Non-Commercial).

Lisp est peut-être encore plus propre dans ses fondements mathématiques, cependant.

salutations

PS: en fait, je recommande d'apprendre les deux!

Je ne connais pas Ruby ..

Smalltalk est un langage OO pur . Si vous ressentez le besoin de vraiment comprendre OO, et pas seulement l'OO simulé des langages 'OO' les plus populaires (comme C ++, Java, etc.), alors je vous recommande de jouer avec smalltalk.

Dans Smalltalk, tout est un objet, avec des attributs, un comportement et une méta. Dans les simulations, vous utilisez des types de données que vous utilisez dans vos objets.

Je dirais que si vous jouez avec, vous ne pourrez que bénéficier.

Ne seriez pas d’accord avec l’affiche qui estime que vous n’utiliseriez pas Smalltalk pour les applications volumineuses - c’est précisément là où elle brille. Mais j'ai également créé des applications prototypes assez groovy (notez en minuscules) en moins d'une semaine.

J'ai appris OO à ST à partir de 92, incroyablement heureux de l'avoir fait. Cela m'a donné une vraie expérience en OO. Penser en cours. Aucun types. ST met vraiment l’accent sur la messagerie. Si vous voulez savoir quelque chose, envoyez un message à un objet et obtenez une réponse. IMHO, l'ethos et l'IDE vous encouragent vraiment à faire ce qu'il faut avec votre couplage et votre cohésion.

Dans mon travail quotidien en Java, je suis coincé avec des fichiers, des génériques, des IDE comme eclipse qui sont des ordres de grandeur moins productifs que n'importe quel IDE ST. J'utilisais ST la seule fois où j'ai terminé un développement plus tôt que prévu. En fait, cela a été très productif et nous avons tellement réutilisé que je devais être transféré dans un autre projet, car je n'avais rien à faire! (Ok, j'aurais peut-être pu passer du temps à apprendre à estimer ...)

Téléchargez Squeak, trouvez un bon livre et jouez. Le seul inconvénient est que si votre concert de jour utilise Java ou C #, vous finirez par souhaiter pouvoir utiliser ST. Vous rentrerez plus tôt à la maison.

Chris Brooks

Je suis totalement à votre place. J'utilise RoR et regarde dans les terres de Smalltalk. Voici quelques pros & amp; contre je trouve important:

Avantages:

  • Mature & amp; environnement stable
  • Cycle de développement rapide
  • Vous fait penser plus et écrire moins

Inconvénients:

  • Nécessite une réflexion différente
  • Vous ne comprenez toujours pas tout à fait

C’est assez drôle de voir comment je me suis familiarisé avec Smalltalk. C’est cette chose qui a fait son apparition dans les résultats de Google lors de la recherche de fichiers Lisp et Erlang. Un jour, j’ai jeté un coup d’œil et j’ai été émerveillé par le bel environnement Windows. Quelques instants plus tard, j'ai trouvé le cadre Aida / Web. J'étais accro et j'ai commencé à apprendre Smalltalk par le développement Web avec ce cadre.

Toujours pas tout à fait là, mais c'est tellement intéressant que je ne peux tout simplement pas rester immobile ... :-) Je m'amuse encore une fois.

Je ne commencerais pas à apprendre si j'avais le temps. Pourquoi pas? Parce que ce serait plus productif et plus lucratif financièrement d'apprendre le C # ou Java.

D’autre part, si vous êtes un amateur et que vous souhaitez effectuer une fouille archéologique, je vous conseillerais alors de consacrer un peu de temps à regarder les thèmes Quoi, Quand, Pourquoi et Comment de petites conversations en recherchant Alan Kay. Une histoire fascinante et une personne incroyable (après tout, il a remporté le Turning Award). Alors peut-être jouer avec grincer un peu pour avoir une idée de la langue. Après cela, vous pourriez avoir un respect / une compréhension nouvellement trouvé des blocs, des fermetures et des principes orientés objet.

Je connais et utilise Smalltalk, depuis environ 15 ans, le maintenant , et je ne recommanderais pas Smalltalk à un ami. Pourquoi pas? L'emploi est une bonne chose à avoir et à continuer à obtenir. Bien que vous puissiez apprendre beaucoup de Smalltalk, vous ne pouvez pas transformer cela facilement en une activité lucrative de nos jours.

De plus, vous avez semblé être enthousiasmé par Seaside et je supposerais le partenariat Seaside / GemStone. J'ai utilisé GemStone pendant un bon bout de temps et les deux réunis sont très attrayants. J'espère qu'ils pourront obtenir la part de marché et l'élan nécessaire pour réussir.

Ne pas! Si vous commencez vraiment à apprendre, vous ne voudrez peut-être plus programmer d’autre chose.

Cela peut ne pas être vrai si vous êtes un programmeur Lisp.

On m'a appris le Smalltalk dans l'un des premiers cours de programmation objet-orient de premier cycle universitaire (vers 1988). L’enseignant a estimé qu’il était préférable de commencer par un programme "pur". OO langauge, avant de passer à une version plus à la mode (nous avons utilisé un peu de C ++ à la fin du semestre).

Par cette mesure, il est toujours préférable de commencer par du pur OO, bien que de nos jours nous ayons Java & amp; C #, les deux étant "presque purs" OO - assez proche pour que vous puissiez en ignorer les fonctionnalités non-OO, et vous limiter au sous-ensemble Pure-OO des langues.

Si vous souhaitez mieux comprendre la programmation extrême (et même Scrum), je dirais oui .

Pourquoi les programmeurs Java impatients ont besoin d'apprendre le Smalltalk:

http: //www.dafydd. net / archive / 2010 / pourquoi-smalltalk-isnt-juste-une-autre-langue /

Je suis ingénieur en logiciel depuis plusieurs années maintenant. J'ai entendu des gens parler de Smalltalk à quelques reprises, et certes, Smalltalk existe depuis environ 1980, mais c'est l'une de ces langues qui n'a jamais semblé faire partie du courant dominant du logiciel. Un peu comme Objective C, CLIPS, PL / I, etc. - quelque chose dont vous avez peut-être entendu parler, mais que la plupart des gens n’ont jamais programmé.

Je ne prendrais probablement pas le temps d’apprendre le Smalltalk à moins que je n’aie besoin de faire un travail en particulier. J'ai regardé quelques tutoriels et exemples Smalltalk brièvement il y a quelques années, et il semble que cela présente des avantages évidents pour certains aspects de la programmation orientée objet (comme le concept du message semble cool). Mais malheureusement, ce n’est pas un courant dominant et ne semble pas gagner beaucoup de vitesse.

Absolument, apprenez le Smalltalk! Nous sommes en 2015 et Smalltalk est à nouveau en hausse grâce à Pharo . Pharo est GRATUIT. Pharo évolue rapidement pour devenir un puissant outil d'entreprise. Avec la version 4.0, et bientôt la 5.0, il a beaucoup mûri en seulement quatre ans!

Ensuite, il y a Amber , qui est Smalltalk pour le Web. C'est également GRATUIT et évolue rapidement.

Malgré la la réputation de Smalltalk , c'est Ce n'est pas le Smalltalk de votre père. Le Smalltalk moderne est passionnant et prometteur.

Il est vrai que les emplois en Smalltalk ne sont pas (encore) nombreux. Mais si vous êtes assez nombreux à former une nouvelle vague de Smalltalkers, le secteur s’y adaptera et nous verrons une adoption plus large de Smalltalk dans les affaires. La question est, avez-vous la vision?

Ce fil est devenu très actuel pour moi. Je prévois une migration de logiciel vers une application Web. C'est un logiciel basé sur une base de données. Je vérifie surtout les alternatives 1) Rails 2) Bord de mer

Si je peux obtenir les chiffres de la base de données Gemstone / S, je vais également en tenir compte. Donc, pour moi, cela signifie que je dois apprendre le Smalltalk (meilleur) qu'avant. Parce que cela pourrait être mon travail pour les 15 prochaines années. Vous voudriez (et ne devriez pas) travailler avec des logiciels que vous n'aimez pas aussi longtemps ;-). J'ai l'impression que Gemstone / S est l'un des "tueurs". applications. Mais la persistance des objets reste un domaine très difficile ....

1) Oui! C'est toujours bien d'apprendre une langue. Si vous souhaitez apprendre une langue, faites-en une langue puissante et influente qui puisse être apprise facilement et rapidement.

Smalltalk reste une langue et un environnement privilégiés pour l’apprentissage des concepts OO.

Ce sont tous les objets, tout en bas. Cela rend la méthode de travail vraiment cohérente.

Les entiers sont des instances de la classe Integer. Les chaînes sont une collection d'objets de caractère. Les classes sont des objets d’instance singleton pour la classe qu’elles définissent.

Les structures de contrôle fonctionnent en envoyant des messages get aux instances de Boolean de classe.

Même les méthodes anonymes (blocs de code, ou blocs) sont des objets.

Tout est fait en envoyant un message à un objet. La syntaxe peut être adaptée sur une carte postale.

La clarté des concepts et de leur mise en œuvre dans Smalltalk signifie que vous pouvez développer des modes de pensée transférés directement en Java, Ruby et C #. Je pense que cela vaut également pour Python.

C’est tellement bon de clarifier les concepts qu’une grande université britannique a utilisé Smalltalk pour former 5 000 personnes par an en informatique orientée objet.

Squeak 5, vient d'être publié. Sa nouvelle machine virtuelle Cog / Spur, dotée de la récupération progressive des ordures, a considérablement accru ses performances.

Pharo 4 a un joli thème de bureau propre. La prochaine version, Pharo 5, sera bientôt disponible. Elle utilisera désormais la machine virtuelle Cog / Spur. Elle contiendra environ 5 000 classes et des packages supplémentaires de classes seront facilement disponibles sur le réseau via l’outil Configuration Browser.

Squeak 5 est performant, même sur le Raspberry Pis de première génération, et est presque 50% plus rapide sur le nouveau Raspberry Pi zero à 5 $. 99 $ vous permettent d'acheter un écran, un écran et un boîtier Raspberry Pi 2 - exécutant un IDE mature et complet.

Des recherches de pointe sont en cours sur les systèmes OO distribués et coordonnés en Smalltalk (par exemple, Naiad et Spoon).

Certaines des plus grandes bases de données d'entreprise au monde sont exécutées sur Smalltalk, notamment le suivi de 60% des conteneurs d'expédition dans le monde et les systèmes de négociation de la plus grande banque du monde.

Vous pouvez utiliser Smalltalk comme une sorte de CoffeeScript super puissant, écrivant en Amber Smalltalk et transpirant en JavaScript, en cours d'exécution dans le navigateur.

Squeak, Pharo et Amber sont tous des langages et environnements libres, à code source ouvert et à licence ouverte.

Squeak et Pharo fournissent des fonctionnalités d’écriture unique pour MacOS, Windows et Linux. (Peut-être aussi Riscos).

Dolphin Smalltalk est clairement défini sur l'aspect et la convivialité Windows natifs et vous permet de compiler les fichiers .exés fermés de votre travail terminé afin de les distribuer aux utilisateurs finaux. Le développement de Dolphin par le vendeur s'est arrêté, mais il est complètement fonctionnel et, comme tous les Smalltalks, conçu pour être massivement extensible. (Ai-je mentionné que Pharo comptait maintenant 5 000 classes, contre 3 000 pour Squeak? Pharo est une fourchette de 3,9 pour Squeak)

** Il existe un guide pratique pour l'installation et le démarrage de Squeak, Amber, Pharo, Cuis et Dolphin à l'adresse: ** http: //beginningtosmalltalk.blogspot .co.uk / 2015/11 / comment-se-procurer-petit-parler-en-cours.html

Le cadre Web Seaside fonctionne sous Squeak et sur Pharo. C'est un merveilleux outil mature, tout comme le framework AidaWeb plus traditionnel.

VisualAge, VisualWorks et Gemstone fournissent tous des systèmes robustes de niveau entreprise. Gemstone fournit une base de données d’objets évolutive à l’infini avec transactions et persistance.

2) Oui, je l'utilise déjà.

Je l’ai appris via l’Open University et j’ai immédiatement été productif en Ruby (une copie du livre Pickaxe et la référence de la bibliothèque à mes côtés). Cela m'a énormément aidé avec Java et avec Xerox Moo-code.

Je viens d'y revenir pour écrire des applications afin de contrôler, gérer et distribuer des applications mobiles réactives et massivement multi-plateformes.

Je m'attends à une prochaine réécriture de mes applications mobiles JavaScript avec Amber également.

Je ne sais pas vraiment ce que vous cherchez.

Si vous recherchez une autre langue pour écrire, je pense que cela dépendra beaucoup des bibliothèques disponibles. Je ne connais ni Ruby ni Smalltalk, mais il semble probable que le moyen le plus efficace d’écrire des applications de type Ruby on Rails n’est peut-être pas le Smalltalk.

Si vous souhaitez apprendre les idées de Ruby, cela pourrait être une très bonne chose. Je n'ai rien de quantitatif, mais je me sentais toujours mieux d'utiliser des outils (tels que les systèmes de langage) si je connaissais plus que les outils, si je connaissais les idées qui les sous-tendaient ou comment ils fonctionnaient.

Si vous souhaitez apprendre différents types de langages orientés objet, vous pouvez également apprendre le Smalltalk (s’il diffère sensiblement de Ruby), quelque chose comme Java ou C ++, et peut-être aussi le système d’objets Lisp commun.

Si vous voulez juste apprendre quelque chose de différent, Smalltalk est peut-être un bon choix. Je suggérerais également Common Lisp, et d’autres personnes auront sans doute d’autres suggestions (pouvez-vous obtenir un bon système Forth de nos jours?).

Oui, ça m'intéresse. J'ai déjà essayé une fois, mais je n'ai pas pu trouver un environnement de développement Smalltalk qui ne coûte pas deux bras et une jambe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top