Bye bye Windows10? Oder: wie lange tue ich mir das noch an?

Jetzt einmal wieder. Das groß angekündigte, eigentlich seit August vorhandene „Anniversary Update“ (haha!) hat sich neulich bei mir gemeldet. Es sei bereit zum Update. Leider scheitert es zum wiederholten Mal. Und das kommt mir doch sehr sehr bekannt vor.
Es begann letztes Jahr schon beim erstmaligen Aufspielen von Windows 10. Nach Stunden des Rumhängens Abbruch; wiederholte Versuche. Beim 4. Mal klappte es dann, weiß der Teufel warum. Zwischen den Versuchen natürlich der wiederholte Download der Veranstaltung: das blöde Updateverfahren haut wieder weg, was es heruntergeladen hat. Macht wohl nix, wir verstopfen halt ein wenig die Netze.
Dann, ein paar Monate später, kam mit dem Upgrade auf „1586“ das fehleranfällige Verfahren erneut auf mich zu. Und wiederum mehrere Fehlschläge, wiederholte Downloads, und vor allem: Stunden vergeudet mit dem Teil. Warum, um Himmels willen, bedeutet ein Upgrade oder Update auf einer Mainline das komplette Neueinspielen des Systems? Abgesehen davon, dass man natürlich nicht erfährt, was da alles so getrieben wird, wo und in welchen Daten Microsoft überall herumschnüffelt und ob es die gewonnenen Informationen in die Konzern-Datenbanken hochlädt.
Und zur Zeit eben wieder dieselbe Erfahrungen mit diesem „Anniversary“-Scheiß: „es ist ein Problem aufgetreten“! Ja, bitte welches denn? Darüber erfährt man nichts. „Die vorige Version wird wieder hergestellt“: immerhin, das klappt.
Darüber hinaus habe ich seit einigen Wochen das Problem, dass das System sekundenlang nicht mehr bedient werden kann, weil der Mauszeiger immer wieder mal verschwindet, mit einem lästigen Gepiepse beim Verschwinden und beim Wiederauftauchen (das Gepiepse konnte ich wenigstens ausschalten).
Eigentlich kann ich nur sagen: Windows 10 nervt und sollte verschwinden (mal abgesehen von der ganzen Schnüffelei und Datensammlung, die es mitbringt). Ich muss mal Bilanz ziehen. Was gibt es eigentlich unter Windows, das man – etwas anders, klar – nicht auch unter Linux bekommt? Ich vermute, wenig. Auf Word & Co kann ich eigentlich verzichten. Mein geliebter Media Monkey? Ok, da gibt’s auch Ersatz. Guitar Pro wäre ein Verlust, Goldwave auch. Sonst noch was? Wahrscheinlich.
Ach ja: mein auf dem Scanner und seiner Software beruhendes „papierloses Büro“.
Ich sollte es einfach mal probieren, Linux zum Hauptsystem zu machen und bei Bedarf halt Windows 10 zu booten.

Begriffe, die die Wirklichkeit vernebeln

Man weiß, Sprache ist lebendig. Sprache, Wörter und Begriffe, insbesondere diejenigen, mit der sich Gesellschaften (oder auch nur kleine Gemeinschaften) verständigen, unterliegen dem zeitlichen Wandel, auch der Abnutzung. Dabei ist es wohl so, dass nicht nur neue Begriffe und Worte im Laufe der Zeiten auftauchen. Oft ist es auch so, dass diese Worte einem Bedeutungswandel erliegen – sie werden mit neuen Konnotationen aufgeladen, in anderen Kontexten gebraucht. Manchmal verkommen sie dadurch zu nur noch leeren Worthülsen, und zwar gerade je mehr sie durch die Medien, Tonangeber oder auch nur gesellschaftliche Subgruppen verwendet werden.

Manchmal verbirgt der neue Sinn aber das, was die Begriffe einmal meinten. Meine Generation kennt das ja wahrscheinlich zur Genüge; man denke nur an das, was einst das Wort „geil“ meinte, und wie es heute meist gebraucht wird – ziemlich losgelöst von dem, was es einmal aussagte. Das trifft natürlich nicht nur Verformungen, die durch Jugendkulturen mit deren ständigen Suche nach Andersartigkeit durch absichtliche Umwertungen aufgekommen und dann in die Alltagswelt der ganzen übrigen Gesellschaft übernommen worden sind.

Das, worum es mir hier geht, sind eher Begriffsumdeutungen, welche durch bezahlte Agenten – meist durch die willfährigen Medien in die Breite gedrückt – in die Lebenswelt der Gesellschaft mit gewissen Absichten eingeschleust wurden und nun herumlungern und die Gehirne vernebeln. Es sind oft als „Experten“ (sic!) verkaufte Wissenschaftler, Politker oder Praktiker, aufgrund deren Meinungsführerschaft in der „Öffentlichkeit“ sich solche Umwertungen durchsetzen, das Alltagsverständnis der Gesellschaft besetzen und damit alternative Denkweisen zurückdrängen.

Einer dieser Begriffe ist der „Investor“. Das Wohlwollen, mit dem gerade im Deutschland der Nachwendezeit mit seinen leeren Staatskassen und kaputt gemachten Industrielandschaften diese „Investoren“ jahrzehntelang umsorgt wurden, suggerierte immer schon die Konnotation „Wohltäter“, „Retter“ oder einfach nur „einer der sein Geld für uns zur Verfügung“ stellt, also „opfert“. Erst viel später stellte es sich manchmal (manchmal auch nur für manche!) heraus , dass diese im Gewande des Wohltäters herbeigeredeten „Investoren“ doch ganz schon handfeste Absichten hatten. Dass sie durch ihre „Investition“ sich unserer Lebenswelt bemächtigt haben, als das sind billigst um vom Staat aufgekaufte Betriebe und Grundstücke (das verscherbelte sog. „Silbergeschirr“), ganze Wohnareale usw. Manchmal bemerkte man dann, dass da „Heuschrecken“ ins Land eingefallen sind, deren Absicht nicht das langfristige Engagement zum Wohle aller war, sondern die Aneignung unseres Reichtums. Man hat das bei vielen Betrieben erlebt, in die sie sich einkauften, nur um das Verwertbare abzusaugen, und danach das „Engagement“ einzustellen. Oder, und das ist heute noch nicht am Ende (besonders z.B. in Berlin), das Aufkaufen von Immobilien ganzer Stadtviertel, um danach durch heftige Mietsteigerungen abzusahnen oder bei gestiegenen Immobilienpreise das Aufgekaufte wieder zu verscherbeln.

Es ist das international organisierte, frei flottierende, und eigentlich überschüssige Kapital, das ständig auf der Suche nach neuen, kurzfristigen Verwertungschancen die Gebiete der ganzen Welt heimsucht und zu seinem Spielball macht. Meist unterstützt durch willfährige (oder gar gekaufte) Politiker und Experten, die erst nach einem bösen Ende vermeintlich aufwachen und beteuern, dass es so nicht gemeint war.

Ich zucke daher immer zusammen, wenn ich in Zeitung, Fernsehen oder Radio das Wort „Investor“ höre! Und muss mir immer gewärtigen, was uns denn da wieder verkauft werden soll. Und es kommt mir dann in den Sinn, dass man auch auf der Ebene der Begriffe sich wehren muss. Weshalb ich mir diese Bemerkungen zusammengeschrieben habe…

IT-Entwicklung: Hype- und Guru-getrieben?

Wer sich, wie ich, seit mehreren Jahrzehnten mit Softwareentwicklung berufsmäßig beschäftigt, der hat in seinem Entwicklerleben schon viele Umstellungen und Neuanfänge mitmachen dürfen. Der hat eine Vielzahl  von Programmiersprachen,  Entwicklungsparadigmen, Programmierumgebungen, Tools, Betriebssysteme und Rechner kennengelernt. Und wir wissen: das nimmt kein Ende – das Bessere ist immer der Feind des Guten. Und: ist nicht gerade dieser Prozess permanenter Neuerungen genau das, was unseren Beruf so interessant und nie langweilig macht?

Andererseits aber haben wir auch sehr schlechte Erfahrungen mit diesen immer wieder von den Software-Gurus, den Star-Programmierern und Internet-Schreibern neu in die Welt geworfenen Hypes der IT-Branche gemacht.  Unvergessen die jahrelang als Allheilmittel gepriesene „Enterprise Java“ Technologie mit ihren „Java Server Pages“ und „Enterprise Java Beans.“ Wie viele Projekte, Manager und Firmen sprangen damals – Hype-getrieben – auf diesen Zug und mussten spätestens bei der Umsetzung dieser unausgereiften Techniken und Produkte in größeren Projekten erkennen, wie ineffektiv, aufwändig und schwerfällig dieses ganze „Standard„-Zeugs doch war? Wie viele Millionen wurden hier in den Sand gesetzt, wie viele Kunden mit inperformanten und teuren „Lösungen“  beglückt? Obschon: die IT-Industrie verdiente eigentlich prächtig daran – sie durfte ja auch selber sich in Folgeprojekten mit neuen, wieder „besseren“ Technologien die Unzulänglichkeiten der alten Versuche reinwaschen. Man machte dann halt nicht mehr „J2EE“, sondern entdeckte „Spring“, oder „SOA“, oder „Webservices“, oder „JSF“ , „REST“ und was weiß ich noch alles.

Waren es in den Neunzigern noch die Großen der Branche wie IBM, Microsoft, Sun oder Oracle (ganz zu schweigen von den IT-„Analysten“ wie Forrester & Co ) , die damit ihr Marketing für ihre kommerziellen Produkte und Ziele betrieben, so sind heutzutage die Hype-Erzeuger (wenn man den Nicht-Microsoft-Bereich betrachtet)  doch eher Leute aus den Open Source orientierten Bereichen.  Mit gutem Grund. Denn die Entwickler der Open Source Produkte entwickelten ihre Ideen oft in Einzelprojekten vor dem Hintergrund der erkannten Unzulänglichkeiten der als „Standards“ proklamierten Produkte der Großen.  Man denke an JBoss, Hibernate, an Spring. Die weltweite Verbreitung dieser Open Source-Technologien unter den Entwicklern floss dann immerhin auch wieder in die revidierten Standards ein, so dass der heutige „JEE“-Standard doch um Längen besser ist als das was die Komitees der Großen zu Anfang des Jahrhunderts produzierte.

Was heute aber richtig nervt, das sind die Hypes, die aus dem Open Source-Lager stammen.  Die aber werden weniger produziert von den Open Source-Entwicklern selber, sondern von Schreiberlingen und Konferenz-„Speakern“, die mit ihren Artikeln und Postillen in Zeitschriften oder Internet-Portalen oder auf Konferenz-Vorträgen uns mit immer neuen Programmiersprachen, Web-Frameworks oder Tools und Methoden zu besseren Entwicklern erziehen wollen. Freilich, selten so, dass sie uns Anwendungsbereiche aufzeigen, wo solche Neuerungen tatsächlich sinnvoll verwendet werden können. Sondern fast immer in einem Ton, der uns verspricht, dass (mal wieder) ein völliger Neuanfang  der bessere Weg sei. Doch wie viele Entwickler haben überhaupt die Freiheit, sich entscheiden zu können? Sind nicht die Meisten von uns ohnehin mit Arbeiten beschäftigt, in denen sie Wartung und Pflege machen, sprich: Altsoftware meistens totpflegen?

Wen und was meine ich genauer damit? Da sind z.B. die Protagonisten der „NoSQL“-Bewegung, welche die für ganz bestimmte Kontexte, und dort eben passende Technologien zu einem Mainstream machen wollen. Oder diejenigen, die aller Welt verkünden müssen, dass GIT doch jetzt das Tool der Wahl sei, und nicht mehr Subversion (wenn’s doch vom Linus persönlich geschrieben und in dessen Welt verbindlich gemacht wurde). Und insbesondere aber diejenigen, die uns von den Segnungen der neuen, funktional orientierten Programmiersprachen wie Scala und Clojure überzeugen wollen und Java mit seiner OO-Orientierung zum alten Hut erklären. Wobei sie übrigens noch vor 2, 3 Jahren verkündeten, dass doch Ruby/Rails oder Groovy/Grails der „groovige“ Charme sei, der die Entwickler erfassen solle.

Man verstehe mich nicht falsch. Ich finde gerade in Scala manches sehr viel besser umgesetzt als in Java – man steht ja auch mehr als einem Jahrzehnt Erfahrungen. Das Bestreben z.B., Überflüssiges wegzulassen und dem Compiler zu überlassen; kompakteren Code zu fördern, oder auch  funktionale Konstrukte und Muster (Closures, etc) einzuführen, macht in der Tat manches simpler. Aber das kann auch ins Gegenteil umschlagen. Funktionale Konstrukte können, wenn der Problemkontext oder die Laufzeitumgebung nicht beachtet wird, doch zu sehr inperformantem Code führen – nicht umsonst fährt Scala ja z.B. bei den Collections zweibahnig, präferiert zwar „inmutable“-Konstrukte, hält aber auch immer die veränderlichen Konstrukte bereit. Und das Bestreben nach kompaktem Code, welches über intensive Nutzung von Sonderzeichen herbeigeführt wird, endet sehr schnell in einer neuen Unübersichtlichkeit – schließlich müssen ja wir, die menschlichen Leser, das beispielsweise von einem Kollegen in die Welt Gesetzte auch nachvollziehen können (und nicht nur der Compiler) – und bitte ohne großartige Codeanalyse.

(BTW: hat eigentlich schon jemand bemerkt, dass Scala einiges wieder von den Konzepten aufnimmt, mit denen Stroustrup C++ zu einer „hybriden“ Sprache machte? Wer von den heutigen Entdeckern funktionaler Konstrukte kennt eigentlich die <functional>-Bibliothek von STL?)

Was mir aber ganz übel aufschlägt, ist die Andienung von Clojure als Java-Alternative (siehe die Januar 2011-Ausgabe des JavaMagazin). Weg mit den Klassen, weg mit OO? Und stattdessen soll diese wüste Ansammlung von Klammern und Sonderzeichen eine Alternative sein? Mag sein, dass diejenigen, die mit Lambda-Kalkül und „Higher Order Logic“ im Alltag umgehen, damit auch klar kommen. Für uns einfach gestrickte Java-Entwickler, die mit ordinären „Business“-Programmen umgehen, ist dies doch ein Griff in die falsche Kiste. Und wenn uns dann auch noch eine REPL als neues, interaktives Tool angedient wird: dann darf ich daran erinnern, dass wir das schon mal in grauer Vorzeit hatten. Oder kennt ihr etwa den Kommandozeileninterpreter von Business Basic nicht mehr? Ok, das war ja in den 80ern, da wart ihr noch nicht dabei …

PS: Hier soll nicht in Abrede gestellt werden, dass es einige Klassen von Problemen gibt, für deren Bearbeitung gewisse Features von Clojure wie Parallelverarbeitung oder strikt funktionale Orientierung hervorragend geeignet sind. Es geht mir  darum, dass wir „Durchschnittsprogrammierer“ („Programmer Joe“) kaum gewinnen, wenn wir uns auf solche eher akademische „Spielwiesen“ einlassen.

Keep WikiLeaks open!

WikiLeaks

 

If you press this link, you will be put to a reachabel WikiLeaks page.

HTTP, stateless and the REST

Eines der Hype-Themen, mit dem die Web-Entwickler seit einigen Jahren immer wieder von den „Gurus“ der Zunft bombardiert werden ( jüngst wieder im Java-Magazin, Heft 1/2011) , ist „REST“ – man solle eine „RESTfull“ Architektur bevorzugen, denn das sei ja schließlich die Grundidee von HTPP und damit des so erfolgreichen WWW.

Was genau steckt dahinter? Und warum halte ich eine solche „RESTfull“-Architektur für eine – Fiktion oder auch nur Selbsttäuschung?

Ich glaube, die REST-Jünger, die R. Fieldings Dissertation (http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) aus dem Jahre 2000 ausgegraben haben, sind alleine deswegen auf dem Holzwege, weil sie das Entscheidende – einen Paradigmenwechsel – völlig verkennen. In den Zeiten, in denen HTTP als Protokoll und auch als Architektur für das WWW entwickelt wurde (zum Austausch von Dokumenten, wohlgemerkt!), gab es nämlich genau das nicht, womit wir es als Web-Entwickler heute doch hauptsächlich zu tun haben.

Es gab keine web-basierten, interaktiven ANWENDUNGEN. Es gab in diesen Anfangszeiten des Web – nur statische HTML-Seiten, die die Navigation der Anwender über die bekannten Hyper-Links organisierten – um damit andere, genau so statische HTML-Seiten anzusteuern. Somit: „Bookmarks“ setzen: kein Problem. „Backspace“-Button drücken? Ebenfalls kein Problem. Damit war  in der Tat „statuslose“ Kommunikation zwischen Client und Server möglich. Ein Web-Server der damaligen Zeit konnte sich tatsächlich darauf beschränken, seine auf der „Kiste“ (im Filesystem)  vorhandenen Ressourcen als statuslose Seiten allen Anfragenden auszuliefern.

Dann aber kam man  auf die Idee, mittels dieser so erfolgreichen und einfachen Web-Technologie mehr haben zu wollen. Schon das Absetzen von Cookies brachte ja einen gewissen Status ins Spiel – für den Webserver aber völlig unproblematisch, denn dieser Status war ja per definitionem auf den Client ausgelagert und brauchte nur über den Browser eingelesen und auch wieder persistiert zu werden.

Das Bild veränderte sich aber völlig, als der Webserver zum Applikationsserver wurde, der nunmehr dynamisch produzierte Seiten an den, genauer gesagt: an die Browser ausliefert. Jetzt standen nicht mehr nur einfach auf dem Server liegende HTML-Seiten als per URI  identifizierende „Ressourcen“ zur Auslieferung an, sondern – Paradebeispiel: der „Web-Shop“ – jetzt ging es um die Auslieferung von Seiten, welche von in einer Datenbank liegenden Objekten aufgebaut werden, also vom jeweils angemeldeten User direkt abhängige „Ressourcen“ – kein anderer Benutzer soll schliesslich sehen können, welche Artikel ich geordert habe, welche Artikel in meinem Warenkorb liegen, oder was denn meine persönlichen Präferenzen sind. Und damit kommt das zentral ins Spiel, was die RESTful-Jünger offensichtlich für „des Teufels“ halten und durch per Konzept und „Architektur“ verstecken wollen: STATUS! Oder anders gesprochen: der Webserver wird zum Applikationsserver – ein ganz anderers Biest!

Und genau das ist es, was jetzt diese ganze Geschichte nicht mehr richtig skalierbar macht und was REST zu umschiffen versucht : der „Status“ einer Webapplikation muss jetzt auch serverseitig gehalten werden – ob jeweils persistent in einer Datenbank, oder auch nur „temporär“ in einer Web-Session. Gleichviel, es läuft offenbar stets darauf hinaus, dass Status für den Server heftig relevant wird – es geht ja – jenseits der Technologiefragen – oft um solch „knappen“ Ressourcen wie Geld, und damit technisch auch: um sichere, statusbehaftete Transaktionen. Somit ist es doch völlig verfehlt, nach wie vor die interaktiven Abläufe solcher Client-Server-Kommunikation mit dem Konzept einer „statuslosen Kommunikation“ (falls es so etwas überhaupt geben kann: m.E. ein Widerspruch in sich!) abbilden zu wollen.

Ist es nicht völlig schief, Datensätze einer Datenbank („Geschäfts“-Objekte, auf der Anwendungsebene) als statuslose Ressoucen zu behandeln und sie mit einer URI verfügbar machen zu wollen (NB: URIs sind universal)?  In einer dynamischen Welt können ja solche Objekte einfach wieder verschwinden – vielleicht gerade, WEIL der sie „besitzende“ Anwender sie wieder gelöscht hat. Und nicht, weil der Web-Administrator (oder -„Autor“) statische Seiten entfernt oder hinzugefügt hat.

Kurzum: Ich glaube, ein Paradigma, das aus einem anderen Web-Zeitalter kommt, kann den heutigen Anforderungen an Web-Applikationen nicht gerecht werden. Und alle Versuche, heutige Web-Applikationen auf ein solches Paradigma abzubilden, sind inhärent unstimmig. Ich frage mich nur: warum sehen das unsere Gurus nicht?

Hello world!

Willkommen auf meiner WordPress-Seite!

Ich möchte hier meine Ansichten zu den Themen aufschreiben, von denen ich glaube, etwas beitragen zu können, zu sollen, oder auch zu „müssen“.

Gerade in diesen Zeiten, in denen die Mächtigen dieser Welt sich verschworen haben, die „Leaker“ zu verfolgen, muss man die Gegenöffentlichkeit des Internets nutzen und heftig gegen undemokratische Vorgänge angehen. Insbesondere, wenn die offiziellen Medien doch eher kuschen! Und vom sog. „investigativen“ Journalismus im Durchschnitt weit entfernt sind.

Was mich ansonsten bewegt, liegt ungefähr in diesen Bereichen:

– Politik, Geschichte, Politische Ökonomie, Wissenschaft

– Programming, Programmiersprachen, Frameworks, Internet-Tech

– Musik machen und hören.

So, welcome on my WordPress page!

(of course, I’m speaking english too)