R5RS-Scheme is a very nice little language. There is no doubt about that. Anyway, though it is very nice, there are a few things that sometimes really make it hard to use. I am saying this from a sort of "practical" perspective: Its what I noticed when I had to use it, being used to common lisp.

A major issue for me is the lack of a default possibility to determine the current compiler somehow. This makes it impossible to write portable code. But especially in scheme, which is very small and has a lot of extensions through its compilers and interpreters, such a thing would be extremely helpful. I dont know about R6RS, except that many schemers dont like it. Maybe it already has such a thing.

Then, well, its a lisp-1. This has advantages and drawbacks. Actually, I think that a lisp-2, putting callable objects into an own namespace, is actually better in a "practical" sense. On the other hand, always having to write "funcall" like in common lisp when calling a function variable is not nice, it should have some "inverse" to its #'-prefix for declared functions. Well, thats a matter of taste, and neither common lisp nor scheme really are the way I would like to have it.

Also an issue for me is the way it handles its dynamic argument numbers. Scheme has a very nice way of doing this, which embeds into the theory perfectly, specifying (define (name x y z . rest)). Compared to the common lisp way, which has &rest-specifyers, this looks pretty. On the other hand, common lisp has an &optional specifyer, and an &keys specifyer, one can name keys, define default values, etc. - all this can be done in scheme only with more code. And its something I really like to have. It makes debugging and specifying easier.

Of course, common lisp also has drawbacks, for example the lack of a named let. I dont want to insult schemers here, or say that scheme is a bad language. Its just a few things that I noticed.

Da gerade sowas Ähnliches wie Ferien vorherrscht, lasse ich mich bisweilen mal wieder dazu herab mich zu Menschen dazuzusetzen, die fernsehen. Da sah ich eine interessante Fernsehwerbung. Ein Produkt, das sich "Body Urea" nennt. Hier hab ich es auf Amazon.de gefunden.

Da wird doch tatsächlich mit 5% Urea geworben. Das soll gut für die Haut sein, kennt man bereits aus der alternativen Medizin. Und wenn man damit seine Felder düngt, kann es doch auch für die Haut nicht schlecht sein.

Meinerseits spricht nichts dagegen, dass mal eine so bewehrte Substanz wie Harnstoff benutzt und beworben wird. Man kann Harnstoff auch sehr gut künstlich herstellen, und er gehört damit eigentlich zu den weniger ekligen Dingen die sich in Kosmetika befinden können. Ich finde es nur trotzdem irgendwie witzig.

Once I heard that codepoints in Unicode are given away carefully.
On the other hand, there are codes for ʇxǝʇ-uʍop-ǝpısdn, 𝔉ℜ𝔄𝔎𝔗𝔘ℜ, 𝐛𝐨𝐥𝐝 𝐥𝐞𝐭𝐭𝐞𝐫𝐬, 𝒮𝒸𝓇𝒾𝓅𝓉, and a lot of other weird stuff. There are characters reversing the text direction.

No doubt this could be useful. But on the other hand, I dont know if its really a good thing to have symbols that are basically letters in another font as standard unicode characters.

Es überrascht mich nicht wirklich, es berührt mich auch inzwischen kaum noch, dass Subjekte die Tierexperimente durchführen mit der Zeit jegliches Mitleid für Tiere verlieren. Zum Einen sind die Budgets vermutlich wie so ziemlich überall beschränkt, der Forschungsdruck ist vermutlich hoch, und nicht zuletzt kann man seine sadistischen Machtphantasien dabei ausleben. Ich habe kein Verständnis dafür, und es ist auch nicht so dass ich solche Leute nicht als moralisch Unterentwickelt ansehen würde, oder verstünde, warum es noch immer keine Ethikkommissionen für Tierexperimente gibt, es ist nur einfach nichts neues und schockiert mich nicht mehr wirklich.

Ich vermute in Tierversuchslabors zu einem Großteil Leute die zu Menschenfeindlich sind als dass sie gescheite Ärzte werden könnten. Fleisch zerschneiden und Schädel und Knochen zersägen ist der spaßige Teil, das Ganze dann wieder zusammenzuflicken ist kompliziert und dementsprechend will man damit nicht so viel Zeit verbrauchen. Weshalb man dann auch mal vergisst den Tieren mit denen man den ganzen Spaß hat Schmerzmittel zu geben.

Immerhin kann man sich hinter den moralischen Schutzschild jahrzehntelanger medizinischer Forschung stellen. Gut, die hat auch Zeug wie Contergan hervorgebracht, und kam nie ohne Menschenversuche aus. Aber Einzelfälle darf man im großen Gesamtkontext einfach nicht beachten.


Ich überflog einige Meldungen, unter Anderem diese von der ARD, zum Thema Netzneutralität.

Die Provider seuseln dahin von Wegen die Netze seien überlastet von den vielen Leuten die die Dreistigkeit haben sie dann auch wirklich zu benutzen, um sich Videos anzusehen. Ein Jahrelanger Preiskampf hat dazu geführt dass wir heute Flatrates haben, und dass man in Städten 50 mbit hat, während man in einigen Gegenden noch Dial Up Verbindungen braucht. Normal sind momentan soweit ich das sehe 16 bis 20 mbit. Für Videos gerade richtig, für alles Andere für gewöhnlich Overkill. Trotzdem brauchen die ganzen modernen Uber-Anwendungen alle unbedingt Ajax-Geschwurbel und dementsprechend geht auch dafür recht viel Last drauf, für den Normalanwender mit DSL eigentlich kein Thema, für den Menschen mit Dial Up Verbindung unbenutzbar.

Während man in manchen Gebieten quasi abgeschnitten ist vom Internet, zwiebelt man in den Großstädten jetzt 50 mbit Leitungen raus - ich frage mich, wie das sein kann, wo die Netze doch so überlastet sind, dass man die Netzneutralität nicht mehr halten kann? Und ich frage mich, wie soll es dann weitergehen? Der Hunger nach mehr Bandbreite wird sicherlich erstmal nicht kleiner, zumindest solange man noch irgendwie sinnvoll ebendiese verschwenden kann. Und sobald das vorbei ist wird man dieselbe Bandbreite auch im Mobilen wollen. Irgendwann müssen die Betreiber ihre Netze also sowieso ausbauen, oder ihre Preispolitik ändern.

Ich sage es ganz ehrlich: Ich glaube den ISPs nicht, dass das ihre Motivation ist. Ich glaube, es ist reine Profitgier. Ich denke, ISPs nehmen sich hier zu ernst. Ich will von meinem Provider einen Zugang zum Internet - ich will dass er dafür sorgt, dass das Zeug was ich sende da ankommt wo es hinsoll, und ich alles bekomme was zu mir soll. Dann sollen sie mir einen Preis nennen, zu dem sie das machen. Und den muss ich dann eben bezahlen. Zum Jetzigen Zeitpunkt geht es so einfach, dass es im Grunde jeder kapieren kann.

Und trotzdem gibt es bereits ein riesiges Tarif-Wirrwarr, das man kaum mehr durchschauen kann. Was passieren wird, wenn die Netzneutralität erstmal weg ist, liegt denke ich auf der Hand: Es wird sich ein noch größeres Tarif-Wirrwarr bilden. Erstmal wird es neue "Premium-Tarife" geben für Facebook und YouTube und sonstige Netzwerke, bzw. Volumentarife mit Flatrates für "bis zu fünf Webseiten" die man (was man natürlich nur in einer Fußnote sieht) aus einer vorhandenen Liste auswählen kann. Die Content-Industrie wird sich die Hände reiben, und ähnlich wie bei den momentanen Handytarifen ebenfalls das Recht auf soundsoviele Lieder pro Monat einräumen.

Das Internet wird zu einer großen Verkaufsplattform verkommen, das was es ursprünglich war wird verschwinden. Ein paar alternative Provider wird es wohl noch geben, die werden aber vermutlich nur in den großen Städten bezahlbar sein.

Normalerweise würde ich sagen, dass das eigentlich keiner wollen dürfte und dementsprechend sich alleine aufgrund der fehlenden Nachfrage solche Tarife nicht durchsetzen werden - doch diese Haltung wird sicherlich schnell von hinreichend vielen Leuten wegpragmatisiert.

The Old New Thing hat grad einen interessanten Artikel zu Garbage Collectors. Obgleich ich mich schon öfters damit beschäftigt habe, ist mir diese eigentlich offensichtliche Ansicht grade neu gewesen.

Ein Garbage Collector ist demnach ein Mechanismus der unendlichen Speicher simuliert.

Er begründet weiterhin was die formalen Folgen daraus sind, dass zum Beispiel wenn ein Programm immer genügend Speicher allokieren kann, der "Null-Garbage-Collector" der nichts tut ein ausreichender GC ist. Daraus leitet er korrekt ab, dass man nicht davon ausgehen kann, dass finalizer vor dem Beenden eines Programmes aufgerufen werden.

Ich kann in diesem Punkt nicht ganz zustimmen. In einem Kommentar heißt es dann noch, es gibt von Garbage Collectoren echt verschiedene Strategien dies zu tun, und ich denke auch, unter Garbage Collectors versteht man einen ganz bestimmten Ansatz die Simulation unendlichen Speichers zu erzielen, nämlich während der Laufzeit nach Objekten zu suchen die nicht mehr vom Hauptprogramm referenziert werden.

Schwache Referenzen und Finalizer sind zum Beispiel Techniken, die außerhalb eines solchen Ansatzes nicht notwendigerweise Sinn ergäben. Und man kann im Prinzip argumentieren, ein GC sollte garantieren dass Finalizer aufgerufen werden, in einer perfekten Welt wäre das schön, aber leider geht das nicht immer so einfach, heißt, seine Conclusio, sich darum zu kümmern und den GC nur als Auffangnetz anzusehen, finde ich durchaus sinnvoll.

Generell finde ich aber vor Allem den Denkansatz schön, mal nicht anzufangen über einen Haufen Garbage Collectoren zu reden, sondern sich erstmal zu überlegen, was das Ganze formal eigentlich ist, und daraus Konsequenzen abzuleiten. Eine Denkweise, die in der modernen pragmatisierten Informationstechnik immer seltener anzutreffen ist.

Sie ist der Flaschenhals der meisten Einkaufszentren: Die Kasse. Lange Menschenketten bilden sich dort zu Stoßzeiten, überlastete gezwungen-freundliche Verkäuferinnen überall.

Ist man in der Schlange wird die Geduld teils auf die Probe gestellt, und die meisten Menschen in einer solchen Warteschlange wollen, solange sie darin stehen, dass es schnell vorwärts geht. Doch leider scheinen die Meisten davon dies wieder zu vergessen, wenn sie dann an die Kasse kommen.

Von Senioren die erstmal ihre Lebensgeschichte erzählen müssen bevor sie bezahlen können, zum Schlipsträger der genüsslich langsam seine Geldbörse herausholt, das Geld sucht und dann erst daran denkt einzupacken und die Kasse freizumachen - Zeitverschwendung an der Kasse auf Kosten der anderen wartenden Personen ist ein weit verbreitetes Problem.

Es geht nicht immer alles optimal schnell. Findet eine Person irgendeinen Pfandschein einfach nicht, hat sich eine Person in der benötigten Größe ihrer Einkaufswarenbehältnisse verschätzt, oder gibt es eine Rückfrage zur Preisberechnung, so ist dies nicht schön, aber zumindest nicht immer vermeidbar.

Auf die Nerven geht mir vor allem der ganze vermeidbare Overhead. Während die Kassiererin die Waren über den Scanner zieht kann man diese beispielsweise bereits wieder in seinen Einkaufswagen oder in Tüten verpacken, soweit es auf die Schnelle geht, sodass der Rest des Einpackvorgangs die Kasse nicht mehr blockiert. Seinen Geldbeutel griffbereit zu haben ist auch etwas generell gutes. Und ein wenig Konversation ist ok, aber keine langen Geschichten erzählen. Das mag die Stimmung mancher Menschen auflockern, aber die Kasse eines Geschäfts ist nicht der Ort dafür.