Ansichten eines Informatikers

Wieder so ein Linux-Desktop-Ärgernis

Hadmut
2.4.2010 18:50

Warum mir Linux immer weniger Spaß macht.

Ich habe mich ja kürzlich schon über diesen Network-Manager aufgeregt, der unter Ubuntu Standard ist. Das Ding ist eine einzige Katastrophe. Da hat jemand programmiert, der sich zwar an d-bus und den ganzen undokumentierten und unausgereiften Desktop-Funktionen hochzieht, aber von Netzwerkerei kaum Ahnung hat und dann auch auf andere nicht hört. (Beispielsweise will er partout keine post-down-Phase einrichten, weil der Rechner ja auch funktionieren muß, wenn das Internet ausfällt oder man das Kabel rauszieht. So gesehen dürfte man den Rechner auch nicht runterfahren, weil das Filesystem ja einen Stromausfall überleben können muß. Das Ding ist nicht zu debuggen und die Skripten kommen nicht an die nötigen Informationen, weil die Konfigurationsdaten auf völlig absurde und undokumentierte Weise irgendwie über den D-Bus transportiert werden. Wie man aber aus einem Shell-Skript heraus irgendwelche Konfigurationsdetails aus dem D-Bus kratzen soll, ist nicht geklärt. Aber externe Shell-Skripten hält derjenige für Teufelswerk, der Benutzer habe das zu akzeptieren, was er da ins Programm schreibt. Dazu gehört, daß Network-Manager blindlinks in den iptables rumpfuscht, egal welches Firewallsystem man geladen hat usw.)

Und über Akonadi habe ich mich auch schon ausgelassen, dieses unglaublich schlechte System zum Austausch von PIM-Daten (Kalender, Kontakte usw.) zwischen Gnome und KDE. Das Ding startet für jeden Benutzer einen eigenen MySQL-Server, verbrät massenweise Ressourcen und funktioniert vorne und hinten nicht. Haben die noch alle Tassen im Schrank? Warum können sich Gnome, KDE, Mozilla bis heute nicht auf ein einheitliches Format einigen, solche Daten abzulegen? Ich hab manchmal den Eindruck, daß an vielen Ecken der Linux-Entwicklung nur noch irgendwelche Spinner, Ideologen, Anfänger am Werk sind. Die sind da auf ihrem Desktop-Trip und alles andere interessiert die nicht mehr. Zuverlässigkeit? Ressoucen? Bedienbarkeit? Hautpsache bunt und graphisch.

Nun gibt es ein neues Ärgernis: F-Spot. F-Spot ist das Gnome/Ubuntu-Tool zum Importieren von Bilddateien. Steckt man eine Speicherkarte aus einer Kamera in einen Ubuntu-Rechner, kommt F-Spot hoch und bietet einem den Import an.

Ich habe mich während der Urlaubsreise schon geärgert, aber jetzt die gleichen Probleme auch auf meinem Desktop beobachtet:

  • Es ist ätzend langsam.
  • Viele Bilddateien werden angeschnitten und nur teilweise auf die Platte kopiert.
  • Dafür erkennt F-Spot nicht immer zuverlässig, ob es ein Bild schon hat. Steckt man eine Karte mit Bildern mehrfach in den Rechner, kann es bei einigen der Bilder vorkommen, daß die mehrfach kopiert werden.
  • Manchmal gibt F-Spot ohne erkennbaren Grund die Fehlermeldung aus, daß es auf ein schon auf der Platte gespeichertes Bild nicht zugreifen könne. Obwohl das Bild normal im Verzeichnis herumliegt.
  • Manche Kameradateien (z. B. Filme) werden überhaupt nicht kopiert.

Das kostet also nicht nur Zeit, Nerven und Plattenplatz, sondern kann einem auch richtig Daten kaputt machen, wenn man nicht alles nochmal nachkontrolliert oder zusätzlich normal kopiert.

Das sind alles Probleme, die es in einem “normalen” herkömmlichen Programm so eigentlich nicht geben kann. Dazu muß man wissen, daß F-Spot wieder aus dem Desktop-Umfeld kommt und deshalb höchstvermutlich Gebrauch von D-Bus, File-Notification und dem ganzen schlecht oder undokumentierten, instabilen, nicht ausgereiften Desktop-Gebimsel Gebrauch macht. Und man kann es nicht einmal debuggen oder tracen. Das ist alles so vergraben, verdreht, nicht nachvollziehbar, nicht dokumentiert, undurchsichtig, daß man da selbst als normaler Entwickler mit >30 Jahren Programmiererfahrung keine Chance hat durchzublicken.

Und dann ist das auch noch in C# mit Mono geschrieben. Da muß man erst einmal Windows-Programmierung studieren, um ein Linux-Programm zu debuggen.

Meines Erachtens geht Linux mit diesem Desktop-Murks gerade einen sehr sehr unschönen Weg und leidet unter einem enormen Qualitätsgefälle aufgrund Klicky-Bunty. Sie wollen Windows kopieren, und das Dumme daran ist, daß sie es schaffen.

Und anstatt den bisherigen Kram erstmal stabil zu machen, gehen sie in immer höhere Spähren schweben.

Das ist gar nicht schön, was da gerade mit Linux abläuft. Selbst als Informatiker mit jahrzehntelanger Admin-Erfahrung sitzt man da vor einem Desktop, den man nicht mehr annähernd im Griff hat. Und die Sicherheitsgefahren, die daraus entstehen, sind enorm. Woher soll man da noch abschätzen welche Software, welcher Daemon tatsächlich zum Desktop gehört? Und was da über irgendwelche Desktop-Dienste und -Protokolle, über die verschiedenen Bus-Systeme noch alles läuft?

Und mit dem Kernel sieht es auch nicht viel besser aus. Da gibt es so oft irgendwelche Entscheidungen, Änderungen, Verweigerungen, die mir völlig irrational erscheinen. Wo wieder irgendwer seinen Ego-Trip ausleben will. Zumal der Kernel inzwischen an seiner eigenen Größe erstickt. Man hätte längst auf einen Micro-Kernel umschwenken müssen.

Ich verliere zunehmend den Spaß an Linux. Nur was nehmen? Windows ist noch vieeel schlimmer. Apple ist eine Katastrophe, mir reicht schon, wie die sich beim iPod aufführen.

Man müßte den ganzen Mist wegschmeißen und nochmal alles von Grund auf neu schreiben.

28 Kommentare (RSS-Feed)

yasar
2.4.2010 19:43
Kommentarlink

Ich schiele ab und zu auf eine der BSD-Varianten. Konnte mich aber bisher nicht dazu durchringen.

Eine weitere Alternative wäre, wieder zu den Konsolen zurückzukehren. Hätte auch den Vorteil, daß nicht für allen möglichen bunten Kram Ressourcen verbraten werden müßten (und weniger Probleme mit den Grafiktreibern).

Ich finde es jedenfalls interessant, daß ich anscheinend nicht der einzige bin, der mit den neuen Desktops unter Linux seine Probleme hat.


Hadmut
2.4.2010 19:50
Kommentarlink

BSD ist doch im wesentlichen ein anderer Kernel. Der Krempel ab User-Space aufwärts müßte doch derselbe sein. Oder?


Man müßte den ganzen Mist wegschmeißen und nochmal alles von Grund auf neu schreiben.
So is’ das! Wie oft habe ich das auch gedacht!
Wozu Desktop? Ich habe lange Zeit nur mit Debian und einem reinen Fenstermanager, Sawfisch(?), gespielt, also kein Desktop, kein Gnome, kein KDE. Das war ein leerer Dektop, Rechtsklick und los ging es. Die ganze Linuxkonfiguriererei ist eine Zumutunng, die Dank Ubuntu jetzt beherrschbar ist.
Das Pogrammiergefrickel kommt daher, daß Nichtsystemprogrammierer mit C-Derivaten rumspielen. Anwendungen solle man problemorientiert angehen. Warum braucht man überhaupt einen Arsch voll Bibliotheken? Wenn jede Anwendung ihre eigenen Funktionen oder Bibliotheken mitbringt wird das zwar viel aber man spart die ganzen Verwaltungen, Inkompatibilitäten und Framewürgraffel.

Arclinux wäre vielleicht mal anzusehen.

Carsten

http://www.toonpool.com/cartoons/eingestellt%20auf%20Ostern_78861#img9


Hadmut
3.4.2010 8:03
Kommentarlink

Na, daß jeder seinen eigenen Krempel mitschleppt, ist auch wieder nichts, da kommen auch zu viele Bugs rein.

Ein wesentliches Problem ist aber, daß wir keine ordentliche, moderne, fehlervermeidende Compilerhochsprache haben. Da hat die Softwaretechnik nachhaltig versagt.


Der erste Satz war ein Zitat, ich hatte es in . (geht hier nicht)

Wenn jeder sein Zeug mitbringt brauche ich keine Verwaltung und es kommen keine Fehler rein weil jeder die Bibliotheken und Funktionen anschleppt mit denen er getestet hat. Dann ist auch der Quelltext “am Stück” und kein Stückwerk.

Fehlervermeidende Hochsprache — Pascal — meine Universalausrede.

Carsten

“Wissenschaftliche Studien machen mich immer dann besonders hellhörig, wenn sie in renommierten unabhängigen Instituten gemacht wurden, und die Betonung auf unabhängig liegt.”
Franz Kern


Hadmut
3.4.2010 9:22
Kommentarlink

Pascal ist weder fehlervermeidend noch eine Hochsprache. Pascal kennt z. B. keine Exceptions, die man fangen kann, keine taint-mechanismen usw.usw.

Pascal ist nicht fehlervermeidend, Pascal ist programmiervermeidend. Da haben die immer alle so einen Riesenwirbel um Wirth und Pascal gemacht, aber eigentlich wars nur simpel.


Zu Pascal solltest Du Dir schon Weiterentwicklungen wie Turbopascal und Delphi ansehen. Standardpascal meinte ich nicht. Eine Hochsprache ist es, oder wie definierst Du Hochsprache?

Eine Sprache für Anwendungen muß leicht lesbar sein, fehlervermeidend sein, schnell compilieren, intuitiv verständlich sein, …

Carsten

tolles Zoom
http://gegen-den-strich.com/150.html


Hadmut
3.4.2010 10:46
Kommentarlink

Oh bitte nicht. Pascal ist eine Krankheit, die durch Weiterentwicklung nur immer schlimmer wird. Turbopascal war mal in der Frühzeit des PC vor ca. 20 Jahren oder so ne tolle Sache, aber nicht wegen der Sprache, sondern des kleinen, kompakten, schnellen Compilers. Und Delphi ist auch ein Krampf, davon abgesehen proprietär, derzeit nur von einem Unternehmen unterstützt und entwickelt, von dem man nicht weiß, ob und wie lange es noch lebt, es gibt m. W. keinen Open-Source-Compiler (mehr) und unter Linux läufts auch nicht. Das ist doch alles nur Gegurke, als ob man in einen 2CV einen Porschemotor einbauen will.

Leicht lesbar und intuitiv verständlich stimme ich zu. (Sind Sprachen wie C, Pascal, Java aber wegen des krautigen und langatmigen Codes eben nicht)

Schnell compilieren halte ich heute nicht mehr für wichtig, eher im Gegenteil. Bei der heutigen Prozessorleistungen kann man dem Compiler viel mehr zumuten als früher. Und die Anforderung, schnell zu compilieren, halte ich für eine Hauptursache heutiger schlechter Sprachen, daß die nämlich dann doch zu nahe an einem nur abstrahierten Maschinencode sind.

Eine moderne Hochsprache ist eine, in der man kurz und prägnant komplexe Abläufe darstellen kann, in der typische wiederkehrende stupide Programmierarbeiten auf den Compiler verlagert werden, und in der man sich darauf konzentriert, das Problem zu lösen, nicht die Sprache zu bändigen oder deren Beschränkungen zu umschiffen. Hat auch was mit Sprachmächtigkeit zu tun. In Sprachen wie Pascal, C, Java usw. ist man ständig dabei sich mit irgendwelchem Mist herumzuschlagen, den der Compiler erledigen könnte.

Damit meine ich übrigens nicht funktionales Programmieren, denn das ist oft Selbstbetrug, weil die Arbeiten nicht auf den Compiler sondern auf das Laufzeitsystem verlagert werden, und man oft nur glaubt zu programmieren, tatsächlich nur Funktionen aufruft.

Die mir derzeit angenehmste Sprache (aber leider nur Interpreter, kein echter Compiler) ist Ruby. Damit kann man schneller, fehlerfreier, viel kürzer und viel lesbarer programmieren. Schade nur, daß es in der Ausführung so langsam ist.


pepe
3.4.2010 10:52
Kommentarlink

Hm, wer Sachen wie iptables gern selbst kontrolliert macht ist scheinbar bei GNOME/KDE nicht gut aufgehoben. Man weiss doch dass die sich an Windows orientieren.

Ich hab mir diese “environments” damals angeschaut als ich Linux kennen gelernt habe und hab sie ebenso wie SuSE/RedHat/Mandrake nicht ohne Grund links liegen gelassen. Ubuntu ist da auch nicht anders. Fuer einen Anfaenger praktisch, fuer den Fortgeschrittenen einfach nur nervig wenn man weiss, dass etwas gehen muss, aber diese GUI-Konfigurationstools im Weg sind oder Google Anleitungen ausspuckt die fuer irgendein SuSE gelten aber nirgendwo sonst. Ein modernes Linux fuer Fortgeschrittene ist fuer mich Debian. Gute defaults und nur selten im Weg. Hab ich seit 10 Jahren mit grosser Zufriedenheit auf Server, Desktop und Laptop laufen.

Fehlervermeidene Hochsprache fuer System- und Anwendungsprogrammierung ist in der Tat ein Problem. Google probiert es jetzt mit Go. Ich selbst bin grad von der Einfachheit und Skalierbarkeit von Lisp ganz begeistert (sowas lernt man heut in der Uni nicht mehr), aber fuer normale Anwendungen auf Unix passt das ja auch nicht grad so toll..


pepe
3.4.2010 10:54
Kommentarlink

PS: Ja, die erste Konfiguration ist haarstreubend und dauert ein paar Tage. Aber man macht es auch nur einmal, danach kopiert man alle 3 Jahre $HOME auf den neuen Laptop und probiert hier und dort mal andere Sachen aus.


Hadmut
3.4.2010 11:07
Kommentarlink

Ich bin von Debian zu Ubuntu gewechselt, weil man bei Debian entweder mit der stable oftmals lang veraltetes Zeug hatte, und mit unstable häufig ein gerade nicht funktionierendes System, in dem die Pakete nicht zusammenpassten oder sich nicht installieren ließen, weil da auch jeder mehr oder weniger macht, was er gerade will.

Ich hab schon mal mit xfce rumgespielt, war nicht schlecht. Es gibt noch irgendeinen anderen Mini-Desktop, aber der Name fällt mir gerade nicht ein.

Lisp (und Scheme) hab ich im Studium mal gemacht und muß dazu ab und zu noch was am Emacs rumnudeln. Ein paar Ideen dahinter sind wirklich toll, aber letztlich ist der Klammerhaufen extrem unübersichtlich und das rumfummeln mit Listen auch nur für bestimmte Aufgaben brauchbar. De facto läuft Lisp dann oft auch auf iterative Befehlsfolgen hinaus, und da ist Lisp dann ziemlich schlecht.

Wie gesagt, Ruby kommt meinen Vorstellungen ziemlich nahe, wenn’s halt nur ein richtiger Compiler wäre.


Nun ja, ich bin zur Zeit “voll auf Delphi”. Schade, daß es nur auf Windows läuft. Ich habe aber mit der CLX schon Programme gemacht, die auch auf Linux laufen. Auf Wine laufen auch VCl-Programme — naja, das ist keine Lösung. Lazarus steht ja noch am Start, ist aber nicht so effektiv.

Schnell compilieren ist wichtig, time is money.

Funktional? Du meinst in Klauseln programmieren, wie in Prolog? Da täuschst Du Dich aber gewaltig. Die ganze Steuerungstechnik arbeitet so. Man schreibt die Bedingungen in Klauseln hin und die Steuerung arbeitet sie ab. (Koppelplan oder Funktionsplan)

Forth war mal ein guter Ansatz, interpretierend und compilierend in einem winzigen System.

Carsten

http://gegen-den-strich.com/209.html


Hadmut
3.4.2010 11:13
Kommentarlink

@Carsten: Ich sag ja nicht, daß “Funktionales Programmieren” allgemein schlecht ist, sondern daß es eben kein Programmieren, sondern irgendwo zwischen Konfigurieren und Parametrisieren ist. Viele glauben, sie Programmieren, wenn sie einem Laufzeitsystem irgendwelche Formeln hinwerfen und es dem Laufzeitsystem überlassen, daraus schlau zu werden, sich aber als Programmierer selbst keine Gedanken über die Abläufe mehr machen. In der Steuerungstechnik ist das völlig OK, weil es eben immer wiederkehrende gleiche Aufgaben sind. Aber in der allgemeinen Informatik ist es Murks.

Vor allem hat es die Eigenschaft, daß die Dozenten es oft vorziehen, weil sie damit wesentliche Teile des Programmierens einfach weglassen und damit weder lehren noch selbst beherrschen müssen. So ne Art “Programmieren light”. Dummerweise produzieren die damit Leute, die ihr Zeugs nicht richtig gelernt haben, sich aber trotzdem einbilden, programmieren zu können.


yasar
3.4.2010 11:27
Kommentarlink

Turbopascal:

Ich habe lange Jahre CAD-Anwendungen in Turbopascal portiert/erweitert. (Zu Zeiten als 8086 mit 1MB bis 80386 mit 4MB).

Man kann damit zwar wunderbar hacken, aber fehlervermeidend würde ich es nicht gerade nennen.

Ich weiß nicht wie Delphi momentan aussieht, aber irgendwie erwarte ich da keine grundlegenden Fortschritte, seit den Anfangstagen.


yasar
3.4.2010 11:30
Kommentarlink

Achja:

Nur mit reinem Fenstermanager wie in den Anfangstagen wäre zwar auch eine Möglichkeit, aber auf meine alten Tage bin ich doch etwas bequem geworden und möchte nicht immer auf den Komfort eines Desktops verzichten.

Der LXDE, den knoppix benutzt scheint eventuell noch eine Möglihckeit zu sein, aber ich habe den bisher nur mit der BootCD benutzt und nicht im produktiven Einsatz.


Hadmut
3.4.2010 11:53
Kommentarlink

Das war der, dessen Name mir gerade nicht eingefallen ist.

Was ist denn besser, XFCE oder LXDE?


Zum System, versuch doch mal xubuntu, das nehme ich jetzt. Laptop mit SSD und xubuntu — geht ab wie Schmitds Katze.

Delphi ist affengeil. Ich habe Delphi 7. Es ist ein Compiler und man arbeitet schnell und mit einfacher Fehlersuche wie mit einem Interpreter. Die Werbung “schnellstes RAD” glaube ich glatt. Es gibt eine kostenlose Version. Einfach mal probieren.
dBase hat übrigens auch Interpreter und Compiler. Arbeiten mit Interpreter und zum Schluß einmal durch den Compiler.

Hab Ruby eben probiert, ist wie Python ein Interpreter. Da war Forth schon weiter. Interpretierend arbeiten — Punkt dahinter — wars compiliert.

Lisp ist unübersichtlich, hab ich nicht gerafft, hatte mal einen kleinen Kurs Prolog.

Lisp, Prolog, Koppelplan, Funktionsplan, … sind Klauselprogramme. Man halst dem Rechner die Entfieselungsarbeit auf — in jedem Zyklus. Dafür behält das Programm die einfachere Sicht auf das Problem.

Ich unterscheide zwischen algorithmischen und Klauselsprachen. Daß Klauselprogrammierung kein Programmieren ist stimmt nicht. Man schreibt in beiden Fällen Bedingungen der Welt, in der sich der Rechner bewähren muß, in das Programm rein. Daß IT-ler in Steuerungsprogrammen immer Rückwärtsschleifen probieren müssen ist ein anderes Thema. :°)

Carsten

aufgedruckt
http://gegen-den-strich.com/284.html


pepe
3.4.2010 13:11
Kommentarlink

Jo das mit unstable ist hin und wieder ein Problem. Aber dann installiert man halt die jeweils vorherige Version von dem Packet(apt pinning) und wartet bis es upstream behoben wurde. Stable ist fuer den Server.

Die genannten Nachteile von Lisp werden eher als Einsteiger-Probleme abgetan. Listen benutzt man nur fuer schnelles Prototyping am Anfang und jeder vernuenftige Editor unterstuetzt dich durch Farben und Einrueckung derart, dass die Klammern eigentlich nicht auffallen.

Was an einem integriertem Desktop so toll ist versteh ich bis heute nicht. Aber ich arbeite auch primaer mit der Konsole und hab auch seit Jahren einen Tastatur-gesteuerten WindowsManager. Staendig zur Maus wechseln, das kleine X oben rechts am Fenster treffen und Unterpunkte in Menues zu suchen finde ich inzwischen ziemlich nervig. Und das daemlichste ueberhaupt ist das manuelle zurecht-ziehen und fokussieren von Fenstern. 🙂

LXDE ist meines Wissens neuer. Aber in Linux kann man ja mal alle installieren und durchprobieren. Enlightenment ist glaub ich auch mehr als nur WindowManager. Und der Dateibrowser von X sollte auch bei Y funktionieren, nur bei KDE/GNOME laedt man dann teils riesige Abhaengigkeiten, libs und services mit dazu.


Hadmut
3.4.2010 13:14
Kommentarlink

XFCE kenn ich schon lang, ist aber auch manchmal komisch.

LXDE hab ich gerade mal probiert, das gefällt mir eigentlich sehr gut.


Stefan
3.4.2010 15:42
Kommentarlink

Ich bin mit meinem Debian-KDE-Desktop ganz zufrieden, wenn man von Akonadi und dem NetworkManager absieht. Ich bin aber auch weniger der Klick&Go-Anwender, an wirklich grafischen Sachen nutz ich eigentlich nur Firefox und Konsole. An KDE interessant find ich halt, dass verschiedene Teile wie die Konsole und der Texteditor Kate ueberall eingebunden sind und man damit an vielen Stellen seine gewohnten Tools hat (wenn man nicht wie ich meistens vim nutzt) ohne dass man das Rad neu erfinden muss. Sehr nett finde ich aber vor allem dass jedes Programm seine eigene Config-Datei hat und nicht wie bei Gnome ein Registry-aehnlicher Molloch ueber allem herrscht.
Und ja, startet man KDE-Programme in KDE-fremden Umgebungen, gehen ein paar Dienste an und er laedt ein paar (ziemlich grosse) Bibliotheken.

Die kleinen aber feinen Fenster-Manager wollte ich schon laenger mal gruendlich ausprobieren, aber mir fehlt es doch zu sehr an Zeit (Student und KIT-Informatik-Alphaversuchskaninchen).

Bei den Programmiersprachen kann ich nicht so recht mitreden, mangelnde Erfahrung. Das KIT machts einem halt auch schwer, sich mit sowas zu befassen. Mein persoenlicher Favourit ist C++, meistens in Verbindung mit Qt (viel Umfang, wenn auch ohne wirkliche Excpetion-Nutzung).
Bei Java fuehl ich mich immer an IPD Sneltings Seitenhiebe an die von ihm sog. “Performance-Fraktion” erinnert… Egal, Java FTW das einzig Wahre, JIT wirds schon optimieren ab gehts im Softwarepraktikum und dimmer ran denken, switch/case is boese…


Hadmut
3.4.2010 15:54
Kommentarlink

Naja, was ich vom KIT im Allgemeinen und vom IPD im Besonderen so halte, sollte in meinen Blogs hinreichend rübergekommen sein. Mit beidem habe ich nur schlechte Erfahrungen.

Daß es einem am KIT schwer gemacht wird, hängt damit zusammen, daß die dort halt selbst nichts können. Wenn man den Karlsruher Professoren mal ein konkretes Problem gibt, ergreifen sie die Flucht oder leisten den Offenbarungseid. Und genau so programmieren sie auch. Das sind halt alles solche Tafelritter, die mit möglichst wenig Aufwand und Erfahrung lehren wollen.

Java basiert in meinem Augen zwar auf einer ordentlichen Grundidee (die es aber im UCSD-Pascal schon gab) und einem ziemlich lausigen Sprachkonzept. Wer Java konzipiert hat, hat so gar kein Sprachgefühl gehabt und offenbar nur C/C++ gekannt. Bei manchen Sachen bricht man sich in Java einen ab, das ist grausam. Und die Programme sind aufgrund der umständlichen Syntax lang und schwer lesbar. Aber wie ja schon andernorts erwähnt, bei den Berufungsverfahren für Professuren suchen sie explizit Leute ohne Berufserfahrung, die ist unerwünscht. Kein Wunder, daß dann sowas bei rauskommt.

switch/case halte ich übrigens für eines der wichtigsten Sprachelemente, sowohl was die Klarheit und Ausdrucksweise angeht, als auch aus Sicherheitsgründen. Damit lassen sich sehr viele Fehler vermeiden und saubere Programme schreiben. Ich verwende das ziemlich häufig. Warum könnte das boese sein? Wer behauptet denn sowas?


nullplan
3.4.2010 15:59
Kommentarlink

Wegen dem Desktop-Kram: Ganz meine Meinung. Ich benutze es _nicht_ mehr. War mir einfach zu blöd, meine Prozessoren ständig auf halber Last laufen zu haben, nur damit irgend so ein Prozess überwacht, ob ich etwas in den USB-Kartenleser stecke oder nicht. Und das mache ich so ca. jedes Jahr einmal… Karte reinschieben, einmal

fdisk -l

laufen lassen, Karte mounten. Fertig. Mithilfe einer udev-Regel bekomme ich für den Kartenleser einen Symlink., und somit auch für alle eingesteckten Karten.

Und was bietet F-Spot eigentlich, dass cp nicht kann? Oder eine Verbindung zwischen cp, mv und xv (immer noch der beste Bildbetrachter der Welt. Auch für Mangas zu empfehlen).

Dass KDE, GNOME und Mozilla ihre eigenen Formate für PIM haben, ist hysterisch so gewachsen. Natürlich will man das vereinheitlichen. Und jede der drei Seiten ist natürlich der Meinung, das eigene Format sei das beste. Weswegen ich auf die Uraltlösung, auf allen meinen Rechnern das gleiche Programm zu verwenden, zurückgefallen bin.

Eine Notwendigkeit für DBus oder DCOP habe ich noch nie gesehen. Und HAL erst: Das kann nur Zeug, das ich nicht brauche oder anders ressourcensparender hinbekomme.

Und was genau willst du mit einer “modernen, fehlervermeidenden Hochsprache” bitte anfangen? Hey, schon mein C-Compiler ist schlauer als ich in vielen Belangen. Aber wenigstens schreibt er mir nicht vor, welche Zuweisung zwischen Variablen gleichen Typs ich machen darf und welche nicht. Und ja, das ist fehlerträchtig, aber diese Arbeit an eine Maschine abzugeben wäre noch fehlerträchtiger. Schließlich plant man ja seine Software. Man schreibt zumindest bei hinreichend großen Programmen nicht einfach drauf los. Divide and Conquer! Die ganze OOP baut darauf auf, auch wenn sie das gut zu verstecken sucht. Mir ist bislang noch kein Problem begegnet, dem nicht mit Divide and Conquer beizukommen gewesen wäre.

Und dieser ganze Operator-Overloading-Kram, mit dem sich C++ schmückt: Wer braucht sowas? Ich mein ja nur, ein Operator ist mehr als das Symbol und seine Rückgabe. Zum Bleistift auch seine Assoziativität und sein Ort in der Operatorreihenfolge.


Hadmut
3.4.2010 16:09
Kommentarlink

F-Spot könnte (wenn es denn zuverlässig funktionieren würde) einiges, was cp nicht kann bzw. falsch machen würde:

  • F-Spot liest den Exif-Header und sortiert die Bild-Datei gleich nach Datum ein.
  • F-Spot erkennt ob ein Bild schon im Repository ist oder nicht, und kopiert es ggf. nicht neu (funktioniert aber nicht zuverlässig).
  • Digitalkameras verwenden in der Regel nur vierstellige Zähler im Dateinamen, und je nach Einstellung fangen sie auf jeder Karte wieder bei 0 an oder setzen den Zähler auf den höchsten Wert plus eins. Bedenkt man, daß es Leute gibt, die bis zu 5.000 Aufnahmen pro Tag machen, kann es durchaus leicht dazu kommen, daß verschiedene Bilder denselben Dateinamen bekommen, und von einem cp dann gnadenlos eins das andere überschreiben würde.

Ich habe tatsächlich zur Sicherheit noch ein separates Backup der Karten mit rsync gezogen, was aber auch mehr Mitdenken und mehr Plattenplatz erfordert.

Mindestens 2/3 der Sicherheitslöcher in heutiger Software, die in C oder C++ geschrieben ist, würde mit einer ordentlichen Sprache nicht vorkommen. Pufferüberlauf, nicht abgefangene Fehlerzustände usw.


pepe
3.4.2010 17:20
Kommentarlink

Hm, wenn sowas ein Problem ist schreibt man sich ein kleines digicam-sync-skript dass die Dateinamen und Zeitstempel automatisch mit den exif-Daten abgleicht und auf die Platte schiebt. Das Skript kann dann auch gleich fuers Backup sorgen, oder man macht halt rsync mit cron. Es stimmt schon, graphische Tools koennen fuer Bildverwaltung/verarbeitung ganz praktisch sein, aber mir fehlt da meist die Flexibilitaet und Automatisierung..

PS: Besser als xv ist feh.


Zum Thema Distributionen möchte ich noch unauffällig auf
http://www.idioten-notschlachten.de/blog/?p=166

verweisen. Debian Squeeze wird zur Abwechslung mal wieder gut.

Zum Thema Sprachen: bis jetzt eindeutig C++ bei mir der Favorit, da die einzige Sprache, die mir bekannt ist, in der ich meine Aufgabenstellungen zumindest mal formal korrekt hinschreiben kann.
(Da fehlen in Java eindeutig das Operator Overloading und vernünftig implementierte Templates…)

Und das wird ab 200.000 Zeilen Source-Code doch langsam zum ernsthaften Kriterium…

Um den Sprachen-Flamewar etwas abzukürzen, sehr nett an der Stelle (bei Fefe gefunden):

http://wurstball.de/static/ircview/pictures/749cd15bf9d0254286148f468567b29e.jpg

🙂


Stefan
9.4.2010 14:35
Kommentarlink

T’schuldigung fuer die spaete Antwort, ich verliere ein wenig den Ueberblick ueber dem ganzen uni-kram.

“switch/case halte ich übrigens für eines der wichtigsten Sprachelemente, sowohl was die Klarheit und Ausdrucksweise angeht, als auch aus Sicherheitsgründen. Damit lassen sich sehr viele Fehler vermeiden und saubere Programme schreiben. Ich verwende das ziemlich häufig. Warum könnte das boese sein? Wer behauptet denn sowas?”

Das bezieht sich eher darauf, dass man seine Objekte nicht per switch/case anhand von irgendwelchen Konstanten unterscheiden soll, sondern immer mit instanceof und so weiter. Trotzdem hatte ich immer das Gefuehl, sobald switch/case im Programm aufgetaucht ist, sind die Leute nicht mehr so freundlich geworden.
Sehr schoen fand ich auch die Aussage, dass break und/oder continue sofort zu Abzug fuehrt, egal wie sinnvoll die Verwendung war. Ich hab mir mehrmals fast was abgebrochen um die Schleifen ordentlich zu verlassen ohne wegen anderer Sachen Abzug zu bekommen. Ich hatte wenig Lust, mich in Softwaretechnik mit den Leuten wegen sowas anzulegen und bin mir auch nicht sicher, ob die das so streng gehandhabt haben, aber in der Anfaengervorlesung “Programmieren” fand ich es schon ein wenig happig. (Ich erinnere ich da auch noch an checkstyle, das mehr Probleme gemacht hat als es geloest hat.)


nadar
9.4.2010 22:52
Kommentarlink

Hadmut fragte:
> Was ist denn besser, XFCE oder LXDE?

Kommt drauf an. 🙂

Mit XFCE hat man eine Desktopumgebung, die etliche Sachen mitbringt (bei weitem nicht so viel wie KDE oder Gnome), aber mehr als LXDE.
XFCE nutzte ich eine Weile, aber so richtig zufrieden war ich nie. Bis auf ein paar krude, nicht reproduzierbare Bugs in Thunar kann ich es nicht genau festmachen, es gefiel mir halt nicht. Vielleicht war es der altbacken wirkende Look. Andererseits war es das leichtgewichtigste, was es damals™ gab.

Mit LXDE bin ich sehr zufrieden. Es bringt wenig Sachen mit, hat wenig Abhängigkeiten – man muss die Sachen, die man noch benötigt, halt selbst auswählen und installieren, wie z.B. Lieblingseditor, Brennprogramm usw.


yasar
20.4.2010 20:33
Kommentarlink

Dazu passend ein rant von fefe:

http://blog.fefe.de/?ts=b53326b6

Es geht um devfs, udev, hald, xfree, dbus und Konsorten.