Nichts und wieder Nichts

Ich bereite gerade ganz friedlich einen neuen Artikel über MVC vor und denke an nichts Böses. Mit einem Mal merke ich, wie ich schon wieder beginne, einen vom Standard abweichenden Puls zu bekommen. Über die Gründe und die Richtung der Puls-Abweichung möchte ich hier berichten.

Zunächst einmal eines vorweg: Neuerungen sind sehr gut! Nicht, dass jetzt noch ein Leser denken würde, ich lehne sowas rundweg ab! Im Gegenteil. Ich habe mich z.B. eigentlich nur für die .NET-Plattform entschieden, weil sie endlich mal keine Sackgasse darstellt und ich nicht von einem x-beliebigen Hersteller abhängig bin, wenn’s um Neues geht. Microsoft macht das bislang eigentlich echt super und mir geht es hier diesmal auch nicht um die Jungs aus Redmond, sondern vielmehr mal wieder um ihre Adepten.

Wie bereits in der Einleitung gesagt, beschäftige ich mich heute gerade mit dem neuen ASP.NET MVC 4 in der Beta. Ich lade es herunter, kontaminiere mutig mein Visual Studio mit den neuen Projektvorlagen und stelle beruhigt fest, dass Microsoft nicht mehr so zimperliche Software schreibt, denn das VS 2010 startet und MVC fügt sich schnuckelig ein.

Viele Dinge schwirren mir aufgrund diverser Zeitungsartikel und Webcasts durch den Kopf. Gleich zu Anfang glaube ich mich, an einen Beitrag zu erinnern, der angekündigt hätte, man könnte sich jetzt per Google, Facebook usw. an einer MVC-Seite anmelden. Nicht, dass das per se immer eine gute Sache wäre, aber die Leute wollen es halt haben! Nach 15 Minuten Suche finde ich dann endlich den Satz bei MS, der letztlich aussagt: „Kommt noch.“. Aha! Da hat also wieder einmal einer Blödsinn gepostet und die Zukunft vorweg genommen. Schade, dass ich mir diesen Zombi-Blog nicht gemerkt habe. Tja, werde ich wohl irgendwann wieder drauf reinfallen.

OK. Weiter. Was gibts denn sonst so Neues? Bei der Durchsicht der Feature-Liste überspringe ich instinktiv den ganzen Kram, der ankündigt, dass man jetzt super Webseiten für mobile Geräte schreiben könnte. Ich springe, und springe und … Moment mal?!? Was bleibt denn da an Neuerungen eigentlich über, wenn ich so weiter hopse? Habe ich irgendwas nicht verstanden?

Absolut nicht! Ich habe alles richtig mitbekommen. Nur, dass die Konsequenz aus dieser Erkenntnis auch nicht gerade erquicklich ist! Sie lautet: Die Leute machen schon wieder, was sie immer gemacht haben! Sie programmieren am Problem vorbei, um später mit Stolz geschwellter Brust von sich behaupten zu können, sie wären jetzt auch auf dem iPhone oder dem Android oder auf ihrem Fahhradcomputer oder so.

Aber erstmal zum Kern, denn ich habe wahrscheinlich den einen oder anderen abgehängt. Wer das am Ende des Artikels übrigens immer noch denkt, der ist Ziel meiner Anschuldigungen!

Für diejenigen, die nicht wissen, wie man mobile Anwendungen entwickelt, hier ein kurzer Ritt über einen abkürzenden Schotterpfad. Erstmal entscheidet man sich für eine Plattform. Momentan ist das eine Dreier-Wahl: iOS, Android oder Windows Phone. Jetzt gilt es, Amazon zu neuen pekunären Höhenflügen zu verhelfen. Mindestens ein Buch über Entwurfsmuster, eins zum Framework und seinen Fehlern und eins für die Tools. Parallel zur Wartezeit auf die Bücher (Achtung! Amazon schafft das bald in unter 1 Stunde!!!) kann man schonmal seinen Rechner mit diversen Frameworks und SDKs zumüllen. Im Bereich iOS kann man sich auch gleich noch denselben zu den Büchern bestellen. Das spart dann schonmal die Versandkosten. Nachdem Adnroid SDK, Eclipse, Visual Studio, Windows Phone SDK bzw. iOS und XCode bzw. MonoTouch installiert sind und laufen, geht es erstmal …

Nein! Nicht ans Coden! Es gilt, die Bücher zur Hand zu nehmen und erstmal die Basics zu begreifen. Hier wird nicht mehr funktional programmiert! Das würde die kleinen Biester von Mobile-CPUs aus der schick designten Hülle hüpfen lassen. Außerdem können wir nicht immer wieder von vorn anfangen, denn Apple, Google und MS wollen (zu Recht), dass eine App wie die andere daher kommt, zumindest oberflächlich. Daher müssen wir vorbereitete Bibliotheken verwenden und diese setzen Patterns vorraus, die wir erstmal verstehen müssen.

Neben der labenden Lektüre können wir ab und an mal ein paar Codeschnipsel probieren, um uns an diese andere Welt zu gewöhnen. Da gibt es Emulatoren zu bestaunen, die teilweise mit viel Liebe zum Detail programmiert worden sind. Irgendwann bekommt man sogar raus, was der einzelne Emulator nicht kann und hört auf, sich zu wundern, dass das virtuelle Gerätchen denkt, es wäre in Cuppertino. Überhaupt merkt man schnell, dass man mit steigendem Fortschritt an gelesenen Seiten immer häufiger auf stackoverflow landet, weil vieles eben nicht logisch ist oder einfach nicht läuft.

Schweigen möchte ich lieber über Aufwände der besonderen Art, wie z.B. die Aufbereitung von Medien, die Einhaltung der begrenzten Ressourcen und die schwerfällige Implementierung von Web-Diensten (bei einigen Anbietern).

Ich schätze, dass man nach netto 3-4 Wochen intensiver Arbeit an einem der Produkte von sich behaupten darf, etwas darüber zu wissen. Verstehen folgt dann nach ca. 3 Monaten und Kennen nach vielleicht 1 Jahr und 2-3 Real-Life-Projekten.

Mit anderen Worten: Es ist genau so, wie es in der Programmierung nun mal immer ist. Ohne Ahnung, kein Produkt.

Bei soviel notwendigem Engagement dauer es natürlich nicht allzu lange, bis die ersten Menschen auftauchen, die da eine bessere Idee haben. Sie machen Folgendes: Sie klicken sich eine Webseite zusammen, fragen vorher den User-Agenten aus dem Header ab und zeichnen dann lustige kleine Schltflächen und Listen, die so aussehen, wie auf dem jeweiligen Gerät. Jetzt veröffentlichen sie das Ganze. Das war vor ca. 2 Jahren.

Bis dahin ist das Ergebnis ungefähr das Gleiche, wie wenn eine witzig gezüchtete Promenadenmischung auf der Straße daher kommt. Die Leute bleiben stehen und grinsen das Gen-Karussel. Sie ergötzen sich entweder am niedlichen Anblick oder der dahinter stehenden Einfallskraft der eigenen Art. Nach 5 Minuten gehen sie weiter und erzählen es vielleicht abends einem Bekannten. Das wars. Zu Hause hütet immer noch ein großer böser und vor allem bissiger Standard-Hund das Tor und bei eher kinderlastigen Familien mit Hang zum katalog-inspirierten Lebensstil muss es halt ein Retriever-artiger Wolfs-Abkömmling werden.

Genau so war es mit den „iPhone-Pages“ auch. Ganz nett anzusehen, aber nicht wirklich eine ernsthafte Alternative. Die Buttons reagieren beim Klick nicht wie gewohnt, die Abstände stimmen nicht, die Schriften sowieso und jeder, der mindestens Wissen hatte, wusste, dass das aus technologischer Sicht zum Alptraum werden konnte. Es läuft ja schließlich im Browser des Geräts, also quasi doppelt abgeschottet von seiner Umgebung in einem Stück Software, dessen Anfälligkeiten und damit einher gehenden Update-Zyklen bereits allseits bekannt sind.

Logischer Schluss: Ganz nett, aber wird nix!

Falsch! Es werden so viele, die das plötzlich achso cool finden, dass es auf einmal „Apps“ regnet. „Wir sind auf dem iPhone“ tönte ein großer deutscher Versandändler, nur um ein Potemkinsches Dorf bestehend aus einer App mit einem Browser zu präsentieren. Der surfte ungeniert auf die Portalseite und man stöberte dort rum. Einige Leute aus meiner Umgebung, die ich zu ihren Gedanken darüber befragte, meinten nur, dass es sich schon anders anfühle, aber man sei schon froh, dass es jetzt mit dem Finger zu scrollen gehe.

Das muss man sich vor Augen halten! Leute bezahlen 800 € für ein Produkt und holen sich dann Apps an Land, die sich wie auf einem südostchinesischen Imitat bedienen lassen. Das ist ungefähr das gleiche, als würde ein Audi-Neuwagen-Käufer, der das Navi weg gelassen hat, jetzt sein TomTom über seinem Radio einkleben.

Wie aber reagierten die Hersteller und Anbieter? Ignorierten sie das Ganze? Mitnichten!

Der erste Sargnagel zu vernünftiger App-Programmierung war CSS. Irgendwer kam nämlich auf die Idee, sog. media-queries einzuführen. Das funktioniert so, dass man nun in Abhängigkeit von den Möglichkeiten des hinter einer Web-Anfrage stehenden Gerätes (z.B. der Auflösung) bestimmen kann, welche CSS-Attribute geladen werden sollen. Eigentlich war es ja dafür gedacht, z.B. sehbehinderten das Lesen von Seiten zu erleichtern, aber das hat sowieso kein Auftraggeber bezahlt.

Sogleich waren die Propagandisten des lernfreien Programmierens hellwach. Ja super, dann brauchen wir ja nur noch eine Webseite. Die stellen wir mit CSS normal dar, wenn die Auflösung irgendwie ist und ganz speziell, wenn sie genau der des iPhone entspricht. Gesagt getan! Wundersame Vorführungen in Chefetagen folgten. Man selbst kam hernach in Verlegenheit ob der avisierten eigenen Tagessätze und versuchte wie ein Ertrinkender, dem BWL-Hai auf der anderen Seite des Tisches klar zu machen, dass er garantiert in 5 Jahren wieder anrufen wird, wenn er merkt, dass das nicht so läuft. Aber wie? Es gibt kein Argument, dass solche Leute verstehen würden, wenn der laute Ruf der Einsparung durch die Zimmer hallt!

Also ging es los! Immer mehr Hacks entstanden und immer ähnlicher wurden die Interfaces den Dingen, die man von den Telefonen gewohnt war. Wie einfach ist doch die Welt, dachte sich wahrscheinlich auch die Mannschaft von jQuery.com und sprang auf den bereits eilenden Zug auf (nicht nur dieses Framework-Team übrigens). Die Idee: Kein einzelner muss mehr wissen, wie das mit dem Umschalten geht. Das machen wir mit ein paar coolen jQuery-Befehlen und fertig. jQuery.Mobile war geboren.

Ergebnis: Ausrasten bei allen Beteiligten. Die Befürworter fühlen sich bestätigt, zumal Microsoft jetzt ins selbe Horn stößt und quasi sagt: Macht einfach schicke Apps und wir bringen die nicht nur aufs Telefon, sondern auch auf den Client! Na, wenn die das sagen, dann aber los! Das denken momentan wohl derart viele Leute, dass man das eigentlich sehr schöne nuget fast nicht mehr nutzen kann, wenn man nicht genau weiß, wei die Pakete heißen, die man braucht. Jeder 2-Wochen-Frischling stellt jetzt plötzlich Pakete online, die eine MVC-Anwendung mir-nichts-dir-nichts mobilfähig machen.

Die Gegner des Trends rasten auch aus, weil sie (wie ich) nicht begreifen können, warum die Menschen nicht aus ihren Fehlern lernen? Bisher hat sich immer noch Qualität durchgesetzt und nicht das schiere Vorhandensein einer Funktion. Jedes Buch übers Programmieren fängt aktuell mit einem Hinweis darauf an, dass man nicht einfach drauflos tippen soll. Es füllen sich Regalwände mit ALM-Büchern und Design-Patterns. Auf vielen Veranstaltungen tun die Hersteller so, als wäre alles völlig normal und predigen weiter Wasser (das aufwendige Entwickeln, Testen, Mehrschichten usw.) nur um vorn im Tresen Wein anzubieten (schnelle Mock-getriebene Entwicklung mit Tools zur automatischen Migration).

In letzter Konsequenz führt das, liebe Entwickler, dazu, dass irgendwann mal kein qualitativer Unterschied zwischen einer Blogseite der Friseuse Anne Schönschnitt und einer „professionell“ im VS entwickelten MVC-App zu erkennen sein wird. Und dann wird das Geheul wieder groß, weil die User plötzlich diesen „Schund“ selbst erstellen. Auf diesem Wege sind so berühmte Eskarpaden, wie MS Access entstanden!!!

Um unser Auto-Beispiel nun mit dem neuen aktuellen Stand auf Augenhöhe zu bringen: Microsoft verhält sich nun so, als würde Audi dem TomTom-Besitzer zur Hand gehen und ihm das Einklebekit quasi in den Kofferraum legen. Nach der Devise: Hast halt keine 4000 € für unser Navi ausgegeben, aber hier mit dem Kit sieht Dein TomTom fast wie eins aus. Wie lange würde Audi dann wohl noch Navis verkaufen?

Ich sage: Jetzt ist die Zeit, nein zu diesem Blödsinn zu sagen. Wer eine mobile App entwickeln möchte oder muss, der muss sich halt Wissen aneignen. Macht die Geräte wieder zu und die User werden es Euch danken. Ich warte bereits hämisch auf den ersten großen mobilen Virenscanner. Ob der wohl mit jQuery programmiert wird?

Eine Antwort auf „Nichts und wieder Nichts“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.