Würdest du anfangen Smalltalk zu lernen? [geschlossen]


81

Meine Fragen sind einfach!

  1. Würden Sie Smalltalk lernen, wenn Sie Zeit hätten? Warum? Warum nicht?
  2. Kennen Sie Smalltalk bereits? Warum würden Sie Smalltalk empfehlen? Warum nicht?

Persönlich bin ich ein Ruby on Rails-Programmierer und ich mag es wirklich. Ich denke jedoch an Smalltalk, weil ich verschiedene Blogs lese und einige Leute Ruby so etwas wie "Smalltalk Light" nennen. Der zweite Grund, warum ich mich für Smalltalk interessiere, ist Seaside .

Vielleicht hat jemand schon einmal den gleichen Übergang gemacht?

EDIT: Eigentlich hat mich Smalltalk / Seaside am meisten begeistert: Die folgende Episode von WebDevRadio: Episode 52: Randal Schwartz on Seaside (unter anderem)

Antworten:


61

Wenn Sie Ruby mögen, werden Sie wahrscheinlich Smalltalk mögen. IIRC Seaside wurde auf die Gemstone VM portiert , die Teil ihres Gemstone / S OODBMS ist. Dies hat eine viel bessere Thread-Unterstützung als Ruby, daher ist es ein besseres Back-End für ein System mit hohem Volumen. Dies könnte ein guter Grund sein, sich das genauer anzusehen.

Gründe, Smalltalk zu lernen:

  • Es ist eine sehr, sehr schöne Programmierumgebung. Wenn Sie sich erst einmal damit beschäftigt haben (es ist für Leute, die an C ++ oder Java gewöhnt sind, eher ein Kulturschock), werden Sie feststellen, dass es eine wirklich gute Arbeitsumgebung ist. Sogar ein wirklich beschissenes Smalltalk wie das Alte Digitalk-Systeme, die ich verwendet habe, sind ein bemerkenswert angenehmes System. Viele der alten XP- und OO-Guru-Typen wie Kent Beck und Martin Fowler haben sich früher auf Smalltalk die Zähne geschnitten und können gelegentlich hören, wie sie sich in der Öffentlichkeit nach den guten alten Tagen sehnen (Dank an Frank Shearer für das Zitat, +1) - Die agile Entwicklung entstand auf dieser Plattform.

  • Es ist eine der produktivsten Entwicklungsplattformen in der Geschichte.

  • Es gibt mehrere ausgereifte Implementierungen und es gibt eine überraschend große Codebasis. Irgendwann wurde es in Finanzmarktkreisen ziemlich trendy, in denen Entwicklerproduktivität und Time-to-Market eine große Rolle spielen. Bis Mitte der neunziger Jahre war es mehr oder weniger das einzige Spiel in der Stadt (mit der möglichen Ausnahme von LISP), wenn Sie eine kommerziell unterstützte Hochsprache wollten, die für die Anwendungsentwicklung geeignet war.

  • Die Bereitstellung ist einfach - legen Sie die Image-Datei einfach im entsprechenden Verzeichnis ab.

  • Nicht wirklich ein Grund, aber das Gang of Four Book verwendet Smalltalk für einige ihrer Beispiele.

Gründe, Smalltalk nicht zu lernen:

  • Es ist so etwas wie ein Nischenmarkt. Möglicherweise haben Sie Probleme, Arbeit zu finden. Wenn Sie jedoch eine Art .com-Anwendung erstellen, in der Sie die Server besitzen, ist dies möglicherweise kein Problem.

  • Es wird von vielen als Legacy-System angesehen. Es gibt relativ wenig neue Entwicklungen auf der Plattform (obwohl Seaside eine Renaissance zu erleben scheint).

  • Es spielt sich normalerweise nicht gut mit herkömmlichen Versionsverwaltungssystemen (zumindest ab Mitte der 90er Jahre, als ich es verwendet habe). Dies kann immer noch der Fall sein oder nicht.

  • Es ist etwas insular und spielt gerne alleine. Python oder Ruby wurden für die Integration von Grund auf entwickelt und sind in der Regel promiskuitiver und daher einfacher in Software von Drittanbietern zu integrieren. Jedoch verschiedene andere mehr Mainstream leiden Systeme von dieser Art von Engstirnigkeit zu einem mehr oder weniger stark und das scheint nicht ihre Nutzung viel zu behindern.


1
Ruby wurde auch nach Gemstone portiert: Es heißt Maglev: infoq.com/news/2008/04/maglev-gemstone-builds-ruby
brian d foy

Was meinst du mit "es spielt normalerweise nicht gut mit herkömmlichen Versionsverwaltungssystemen"?
Detly

4
Die Art und Weise, wie ein traditioneller Smalltalk-Quellcode gespeichert wurde, bedeutete, dass er in das Bild und die zugehörigen Quellen eingebettet war und Dateien änderte. Sie haben keine schönen, sauberen Programmdateien erhalten, wie Sie sie mit (sagen wir) C erhalten würden. Smalltalk-Systeme erforderten in der Regel spezielle Smalltalk-fähige Versionsverwaltungssysteme, die in der Regel (a) proprietär, (b) teuer und ( c) mit allem anderen nicht kompatibel.
ConcernedOfTunbridgeWells

Und hoffentlich wird Monticello (a) und (b) dieser Probleme ansprechen. Squeak verwendet es bereits stark und SqueakSource hat viele, viele Projekte, die es verwenden. Es hat immer noch Warzen. Sobald die Git-Monticello-Projekte tatsächlich in Gebrauch sind, wird (c) hoffentlich auch auf der Strecke bleiben.
Frank Shearar

2
Die Antwort gefällt mir im Allgemeinen, aber Smalltalk spielt mit Software von Drittanbietern einwandfrei. Die Tatsache, dass Sie nicht viele APIs sehen, liegt nicht daran, dass Sie sie technisch nicht integrieren können, sondern daran, dass es sich um eine Nische handelt (daher benötigen weniger Menschen externe Software). Ein sekundärer Grund für diesen Effekt (der auch nicht technisch ist) ist, dass Smalltalker es vorziehen, Probleme mit Smalltalk zu behandeln, anstatt mit anderen weniger unterhaltsamen Technologien.
Sebastian Sastre

45

Nun, da Sie mich beim Namen genannt haben, sollte ich mich einschalten.

Wie ich in diesem Podcast-Interview sagte und wie ich wiederholt in meinem Blog unter http://MethodsAndMessages.vox.com/ gezeigt habe , ist dies " das Jahr des Smalltalk ". Und nachdem ich mich in den letzten zehn Monaten für Smalltalk eingesetzt habe, kann ich sehen, dass es wirklich passiert. Immer mehr Kunden wenden sich an Smalltalk und Seaside, und alle Smalltalk-Anbieter arbeiten hart daran, diesen neuen Aufmerksamkeitsschub zu gewinnen. Weitere größere Smalltalk-Konferenzen sind in Planung. Weitere Stellenausschreibungen werden veröffentlicht. Weitere Blogpostings werden gemacht.

Wenn Sie sich heute an Smalltalk wenden, sind Sie nicht allein. Es gibt viele andere, die auch da draußen sind.

Bearbeiten

Nun, einige Jahre später empfehle ich stattdessen Dart . Es ist eine großartige Sprache, die von Google stammt und jetzt einem ECMA-Komitee gehört. Es wird serverseitig im Stil von node.js ausgeführt, aber auch clientseitig in modernen Browsern, indem es in JavaScript transpiliert wird. Viele gute Bücher, Blogs, Hilfekanäle, IDE-Unterstützung, öffentlicher Live-Pastebin . Ich denke, es hat definitiv Beine ... genug, damit ich Kursunterlagen schreibe, um sie vor Ort oder online zu unterrichten, und ich bin mir ziemlich sicher, dass ein oder zwei Bücher von mir in Arbeit sind. Und Gilad Bracha, ein Smalltalker aus alter Zeit, leistet einen wichtigen Beitrag zum Design, daher gibt es in Dart viel Smalltalk.


2
Deshalb ist Stack Overflow cool! Vielen Dank für Ihre Antwort!
Christoph Schiessl

Können Sie aus Neugier auf den Zufluss von Aufmerksamkeit eingehen - irgendwelche Ideen, woher der Mindshare kommt?
ConcernedOfTunbridgeWells

Ruby hat sicherlich geholfen, ich denke auch Javascript und Objective-C. Für Leute, die das reine OO-Ding nicht verstehen, bieten diese Sprachen einen vertrauten Ausgangspunkt, von dem aus man extrapolieren kann, wie Smalltalk glänzt.
Damien Pollet

Dann haben die Seaside-Jungs gute PR gemacht, Avi Bryant mit DabbleDB und der Maglev-Coup bei Rails conf, und Randal ist auch ziemlich lautstark :) Auch Lars Bak von Google V8 kommt von Self ... es gab viele winzige Hinweise wie diese, die alle darauf hindeuteten bei Smalltalk und Lisp, seltsame Sprachen aus der Zukunft in der Vergangenheit :)
Damien Pollet

29

Smalltalk ist eine gute Sprache zum Lernen, und das Tolle ist, dass es nur einen Tag dauert, um es zu tun. Es ist viel mehr als nur eine akademische Sprache. Die Leute bauen riesige, skalierbare und replizierbare Anwendungen, die Milliarden von Dollar verarbeiten. Sie reden einfach nicht viel darüber. Siehe zum Beispiel GemStone und Orient Overseas Container Lines: Eine Fallstudie der Schifffahrtsindustrie .

Seaside ist ein guter Grund, Smalltalk zu lernen, aber ich glaube nicht, dass Sie es um Größenordnungen besser finden werden als Rails.

Was mich überzeugt hat, war GemStone. Ich mag Gemstones GLAS (GemStone, Linux, Apache, Smalltalk, Seaside) sehr. Der Killer-Teil davon ist GemStone, das die gesamte Objektpersistenz für Sie erledigt, meistens ohne dass Sie darüber nachdenken. Als ich einige ihrer Demos sah und hörte, was die Leute mit GemStone machen, setzte ich meine Vorstellung davon zurück, was "große Anwendung" bedeutet.

Der Teil, der mich am meisten an Rails stört, ist das objektrelationale Mapping. Das ist nichts gegen Ruby, weil es in GLORP (das ActiveRecord für Smalltalk handhabt) oder Perl oder irgendetwas anderem genauso hart saugt. Das Zuordnen von Objekten zu Datenbanktabellen ist nur schmerzhaft. Bei GemStone verschwindet das Nachdenken über die Datenbank, sodass auch die Arbeit mit der Datenbank verschwindet. Es ist, als würde mir ein riesiger Stein (oder eine Truppe Affen) vom Rücken genommen.


1
Ich wünschte, ich könnte zweimal abstimmen ... Ich stimme vollkommen zu.
Sébastien RoccaSerra

1
+1 für die Überlegenheit von ODB gegenüber ORM. von einem zum anderen zu gehen ist definitiv etwas, das man fühlen
ryan0

15

> konnte keine Smalltalk-Entwicklungsumgebung finden, die weder Arme noch Bein kostete

Google - kostenloses Smalltalk

Cincom Smalltalk, Quietschen, GNU Smalltalk


Quietschen ist wirklich schön! Pure OOP, komplett grafisch, schöne Benutzeroberfläche, Open Source (einige sind sich nicht einig), mehr oder weniger portabel ...
Joe Pineda

1
+1 für Squeak, und es hat eine großartige Community mit einer schönen Mailingliste für Anfänger.
Sébastien RoccaSerra

+1 für Squeak ist der Objekt-Explorer (oder wie auch immer er heißt) von unschätzbarem Wert, um zu lernen, wie das Objektmodell funktioniert.
Mauricio Scheffer

3
Pharo ist kostenlos und hat alle modernen Werkzeuge ..
Dafydd Rees

15

Wenn Sie Smalltalk lernen, erhalten Sie eine Grundlage für die objektorientierte Softwareentwicklung aus der Sicht des Mannes, der OO erfunden hat (Alan Kay). Die Idee einer überlappenden Fensterumgebung kam von Smalltalk.

Ein Stolperstein beim Erlernen von Smalltalk ist, dass es sich um ein Nachrichtenübermittlungssystem mit einer seltsamen Syntax für die Flusskontrolle handelt, wie:

i < 60
   ifTrue: [ self walk ]

Es hat eine sehr ausgereifte Klassenbibliothek mit einer Konsistenz, die ich nicht zu oft gesehen habe. Die Klassenbibliothek in allen Umgebungen (auch in kommerziellen Smalltalks) verfügt über eine verfügbare Quelle, mit der Sie von den Meistern der Sprache lernen können. Beim Programmieren von Smalltalk stelle ich immer die Frage, wie es in der Umgebung gemacht wird.

Smalltalk wird im Allgemeinen in einem Image implementiert, das eine Live-Umgebung für alle Objekte in Ihrem System darstellt.

Der interaktive Debugger trennt Smalltalk wirklich von Ruby.

Seaside ist das Webentwicklungs-Framework und hat Smalltalk einen neuen Schwerpunkt gegeben. Es handelt sich um eine auf Kontinuität basierende Umgebung, die das Debuggen innerhalb eines Treffers und eine reibungslose Entwicklung des Rich Client-Typs ermöglicht (der beste Anwendungsfluss kann in einer einzigen Methode entworfen werden). Die Integration mit script.aculo.us wurde so durchgeführt, dass sie in Smalltalk leicht aufgerufen werden kann.


1
Die Syntax ist nicht seltsam - es ist eigentlich sehr elegant. Es muss wie folgt gelesen werden: Hey, was auch immer Ihr Ergebnis von "i <60" ist, hier ist ein Stück Code (Code-Objekt als Argument übergeben), das ausgewertet werden muss, wenn Sie glauben, dass Sie wahr sind. Das Lustige ist, dass es sogar funktioniert, wenn "i <60" ein unscharfes, statistisches Ding zurückgibt.
blabla999

... und diese unscharfe, statistische Sache kann dann (als Methode) entscheiden, wie sie damit umgehen soll. Es gibt keine einzige eingebaute Operator- oder Steuerungsstruktur, die auf diese Weise nicht neu definiert werden kann.
blabla999

10

Nigel, ein Zitat, das ich habe, ist folgendes:

Obwohl es nun lange her ist, dass ich etwas damit gemacht habe, nominiere ich Smalltalk, aber ich bin immer noch nicht auf etwas Ähnliches gestoßen, um Gedanken in Computercode übertragen zu können. Es ist nicht nur die Sprache: Es ist die wunderbare Browser-Umgebung, die Bibliotheken und die Kultur, klaren, gut gestalteten Code so schnell zu schreiben, wie alles andere Spaghetti hervorbringen kann. Als die Teilnehmer von JavaOne lobten, dass Java so viel produktiver ist als alles andere, brauchte ich eine braune Papiertüte. Na ja, zurück zum Sortieren meiner Klassenpfade ... - Martin Fowler (Software Development Magazine, Januar 2001)

Ich habe es hier gefunden .


9

Ich würde dem Poster nicht zustimmen, das davon ausgeht, dass Sie Smalltalk nicht für große Apps verwenden würden - genau dort scheint es. Aber ich habe auch in weniger als einer Woche ziemlich groovige Prototyp-Apps (Kleinbuchstaben beachten) erstellt.

Ich habe OO in ST ab 92 gelernt, unglaublich froh, dass ich das getan habe. Es gab mir einen echten Hintergrund in OO. Im Unterricht denken. Keine Typen. ST legt großen Wert auf Messaging. Wenn Sie etwas wissen möchten, senden Sie einem Objekt eine Nachricht und erhalten Sie eine Antwort. IMHO, das Ethos und die IDE ermutigen Sie wirklich, das Richtige mit Ihrer Kopplung und Ihrem Zusammenhalt zu tun.

In meinem Java-Tagesjob stecke ich mit Dateien, Generika und IDEs wie Eclipse fest, die um Größenordnungen weniger produktiv sind als jede ST-IDE. Ich habe ST das einzige Mal verwendet, als ich eine Entwicklung vorzeitig abgeschlossen habe. Tatsächlich war es so produktiv und wir wurden so oft wiederverwendet, dass ich zu einem anderen Projekt versetzt werden musste, da ich nichts zu tun hatte! (Ok, vielleicht hätte ich Zeit damit verbringen können, das Schätzen zu lernen ...)

Laden Sie quietschen herunter, finden Sie ein gutes Buch und spielen Sie. Der einzige Nachteil ist, dass Sie sich am Ende wünschen, Sie könnten ST verwenden, wenn Ihr Tagesauftritt Java oder C # verwendet. Du würdest früher nach Hause kommen.

Chris Brooks


9

Ich empfehle jedem, Lisp (Schema) oder Smalltalk zu lernen.

Smalltalks haben wundervolle IDEs, die Sie nicht missen möchten, wenn Sie den Kulturschock überwunden haben. Und ja, es gibt mehr als eine kostenlose: Squeak, Dolphin, Smalltalk / X und Visualworks (Non-Comercial).

Lisp kann jedoch in seiner mathematischen Grundlage noch sauberer sein.

Grüße

PS: Eigentlich empfehle ich beides zu lernen!


8

Ich kenne Ruby nicht ..

Smalltalk ist eine reine OO-Sprache. Wenn Sie das Bedürfnis haben, OO wirklich zu verstehen, und nicht nur das simulierte OO der beliebtesten 'OO'-Sprachen (wie C ++, Java usw.), würde ich Ihnen empfehlen, mit Smalltalk zu spielen.

In Smalltalk ist alles ein Objekt mit Attributen, Verhalten und Meta. In den Simulationen haben Sie Datentypen, die Sie in Ihren Objekten verwenden.

Ich würde sagen, spielen Sie damit, Sie werden nur profitieren.


1
In SmallTalk sind sogar "Klassen" Objekte, Instanzen der Klassenklasse !!! Das hat mich verrückt gemacht, bis ich es geschafft habe!
Joe Pineda

1
Ruby ist auch eine reine OO-Sprache in dem Sinne, dass selbst Klassen Objekte sind. Dies gilt auch für Blöcke, Methoden und die Referenz eines Nullzeigers.
Alan

4
Ruby nimmt (Matz wird dies frei angeben) viele Ideen von Smalltalk. In vielerlei Hinsicht kann es als eine "pragmatische" (Entschuldigung an Hunt und Thomas) Smalltalk-ähnliche Sprache angesehen werden.
ConcernedOfTunbridgeWells

7

Ich bin total in deinen Schuhen. Ich benutze RoR und schaue in Smalltalk Land. Hier sind einige Vor- und Nachteile, die ich wichtig finde:

Vorteile:

  • Reife und stabile Umgebung
  • Schneller Entwicklungszyklus
  • Lässt Sie mehr nachdenken und weniger schreiben

Nachteile:

  • Erfordert anderes Denken
  • Ich habe es immer noch nicht ganz verstanden

Es ist ziemlich lustig, wie ich von Smalltalk erfahren habe. Es war diese eine Sache, die bei der Suche nach Lisp- und Erlang-Inhalten in den Google-Ergebnissen immer wieder auftauchte. Eines Tages habe ich es ausprobiert und war begeistert von der schönen Windows-Umgebung. Wenige Momente später habe ich Aida / Web Framework gefunden. Ich war begeistert und begann Smalltalk durch Webentwicklung mit diesem Framework zu lernen.

Immer noch nicht ganz da, aber es ist so verdammt interessant, dass ich einfach nicht still sitzen kann ... :-) Ich habe wieder Spaß.


5

Ich würde es nicht lernen, wenn ich Zeit hätte. Warum nicht? Weil es finanziell produktiver und lukrativer wäre, C # oder Java zu lernen.

Auf der anderen Seite, wenn Sie ein Hobbyist sind und eine archäologische Ausgrabung machen möchten, dann würde ich vorschlagen, einige Zeit damit zu verbringen, das Was, Wann, Warum und Wie von Smalltalk zu untersuchen, indem Sie Alan Kay untersuchen. Faszinierende Geschichte und eine unglaubliche Person (schließlich hat er den Turning Award erhalten). Dann spielen Sie vielleicht ein wenig mit Quietschen, um ein Gefühl für die Sprache zu bekommen. Danach haben Sie möglicherweise einen neu gefundenen Respekt / Verständnis für Blöcke, Abschlüsse und objektorientierte Prinzipien.

Ich kenne und benutze Smalltalk, habe es seit ungefähr 15 Jahren, pflege es immer noch und würde Smalltalk keinem Freund empfehlen. Warum nicht? Beschäftigung ist eine gute Sache zu haben und immer weiter zu bekommen. Obwohl Sie von Smalltalk viel lernen können, können Sie dies heutzutage nicht einfach in eine Erwerbstätigkeit umwandeln.

Außerdem schienen Sie von Seaside begeistert zu sein, und ich würde die Partnerschaft zwischen Seaside und GemStone übernehmen. Ich habe GemStone schon seit einiger Zeit benutzt und die beiden zusammen sind sehr ansprechend. Ich hoffe, dass sie den Marktanteil und die Dynamik erhalten, die erforderlich sind, um erfolgreich zu sein.


5

Nicht! Wenn Sie wirklich anfangen, es zu lernen, möchten Sie vielleicht nie mehr etwas anderes programmieren.

Dies ist möglicherweise nicht der Fall, wenn Sie ein Lisp-Programmierer sind.



4

Lernen Sie unbedingt Smalltalk! Dies ist 2015 und Smalltalk ist dank Pharo wieder auf dem Vormarsch . Pharo ist KOSTENLOS. Pharo entwickelt sich schnell zu einem leistungsstarken Unternehmenstool. In Version 4.0 und bald auf 5.0 ist es in nur vier Jahren sehr gereift!

Dann gibt es noch Amber , Smalltalk für das Web. Es ist auch KOSTENLOS und entwickelt sich schnell.

Trotz des Rufs von Smalltalk ist dies nicht der Smalltalk Ihres Vaters. Modern Smalltalk ist aufregend und vielversprechend.

Es ist wahr, dass Smalltalk-Jobs (noch) nicht reichlich vorhanden sind. Wenn sich jedoch genug von Ihnen zu einer neuen Welle von Smalltalkern zusammenschließen, wird sich die Branche darauf einstellen und wir werden eine breitere Akzeptanz von Smalltalk in Unternehmen sehen. Die Frage ist, haben Sie die Vision?


3

Ich erhielt Smalltalk in einem der ersten objektorientierten Programmierkurse auf Hochschulniveau (ca. 1988). Der Lehrer hielt es für das Beste, mit einer "reinen" OO-Sprache zu beginnen, bevor er zu einer trendigeren überging (wir haben am Ende des Semesters ein bisschen C ++ gemacht).

Aus diesem Grund ist es immer noch am besten, mit reinem OO zu beginnen, obwohl wir heutzutage Java & C # haben, die beide "fast reines" OO sind - nah genug, dass Sie die Nicht-OO-Funktionen ignorieren können. und beschränken Sie sich auf die Pure-OO-Teilmenge der Sprachen.



3

Ich bin jetzt seit einigen Jahren Softwareentwickler. Ich habe ein paar Mal gehört, wie Leute Smalltalk angesprochen haben, und Smalltalk gibt es sicherlich seit etwa 1980, aber es ist eine dieser Sprachen, die es nie in den Software-Mainstream geschafft zu haben schien. So ähnlich wie Objective C, CLIPS, PL / I usw. - etwas, von dem Sie vielleicht gehört haben, das die meisten Leute jedoch noch nie programmiert haben.

Ich würde mir wahrscheinlich nicht die Zeit nehmen, Smalltalk zu lernen, es sei denn, ich müsste es für einen bestimmten Job tun. Ich habe mir vor einigen Jahren einige Smalltalk-Tutorials und -Beispiele kurz angesehen, und es sieht so aus, als hätte es einige klare Vorteile für bestimmte Aspekte der OO-Programmierung (wie das Nachrichtenkonzept cool erscheint). Leider ist es kein Mainstream und scheint nicht viel an Dynamik zu gewinnen.


3
Objective-C ... glaube nicht, dass die Aussage noch ab 2012 steht. :)
sjas

@sjas Wie wahr! Alles, was Smalltalk jetzt benötigt, ist, dass ein großer Entwickler einen neuen Nischenmarkt für Geräte schafft und Smalltalk als defacto-Sprache für das Schreiben von Apps für das Gerät spezifiziert!
Oger Psalm33

2

Dieser Thread ist für mich sehr aktuell geworden. Ich plane eine Softwaremigration zu einer Webanwendung. Es ist eine datenbankbasierte Software. Ich überprüfe besonders die Alternativen 1) Schienen 2) Meer

Wenn ich die Zahlen für den Gemstone / S als Datenbank erhalten kann, werde ich das auch berücksichtigen. Für mich bedeutet das, dass ich Smalltalk (besser) lernen muss als zuvor. Weil es sein könnte, dass es meine Arbeit für die nächsten 15 Jahre sein wird. Sie würden (und sollten) nicht so lange mit Software arbeiten, die Sie nicht mögen ;-). Ich habe den Eindruck, dass Gemstone / S eine der "Killer" -Anwendungen ist. Aber die Persistenz von Objekten ist immer noch ein sehr schwieriges Feld ....


2

1) Ja! Es ist immer gut, eine Sprache zu lernen. Wenn Sie eine Sprache lernen möchten, machen Sie sie zu einer mächtigen, einflussreichen Sprache, die einfach und schnell erlernt werden kann.

Smalltalk bleibt eine herausragende Sprache und Umgebung für das Erlernen von OO-Konzepten.

Es sind alles Objekte, ganz nach unten. Dies sorgt für einen wirklich konsistenten Arbeitsansatz.

Ganzzahlen sind Instanzen der Klasse Ganzzahl. Strings sind eine Sammlung von Zeichenobjekten. Klassen sind Singleton-Instanzobjekte für die von ihnen definierte Klasse.

Steuerungsstrukturen senden Get-Nachrichten an Instanzen der Klasse Boolean.

Sogar anonyme Methoden (Codeblöcke, auch Blöcke genannt) sind Objekte.

Alles wird durch Senden einer Nachricht an ein Objekt erledigt. Die Syntax kann auf eine Postkarte angepasst werden.

Durch die Klarheit der Konzepte und ihre Implementierung in Smalltalk können Sie Denkweisen entwickeln, die direkt in Java, Ruby und C # übertragen werden. Ich gehe davon aus, dass dies auch für Python gilt.

Es ist so gut, um die Konzepte klar zu machen, dass eine große britische Universität Smalltalk verwendete, um jährlich 5.000 Menschen in objektorientiertem Computing zu schulen.

Squeak 5 wurde gerade veröffentlicht. Die neue Cog / Spur-VM mit progressiver Speicherbereinigung hat erhebliche Leistungssteigerungen erzielt.

Pharo 4 hat ein schönes, sauber aussehendes Desktop-Thema. Die nächste Version, Pharo 5, wird in Kürze veröffentlicht. Es wird auf die Verwendung der Cog / Spur-VM umgestellt, es werden ungefähr 5.000 Klassen in der Version enthalten sein, und zusätzliche Klassenpakete sind über das Konfigurationsbrowser-Tool im Internet verfügbar.

Squeak 5 ist selbst bei Himbeer-Pis der ersten Generation leistungsfähig und beim neuen Raspberry Pi Zero für 5 US-Dollar fast 50% schneller. Mit 99 US-Dollar erhalten Sie einen Raspberry Pi 2, einen Bildschirm und eine Hülle, auf denen eine ausgereifte IDE mit allen Funktionen ausgeführt wird.

In koordinierten, verteilten OO-Systemen in Smalltalk (z. B. Naiad und Spoon) wird Spitzenforschung betrieben.

Einige der weltweit größten Unternehmensdatenbanken werden auf Smalltalk ausgeführt - einschließlich der Verfolgung von 60% der weltweiten Versandbehälter und Handelssysteme in der weltweit größten Bank.

Sie können Smalltalk als eine Art leistungsstarkes CoffeeScript verwenden, in Amber Smalltalk schreiben und in JavaScript transpilieren, das im Browser ausgeführt wird.

Squeak, Pharo und Amber sind kostenlose Open-Source-Sprachen und -Umgebungen mit offener Lizenz.

Squeak und Pharo bieten einmaliges Schreiben und können überall für MacOS, Windows und Linux ausgeführt werden. (Möglicherweise auch RiscOS).

Dolphin Smalltalk ist fest auf das native Windows-Erscheinungsbild ausgerichtet und ermöglicht es Ihnen, geschlossene EXE-Dateien Ihrer fertigen Arbeit für die Verteilung an Endbenutzer zu kompilieren. Die Weiterentwicklung von Dolphin durch den Anbieter wurde eingestellt, ist jedoch voll funktionsfähig und wie alle Smalltalks so konzipiert, dass sie massiv erweiterbar ist. (Habe ich erwähnt, dass Pharo jetzt 5.000 Klassen hat, verglichen mit den 3.000 von Squeak? Pharo ist eine Gabel von Squeak 3.9)

** Eine Anleitung zum Installieren und Starten von Squeak, Amber, Pharo, Cuis und Dolphin finden Sie unter: ** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk- up-and-running.html

Das Seaside Web Framework läuft auf Squeak und Pharo. Es ist ein wunderbar ausgereiftes Tool, ebenso wie das traditionellere AidaWeb-Framework.

VisualAge, VisualWorks und Gemstone bieten robuste Systeme für Unternehmen. Gemstone bietet eine unendlich skalierbare Objektdatenbank mit Transaktionen und Persistenz.

2) Ja - ich benutze es bereits.

Ich habe es über die Open University gelernt und war sofort in Ruby produktiv (eine Kopie des Pickaxe-Buches und der Bibliotheksreferenz an meiner Seite). Es hat mir enorm geholfen mit Java und mit Xerox Moo-Code.

Ich bin gerade darauf zurückgekommen, um Apps zu schreiben, mit denen ich die Verwaltung und Verteilung von reaktionsschnellen, massiv plattformübergreifenden mobilen Apps steuern kann.

Ich gehe davon aus, dass ich meine mobilen JavaScript-Apps bald auch mit Amber neu schreiben werde.


1

Ich weiß nicht wirklich, wonach du suchst.

Wenn Sie nach einer anderen Sprache zum Schreiben suchen, würde dies meiner Meinung nach stark von den verfügbaren Bibliotheken abhängen. Ich kenne weder Ruby noch Smalltalk, aber es ist wahrscheinlich, dass Smalltalk nicht die effizienteste Art ist, Ruby on Rails-Anwendungen zu schreiben.

Wenn Sie die Ideen hinter Ruby kennenlernen möchten, ist dies möglicherweise ein sehr guter Schritt. Ich habe nichts Quantitatives, aber ich habe mich immer besser gefühlt, wenn ich Tools (wie Sprachsysteme) verwendet habe, wenn ich mehr als nur die Tools kannte, wenn ich die Ideen dahinter kannte oder wie sie funktionierten.

Wenn Sie verschiedene Arten objektorientierter Sprachen lernen möchten, sollten Sie Smalltalk (wenn es sich erheblich von Ruby unterscheidet), etwas wie Java oder C ++ und möglicherweise auch das Common Lisp Object System lernen.

Wenn Sie nur etwas anderes lernen möchten, ist Smalltalk möglicherweise eine gute Wahl. Ich würde auch Common Lisp vorschlagen, und andere Leute werden zweifellos andere Vorschläge haben (können Sie heutzutage ein gutes Forth-System bekommen?).


Es ist klar, dass Sie sich Seaside nicht angesehen haben. Der effizienteste Weg, Ruby-on-Rails-Anwendungen zu schreiben, ist eindeutig Seaside.
Stephan Eggermont

Ich habe mir Seaside nicht angesehen und Ruby oder Smalltalk nicht verwendet. Dies ist also ein allgemeiner Rat. Vielen Dank für den Hinweis auf Seaside.
David Thornley

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.