Tu veux apprendre le Smalltalk? [fermé]
mes questions sont simples!
- auriez-vous le temps d'apprendre le Smalltalk? Pourquoi? Pourquoi pas?
- connaissez-vous 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 j'ai lu divers blogs et certaines personnes appellent Ruby quelque chose comme "Smalltalk Light". Deuxième la raison pour laquelle je suis intéressé par Smalltalk est bord de mer .
peut-être que quelqu'un a déjà 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: épisode 52: Randal Schwartz on Seaside (among other things)
21 réponses
si tu aimes Ruby, Tu aimeras probablement Smalltalk. IIRC Seaside a été porté à la Gemstone VM, qui fait partie de leur Gemstone/SOODBMS. Ceci a un meilleur support de filetage que Ruby, donc c'est un meilleur back-end pour un système à haut volume. C'est peut-être une bonne raison de l'examiner de près.
raisons D'apprendre le Smalltalk:
-
C'est un environnement de programmation vraiment, vraiment agréable. Une fois que vous avez la tête autour de vous (il a tendance à être un peu d'un choc de culture pour les gens habitués à C++ ou Java), vous trouverez qu'il est un environnement vraiment bon pour travailler. Même un petit Talk vraiment merdique comme les vieux Digitalk que j'ai utilisé est un système remarquablement agréable à utiliser. Beaucoup des vieux types XP et O-O guru comme Kent Beck et Martin Fowler couper leurs dents sur Smalltalk retour dans le jour et peut parfois être entendu aspirant pour les bons vieux jours en public (merci à Frank Shearer pour la citation, +1) - Développement Agile provenait de cette plate-forme.
-
C'est l'une des plateformes de développement les plus productives de l'histoire.
-
plusieurs implémentations existent et il y a une base de code étonnamment grande là-bas. À 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 temps de mise sur le marché est assez important. 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 soutenu commercialement et adapté au développement d'applications.
-
le déploiement est facile - il suffit de déposer le fichier image dans le répertoire approprié.
-
Pas vraiment une raison, mais la Gang of four utilise Smalltalk pour un bon nombre de leurs exemples.
raisons de ne pas apprendre le Smalltalk:
-
C'est quelque chose d'un marché de niche. Vous pourriez avoir du mal à trouver du travail. Cependant, si vous produisez une sorte de .application com où vous possédez les serveurs cela pourrait ne pas être un problème.
-
par de nombreux. Il y a relativement peu de nouveaux développements sur la plate-forme (bien que Seaside semble conduire un peu d'une renaissance).
-
il a tendance à ne pas bien jouer avec les systèmes traditionnels de contrôle à la source (au moins depuis le début des années 90 quand je l'ai utilisé). Cela peut ou peut ne pas toujours être le cas.
-
il est un peu insulaire et aime jouer tout seul. Python ou Ruby sont construits pour l'intégration à partir le terrain et ont tendance à être plus promiscuous et donc plus facile à intégrer avec des logiciels tiers. Cependant, divers autres systèmes plus grand public souffrent de ce type d'insularité à un degré plus ou moins grand et cela ne semble pas entraver leur utilisation beaucoup.
Eh bien, puisque vous m'avez mentionné par mon nom, je pense que je devrais intervenir.
comme je l'ai dit dans cette interview de podcast, et comme je l'ai démontré à plusieurs reprises dans mon blog à http://MethodsAndMessages.vox.com / , c'est l'année de smalltalk ". Et après avoir fait Smalltalk plaidoyer pour les dix derniers mois, je peux voir qu'il est vraiment passe. De plus en plus de clients se tournent vers Smalltalk et Seaside, et les vendeurs Smalltalk sont tous en train de travailler dur pour capter ce nouvel afflux d'attention. D'autres conférences de Smalltalk de plus grande envergure sont prévues. Plus d'offres d'emploi sont affichées. D'autres Billets de blog sont affichés.
si vous vous tournez vers Smalltalk aujourd'hui, vous n'êtes pas seul. Il y a beaucoup d'autres qui sont là-bas aussi.
Modifier
Eh bien, quelques années plus tard, je recommande maintenant Dart à la place. Il s'agit d'un excellent langage créé par Google mais maintenant détenu par un comité ECMA. Il fonctionne serverside dans le noeud.js style, mais aussi clientside dans les navigateurs modernes en transposant à JavaScript. Beaucoup de bons livres, des blogs, aider les canaux IDE de soutien, public live pastebin . Je pense que c'est certainement eu les jambes... assez pour que j'écrive des didacticiels pour l'enseigner sur place ou en ligne, et je suis presque sûr qu'il y a un livre ou deux en cours de ma part. Et Gilad Bracha, un ancien Smalltalker est un contributeur majeur à la conception, donc il ya beaucoup de Smalltalk dans la fléchette.
Smalltalk est une bonne langue à apprendre, et la grande chose est qu'il ne prend qu'une journée pour le faire. C'est beaucoup plus que juste un langage académique. Les gens construisent des applications énormes, évolutives, reproductibles manipulant des milliards de dollars. Ils ont juste ne parle pas beaucoup. Voir, par exemple, GemStone and Orient Overseas Container Lines: Une Expédition De L'Industrie De L'Étude De Cas .
bord de Mer est une bonne raison d'apprendre Smalltalk, mais je ne pense pas tu le trouveras plus grand que les Rails.
la chose qui m'a convaincu était la pierre précieuse. J'aime vraiment le verre de Gemstone (GemStone, Linux, Apache, Smalltalk, Seaside). La partie tueuse de cela est la pierre précieuse, qui gère toute la persistance d'objet pour vous principalement sans que vous y pensiez. Voir certaines de leurs démos et entendre ce que les gens font avec GemStone réinitialiser mon idée de ce que "grande application" signifiait.
la partie qui le plus sur les Rails, c'est la cartographie des objets. Ce n'est rien contre Ruby parce que ça craint tout autant dans GLORP (qui gère ActiveRecord pour Smalltalk), Perl, ou n'importe quoi d'autre. Les objets de mappage de tables de base de données est tout simplement pénible. Avec GemStone, penser à la base de données disparaît, donc le travail avec la base de données disparaît aussi. C'est comme si une énorme pierre (ou une troupe de singes) m'était retirée du dos.
apprendre Smalltalk vous donnera une base dans le développement de logiciels orientés objet du point de vue de l'homme qui a inventé OO (Alan Kay). L'idée d'un cumul de fenêtrage environnement de Smalltalk.
une pierre d'achoppement pour apprendre Smalltalk est qu'il s'agit d'un système de passage de message avec une syntaxe étrange pour le contrôle de flux comme:
i < 60
ifTrue: [ self walk ]
il a une bibliothèque de classe très mature qui a une consistance que je n'ai pas vu trop de nombreux endroits. La bibliothèque de classe dans tous les environnements (même commercial Smalltalks) a la source disponible qui vous permet d'apprendre des maîtres de la langue. Lors de la programmation Smalltalk, je pose toujours la question: Comment est-ce fait dans l'environnement?
Smalltalk est généralement implémenté dans une image qui est un environnement live 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 nouvel éclairage. Il s'agit d'un environnement basé sur la continuation qui permet le débogage intra-hit et une expérience riche et fluide de développement de type Client (top application flow peut être conçu en une seule méthode). C'est l'intégration avec script.aculo.nous avons été faits d'une telle manière qu'il est facilement appelé de L'intérieur Smalltalk.
Nigel, j'ai une citation:
bien que cela fasse maintenant longtemps que je n'ai rien fait avec, je nomme Smalltalk, Je n'ai toujours pas rencontré quelque chose tout à fait comme elle pour être en mesure de transférer des pensées dans le 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 n'importe quoi d'autre peut crank out spaghetti. Lorsque les participants à JavaOne ont été vanter que Java était tellement plus productif que tout le reste, j'avais besoin d'un sac en papier brun. Oh bien, revenons à trier mes chemins de classe... -- Martin Fowler (Développement De Logiciels Magazine, Janvier 2001)
Je l'ai trouvé ici .
Je ne connais pas Ruby..
Smalltalk est un pure langage OO. Si vous ressentez le besoin de vraiment comprendre OO, et pas seulement l'OO simulé des langues les plus populaires 'OO' (comme C++, Java, etc), alors je vous recommande de jouer avec smalltalk.
En smalltalk tout est un objet, avec des attributs, de comportement et de méta. Dans les simulations, vous avez des types de données que vous utilisez dans vos objets.
je dirais jouer avec, vous ne profiterez.
ne serait pas d'accord avec l'affiche qui estime que vous N'utiliserez pas Smalltalk pour les grandes applications – c'est précisément là où il brille. Mais j'ai créé des applications prototypes assez groovy (note minuscules) en moins d'une semaine aussi.
j'ai appris OO à ST à partir de 92, incroyablement heureux que je l'ai fait. Ça m'a donné une vraie formation en OO. Pensée dans les classes. Pas de types. ST a un réel accent sur la messagerie. Si vous voulez savoir quelque chose d'envoyer un objet un message et obtenez une réponse. À mon humble avis, l' l'ethos et L'IDE vous encouragent vraiment à faire la bonne chose avec votre union et votre cohésion.
dans mon travail Java day, je suis coincé avec des fichiers, génériques, IDE comme eclipse qui sont des ordres de grandeur moins productifs que n'importe quel autre. J'utilisais ST la seule fois où j'ai fini un développement en avance sur le planning. En fait, c'était tellement productif, et nous avons eu tellement de réutilisation que j'ai dû être déplacée vers un autre projet, comme je n'avais rien à faire! (Ok, peut-être que j'aurais pu passer du temps à apprendre à estimer...)
télécharger squeak, trouver un bon livre et jouer. Le seul inconvénient est que si votre concert de jour utilise Java ou C#, vous finirez par souhaiter pouvoir utiliser ST. Tu rentrerais plus tôt.
Chris Brooks
je recommande à tout le monde D'apprendre le Lisp (Scheme) ou Smalltalk.
Smalltalks ont des IDEs merveilleux que vous ne voulez pas manquer une fois que vous avez surmonté le choc culturel. Et oui, il y en a plus d'une gratuite: Squeak, Dolphin, Smalltalk/X, et Visualworks (Non-commercial).
Lisp peut-être même plus propre dans ses mathématiques de la fondation.
concerne
PS: en fait, je recommande d'apprendre les deux !
je suis à ta place. J'utilise RoR et je regarde Smalltalk land. Voici quelques avantages et inconvénients que je trouve importants:
Pour:
- environnement Mature et stable "151970920 Rapide" cycle de développement
- vous fait penser plus et écrire moins
Inconvénients:
- nécessite différents penser
- n'a pas Encore tout à fait saisir
c'est assez drôle comment j'ai appris à connaître Smalltalk. C'est cette seule chose que keept surgit dans les résultats de Google lors de la recherche de Lisp et Erlang stuff. Un jour, j'ai vérifié et j'ai été étonné avec un environnement de fenêtres agréable. Quelques instants plus tard, J'ai trouvé Aida/web framework. J'ai été accroché et j'ai commencé à apprendre Smalltalk par le développement web avec ce cadre.
Pas encore tout à fait, mais c'est tellement intéressant que je ne peux pas rester immobile... :-) Je vais avoir du plaisir à nouveau.
ne commencerait pas à l'apprendre si j'en avais le temps. Pourquoi pas? Parce qu'il serait plus productif et lucratif financièrement d'apprendre C# ou Java.
d'un autre côté, si vous êtes un hobbyiste et que vous voulez faire une fouille archéologique, je vous suggérerais de passer un peu de temps à étudier le Quoi, Le quand, le pourquoi et le comment de smalltalk en faisant des recherches sur Alan Kay. Histoire fascinante et une personne incroyable (après tout, il a gagné le prix tournant). Alors peut-être jouer avec un bruit peu pour obtenir un sens de la langue. Après cela, vous pourriez avoir un respect/compréhension nouvellement trouvé des blocs, des fermetures, et des principes orientés objet.
je connais et utilise Smalltalk, ont depuis environ 15 ans, encore maintenir il, et ne recommanderait pas Smalltalk à un ami. Pourquoi pas? L'emploi est une bonne chose à avoir et à continuer d'obtenir. Bien que vous puissiez apprendre beaucoup de Smalltalk vous ne pouvez pas facilement transformer cela en étant employé en cette journée et l'âge.
aussi, vous avez semblé être enthousiasmé par Seaside et je suppose que le partenariat Seaside/GemStone. J'utilise des pierres précieuses depuis un certain temps et les deux ensemble sont très attrayants. J'espère qu'ils pourront obtenir de la part de marché et l'élan nécessaire pour réussir.
Smalltalk: obtenir le Message: http://www.smalltalk-resources.com/Smalltalk-Getting-the-Message.html
Non! Si vous commencez vraiment à l'apprendre, vous pourriez ne pas vouloir programmer dans quelque chose d'autre plus jamais.
cela peut ne pas être vrai, si vous êtes un programmeur lisp.
on m'a enseigné le Smalltalk dans l'un des premiers cours de programmation D'objets de niveau collégial (vers 1988). Le professeur a pensé qu'il était préférable de commencer par un "pur" oo langauge,avant de passer à un plus tendance (nous avons fait un peu de C++ à la fin du semestre).
par cette mesure, il est toujours préférable de commencer avec de l'OO pur, bien que ces jours nous avons Java & C#, qui sont tous les deux "presque pur" OO -- assez près que vous pouvez obtenir en ignorant le non-OO et se limiter au sous-ensemble pur-OO des langauges.
si vous voulez une meilleure compréhension de la programmation extrême (et même Scrum) je dirais Oui .
Pourquoi impatient Java programmeurs ont besoin d'apprendre Smalltalk:
http://www.dafydd.net/archive/2010/why-smalltalk-isnt-just-another-language/
je suis ingénieur logiciel depuis quelques années maintenant. J'ai entendu des gens parler de Smalltalk à quelques reprises, et 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 objectif 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écessaire pour une tâche particulière. Il y a quelques années, j'ai examiné brièvement quelques exemples de petits tutoriels et exemples, et il semble que cela présente des avantages évidents pour certains aspects de la programmation OO (comme le concept de message semble cool). Mais hélas, il n'est pas ordinaire, et ne semble pas prendre beaucoup d'élan.
absolument, apprenez Smalltalk! C'est 2015 et Smalltalk est de nouveau en hausse, grâce à Pharo . Pharo est libre. Pharo évolue rapidement en un puissant outils d'entreprise. À la Version 4.0, et bientôt 5.0, il a mûri beaucoup en seulement quatre ans!
puis il y a Amber , qui est Smalltalk pour le web. Il est aussi libre et évolue rapidement.
malgré Smalltalk's réputation , ce n'est pas le Smalltalk de votre père. Le Smalltalk moderne est passionnant et prometteur.
il est vrai que les emplois de la petite langue ne sont pas (encore) abondants. Mais si vous êtes assez nombreux pour former une nouvelle vague de petits vendeurs, alors l'industrie s'y adaptera et nous verrons l'adoption plus large de Smalltalk dans les affaires. La question Est, avez-vous la vision?
Ce fil est devenu très réel pour moi. Je planifie une migration logicielle 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 la Mer
si je peux obtenir les chiffres pour les pierres précieuses/S comme base de données, je considérerai cela aussi. Donc, pour moi, cela signifie que je dois apprendre Smalltalk (mieux) qu'avant. Parce que ça pourrait être mon travail pour les 15 prochaines années. Vous travailleriez (et ne devriez pas) avec un logiciel vous n'aimez pas pour longtemps ;-). J'ai l'impression que Gemstone/s est une des applications "tueuses". Mais la persistance des objets reste un domaine très difficile....
1) Oui! Il est toujours bon d'apprendre une langue. Si vous allez apprendre une langue, faites-en une langue puissante et influente qui peut être apprise facilement et rapidement.
Smalltalk reste une langue et un environnement de premier plan pour l'apprentissage des concepts OO.
ce sont tous des objets, tout en bas. Il en résulte une approche très cohérente du travail.
entiers sont des instances de classe Entier. Les cordes 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 classe Boolean.
même les méthodes anonymes (blocs de code, alias blocs) sont des objets.
tout se fait en envoyant un message à un objet. La syntaxe peut être ajustée sur une carte postale.
la clarté des concepts et leur implémentation dans Smalltalk signifie que vous pouvez développer des façons de penser qui se transfèrent directement dans Java, Ruby et C#. Je pense que C'est vrai pour Python aussi.
c'est tellement bon pour rendre les concepts clairs qu'une grande université du Royaume-Uni a utilisé Smalltalk pour former 5.000 personnes par an en informatique orientée objet.
Squeak 5, vient d'être libéré. La nouvelle VM Cog/Spur, qui offre des performances garbage-collection.
Pharo 4 a un beau thème de bureau propre. La prochaine version, Pharo 5, sortira bientôt. Il va passer à l'utilisation de la Cog / Spur VM, il aura environ 5.000 classes dans la version, et des paquets supplémentaires de classes sont facilement disponibles sur le net via L'outil de navigateur de Configuration.
Squeak 5 est performant même sur les Pi à la framboise de première génération, et est presque 50% plus rapide sur le nouveau Pi à la framboise de 5 $zéro. Achats de 99 $ vous un Raspberry Pi 2, écran et cas - exécution d'un mature, entièrement Fonction-complet IDE.
des recherches de pointe sont en cours sur les systèmes d'OO coordonnés et distribués dans Smalltalk (p. ex. Naiad et Spoon).
certaines des plus grandes bases de données d'entreprises au monde sont gérées sur Smalltalk - y compris le suivi de 60% des conteneurs d'expédition du monde, et les systèmes de commerce dans la plus grande banque du monde.
Vous pouvez utiliser Smalltalk comme une sorte de doté de super-pouvoirs CoffeeScript, écrit dans Ambre Smalltalk et transpiling de JavaScript s'exécutant dans le navigateur.
Squeak, Pharo, et Amber sont tous libres, open-source, open-licenced langues et environnements.
Squeak et Pharo fournissent write-once, runwhere facilities pour MacOS, Windows et Linux. (Éventuellement RiscOS, trop).
Dolphin Smalltalk est visé fermement par les fenêtres natives look-and-feel, et vous permet de compiler fermé .exe de votre travail fini pour la distribution aux utilisateurs finaux. Le développement ultérieur 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. (Est-ce que J'ai mentionné que Pharo a maintenant 5000 classes, comparé aux 3000 de Squeak? Pharo est un fork de Bruit 3.9)
**Il est un guide pour l'installation et le démarrage de Bruit, l'Ambre, le Pharo, Cuis et Dauphin: ** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk-up-and-running.html
le cadre de la toile de bord de mer court sur Squeak et sur Pharo. Il s'agit d'un outil très évolué, tout comme le cadre plus traditionnel de L'AidaWeb.
VisualAge, VisualWorks et Gemstone fournissent tous des systèmes robustes de qualité entreprise. Gemstone fournit une base de données d'objets à l'échelle infinie avec des transactions et de la persistance.
2) Oui - je l'utilise déjà.
Je l'ai appris par L'Université ouverte, et a été immédiatement productif à Ruby (une copie du Livre de Pickaxe et la référence de bibliothèque à mes côtés). Ça m'a énormément aidé avec Java, et avec Xerox Moo-code.
je viens d'y revenir pour écrire des applications pour gérer et distribuer des applications mobiles sensibles, massivement multi-plateformes.
je pense que bientôt Je vais réécrire mes applications mobiles JavaScript en utilisant Amber, aussi.
je ne sais pas vraiment ce que vous cherchez.
si vous cherchez une autre langue pour écrire, je pense que cela dépend fortement des bibliothèques disponibles. Je ne connais ni Ruby ni Smalltalk, mais il semble probable que la façon la plus efficace d'écrire Ruby on Rails-sortes d'applications peuvent ne pas être Smalltalk.
si vous cherchez à apprendre les idées derrière Ruby, ce pourrait être un très bon mouvement. Je n'ai rien quantitative, mais je me suis toujours senti mieux à propos de l'utilisation d'outils (tels que les systèmes linguistiques) si je savais plus que juste les outils, si je connais les idées derrière eux ou comment ils fonctionnent.
si vous voulez apprendre différentes sortes de langages orientés objet, vous pourriez bien vouloir apprendre Smalltalk (si elle diffère significativement de Ruby), quelque chose comme Java ou C++, et peut-être aussi le système D'objet Lisp commun.
Si vous voulez juste apprendre quelque chose de différent, Smalltalk pourrait bien être un bon choix. Je suggérerais aussi Lisp commun, 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 essayé de commencer une fois, mais je n'ai pas pu trouver un environnement de développement Smalltalk qui ne coûtait pas à la fois des bras et une jambe.