Warum die Politik mehr Interesse an Netzkompetenz zeigen sollte

Fri, 30 Apr 2010 13:51:50 +0000

Würde ich irgendeinem Fremden auf der Straße meine EC-Karten-PIN sagen? Oder ihm meine Adresse geben? Ihm private Dinge anvertrauen? Oder mich vor ihm ausziehen?

Irgendwie glaube ich, die meisten Leute würden diese Frage trivialerweise mit einem “Nein” beantworten. Mich wundert es deshalb immer wieder, wieso solche Dinge, die eigentlich jedem klar sein sollten, im Internet so oft keine Anwendung finden.

Alleine die Tatsache, dass Phishing-Mails nach wie vor als “Gefahr” angesehen werden, obwohl auf den Formularen zum Online-Banking mehrfach dick und fett zu lesen ist, “wir werden Sie niemals zur Angabe ihrer Pin auffordern”.

Nun gibt es wie im RL auch im Internet einen Haufen perverser Leute. Da aber die Meisten ihren gesunden Menschenverstand im Internet offenbar ausschalten, haben Erstgenannte es dort freilich erheblich leichter. Und so kommt es, dass man so schockierende Meldungen liest wie “Mädchen mussten sich ausziehen“.

Als ich die Schlagzeile las dachte ich eigentlich erst an irgendeinen neuen Missbrauchsfall in irgendeiner größeren Einrichtung, von denen ja momentan häufiger berichtet wird. In Wirklichkeit handelt es sich aber um einen Vierunddreißigjährigen der sich als pubertären Jungen ausgegeben hat, und Mädchen online dazu aufgefordert hat, sich vor ihrer Webcam auszuziehen.

Vorweg: Ich bin froh dass sie so jemanden geschnappt haben, dieses Verhalten ist unmoralisch, und soll bestraft werden. Trotzdem will ich – mal ganz ohne moralische Wertung – ein paar Dinge anmerken.

Zum einen, dieser Mensch war offenbar weniger schlau, denn hätte er es dabei belassen, dass sich die Mädels vor ihm ausziehen, wäre er wohl kaum aufgeflogen, laut dem ksta-Artikel ist er dadurch aufgeflogen dass er die Mädels danach erpresst hat, weitere unanständige Dinge zu tun, da er ansonsten ihre Nacktbilder weiterverwenden würde. Warum er nicht einfach auf die zahlreichen Pornoportale zurückgegriffen hat, in der Exhibitionisten ihren Spaß haben können, frage ich mich.

Die Mädels waren aber offenbar auch nicht unbedingt mit Verstand gesegnet. Denn anders als die Schlagzeile es sugeriert, “mussten” die Mädchen sich laut dem Artikel keineswegs ausziehen, sie haben es freiwillig getan. Ich frage mich, was jemanden dazu bewegt, sich vor einer fremden Person auszuziehen, durch einen offenbar unidirektionalen Sichtkanal. Dass zwei Jugendliche über einen Videokanal chatten und sich beide ob der Befriedigung entkleiden, was man meines Wissens als Sexting bezeichnet, nun, das finde ich zwar durchaus auch bedenklich (unverschlüsselte Videoprotokolle, MITMs, Computerviren, etc.), aber es ist beidseitig. Sich vor einer Person zu der man keinen Sichtkontakt hat auszuziehen, das ist wiederum – entschuldigung – einfach nur dumm.

Als hormongeplagter pubertärer Jugendlicher setzt aber vielleicht der Verstand an der Stelle manchmal aus. Das ist verständlich. Das sollten aber die Eltern betreffender Personen schlichtweg wissen. Und dementsprechend ihre Kinder aufklären. Ich glaube nicht, dass es zu viel verlangt ist, seinem Kind zu erklären, es möge bitte NIEMALS Nacktbilder von sich in irgendeiner Weise im Internet versenden, denn was hochgeladen wird, kann sehr schnell und ohne dass man es merkt in falsche Hände geraten, und was einmal im Internet ist, verschwindet von dort auch nicht mehr so einfach. Zumindest das wollen die meisten Jugendlichen wohl kaum.

Genauso sind hier die Schulen gefragt. Verständnis für Internettechnologien ist hier gefragt. Es gibt genügend Beispiele, und genügend Möglichkeiten, den Leuten zu erklären, wie unsicher eine unverschlüsselte Verbindung ist, und wie leicht es ist, im Internet Identitäten zu fälschen. Und wie schwer und warum es schwer ist, etwas, was einmal im Netz steht, da wieder rauszukriegen.

Klar, man kann durch entsprechende Gesetze versuchen, das Netz möglichst weit zu zensieren, und möglichst viele Täter fassen. Aber das Netz ist groß. Zu groß, als dass es technisch möglich wäre, mit bloßer Technik gegen solche Probleme vorzugehen.


Wieder eine Lappalie, mit der der Bundesgerichtshof zugemüllt wird

Thu, 29 Apr 2010 19:00:34 +0000

Ich kenne Personen, die den Bundesgerichtshof als einziges noch funktionierendes Staatsorgan ansehen. Zumindest erfüllt es die wichtige Aufgabe, unsere Politiker in ihre Schranken zu weisen, und in sich durch alle Instanzen hindurch nicht klärenden Streitfällen ein Machtwort zu sprechen.

Ich habe mal gehört, Anwälte müssen eine Gebühr zahlen, wenn sie mit einer Klage vor den Bundesgerichtshof gehen, um zu verhindern, dass man mit jedem Bagatellfall davor zieht.

Leider wird wohl dabei nur kontrolliert, ob es sich um eine Frage handelt, die noch nicht entschieden ist, und nicht, ob diese Frage in irgendeiner Weise sinnvoll ist. Und so konnte ich heute lesen, dass eine Künstlerin Google verklagt, weil die Bildersuche Thumbnails ihrer Bilder zeigt.

Zunächst mal finde ich die Bildersuche eine großartige Sache, und sie hat mir schon oft Dinge erleichtert. Nur um das mal vorweg zu sagen. Und ich verstehe auch nicht, was man als Künstler dagegen haben kann, dass man die eigenen Bilder in der Bildersuche findet. Es sind thumbnails. Vorschaubilder. Mehr nicht.

Desweiteren verstehe ich nicht, warum ein Künstler seine Werke ins Internet stellt, wenn er nicht will, dass diese auch gesehen werden. Ich nehme mal stark an, die betreffende Künstlerin wird so vorgegangen sein – denn befinden sich ihre Bilder im Internet ohne dass sie dazu beigetragen hat, dann war dies sicher nicht Googles Schuld, und sie sollte vielleicht den verklagen, der sie primär ins Internet stellte. Oder handelt es sich hierbei womöglich um das Missverständnis, das Internet sei nur eine große Verkaufsplattform für Inhalte?

Auch Googles Verhalten scheint in dieser Sache seltsam zu sein. Eigentlich kennt man es doch eher so von Google, dass sie Inhalte, die man nicht verlinkt haben will, nicht mehr verlinken, wenn man es ihnen direkt sagt. Um zum Bundesgerichtshof gehen zu dürfen muss man aber doch meines Wissens einige Instanzen durchlaufen. Einzig und Allein könnte ich mir vorstellen, dass Google hier ebenfalls ein Interesse an einer Rechtssicherheit hat. Immerhin: Wenn ein Gesetz draußen ist, müssen sich auch die Konkurrenten daran halten. Wenn nicht, wird Google als führender Anbieter vermutlich mehr Klagen an den Hals bekommen als Andere.

Dann ist natürlich die Frage, darf Google prinzipiell urheberrechtliches Material cachen und Daumennägel davon als Suchergebnisse anbieten, auch wenn der Urheber dies nicht will. Meine Antwort wird jetzt vielleicht manch einen erschüttern, aber dazu ist meine Meinung ganz klar: Nein.

Und nun kommt die für mich entscheidende Frage: Hat der betreffende Künstler Google auch entsprechend geltender Internetstandards mitgeteilt, dass er dies nicht will? Zum Beispiel in Form einer robots.txt, and die sich Google und Andere in der Regel halten? Irgendwie zweifle ich das an, denn sonst würde Google sie kaum anzeigen.

Ich frage mich manchmal ohnehin, ob den Leuten überhaupt bewusst ist, dass bei Google nicht ein paar Millionen Heinzelmännchen im Internet surfen und Suchergebnislisten erstellen. Dass da nicht bei jeder Seite irgendwer das Impressum und die speziellen Vorlieben bezüglich welche Seiten jetzt angezeigt werden dürfen und welche nicht durchgelesen und interpretiert wird, sondern ein Automatismus eine syntaktische und semantische Analyse durchführt und dann dass Zeug indiziert. Kein Mensch ist daran beteiligt.

Mein Vorschlag wäre, den robots.txt-Standard rechtlich festzuschreiben. Webcrawler und Bots sind inzwischen viel zu wichtig für das Internet, als dass man sie in dieser starken Weise einschränken sollte, zumal auch die meisten Künstler auch eher ein Interesse daran haben dürften, gefunden zu werden. Per robots.txt könnte dann jeder, der nicht will, dass seine Inhalte Indiziert werden, dies den Webcrawlern mitteilen, und solange diese sich daran halten, und sie in angemessenen Zeitabständen überprüfen, sollte Rechtssicherheit gelten.

Update: Ich bin froh zu lesen, dass der BGH meine Ansicht teilt. Ich frage mich dennoch, brauchte es dafür wirklich den Bundesgerichtshof? Hätte ein wenig Menschenverstand nicht ausgereicht?


A nice connection between Russel’s paradox and Gödel’s incompleteness theorems

Wed, 28 Apr 2010 17:05:16 +0000

Russel’s paradox states that there must not be a set y:={x|x∉x}, because then y∈y→y∉y and y∉y→y∈y.

In my younger days, when I had less knowledge but more time and fun when increasing it, I had a time when looking for paradoxes inside common theories. I simply didnt want to believe in the consistencies of the theories we have. I was desperately trying to get articles from Eduard Wette and liked hearing about failures mathematicians had made in the past. Well, this time wasnt too long, and soon I realized that searching for paradoxes in common theories is not useful anyway, since if they really arent consistent, either we will never know (and thus dont have to care) or we will notice someday and then adapt our theories. Anyway, on some day at this time, somehow I was thinking about the Russel Paradox and what happened to it if you did formal set theory inside number theory. Thinking deeper about it, I had a strange result which I firstly didnt quite understand.

First, lets not be too formal – such that you can understand my confusion at first sight.

Lets consider , the standard-model of peano arithmetic. As Gödel did, you can encode propositions about natural numbers in natural numbers themselves. Lets denote by [P] the natural number encoding the proposition P. Especially, you can encode every proposition with one free variable as a number, and a proposition with one free variable is something similar to a set of natural numbers. So lets denote by n∈[P] the fact that P(n) holds (and define it to be false if the second given argument doesnt encode a proposition with exactly one free variable). Now, is a binary relation between natural numbers, which can be expressed inside arithmetic, and so is its negation, which we denote by . Then the proposition n ∉ n has exactly one free variable, and can also be encoded as a natural number, say m:=[n ∉ n]. Now assume m m. Then, by definition of m, we have m m. Same vice versa. Sounds like a contradiction.

Ok, well, something obviously went wrong. Lets get a little more formal.

The first flaw is that we may be able to denote every proposition about natural numbers, but not the question whether it is true. Because we have to give a finite relation which tells when a given proposition should be true. Thus, lets redefine our relation by n∈[P] saying “there is a formal proof of P(n)“, or in signs ⊦P(n) – it is known that this is possible. Then again consider our m:=[n ∉ n]. It applies to all [P] such that ⊦P([P]). Again, we may ask whether m m. This time that means ⊦m m. That is, if m m then we can prove that m m which is a contradiction. Hence, m m if any. At this point we had the contradiction above.

But this time, m m means ¬⊦m m. That is, there is no formal proof for m m. At this point, we have shown that m m is not provable in peano arithmetic, but that it is indeed true in . That is, we have a proposition that is true in the standard model, but not provable, like the one Gödel created.

And if you think about it, you will notice that actually we created exactly the same proposition as Gödel did, namely a proposition stating its own unprovability. But essentially we have followed the same idea as done in Russel’s Paradox.

The main difference is that in Russels’ Paradox, we assume some “omniscient” decider for the -relation, while in we also assume an “omniscient” decider for the arithmetic relations we have, but we cannot assume an “omniscient” decider for meta-propositions [P], we must use provability for this.

To emphasize this a bit, lets not talk about sets but about deciding functions f:’abool. Lets say ‘a may contain every of these functions. That is, every function can be passed an arbitrary function as first argument. Lets again define a relation f a g stating g(f)=True. Then we can define the function NSA(f):=True, if f a g and False otherwise. Then as before, we can ask whether NSA∈aNSA. Of course, this will lead to the same contradictions as above. In this case, the answer is again that such a function NSA must not exist. But this time we can clearly see the connections to both situations above: On the one hand, with NSA, we denote a set of objects, like in the Russel paradox. On the other hand, we want NSA to be something which can always “tell” us the truth of a proposition, and there must not be such a thing, like in Gödel’s incompleteness theorem.

Btw, NSA stands for Non-Self-Accepting, one can identify it with the class of Non-Self-Accepting algorithms, i.e. algorithms which return False when they are passed their own code, and with a little more recursion theory, the above argument is the proof of NSA not being decidable.


A few ideas for a Lisp-Shell-Language

Wed, 28 Apr 2010 00:08:42 +0000

Bash is one of these languages who seem to be made just for a few small purposes and are now used for vitally everything using ugly hacks and producing unreadable, ununderstandable and undebuggable code.

There are other Shell-Languages, and of course, there is the Clisp-Shell. Except for Clisp they are not “lispy”, and mostly have a lot of Syntax-Structures. I myself dont like too much Syntax. Infixes can make code more readable, if fit into the language, like StandardML does. And having different kinds of Brackets also can do. But having a lot of special syntax for several purposes makes a language more complicated and harder to use, at least to me. This is why I mostly dont like Perl – you can write beautiful Perl-Code, but most people dont. To me, it is not an argument that a Perl-Programmer can express something in one line which can be expressed in Scheme only in 5 lines – the readability of the latter is mostly better.

And well, Clisp as a shell-language sounds not well, because it is a Common Lisp Implementation, which means it mighty – too mighty for a shell. A shell should be turing-complete and simple, it should give the possibility to call other programs with parameters it gets in various ways – but its primary use remains calling other programs.

There is no point in efficiency (other than maybe having a polynomial time algorithm instead of an exptime), it should be simple, easy-understandable, and serve its purpose.

So, thinking of a lispy shell-language, I had the following ideas:

The REPL should be Line-Aware

That is, you dont always have to write parentheses around every instruction to call programs. A line without parentheses and context should be interpreted as if parentheses were put around it. That is, outside any construct like let, loop, etc. – just for the purpose of small function calls outside any other context, just for convenience. As soon as you are inside another lispy context (like let, if, begin, etc.), this should fail. Whether to allow this inside shellscripts or not is a good question – some programs may rely on syntax without parentheses. I would allow it under the same conditions. And above all: As soon as there is one parenthese, parentheses are not optional anymore. That is to prevent ambiguousities. Having one pair of parentheses around a line should really mean the same as having none of them, while having two of them should really always mean having two pairs of them.

There should be only one type of token

Strings, Symbols and several kinds of numbers can be distinguished in most lisps. For a shell-language, this isnt really necessary, I think. Strings are enough. They can carry every information of the other ones. Numbers can always be encoded in decimal Strings – well, arithmetic will get a lot slower then, but for simple calculations it should be fully sufficient, for complex ones one shouldnt use a shell-language anyway. There should be two ways of specifying them: When they dont contain any special character, they can be passed like symbols known from other Lisps. With special characters, they have to be put in quotes. And – above all – no unquoting inside strings, like in bash or php. Some function like string-append should be provided, but inside quotation marks, there may be a syntax for special characters, but nothing more.

One problem which arises with this approach is how to handle variables. If you dont distinguish between numbers, symbols and strings, you dont have any possibility of determining whether a variable or the actual value is to be requested. Well, for the global environment-variables, there should be special commands getenv and setenv, anyway.

For local variables, it is the same as the problem about quoting and unquoting, that already arises in other Lisps. On the one hand, in most cases one could just say “just dont name your local variables like strings and other symbols are named”. Maybe that would be the best way to do, and leave the rest to the programmer. But that could also cause confusion. So for variables, maybe a bash-like syntax like $”…” would be good, i.e. having a $ in front of a string to denote variables. But then, one either would have to enforce quotation marks after $, or to add some additional conventions for strings which could get complicated. I think, just defining a function-like object called $ is also sufficient. Then you can access your variables with ($ var). You can pass Strings in both Syntaxes, and in the end, having ${varname} is not so much less verbose than having ($ varname). Of course, maybe this is not the most convenient thing one can imagine, but in my oppinnion, instead of adding a lot of additional Syntax to spare a few characters, a simple, easily-understandable programming model is more important.

There should be no high-level-objects

Lists can sometimes be useful in a shell, too. Like lists of files, or – if you want streaming – lazy lists of characters. So the basic instructions cons, car and cdr should be there (maybe named “pair”, “first”, “second”). But I dont see any use of cyclic data-structures in a Shell-Language. Without cycles, a simple reference-counter suffices for memory-management rather than a fully-blown garbage collector. Good garbage collectors can get very complex, while bad garbage collectors can be extremely bad in performance and memory-usage, both facts do not fit to a shell-language – a shell-language should do its stuff quickly and then be quiet and keep out of the way. A static reference counter and not allowing cyclic data structures anyway sounds like the best way to do. So, for lists, car, cdr and cons exists, but no way of setting the car and cdr of an existing cons.

There should be C-like scope-declarations rather than let-declarations

One thing that sometimes really annoyes me when using Scheme or Common Lisp is that local variables cannot be declared in the place they are used without adding an additional let-block. Therefore, either the variables need to be declared on top of the block, or you will get code which isnt readable because of the many sublists it contains. Or you will just use a long let*-declaration which saves all intermediate results, so you can code like you would do in a C-Like language.

Of course, inside a real Lisp, the let-approach gives you a lot of benefits like a complete control of which variables are currently declared in your scope, so in this case its a trade that you will kindly accept. But shell-scripting is mostly about quickly coding a few basic computations. Therefore, I think its better to give a possibility to declare variables and scopes in the way C does using curly parentheses and equal-instructions. One could declare the commands (block …) for declaring that here starts a new scope, and (var … = …) for declaring variables, as commands, and additionaly (set … = …) to set them.

Above, the usage of arbitrary strings as variable names was suggested, without the bounds a fixed let-Syntax would give, you can define variables named by arbitrary strings. In fact, the approach of allowing an arbitrary string for accessing variables has some disadvantages. You can produce very bad-looking code, and of course, you can use this as a hack for getting arrays and dictionaries. But on the one hand, if you quickly want to collect a few elements into indexed variables, there is nothing wrong with this, if you really need to exploit it to the maximum, you will get ugly unreadable code, but thats your problem then.

There should be a convenient piping- and streaming-API

Yes, I said a shell language shouldnt be too mighty. But piping and partially interpreting the output and generating the input of a process is something that has to be done so often that there should be an API included in the shell language. What happens if you dont add such an API can be seen in the various hacks that have found their ways into bashscripts. To be more versatile, tools like awk and sed evolved, but – honestly – many code generated with them is pretty unreadable. And its still hard to handle binary data, which is somehow needed, too.

So I think forbidding the handling of binary data and forbidding to read from stdout and write into a stdin directly produces more complicatedness than just adding a simple API that can handle all of this. I mean, in the end, its the only real way for the shell to communicate with programs it calls, except for the return values.

Conclusion

A lot more could be said about shell languages I think. And of course, every point I mentioned is arguable. Something that goes into the direction I mentioned seems to be Tcl, but as far as I see, Tcl is more a scripting language than really a shell language, even though the interpreter is called “wish”.


Neulich in der U-Bahn

Sun, 25 Apr 2010 19:37:47 +0000

Richtig lustig wurde es dann, als sie gemerkt haben dass da ein Hund an ihrem floh hängt...


A rant about non-commercial IM-Servers and Clients

Sun, 25 Apr 2010 18:42:44 +0000

This rant is SO necessary! I am SO pissed off!

Today, my FOURTH Jabber-Account on a free server is failing.

Jabber – the great free decentralized XMPP-Network on which even commercial services like Google Talk participate. So the default procedure is: Someone who likes to be admin of a server creates an XMPP-Server, making it freely available, and maintaining it. But it happens what always happens: The Admin gets older and therefore more work to do, and so, the XMPP-Server gets forgotten. Instead of giving some other person the possibility to maintain it, the server either goes down completely, or has downtimes and bugs whenever you want to use it.

Thats what already happened three times to my accounts. I had to switch the server and port my contactlist every time. I will try to keep my current account as long as possible, but at the moment I am just totally switching to google talk.

Basically, Google Talk works and has almost no downtime – yes, it already had maintenance-timeouts, but these were announced before and were short. Thus, well, Google is open to external Jabber-Servers, and thus part of the Jabber-Network, but as it appears to be the only long-term reliable server besides jabber.org, the “freedom” behind Jabber becomes arguable.

Then well, having an own little vserver should be sufficient for having an own Jabber-Server. The question is: What server-software to use? Jabberd2 seems very strange, and everyone suggests using ejabberd. But ejabberd – under Debian … well, most people suggest not to use the package, and I actually also do so, because not even the initscript works properly. But lets be honest. Ejabberd works – sort of. If you leave it to the basic configuration and hope that your server will be accepted by the other Jabber-Servers – and, above all, will accept other Jabber-Servers – there may come a time when you can actually use it (except when it crashes or refutes to connect because of some misconfiguration you didnt even notice before connecting to it from another IP-Address).

If you only want the service for yourself, you could also think of running a server locally on your Home-PC, using dyndns. Well, this solution is not very stable for a huge Jabber-Server, but for you and a few friends it should be sufficient. But then you are almost guaranteed to not being able to connect to the larger Jabber-Servers – because they mostly deny access of such IP-Addresses – which is obvious, since otherwise they would be flooded with spam.

And above all, having an own server is nothing for everyone. It is basically not what Instant Messaging was thought for. Instant Messaging contains the word “instant” – which means you want to use it instantly. You dont want to have to configure a complex server infrastructure everytime you want to ask a friend if he likes pizza when he arrives visiting you, or if he will join you in the canteen this noon. Especially, you as a conscious free-software-user could even be willing to take the extra efforts to maintain such a thing, but will the handsome neighbour-girl you want to date do so, too? IM is only an option if it is easily available to anyone.

This includes a simple Client which runs under Windows – which doesnt want to know lots of strange settings, but just a small User-ID and password, and then connects and then just works. Is that really so hard?

Well, facebook has an XMPP-Service meanwhile, which is a good thing (and does certainly produce some costs to facebook) which works perfectly as far as I see – except with the newest Pidgin-Version (which is the client which is most commonly recommended to users). I tried with other clients. I tried with older Pidgin-Versions. It worked perfectly. Only the new Pidgin-Version doesnt like facebook’s XMPP-Service. And – above all – I asked #pidgin for help. But nobody could imagine what the problem is.

This is an XMPP-Service – it uses an open protocol. And it used to work with the same client on an older version. But nobody can even tell how to trace the problem. Now, isnt that nice?

And to get your client being able to transfer files from point to point is another story. It isnt even always sufficient to have one open port on one side.

Actually, I dont see the point to XMPP at all. Seems like the main purpose it is used for is Instant Messaging. There may be multiuser-chats, but IRC is far more wide-spread, and far more usable, and has a simple protocol. Actually, IRC could be used for Instant-Messaging, too, when slightly modified or extended.

I cannot understand why its so hard to create a working protocol for instant-messaging. I mean, its not that instant messaging is something that has just been invented.


Warum ich kein Pragmatiker bin

Sat, 24 Apr 2010 00:14:52 +0000

Die Pragmatiker haben die Oberhand, so scheint es. In der Politik, der Wirtschaft, der Softwareentwicklung, dem Ingenieurswesen, überall hört man von Praxisorientiertheit, von der Praxis™, und, gerade wenn man sich als Mathematiker fühlt, davon, wie sinnlos die Theoretiker sind, die keine Ahnung davon haben, worauf es wirklich ankommt.

So kommt es, dass ich mir von einem Fachinformatiker sagen lassen muss, dass ich in meinem Informatikstudium nichts sinnvolles lerne – obgleich ich in der Universitäts-Informatik prinzipiell dasselbe lerne, was ein Fachinformatiker lernt, und unzählige zusätzliche Dinge, die er nicht lernt, und deren Sinn er somit nicht beurteilen kann, und ansonsten der hauptsächliche Unterschied eine Verlagerung der Schwerpunkte ist. Ich muss mir anhören, ich würde nur funktionale Programmierung lernen, die ja so sinnlos sei und in der Praxis™ keinerlei Relevanz hat und je haben wird, da de facto alle wichtigen Softwareprojekte die kommerziell relevant sind in C++ geschrieben sind. Dass C++ sich im Laufe der Zeit einiges aus der Ecke der funktionalen Sprachen abgeschaut hat, und generell theoretische Erkenntnisse einflossen, was auch pragmatisch gesehen die Forschung an funktionalen Sprachen rechtfertigt, sei mal ungeachtet, denn darauf will ich garnicht hinaus.

Nein, worauf ich hinaus will ist, dass mir die ganzen Pragmatiker inzwischen generell wahnsinnig auf den Senkel gehen, weil in dem, was man als Pragmatik ansieht, eigentlich der Ursprung vieler schlechter Entwicklungen steckt. Wie immer bei solchen Posts von mir, erstmal die Definition von Wikipedia:

“Der Ausdruck Pragmatismus (von griech. pragma „Handlung“, „Sache“) bezeichnet umgangssprachlich ein Verhalten oder Handlungen, die sich nach den bekannten Gegebenheiten richten und auf eine theoretische Analyse und genaue Begründung der Wirkungen verzichtet. Pragmatisches Handeln ist nicht an unveränderliche Prinzipien gebunden.”

Nun, das klingt nach einer ganz guten Definition. Ich persönlich würe es rein Betonungstechnisch sogar eher so ausdrücken, dass Pragmatismus das Arbeiten mit den Gegebenheiten, ohne ein Interesse einer Veränderung oder Verbesserung, ist. Und diese Form der Arbeit ist die sinnloseste überhaupt – jede Arbeit hat in der Regel im Sinn, eine Verbesserung in irgendeiner Weise herbeizurufen, und sei es nur, den Verfall etablierter Strukturen zu verhindern. Dies setzt ein grundsätzliches Interesse an der Arbeit die man erledigt voraus, und ich persönlich könnte nur schwer an irgendetwas arbeiten, was mich in keiner Weise interessiert.

Selbstverständlich muss nicht jeder in jeder Beziehung ein großes, tiefgründiges Interesse einer Verbesserung haben. Ein Webdesigner darf meinetwegen Flash verwenden, eine Büroangestellte muss die Office-Lösung verwenden, die sie vorgesetzt bekommt.

Hier komme ich aber gleich zum ersten Beispiel, das ich für falschen Pragmatismus anbringen will: Ich hatte bereits Gesprächspartner, die meinten, sie würden grundsätzlich nur Microsoft Office verwenden. Microsoft Office sei ein de-facto-Standard, und jeder, der sinnvoll am Geschäftsleben teilnehmen will, muss eben erstmal in Microsoft Office investieren, weil es schlichtweg zu dem Gehört, was man grundsätzlich benötigt. Und ich gebe zu, würde ich ein Unternehmen gründen, ich würde mir wohl auch einen Windows-Rechner mit einem Microsoft Office irgendwo hinstellen. Einfach, weil ich dann ein kleines Unternehmen wäre, das zumindest die Möglichkeit haben sollte, doc-Dateien richtig zu lesen. Andererseits würde ich von meinen Sekretärinnen erwarten, dass sie mit einem anderen System, am Besten LaTeX, schlimmstenfalls aber OpenOffice, zurechtkommen.

Man mag mir an dieser Stelle entgegnen, dass das keine Schlüsselqualifikation einer Sekretärin sei – schließlich könne sich nicht jeder mit der tiefgreifenderen Technik auskennen, und es müsse reichen, dass Sekretärinnen Arbeitsprozesse auswendig gelernt haben, die auf diese Weise nur in den etablierten Office-Anwendungen funktionieren.

Dem kann ich nicht zustimmen. Office-Anwendungen sind Handwerkszeug von Sekretärinnen. Freilich sind sie in erster Linie Nutzer, aber zumindest so gut, dass man einen Umstieg auf ein vergleichbares Produkt ohne größere Probleme autonom hinbekommt, sollte man sein Handwerk beherrschen.

Hier ist jedenfalls Pragmatismus komplett falsch, weil er ein Monopol erzeugt, und unzählige Unternehmen abhängig von Einem macht. Vor Allem wenn der Pragmatismus sich in die Ausbildung auswirkt, womit ich beim nächsten Punkt wäre: Der Pragmatismus in der Ausbildungspolitik.

Mehr Praxisbezug, mehr Nähe zu den Unternehmen, ich kanns manchmal nicht mehr hören … ständig hört man solchen Müll. Die Akademische Welt hat ihre Berechtigung, auch ohne Wirtschaft, auch wenn man ihr dies gerne absprechen würde. Grundlagenforschung brachte bereits mehr als Einmal wichtige Erkenntnisse. Das große Problem des Pragmatismus ist hier, dass er möglicherweise dafür sorgt dass man sehr viel was sehr lange nichts bringt nicht durchführt, nur leider gibt es gerade für die Dinge, die die Welt wirklich voranbringen, keinen Detektor, keine Garantie, keine Methode, sie zu finden. Wenn man revidiert wie viele Erkenntnisse sich ergeben haben, ist die Frage, ob die allzu pragmatische Sicht sinnvoll ist – sie garantiert kurzfristige Gewinnmaximierung, mehr auch nicht.

Wirtschaftlicher Pragmatismus – etwas, das ich zum politischen Pragmatismus zähle. Da gab es zum Beispiel die Politiker die meinen, eine Stimme für die Piratenpartei wäre eine Stimme für den Gulli, da diese die 5%-Hürde ohnehin nicht erreicht hätte. Mit dieser Argumentation hätte man noch vor garnicht so langer Zeit gegen die Grünen argumentieren können. Mit dieser Argumentation hätte man generell gegen jede Auflehnung gegen ein Establishment argumentieren können. Klar behalten die Pragmatiker nicht selten tatsächlich Recht mit der Aussage, eine kleine Bewegung setzt sich nicht durch. Die Frage ist nur, ob es sich nicht dennoch lohnt, sie zu unterstützen? Immerhin ist auch dies die einzige Möglichkeit, die Welt relevant zu verändern. Die Welt wird eben nicht von etablierten Mainstream-Ansichten verändert.

Die Struktur all dieser Beispiele ist ungefähr die Gleiche: Pragmatismus schließt große Veränderungen aus. Bisweilen sind aber große Veränderungen notwendig um ein System zu verbessern.

Ich sage nicht, dass Pragmatismus generell schlecht ist. Auch ich bin bisweilen pragmatisch, in kleinen Dosen. Generell bin ich aber eher idealistisch. Ich habe mir das pragmatische Denken mühsam antrainieren müssen, aber ich beherrsche es inzwischen denke ich ganz gut – teils zu gut, denn viele Menschen, die sich selbst als Pragmatiker sehen, haben subtil selbst Ideologien.

Pragmatismus vs. Ideologie sind zwei entgegengesetzte Haltungen. Man benötigt beide in einem entsprechenden ausgeglichenen Maß. Aber eben auch wirklich beide – das darf man nicht vergessen.


Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.