dWing — die Welt ist nicht gerecht

sign in

Revolution, Evolution oder Stillstand?

Schon öfter habe ich über übertriebene Abwärtskompatibilität in Software geschimpft und Stillstand kritisiert. Jetzt bin ich selbst zum Opfer von Stillstand geworden. Jetzt wurde schon mein zweiter Patch für NSPR abgelehnt. Die Begründung sieht in etwa so aus: Der Code ist veraltet und kaum jemand kennt sich aus. Aus irgendwelchen Gründen funktioniert der Code aber man sollte ihn lieber unberührt lassen damit das so bleibt. Falls trotzdem Fehler auftreten werden diese notdürftig geflickt. Dabei waren meine Änderungen nur Codevereinfachungen und Fehlerkorrekturen. Einige Warnungen wurden beseitigt damit diese nicht mehr von wirklichen Fehlern ablenken. Und entfernen von nicht mehr benutzten Makros, was das allgemeine programmieren vereinfacht. Dadurch wäre der Einstieg von möglichen Programmierern einfacher. Aber scheinbar wollen die Entwickler nicht das neue Leute einsteigen und die Software verbessern. Schade. Ich zumindest werde mich demnächst von NSPR Code fernhalten. Aber jetzt zur Frage, was ist eigentlich NSPR? NSPR ist die NetScape Portable Runtime. Ein Relikt aus den Anfangszeiten von Mozilla. Über zehn Jahre alt. NSPR definiert Plattform unabhängige Typen wie z.b. PRBool, PRInt64 uvm. Dinge die es schon seit Jahren im C99 Standard gibt. Darüberhinaus bietet es Funktionen zur Arbeit mit Threads, Speicherverwaltung, Dateizugriffe, dynamisches Linken und Zeitmanagement. Dinge die es schon im C++ Standard gibt oder bald geben wird. Oder Dinge die z.b. in Boost enthalten sind. Mit anderen Worten: NSPR ist obsolet.

Oder doch nicht? Denn einige Compiler unterstützen selbst den fast 10 Jahre alten Standard C99 nicht vollständig. Allen voran Microsofts Visual Studio. Aber hier ist es die Aufgabe von Microsoft den Standard zu unterstützen und nicht die Aufgabe der anderen um den fehlenden Standard herumzuprogrammieren. Genauso wie es die Aufgabe des IE Teams ist, richtig programmierte Webseiten richtig anzuzeigen. Es ist nicht die Aufgabe der Webentwickler ihre Webseiten absichtlich falsch zu programmieren nur damit eine obsolete Rendering Engine diese korrekt anzeigt.

Ich bewundere Leute die sich dafür einsetzen Code sauber und modern zu halten. Und irgendwie habe ich mitleid mit Leuten die eigentlich aus einem 3*3 Problem ein 1*1 Problem machen wollten aber am Schluss trotzdem dazu genötigt werden es zu einem 4*4 Problem auszuweiten. Im Klartext: Wir nehmen an es gibt 3 verschiedene Software Projekte die alle das selbe machen. Und irgendwie müssen sie auch miteinander arbeiten. Also enthält jedes Projekt Unterstützung für die anderen beiden. Damit kann es an 9 stellen zu Problemen kommen. Inkompatibilität und dergleichen. Einige der Projekte sind schon lange tot und werden daher nicht mehr gepflegt. Aber trotzdem programmiert jeder Unterstützung dafür ein. Man könnte aufräumen indem man eine einheitliche Lösung entwickelt und jeder wäre Glücklich. Leider nicht so ganz. Denn es gibt immer noch so viel tote Software die auf andere tote Software aufgebaut ist. Also wenn man ein totes Stück ersetzen möchte muss man trotzdem dessen Platz einnehmen und das tun was die tote Software getan hat. Man fügt also eine weitere Quelle möglicher Fehler hinzu und macht es damit zu einem 4*4 Problem.

Ich selbst bin sehr dafür Software so einfach wie möglich zu halten. Deswegen programmiere ich auch an Mozilla rum und nicht an Webkit. Weil Mozilla solche revolutionären Kräfte nötiger hat. Damit der Code mehr vereinfacht wird damit es zukünftige Programmierer einfacher haben wirklich wichtige Funktionen einzubauen. Leider ist es sehr schwer, wie mein Beispiel zeigt. Und leider habe ich auch eine zu schwache Persönlichkeit um dagegen anzukämpfen. Lieber gebe ich auf als noch aktiver darum zu kämpfen das die Software erneuert wird. Aber das ist nicht nur bei Mozilla so sondern bei vielen open-source Projekten. Möglicherweise ist das der Grund warum ich beruflich unbedingt in Richtung open-source gehen will. Weil ich so vieles verbessern könnte.

Allgemein bin ich auch einer ein Revolutionär als ein Evolutionär. Ich bin der Auffassung, das Revolution zu besseren Ergebnissen führt als Evolution. Man kann vor allem eine veraltete Software immer minimalst verbessern. Aber irgendwann ist eine Grenze erreicht wo es nicht mehr sinnvoll weiter geht. Der Code ist zu kompliziert geworden. Selbst die normale Pflege wird ungemein erschwert. Es ist Zeit für komplett frisches Denken. Wenn ein komplett neues Konzept erschaffen wird, hat dieses um einiges mehr Potential, auch wenn es einiger Detailverbesserungen bedarf bis ein neues Konzept das alte überholt. Im Endeffekt ist es das dennoch wert.


Politisch bin ich auch eher Revolutionär. Stillstand wie unter der CSU Diktatur in Bayern ist sowieso schlecht. Auch diese langsame Evolution unter der großen Koalition bringt es nicht fertig das System an sich umzukrempeln und obsolete Gedanken zu verwerfen. Ein mehr revolutionäres System würde mir gefallen. Wo man Mut zu Änderung hat und nicht immer mit der Angst rumläuft die Großkonzerne oder Wohlhabenden könnten abwandern. Mit solch einer Einstellung wird es nie wirklich besser. Der Kern muss neu entwickelt werden um mehr Optimierungspotential zu ermöglichen. Genau wie bei Software.


Psychologisch ist dieses ganze Revolution oder Stillstand Thema sehr interessant. Denn in Wirklichkeit habe ich extreme Angst vor Unbekanntem und Fremdem. Ich bin nicht mal bereit neues unbekanntes Essen auszuprobieren. Ich kenne ein paar Dinge die mir schmecken und die esse ich. Neues probiere ich nicht aus. Auch im Urlaub kotzt mich die fremde Umgebung nach kürzester Zeit an. Ich will auch nicht von Zuhause wegziehen weil ich Angst vor Neuem habe. Es ist für mich auch sehr schwer neue Freundschaften zu knüpfen. Ich habe die selben Freunde seit Jahren. Auch neue Freunde seitdem ich an der FH studiere, aber das ist eine kleine Ausnahme von meiner neophoben Einstellung. Auch habe ich Angst irgendwann mal arbeiten zu gehen. Denn das ist auch etwas neues für mich. Und dann auch noch Steuern und sowas. Oh Nein!

Irgendwie ist es sehr interessant. Könnte es denn sein das meine extrem neophile Einstellung in der digitalen Welt als Kompensation meiner sehr neophoben Einstellung in der realen Welt dient?

Ferien machen depressiv

Eigentlich habe ich erst ab dieser Woche Ferien, tatsächlich habe ich allerdings schon seit längerer Zeit frei. Aber schon jetzt fängt es an mich total anzukotzen. Ich hasse Ferien. Wobei, eigentlich richtet sich der Hass nicht gegen die freie Zeit sondern eher gegen mich selbst, weil ich nichts mit ihr anzufangen weiß.

Ich bin einfach zu schwach. Ich bin zu schwach um Dinge einfach bis zum Schluss durchzuziehen. Mein neues Design an dem ich seit längerem feile ist annähernd fertig. Aber dennoch habe ich kein bisschen Motivation weiterhin daran zu arbeiten. Ich habe meinen ersten Mozilla Patch geschrieben vor einiger Zeit aber ich bin einfach zu schwach um meinen zweiten anzugreifen.

Mir ist dann die Idee gekommen das ich vielleicht mich etwas mit build/make Systemen und SCons befassen sollte. Ich benutze SCons für meine billigen C Programme und es gefällt mir recht gut. Nachdem diese Idee über zwei Tage lang in meinem Kopf rumgegeistert ist habe ich meine Demotivation schlussendlich überwunden und habe mir ein paar autotools basierte Makefiles von Mozilla und Cairo angeschaut und habe wegen deren Komplexität sofort das Handtuch geworfen.

In Zusammenhang mit Studium habe ich auch die Möglichkeit bekommen im zweiten Semester in Softwareentwicklung ein Projekt zu realisieren anstatt die normalen Aufgaben zu machen. Aber auch dort fällt mir nichts ein, was

Am liebsten würde ich in Richtung Open-Source gehen. Aber da fällt mir auch nichts ein was diese Kriterien erfüllt.

Zu einem ganz anderen Thema: Für das Sommersemester bietet die FH in Kooperation mit anderen ein vielfältiges Sportprogramm an. Unter anderem auch Capoeira, was mich schon seit langer Zeit fasziniert. Ich weiß noch nicht sicher ob ich mich dort einschreibe aber es ist sicherlich eine Überlegung wert, auch wenn es ~ 40€ kosten wird.

Sozialistisches Monopoly?

Neulich beim Monopoly spielen haben wir uns kurz über die verschiedenen Spielversionen unterhalten. Es gibt ja die eine ältere Version mit DM preisen und Regeln wie, dass man direkt auf Los das doppelte bekommt oder das alle Strafen in die Mitte wandern und diese jemand abstaubt sobald er auf Frei Parken kommt. In der neuen Version wo auch die Preise auf € umgestellt sind und die selben Zahlenwerte hat wie die Amerikanische Version habe ich einfach mal aus Spaß was in die Runde geworfen.

Die alte ist halt die Soziale Marktwirtschaft Version. Die neue ist die Kapitalisten Version. Weil im Kapitalismus kriegt man nichts geschenkt.

Daraufhin ein Freund

Und wie sieht dann russisches Monopoly aus? Alle Straßen gehören dem Staat und jeder zahlt?

Daraufhin ich wieder

Eigentlich nicht. Alle Straßen gehören jedem und jeder darf überall kostenlos hausen und alle sind glücklich.

Seitdem habe ich mir Sicko von Michael Moore angeschaut, ein Film über das Amerikanische Gesundheitssystem. Ich fand es vor allem sehr interessant das ein Versuch ein faires Gesundheitssystem von den Medien abgeschossen wurde mit dem Argument das es sozialisch ist und die Amerikaner ja alle den Sozialismus hassen. Und seitdem irgendwie mag ich Amerika noch weniger als vorher. Und Ich denke auch ein wenig mehr über (idealen) Sozialismus nach.

So viel Zeit, so viele Ideen, aber so wenig Tatkraft

Ach es gibt so viel auf der Welt was ich alles tun könnte. So viele Ideen.
Gestern habe ich ein wenig mit Mercurial und SVG herumgespielt. Ich wollte eine art branchview in SVG machen. Hat allerdings nicht so sehr funktioniert. Und wo ich dabei war habe ich auch wieder festgestellt wie kacke es ist, dass Firefox keine Werkzeuge hat um SVGs beliebig zu vergrößern und es hat auch den Bug, das keine Scrollbalken angezeigt werden wenn das SVG zu groß ist. Ich habe vor einiger Zeit eine Extension dafür gefunden. Pan&Zoom. Habe es kurz ausprobiert aber die Extension ist Schrott. Es wird eine riesen Große Leiste angezeigt mit hässlichen Icons, die auch dann sichtbar ist wenn man sich kein SVG anschaut.
Und ich habe mir überlegt: Eigentlich kann ich sowas doch selbst machen. Warum auch nicht. Eigentlich muss ich mir nur den Quellcode der Extension anschauen und etwas modifizieren damit daraus das wird was ich will. Ich weiß, das ich es könnte. Also meine eigene Extension basteln.
Aber dann schaltet sich wieder die Depression ein. Das ständige Gefühl etwas nicht zu können. Die ständig gegenwärtige Angst davor zu versagen. Eigentlich könnte man sich doch denken das diese Angst gut ist. Das es dazu führt das man die Dinge besser macht und besser aufpasst. Oder das die Aggression gegen sich selbst dazu führt das man offensiv Dinge anpackt um mit denen fertig zu werden. Aber bei mir ist es genau das Gegenteil. Es führt bei mir zum völligen Stillstand.
Ich habe mir so viel vorgenommen. Jetzt dieses Mercurial branchview auf SVG, eine verbesserte Pan&Zoom Extension. Sowieso wollte ich dWing in Richtung Typografie verbessern wie ich es neulich erwähnt habe. Sowieso habe ich einen weiteren Entwicklungszweig für dWing aufgemacht um die neue Bilderseite zu entwickeln. Habe ein wenig gemacht dazu aber ist auch nicht viel draus geworden. Außerdem habe ich mir irgendwann vorgenommen dWing von MySQLi auf PDO umzustellen. Aber das ist auch nur eine Idee, eine Vision, ein Traum, der scheitern wird weil ich einfach nicht das habe was dazu nötig ist um es einfach durchzuziehen. I don't have what it takes!
Und so ist das einzige was ich den ganzen Tag lang mache Lost schauen und NS spielen. Und mich selbst bemitleiden und im selben Moment hassen dafür das ich einfach so bin wie ich bin.

newer posts