J'étudie Smalltalk en ce moment. Cela ressemble beaucoup à Python (en fait, le contraire, Python est très similaire à Smalltalk), alors je me demandais, comme un passionné de python, si cela vaut vraiment la peine de l'étudier. P>
Outre le passage du message, quelles sont les autres différences conceptuelles notables entre Smalltalk et Python qui pourrait me permettre de voir de nouveaux horizons de programmation? P>
5 Réponses :
en python, les constructions "de base" telles que [modifier] quelques exemples. P> Déclaration conditionnelle dans SmallTalk: p> NOTE Comment si / else code>, les opérateurs booléens à court-circuit et les boucles font partie de la langue elle-même. En Smalltalk, ce sont tous des messages seulement. En ce sens, tandis que Python et SmallTalk contentent que "tout est un objet", Smalltalk va plus loin dans la mesure où il affirme aussi que "tout est un message".
et: code> est un message sur
booléen code> (lui-même produit en conséquence de message de passage
> code> à
x code>) et le deuxième argument de
et: code> n'est pas une expression simple, mais un bloc, permettant à la paresse (c'est-à-dire Évaluation à court-circuit). Cela produit un autre objet
boolean code>, qui prend également en charge le message
iftrue: iffalse: code>, en prenant deux autres blocs (c.-à-d. Lambdas) comme des arguments et d'exécuter l'un ou l'autre en fonction de la valeur du booléen. p> p>
Tout-est-a-a-mutable-tout méta-folie ... J'aime beaucoup ça.
Regardez la recherche sur les points de vue ... qui vous souffleront.
Assez proche. iftrue: code> est un message à Boolean qui prend un bloc comme un argument.
SmallTalk Historiquement a eu une incroyable IDE intégrée. J'ai manqué cette IDE sur de nombreuses langues. P>
SmallTalk a également la belle propriété qu'il s'agit généralement d'un système de vie. Vous commencez propre et commencez à modifier les choses. Ceci est fondamentalement un système de stockage persistant objet. Cela étant dit, c'est à la fois bon et mauvais. Ce que vous exécutez fait partie de votre système et fait partie de ce que vous expédiez. Le système peut être configuré assez bien avant d'être distribué. Le côté bas, est que le système a tout ce que vous exécutez dans le cadre de ce que vous expédiez. Vous devez être un emballage très minutieux pour la redistribution. P>
Maintenant, cela étant dit, cela fait longtemps que je travaille avec SmallTalk (environ 20 ans). Oui, je sais, moments amusants pour ceux qui font les maths. SmallTalk est une belle langue, amusante à programmer, amusante à apprendre, mais j'ai trouvé un peu difficile à expédier les choses. P>
aime jouer avec elle si vous le faites. J'ai joué avec Python et je l'aime. P>
jacob p>
L'IDE a l'air assez mignon. Maintenant, si je pouvais voir du code ... ce serait encore mieux ..
L'aspect linguistique n'est souvent pas si important et de nombreuses langues sont tout à fait même em>, p>
De ce que je vois, Python et Smalltalk Partager des idéaux OOP ... mais sont très différents dans leur mise en œuvre et la puissance de l'interface de langue présentée. P>
La valeur réelle vient dans ce que les différences em> subtiles em> dans la syntaxe permettent en termes de mise en œuvre Regardez au-delà de la syntaxe et de la sémantique immédiate à ce que les différences subtiles permettent à la mise en œuvre de faire. P>
Par exemple: p>
Tout dans SmallTalk-80 est disponible pour modification de l'intérieur d'un programme en cours d'exécution P>
blockQuote>
Quelles différences entre Python et SmallTalk permettent une maniplation plus profonde de la maniplation? Comment la langue active la mise en œuvre du compilateur / d'exécution? P>
Comme quelqu'un de nouveau pour Smalltalk, les deux choses qui me frappent vraiment sont le système basé sur l'image et que la réflexion est partout. Ces deux faits simples semblent donner naissance à tout ce qui est cool dans le système: P>
Tout ce qui précède commence à se réunir de manière cool: p>
Le système d'image et la réflexion ont fait toutes ces choses parfaitement naturelles et normales pour un smallTalker pendant environ trente ans. P>
La langue SmallTalk elle-même est très importante. Il comprend un petit ensemble de fonctionnalités orthogonales puissantes qui rend la langue très extensible. Comme Alan Lovejoy dit: "SmallTalk est également amusant, car la définition et l'utilisation de langues spécifiques sur le domaine em> n'est pas une réflexion après coup, c'est la seule façon qui fonctionne de Smalltalk Works du tout." La notation linguistique est essentiellement importante car: "Les différences de la puissance expressive de la notation de programmation utilisée font de compte." Pour plus, lisez l'article complet ici . P>
Question offtopique: qu'est-ce que vous utilisez pour courir SmallTalk? La seule chose que j'ai trouvée il y a des années était grincante que je n'ai pas trop aimé. Qu'est-ce que tu utilises pour apprendre.
Je viens d'installer des grincements, mais il y a aussi gnu smalltalk. Malheureusement, j'ai besoin de fins pour ce dernier et je suis trop paresseux d'installer Fink sur mon ancien ordinateur portable.