Diskussion:Smalltalk (Programmiersprache)

Letzter Kommentar: vor 8 Jahren von 193.83.134.99 in Abschnitt Dolphin Smalltalk

Smalltalk-80? Bearbeiten

"Smalltalk-80" ist eine [..] Programmiersprache [..], die in den 1970er Jahren [..] entwickelt wurde." - Nee, das passt m.E. nicht als Artikel_start_. Reverted. --Walter Koch 22:09, 29. Aug 2006 (CEST)

Der Artikel bezieht sich aber Gr0ßteils auf Smalltalk-80, auch der Artikel_start_. "Smalltalk-80 ist eine dynamisch typisierte objektorientierte Programmiersprache und zugleich eine vollständige Entwicklungsumgebung"! --141.35.17.32 14:23, 31. Aug 2006 (CEST)
Er trifft alles auch auf Squeak zu. igel+- 18:49, 31. Aug 2006 (CEST)
Obwohl ich schon eine Weile Smalltalk mache, kenne ich nicht den Unterschied zwischen Smalltalk-80 und Smalltalk. Wobei ich "Smalltalk" als Allgemeinbegriff betrachte. Genau wie "SQL" auch "SQL-92" und "SQL:1999" meint. --Walter Koch 00:32, 1. Sep 2006 (CEST)
Diese Bücherserie zu Smalltalk beschreibt recht Detailliert, wie die VM sich verhalten muss. Es gibt im Prinzip kein Smalltalk, dass diese Spezifikation völlig umsetzt, am nähesten dran ist Squeak. Smalltalk-80 war das alte System, dass die Spezifikation völlig umsetzte. igel+- 16:55, 1. Sep 2006 (CEST)
Mir gefällt »Smalltalk-80« auch nicht unbedingt. Schließlich gibt es ja bestimmt verschiedene (frühere) versionen - und »Smalltalk« ist definitv der allgemeinbegriff. Bei C (Programmiersprache) ist es ja so gelöst, dass es einen artikel Varianten der Programmiersprache C gibt, auf dem dann K&R-C, C89, C90, C99 aufgelistet sind (ist übrigens nicht im geringsten meine favorisierte lösung es in zwei artikel zu teilen). Ich finde es auch merkwürdig, dass der artikel schon »Smalltalk-80« heißt, und dann in der infobox »Aktuelle Version: Smalltalk 80« steht. Und in der einleitung steht dann erst recht wieder »Smalltalk ist eine...«. Bei Simula hingegen wird Simula-67 erst im absatz »Entstehungsgeschichte« erwähnt. --Liebeskind 17:53, 27. Sep 2006 (CEST)
Ich sehe auch nicht ganz, wieso das Lemma das -80 beinhalten muss. Reicht nicht ein Hinweis in der Einleitung? So einer ist ja auch schon im Text. Dort könnte die Bedeutung noch herausgestellt werden, aber Smalltak-80 schreit förmlich nach weiteren Lemmata mit Smalltalk*, die aber nicht vorhanden sind. Kurioserweise sind wir das einzige Interwiki, das nicht nur »Smalltalk« ist. Thanks for nothing, anglicism  
In diesem Abschnitt sind die Argumente für eine Umbenennung jedenfalls schon gegeben. -- Gohnarch 22:55, 26. Sep. 2010 (CEST)Beantworten

"implementation" Bearbeiten

ist mir im deutschen nicht bekannt , im "denglisch" jedoch schon.. ich habe das mal in implementierung umbenannt

Java ist nicht völlig objektorient Bearbeiten

denn ein int ist kein Objekt igel+- 21:40, 16. Dez. 2006 (CET) Ein int erbt überhaupt nichts, es ist nämlich kein Objekt. Vgl. JLS, gibts unabhängig vom IQ zum kostenlosen Download. igel+- 22:19, 16. Dez. 2006 (CET)Beantworten

Dafür ist Integer aber ein Objekt, und int wird auf Integer abgebildet
Ja, man muß was machen, um in Java ein int als Objekt zu verwenden. Es gibt da also etwas, was kein Objekt ist. Eine völlig objektorientierte Sprache kennt nur Objekte und nichts anderes. q.e.d. --Walter Koch 21:28, 6. Okt. 2008 (CEST)Beantworten
Falsch, es muss garnichts "gemacht werden", man kann Integer als Objekt sofort und ohne Umwege benutzen: Integer zahl = new Integer(12345); "q.e.d" ist dann doch ziemlich kindisch und wird im Übrigen nur von ... sagen wir "sehr speziellen" Menschen benutzt
Die Konstante 12345 bezeichnet eben kein Objekt - denn Du musst einen Konstruktor (new) nutzen, um ein Objekt zu erhalten. Es existieren also Sachen (nämlich die Konstante 12345) in Java, die keine Objekte sind. Was zu beweisen war. Ich finde solche Diskussionen etwas ermüdend. Ob eine Sprache nun vollständig OO ist oder nicht, ist nämlich eine rein akademische Frage. So, und da ich ein "spezieller Mensch" bin, unterschreibe ich meinen Beitrag sogar --Walter Koch 00:45, 8. Okt. 2008 (CEST)Beantworten
Die Konstante 12345 wäre sicher auch in Smalltak kein Objekt, sonst könnte ich das ja so nicht in den Quelltext schreiben (zumindest nach Lesen des Artikels bin ich dieser Auffassung) (nicht signierter Beitrag von 62.224.255.243 (Diskussion | Beiträge) 14:39, 8. Nov. 2009 (CET)) Beantworten
Ich habe die Bezeichnung "Konstante" hier mit "Literal" gleichgesetzt. Das ist für fast alle Sprachen zwar dasgleiche, aber eben nicht für alle. 12345 ist ein Literal, blöderweise ist es in einigen Smalltalkimplementierungen aber nur bei Integer eine Konstante. "abcde" wäre keine Konstante(!): 100 timesRepeat: [ "abcde" append: $f ] gäbe dort überraschende Ergebnisse ... --Walter Koch 16:51, 8. Nov. 2009 (CET)Beantworten
Auch wenn bei Java durch Autoboxing die Eigenschaft eines primitiven Datentyps verdeckt wird, so ist ein int immer noch ein primitiver Datentyp und Integer die zugehörige Wrapperklasse und eben kein Datentyp, sondern ein Objekt. Man muss int und Integer schon auseinanderhalten! int wird auch nicht auf Integer abgebildet, sondern genau umgekehrt. Und da eine streng obejktorientierte Programmiersprache keine primitiven Datentypen kennt, ist Java auch keine. Das ist zugegebenermaßen eine eher theoretische Sichtweise, sie spielt jedoch bei einigen Punkten durchaus eine Rolle. 80.129.254.127 09:30, 8. Mai 2009 (CEST)Beantworten

Dolphin Smalltalk Bearbeiten

Wegen: Dolphin Smalltalk wird eingestellt:

Vielleicht wäre das eine Erwähnung im Artikel selbst wert, da es sich um im Windows-Bereich durchaus pupuläres Smalltalk handelte. Wenn ich es richtig verstanden habe ist Stand:

  • Community-Edition kann man weiter kaufen
  • Professional wird auch weiter verkauft
  • aber keine Weiterentwicklung
  • Die Programmierer "hassen" Open Source und werdens daher nicht freigeben
  • spekulieren eher darauf das eine große Firma wie Cincom die Lizenzen aufkauft.

Thilo Pfennig 08:11, 17. Aug. 2007 (CEST)Beantworten

Die Ankündigung zur Einstellung von Dolphin erfolgte 2007.
Im Artikel wird dies unter 1990-2000 erwähnt. -- Spicer 11:15, 22. Jul. 2011 (CEST)Beantworten
Dolphin 7 ist seit 29. Dezember 2015 Open Source! Offenbar "hassen" die Programmierer doch nicht alles was sich so bezeichnet. Die Anwendung kann außerdem auch mit wenigen Eingriffen in Linux mit Wine betrieben werden und liefert dabei auch noch ebenso lauffähige Programme. --193.83.134.99 08:39, 30. Jan. 2016 (CET)Beantworten

Was Java alles von Smalltalk übernommen hat?! Bearbeiten

Der einzige substanzielle Punkt in dem Absatz, den ich hier lese, ist die virtuelle Maschine, die für Smalltalk im Gegensatz zu Java aber nicht wesentlich ist. (Für dynamisch typisierte Sprachen ist direkt ausführbarer Code nur sehr aufwändig hinzubekommen.) Der Rest macht eher den Eindruck, die Objektorientierung von Java zu betonen und ist in diesem Artikel überflüssig. (Der vorstehende, nicht signierte Beitrag stammt von Almirena (DiskussionBeiträge) 16:20, 14. Jan. 2008)

Da ist was dran. Die Punkte sind VM und Garbage Collector, im weiteren Sinne auch die Nichtmehrfachvererbung, mehr ist es nicht. Ich formuliere mal um --Walter Koch 22:49, 14. Jan. 2008 (CET)Beantworten

Änderung vom Januar 2011 rückgängig gemacht Bearbeiten

Ich hab die Änderungen vom Januar 2011 rückgängig gemacht. Einerseits ist das ganze m.E. zu begeisternd geschrieben (was verständlich ist, aber eben POV ist) und wertet andere Sprachen ab („Fast"-OOP-Sprachen). Andererseits werden Begriffe genutzt, die es so nicht gibt oder irrelevant sind („7 x 24 Eigenschaft von Smalltalk“). Auch gehört die Erklärung was einen Interpretersprache ist nicht hierhin (wobei Smalltalk natürlich auch compiliert; der resultierende Bytecode gehört sogar zur Sprachdefinition).

Und es gibt schwere sachliche Fehler:

„In fast objektorientierten Sprachen existieren Objekte nur, nachdem sie durch einen Konstruktor entstanden sind. Der Konstruktor ist Teil eines Bauplans. Diesen Bauplan nennt man Klasse. Die Konstruktion geschieht mit Starten des Programmes, also zur Laufzeit des Programmes. In fast objektorientierten Systemen können zur Laufzeit nur diese konstruierten Objekte manipuliert werden“

ist so ziemlich alles unkorrekt, unpräzisse oder missverständlich: In Smalltalk heißt der Konstruktor „new“ und ist lebensnotwendig; eine Klasse kann man zwar pädagogisch als „Bauplan“ bezeichnen, das trifft es aber nicht vollständig; Das Starten des Progrmms ist nicht die Laufzeit eines Programms; es gibt keine OO-Spache in der man Objekte nicht zur Laufzeit erzeugen könnte, usw.

Ich mache das Revert nicht leichtfertig, denn es steckten auch einige wichtige richtige Hinweise dadrin (Klassen sind zur Laufzeit änderbar u.ä), aber die kriege ich momentan nicht richtig rausextrahiert --Walter Koch 14:04, 30. Jan. 2011 (CET)Beantworten

Hauptlemma-Verschiebung nach Smalltalk-80 Bearbeiten

Da kein Namenskonflikt zu befürchten ist, würde ich die - damit überflüssige - Klammerbemerkung (Programmiersprache) im Lemma streichen. Ich würde das, falls keine Einwände bestehen auch einfach machen (in wenigen Tagen) und die Weiterleitungen entsprechend ändern. Grüße --Uncopy 10:45, 3. Mär. 2011 (CET)Beantworten

Ehrlich gesagt wäre ein Lemma wie Smalltalk-80 oder Smalltalk (Programmiersprache) besser als das aktuelle. --79.224.240.174 17:20, 14. Feb. 2012 (CET)Beantworten
Bin für zweiteres... --Sebastian.Dietrich 21:16, 14. Feb. 2012 (CET)Beantworten
Ok, wenn bis zum Wochende kein Widerspruch kommt stelle ich einen entsprechenden Antrag auf Wikipedia:Verschiebewünsche. --79.224.243.213 21:44, 16. Feb. 2012 (CET)Beantworten

IBM Smalltalk Bearbeiten

IBM hat sein Smalltalk-Engagement nicht eingestellt, sondern den PC/Workstation-Bereich an Instantiations abgegeben, VAST wird also noch weiterentwickelt (ähnlich wie VisualWorks von ParcPlace zu Cincom übergegangen ist). Das passierte auch nicht von 1990 bis 2000, sondern erst im April 2006; der Support für die VisualAge-Generator-Produktreihe lief sogar erst 2009 aus, s. http://www-01.ibm.com/support/docview.wss?uid=swg21322310

Die Variante für Großrechner wird sogar aktuell immer noch von IBM unterstützt: http://www-01.ibm.com/software/awdtools/smalltalk/about/vastos390.html -- Spicer 11:00, 22. Jul. 2011 (CEST)Beantworten

Implementierungen Bearbeiten

Habe inzwischen das Thema neu eingefügt, da es ein wichtiger Beitrag zur weiteren Sprachentwicklung ist und daher mit einfachen Weblinks zu weiterführenden Informationen nicht gleichzusetzen ist. Selbstverständlich sollte ein Ausufern solcher Weblinks vermieden werden, da deren Aktualität und/oder Relevanz meist nur für gewisse Zeit gewährleistet ist. Im vorliegenden Fall liegen die Dinge allerdings anders, da sie zu einem besseren Verständnis der Sprache und ihren wesentlichen Eigenschaften beitragen und auch als Wegweiser für allfällige zukünftige Artikel bei WP dienen! --YoSuwa (Diskussion) 14:28, 20. Feb. 2015 (CET)Beantworten

Jetzt ists aber eigentlich eine Linksammlung und somit nicht ganz WP konform. Alternative wäre die Weblinks in refs umzuwandeln oder eine Liste von Smalltalk Implementierungen zu machen. Die historischen Smalltalk Implementierungen (z.B. Digitalk Smalltalk) fehlen absichtlich? --Sebastian.Dietrich 16:05, 20. Feb. 2015 (CET)Beantworten
Ja, das war Absicht, die jeweilige Historie kann aber, wenn man dem entsprechenden Link folgt, an der Zieladresse nachgelesen werden. Grundsätzlich kann mit Sicherheit keine Auflistung, egal welcher Art, Anspruch auf Vollständigkeit erheben, aber es steht jedem frei einen Beitrag zu deren Ergänzung und Verbesserung zu leisten, sofern das Thema dadurch gewinnt. Im Prinzip müßte man, wenn man streng der Regel folgt, auch haufenweise Literaturlisten und anderes kürzen, würde dabei aber auch Gefahr laufen wichtige Randinformationen zum Thema zu verlieren. Eine eventuelle Auslagerung der inzwischen insgesamt 17 Inkarnationen wäre im äußersten Fall zumindest akzeptabel. Zu beachten wäre hierbei auch, daß eine Menge Leute, mich eingeschlossen, an den Recherchen zur Weiterentwicklung gearbeitet haben, das sollte eben auch noch respektiert werden. Hinzu kommt auch noch eine entsprechende Entrümpelung unnötiger „Linkwüsten“ und formeller Fehler im Fließtext des Artikels, die ich ebenfalls bereits im letzten Jahr durchgeführt hatte.
Die heute verfügbaren Implementierungen, spiegeln vor allem das kommerzielle Scheitern, aber auch den auslösenden Faktor zur Schaffung neuer Sprachen (wie z.B. Ruby), der Sprache wieder, wodurch deren Anführung besonders heute entsprechend wichtig ist. Jüngere Leser würden davon sicher profitieren, daher bitte ich um Verständnis für die nun vorliegende Fassung des Artikels. --YoSuwa (Diskussion) 08:44, 21. Feb. 2015 (CET)Beantworten