22 Stimmen

Was macht Ihnen am meisten Angst vor der integrierten IDE der meisten modernen Smalltalks?

Da ich auf der Welle des Wiederauflebens von Smalltalk reiten (vor allem, weil viele Ruby-on-Rails-Leute Smalltalk wiederentdecken und sehen Seaside als ihr nächstes aktualisiertes Web-Framework), bekomme ich Fragen wie "Ja, aber wie kann ich meinen Lieblingseditor verwenden, um Smalltalk-Code zu bearbeiten?" oder "Besteht Smalltalk immer noch darauf, in einer eigenen Welt zu leben?".

今すぐ ich habe 1981 zum ersten Mal Smalltalk erlebt Ich verstehe diese Fragen nicht sehr gut. Es scheint ganz natürlich zu sein, dass ich möchte, dass der Editor und der Debugger meinen aktuellen Codestatus kennen und sich in das Änderungskontrollsystem integrieren, das Smalltalk-kompatibel ist. Die Verwendung eines externen Editors, Debuggers oder Änderungskontrollmanagers wäre sehr umständlich.

Was macht Ihnen also am meisten Angst, wenn Sie die fünfzeiligen Methoden in Smalltalk nicht mit Ihrem Lieblingseditor bearbeiten oder Ihr bevorzugtes, nicht-Smalltalk-fähiges Änderungskontrollsystem verwenden können?

27voto

EfForEffort Punkte 55686

Alles ist anders. Willst du bis zur Endstation gehen? Es ist nicht Ctrl - E . Wollen Sie ein paar Wörter überspringen, Wort für Wort? Es ist nicht Meta-F....

Die Textbearbeitung ist eine grundlegende Programmiertätigkeit . Wenn ich an diesen Eingaben herumfummle, wird etwas in meinem Kopf durcheinander gebracht.

Edit: und hier ist jemand fragt nach Emacs-Tastaturbelegungen auf comp.lang.smalltalk in 1987 .

0 Stimmen

Abgesehen davon sollte es nicht so schwer sein, Emacs-ismen auf den Editor in der VM nachzurüsten. Es liegt in der Natur von Smalltalk, dass Sie den Quellcode für den Klassenbrowser und den Editor haben.

0 Stimmen

Mit anderen Worten: Sie haben Angst vor Veränderungen.

0 Stimmen

Nur weil es behoben werden kann, sollte man nicht erwarten, dass die Leute ihre Zeit damit verschwenden, solche Zugangsbarrieren zu überwinden. Es sollte einfach so funktionieren, wie sie es erwarten. Stellen Sie sich vor, Sie steigen in ein Auto ein und es hat kein Lenkrad. Haben Sie Angst vor Veränderungen?

10voto

Kristopher Johnson Punkte 78933

Das einzige Smalltalk, mit dem ich Zeit verbracht habe, ist Squeak, daher gelten meine Ansichten möglicherweise nicht für andere Smalltalk-Umgebungen.

Was mich an dem bildbasierten Ansatz stört, ist die Tatsache, dass die Smalltalk-Umgebung zwar wunderbare Möglichkeiten bietet, aber ein "Walled Garden" ist, der es schwierig macht, mit allem außerhalb dieser Umgebung zu interagieren. Was ist zum Beispiel, wenn ich externe Tools wie Yacc und Lex verwenden möchte? Was ist, wenn ich einige C- oder Python-Programme verwenden möchte, um Smalltalk-Code zu generieren? Was ist, wenn ich Smalltalk mit einer Reihe von in anderen Sprachen geschriebenem Code mischen möchte, indem ich Code in all diesen Sprachen in einem Editor bearbeite und alles im selben Quellcode-Baum speichere?

Ich bin sicher, dass es möglich ist, all diese Probleme zu lösen, indem Sie Ihre Smalltalk-Umgebung Systemfunktionen zur Steuerung externer Werkzeuge aufrufen lassen. Aber wie einfach ist es, externe Werkzeuge Ihre Smalltalk-Umgebung steuern zu lassen? Mit anderen Worten, was ist, wenn ich möchte, dass Smalltalk nur eine weitere Komponente ist und nicht der Herr über alles?

1 Stimmen

Dies ist nach wie vor ein wesentlicher Schwachpunkt, der mich davon abhält, Squeak/Pharo für ernsthafte Arbeiten in Betracht zu ziehen.

0 Stimmen

"Was ist, wenn ich Smalltalk mit einem Haufen Code mischen möchte, der in anderen Sprachen geschrieben wurde ...": Alex Warths Ometa/Squeak macht genau das: Sie schreiben einige "Methoden" in Ometa und andere in Smalltalk. Es ist noch ein bisschen grob, aber die Idee zeigt, dass Interoperabilität durchaus möglich ist. Siehe auch Rengglis Helvetia-Arbeit: scg.unibe.ch/archive/papers/Reng09bSprachausscheidungen.pdf

9voto

Nichts erschreckt mich besonders, aber ich fand es etwas mühsam, die APIs in VW zu verstehen, selbst wenn ich andere Smalltalks benutzt hatte. Der Effekt der Browser ist, dass man die APIs nur nach und nach sieht und es oft nicht sofort klar ist, wo man nach einer bestimmten Funktion suchen sollte.

Smalltalk leidet auch ein wenig unter dem Paradigmenwechsel, um zu verstehen, wie es funktioniert. Als ich meinen Bachelor-Abschluss an der Universität machte (einige Zeit, nachdem ich Smalltalk zum ersten Mal begegnet war), konnte ich ein wenig Schadenfreude dabei empfinden, zu beobachten, wie alle anderen in der Klasse den anfänglichen Paradigmenwechsel überwanden, als sie das System (Squeak) zum ersten Mal lernten.

Ich denke, die Kombination aus dem Paradigmenwechsel und der Funktionalität, die in den Klassenbibliotheken etwas vergraben ist, sorgt für eine etwas steile Lernkurve. ST hatte den Ruf, eine ziemlich steile Lernkurve zu haben, um wirklich auf Touren zu kommen - das meiste davon ist auf die großen Klassenbibliotheken und die Tatsache zurückzuführen, dass die meisten Funktionen der Sprache irgendwo in den Bibliotheken vergraben sind.

Außerdem (und leider) kam Java Mitte der 1990er Jahre auf und eroberte die gesamte Aufmerksamkeit. Die großen Smalltalks sind entweder ganz ausgestorben oder an Nischenanbieter verkauft worden. Es ist eine ziemliche Ironie (auf eine glückliche Weise), dass Ruby dazu beigetragen hat, das Interesse an Smalltalk wiederzuerwecken, aber die anhaltende Wahrnehmung, dass es veraltet ist, ist nicht hilfreich.

Ver Dieser Beitrag von mir für einige Ausführungen über die Vorzüge (aus meiner Sicht), sich in der heutigen Zeit intensiv mit Smalltalk zu beschäftigen.

Ich würde sehr gerne zu Smalltalk zurückkehren, wenn sich die Gelegenheit dazu ergeben würde.

8voto

webmat Punkte 53996

Ein großes Problem für mich ist, dass der Code, den ich für eine Smalltalk VM schreibe, nach all den Jahren immer noch nicht mit anderen Smalltalk VMs kompatibel ist.

Ich verstehe, warum das so ist: Der Kern von Smalltalk besteht aus einer extrem kleinen Menge von Axiomen und Schlüsselwörtern. Das bedeutet, dass man nach 30 Minuten Smalltalk-Lernen bereits die API-Bibliothek und nicht die Sprache selbst gelernt hat. Ich mag diesen Ansatz beim Sprachdesign.

In der Smalltalk-Welt läuft es jedoch darauf hinaus, dass mein Smalltalk-Code, den ich für eine VM geschrieben habe, mit ziemlicher Sicherheit nicht auf anderen VMs läuft, wenn ich mich für einen Wechsel entscheide, es sei denn, es wird ein Konsens zwischen allen VM-Anbietern über eine gemeinsame Basis-Standard-API erzielt.

Dies hat auch zur Folge, dass ein Teil meines Wissens über den Raum obsolet wird, wenn ich die VMs wechsle.

Beachten Sie, dass ich Smalltalk in meinem Leben kaum ausprobiert habe. Ich bin weit davon entfernt, ein Experte zu sein. Dieses Verständnis stammt aus Gesprächen mit James Robertson vor etwa einem Monat.

Ein weiterer Punkt, den ich ansprechen möchte, ist, dass Seaside tatsächlich auf den meisten gängigen Smalltalk-VMs läuft. Ich frage mich, wie viel von dem, was eigentlich eine Standard-API hätte sein sollen, sie für sich selbst entwickeln mussten, um dieses Kunststück zu vollbringen.

Trotzdem habe ich immer ein offenes Ohr, um mehr über den Stand von Smalltalk zu erfahren. I hacer die sehr leistungsfähige Entwicklungsumgebung von Smalltalk (und ihre anderen Vorzüge) ausprobieren möchten.

0 Stimmen

Wir mussten nicht umdisponieren. erfinden zu viel. Meistens beschränken wir uns auf eine gemeinsame API-Teilmenge, die von Smalltalks genutzt wird. Dann gibt es noch ein paar Hürden zu überwinden, und die Träger müssen noch ein wenig nachbessern. Es wäre sicherlich schön, wenn einige der grundlegenden Dinge mehr standardisiert wären.

0 Stimmen

Ah, okay. Dann ist es vielleicht doch nicht so schlimm, wie ich dachte :-) Es sieht sicherlich nicht ideal aus, aber wenn sich die APIs wenigstens ein bisschen ähneln, dann muss ich wenigstens nicht mein ganzes Wissen über Bord werfen, wenn ich von einer Plattform zur anderen wechsle.

0 Stimmen

Sie sollten all die Probleme mit verschiedenen C-, C++- usw. Compilern sehen. Ganz zu schweigen davon, dass die meisten dynamischen Sprachen dazu neigen, nur eine einzige dominante VM zu haben, so dass sie dieses Problem völlig ignorieren -_-'

3voto

Friedrich Punkte 5828

Ich weiß, es ist spät, aber das größte Ärgernis für mich ist, dass es in keinem der Smalltalks einen wirklich guten Editor gibt. Das ist eine Sache, die ich nicht verstehen kann. Die Arbeit mit Text ist so wichtig und das weniger "unterstützt"....

Es ist immer so, dass man nur auf eine Methode starrt und dann braucht man einen Methodenfinder oder einen anderen Browser, um eine andere Methode zu überprüfen. Das ist es, was ich wirklich nicht mag....

0 Stimmen

Sie brauchen keinen leistungsstarken Editor, wenn Sie nur 5 bis 10 Zeilen Code auf einmal bearbeiten. Die Integration des Editors in die Umgebung ist ebenfalls sehr hilfreich.

2 Stimmen

Da bin ich anderer Meinung, und ich würde ein Smalltalk mit guten Editiermöglichkeiten bevorzugen. Stellen Sie sich einfach ein in Squeak "eingebettetes" Mail-Programm vor, und Sie werden zustimmen, dass gute Editoren gut wären....

0 Stimmen

Omnibrowser hat einen "jagenden" Browser, der das Auffinden von Absendern von/Implementatoren von VIEL einfacher macht. Sehen Sie sich zum Beispiel OBImplementorsBrowser an.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X