Hallo, Stefan!
Jaja, wo ist das Problem? In 5 Minuten stelle ich die verschiedenen
Schleifen vor, und danach alles nur noch mit Iteratoren....
Ich habe einen Katalog mit 2300 Einträgen und soll die seitenweise
zu je 20 Stück anzeigen. Nachdem das über 100 Seiten sind, soll es
die Möglichkeit geben "schnell" zu blättern, d.h. 10 Seiten weiter.
Das sieht dann so ähnlich aus wie die Navigation von xpdf.
Kann sein .... denke aber, daß PDF sicher nicht für riesige Listen
gedacht war ...
Wie mach ich das mit Iteratoren so elegant wie mit einer Schleife?
firstIndex to: lastIndex do: [:index |
(catalog at: index) showOn: aStream ]
Jetzt du!
Workspace öffnen:
'dies ist ein Beispiel' select: [:each | each isVowel ]. <ALT-P>
statt select kann man auch do oder collect schreiben ... siehe Handbuch.
*lach* 300 Mannjahre Entwicklungsarbeit in Squeak und "verstehen"?
Na aber sicher doch. Ich weiß nicht, wie viele Mannjahre hinter
aktueller Mathematik (von mir aus auch Schulmathematik) stehen,
aber trotzdem kann man sie verstehen. Der Witz an der Stelle ist,
dass Nachfolger durch geschickte Aufzeichnungen der Vorgänger
Abkürzungen nehmen können und nicht alles neu *erfinden* müssen.
Aber verstehen können Sie's trotzdem.
*lach* Mathematik und logisch? Wo denn?
Berechne doch z.B. mal Inhalt und Oberfläche der Funktion von 1/x von 1
bis oo.
Inhalt: PI. Oberfläche: oo Wenn ich als so einen Behälter anmalen will
(innen oder außen), brauche ich unendlich viel Farbe. Wenn ich aber Pi
Liter Farbe hineinschütte, ist er perfekt angemalt. Den Rest kann ich
wieder ausschütten. Viel Spaß beim Rätseln.
Logische Widersprüche in der Mathematik kenne ich zuhauf....
Wenn man das mentale Modell von Squeak sauber verinnerlicht
hat, also komplett OO-Denke drauf hat, ist die Programmiersprache
Smalltalk eh ein Witz, weil sie der menschlichen Sprache sehr ähnlich
ist. Wenn ich da zurück denke, mit C++ oder Java .... grausts mich. Ich
sehe S# mit Vergnügen entgegen, überlege, ob ich nicht mal ein Projekt
anstoße, Squeak und EToys auf S# zu portieren..... Aber S# ist doch sehr
viel anders, als Smalltalk (Ihhh, Mehrfachvererbung....)
Mehrfachvererbung mit "Ihhh" abzutun, macht auf mich keinen guten
Eindruck.
Sorry.
In Common Lisp (CLOS) ist die Mehrfachvererbung sauber
implementiert und sehr gut einsetzbar, da sie nicht nur eine
Spezifikation der Schnittstellen enthält, sondern i.d.R. auch eine
generische Implementation. Spart unheimlich viel Arbeit.
Lisp durchsucht bei Mehrfachvererbung ja die Klassenhierarchie in einer
vordefinierten Reihenfolge. Die erste Oberklasse wird genommen. Bei C++
muß der Klassenname vorangestellt, also genau bestimmt werden. Unter
bestimmten Voraussetzungen, gerade im Zusammenhang mit
Grabage-Collection und Mehrprozessorsystemen gibt es gigantische
Schwierigkeiten, auch beim Compilerbau ... daher -> Konzept wackelig.
Außerdem kann es passieren, daß die Laufzeit des Programms explodiert,
völlig unvorhergesehen, z.B. dann, wenn sich die Katze in den Schwanz
beißt, sprich Oberklassen von Unterklassen umdefiniert werden.
Ich finde schon, dass Schüler auch mit herkömmlichen
Textverarbeitungssystemen umgehen können sollten.
Ich persönlich wäre schon zufrieden, wenn die Schüler in der Lage wären,
mit einem Nur-Text-Editor einen inhaltlich brauchbaren Text zu
schreiben anstatt Stunden in die "richtige" Verzierung reinzubuttern.
Du urteilst ganz schön hart.
Fakt, jederzeit belegbar. Das begründet z.B. auch, warum Smalltalk
Seaside und Ruby on Rails so einen durchschlagenden Erfolg haben.
Durchschlagend? Ruby on Rails hat Erfolg, weil es zur rechten Zeit
am rechten Ort war und DHH marketingmäßig sehr geschickt ist. Technisch
bin ich von RoR nicht beeindruckt. Zu viel Bloat.
Was bedeutet das?
Das mag aus deiner Sicht ja alles stimmen,
aber im Schulsystem kann man nicht machen, was man will, selbst wenn man
davon überzeugt ist, recht zu haben. Veränderungen erreicht man nur
schrittweise, frag mal die Leute, die das seit Jahren versuchen!
Kein Problem. Da maile ich einfach mal durch, wer mir Ansprechpartner
nenen kann, die im Kultusministerien in den Gremien sitzen, und genau
denen schreibe ich dann ein kleines Pamphlet, mit Codebeispielen, und
Schon verloren. Entscheider lesen keinen Code, weil sie keinen Code
lesen können. Entscheider lieben "Industriestandards", damit ein
Praxisbezug gewährleistet ist. Verwende einen Industriestandard, da
kannst du nichts falsch machen.
Ah, ok! "Leute, esst Scheiße, millionen Fliegen können nicht irren!"
Deswegen schminken sich Schauspieler auch selber, weil sie damit um
Welten bessere Ergebnisse erzielen als mit einem professionellen
Visagisten oder wie sich die Maler da nennen.
Schnellschussmetaphern gehen oft daneben, weil man gegen sie
argumentieren kann ohne sich auf die Sache zu beziehen.
Stimmt, sollte auch nur die Idee dahinter erläutern.
Das ist für mich das Hauptproblem, zu vermitteln, was das
Besondere an Squeak und Smalltalk ist, eben weil es so anders ist als
alle anderen Sprachen und Werkzeuge.
Squeak und Smalltalk sind normal, alles andere ist "unnormal".
Squeak und Smalltalk passen gut in deine Welt, zu deinen
Aufgabenstellungen und zu deinen Denkmustern. Deswegen sind sie noch
lange nicht "normal".
Waschmaschine, Wäschetrockner, Geschirrspüler, Toaster, Kühlschrank,
Staubsauger,.... nirgendswo ein Squeak zu sehen. Desktop-Applikationen
sind vielleicht "laut", aber dafür selten. Genau wie Menschen im
Vergleich zu Insekten.
Für die Programmierung oder auch nur den Ablauf mit minimalen Ressourcen
ist fast jedes OO-System zu komplex und aufgebläht.
Nö, Squeak lief auch auf meinem ARM 250 MHz, 32 MByte RAM....
Apropos: Mein Win32 - Rechner, auf dem ich gerade tippe, zeigt mir 7.5
MByte RAM für Squeak.exe an ....
OO-Datenbank. Die Struturen kannst Du jederzeit ohne Datenverlust und
irgendwelche Datenbank - Kenntnisse verändern. Anlernzeit - 10 Minuten.
Na schön, jetzt können die Kids mit Squeak das machen, was sie mit
Bleistift und Papier machen können. Haben sie jetzt auch was über
Datenbanken gelernt? Wie man seine Daten organisiert, um einen
zuverlässigen Zugriff zu bekommen? Bei vielen Daten? Bei unscharfen
Suchkriterien? Da steckt mehr dahinter als "10 Minuten" Einarbeitung.
Bei vielen Daten? So mit 800 MByte in 0.1 Sekunden nach beliebigen
Suchstrings durchforsten? Siehe Anschluß an Gemstone/S, Magma und deren
Performance.
Ich nehme dabbledb, das geht noch schneller. Aber was kann ich jetzt?
Was hab ich dabei gelernt? Hab ich mich durch das Anklicken
vorgefertigter Komponenten irgendwie weiterentwickelt?
Kenne ich leider nicht .... aber zur Weiterentwicklung - lohnt es
perfekt runde Räder neu zu erfinden?
Wer braucht denn das überhaupt noch, angesichts OO-Datenbanken ud
Fulltext - Index? Googles Technik mit fast 0!!! - Suchzeit in Pentabyte
großen Datenbanken ist doch super erfolgreich. Dahinter steckt einfach
nur - Glimpse. Siehe auch TRIES.
... und ein cleveres MapReduce-Verfahren und *tausende* gleichzeitig
rädelnder PCs. Wenn ich diese Rechenleistung nicht habe, ist's vorbei
mit der schönen neuen Welt.
Nenee. Probier mal Fulltext - Hash aus ... Suchzeit fast nur wenige
Millisekunden..... auch bei 300 Gigabyte Datenbestände noch im Bereich
von unter 1/10 Sekunde.
s.
Viele Grüße, Guido Stepken