Abo
  1. Foren
  2. Kommentare
  3. Foto
  4. Alle Kommentare zum Artikel
  5. › Gimp 2.7.1: Ein-Fenster-Interface macht…

Ich verstehe wirklich nicht...

  1. Thema

Neues Thema Ansicht wechseln


  1. Ich verstehe wirklich nicht...

    Autor: MichaelH 30.06.10 - 23:49

    ...warum man bei GIMP nicht den gesamten Code einfach mal wegschmeisst und das Teil auf einer vernuenftigen Basis und in einer zeitgemaessen Programmiersprache reimplementiert. Ich hab' mir den Code derletzt mal angeschaut und musste da nur mit dem Kopf schuetteln. Klar, dass die Entwicklung da so langsam vorangeht.

    Nur ein Beispiel, was man besser machen koennte: Adobe (yep, genau die) haben mit GIL ein ausgesprochen elegantes generisches Imaging-Framework unter einer sehr liberalen Open Source-Lizenz bereitgestellt, auf dessen Basis man sicherlich wesentlich effizienter entwickeln koennte (und welches man - faehige Programmierer vorausgesetzt - auch weiterentwickeln koennte/sollte). Was machen die GIMP-Leute stattdessen? Werken an GEGL in unzeitgemaessem C im Schneckentempo. D'oh! Ich will kein Troll sein, aber "herumfrickeln" trifft es da meiner Meinung nach sehr gut...
    Die groesste Schwaeche von GIMP ist offensichtlich die Uneinsichtigkeit und die Fortschrittsangst seiner Hauptentwickler.

  2. Re: Ich verstehe wirklich nicht...

    Autor: nate 01.07.10 - 10:08

    > GEGL in unzeitgemaessem C

    Welche Programmiersprache wäre denn in deinen Augen "zeitgemäß"? Und jetzt komm mir nicht mit C#, Java oder Python, hier geht es um Pixelprocessing, da will man nativen Code. Ach, und falls du auf C++ hinauswillst: GEGL *ist* objektorientiert, die Syntax ist nur eine andere als man sie von C++ kennt.

  3. Re: Ich verstehe wirklich nicht...

    Autor: MichaelH 01.07.10 - 11:23

    Ich rede von C++ und damit nativem Code. C ist in meinen Augen hoechstens fuer Betriebssystemkernel und kleinere Projekte geeignet; saemtliche groesseren Projekte skalieren nicht in ausreichendem Masse und verkommen zum Maintenance-Alptraum.

    C++ bietet neben besserer Datenabstraktion(!) bessere Typsicherheit, bessere Syntax, sicherere Casts, Abkehr vom Praeprozessor, generische Programmierung durch Templates, policy-based design, etc. etc. In der Summe der Teile ist ein gut geschriebenes C++-Programm einfacher lesbar, enthaelt weniger Codeduplizierung, wesentlich besser wartbar sowie erweiterbar und dadurch wahrscheinlich mit weniger Fehlern behaftet.
    In C kann man sich natuerlich Kruecken fuer all die schoenen C++-Features schreiben (Makros statt Templates, anyone?!?), aber man vergibt sich dadurch einiges. Es ist in C kaum moeglich, ein sicheres Interface zu schreiben mit dem man sich nicht in den Fuss schiessen kann. In C++ geht das, bei gleicher Performance unter Verwendung moderner Compiler.

    Ausserdem bringt C++ eine hervorragende Standardbibliothek mit, und mit Boost existieren eine Menge an unglaublich nuetzlichen Bibliotheken, die entweder fuer einfacher wartbaren Code sorgen (bspw. smart pointers) oder einen das Rad nicht neu erfinden lassen.
    Wenn man in C++ richtig programmiert (bzw. programmieren kann), ist das eine ganz andere Programmiersprache mit wesentlich groesserer Flexibilitaet, Expressivitaet und anderen Programmierparadigmen als C. Und ich rede hier bei weitem nicht nur von Objektorientierung. Bspw. kann man Low-Level Speicherallokationen durch Verwendung moderner Programmiertechniken gut abstrahieren. Ich habe mich seit Jahren nicht mehr mit malloc/free oder new/delete herumgeschlagen, ausser in ein paar Codezeilen auf unterster Ebene. Overhead? Nicht vorhanden oder minimal.

    GIMP und dessen Code scheinen mir viel zu viel Gewicht auf Low Level-Implementierung zu legen und eine ganze Menge an Altlasten herumzuschleppen. Klar, dass da kein vernuenftiger neuer Entwickler mehr dran programmieren moechte, Hobbyprogrammierer und selbsternannte 'Hacker' vielleicht mal ausgenommen. Ich wuerde nicht im Traum daran denken, auch nur eine Codezeile fuer GIMP freiwillig zu schreiben.
    Wahrscheinlich ist es eh schon zu spaet, das Projekt ohne Neuimplementierung von seinen toenernen Fuessen zu retten. Daher meine Empfehlung mit zeitgemaesseren Programmiertechniken neu zu beginnen. GIMP koennte das nur helfen. Allerdings sind da wahrscheinlich einige der jetzigen Entwickler entweder zu kurzsichtig oder zu borniert um das einzusehen.

  4. Re: Ich verstehe wirklich nicht...

    Autor: MichaelH 01.07.10 - 11:53

    Ach ja: Die Codebasis ist natuerlich bei weitem nicht das einzige Problem von GIMP, erwaehnt sei nur mal das Interface und die generelle Usability. Nur korrelieren nach meiner Erfahrung die Eleganz und Struktur des Codes mit der Qualitaet und Benutzbarkeit des Produktes sehr stark.

  5. Re: Ich verstehe wirklich nicht...

    Autor: nate 01.07.10 - 14:18

    > C++ bietet [...] bessere Syntax

    Wie gut, dass ich keine Kaffee trinke, sonst wär die Tastatur jetzt hin :)

    > Abkehr vom Praeprozessor

    Zum Glück nicht!

    > generische
    > Programmierung durch Templates

    ... mit denen man, falsch angewendet (was leider der Standardfall ist), unglaubliche Komplexitäts- und Bloat-Monster erschaffen kann.

    > policy-based design

    BINGO!

    > In der Summe
    > der Teile ist ein gut geschriebenes C++-Programm einfacher lesbar

    OK, na gut. Aber auch nur deshalb, weil Methodenaufrufe eine etwas intuitivere Syntax haben als in C.

    > wesentlich besser wartbar sowie erweiterbar

    Kommt drauf an. Wir haben hier in-house ein Riesen-Ungetüm an C++-Code, das mit all den kranken Dingen, die ihr C++-Freaks so toll findet geschrieben wurde: Templates bis zum Abwinken, irgendwelche Design Patterns überall, das volle Programm. Problem nur: Performance zum abgewöhnen, ein riesen Bloat-Vieh, sorgt bei Compilierung mit neueren GCCs mitunter für Segfaults mitten in der C++-Standardbibliothek und jetzt, wo wir's erweitern müssten, lassen wir's lieber bleiben, weil keiner sich das noch freiwillig antut.

    > Es ist in C kaum moeglich, ein sicheres Interface zu
    > schreiben mit dem man sich nicht in den Fuss schiessen kann.

    Wie sagt man so schön: C macht es leicht, sich in den Fuß zu schießen. Bei C++ ist es minimal schwieriger, aber dafür ist dann gleich das komplette Bein mit weg.

    > Ausserdem bringt C++ eine hervorragende Standardbibliothek mit

    *hust* (zum Glück kein Kaffee ...)

  6. Re: Ich verstehe wirklich nicht...

    Autor: MichaelH 01.07.10 - 14:39

    Deine Meinung. Ich habe da ganz andere Erfahrungen gemacht; ein guter Compiler kann viele zunaechst fuer Laien seltsam anmutende C++-Konstrukte so optimieren, dass kein Performanceverlust (oder Bloat!) entsteht.
    Und mein Bein ist noch dran und sehr fit; wenn ich stattdessen C-Applikationen schreiben wuerde haette ich mir schon x-mal mit der Schrotflinte draufgeschossen bei der ganzen Low Level-Herumfrickelei.

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. Kisters AG, Karlsruhe
  2. AWO gemeinnützige Gesellschaft für soziale Einrichtungen und Dienste in Nordhessen mbH, Kassel
  3. operational services GmbH & Co. KG, verschiedene Standorte
  4. Josef Kränzle GmbH & Co. KG, Illertissen

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. 298,00€
  2. (reduzierte Überstände, Restposten & Co.)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Black Mirror Staffel 5: Der Gesellschaft den Spiegel vorhalten
Black Mirror Staffel 5
Der Gesellschaft den Spiegel vorhalten

Black Mirror zeigt in der neuen Staffel noch alltagsnäher als bisher, wie heutige Technologien das Leben in der Zukunft katastrophal auf den Kopf stellen könnten. Dabei greift die Serie auch aktuelle Diskussionen auf und zeigt mitunter, was bereits im heutigen Alltag schiefläuft - ein Meisterwerk! Achtung, Spoiler!
Eine Rezension von Tobias Költzsch

  1. Streaming Netflix testet an Instagram erinnernden News-Feed
  2. Start von Disney+ Netflix wird nicht dauerhaft alle Disney-Inhalte verlieren
  3. Videostreaming Netflix will Zuschauerzahlen nicht länger geheim halten

2FA mit TOTP-Standard: GMX sichert Mail und Cloud mit zweitem Faktor
2FA mit TOTP-Standard
GMX sichert Mail und Cloud mit zweitem Faktor

Auch GMX-Kunden können nun ihre E-Mails und Daten in der Cloud mit einem zweiten Faktor schützen. Bei Web.de soll eine Zwei-Faktor-Authentifizierung bald folgen. Der eingesetzte TOTP-Standard hat aber auch Nachteile.
Von Moritz Tremmel


    Digitaler Knoten 4.0: Auto und Ampel im Austausch
    Digitaler Knoten 4.0
    Auto und Ampel im Austausch

    Auf der Autobahn klappt das autonome Fahren schon recht gut. In der Stadt brauchen die Autos jedoch Unterstützung. In Braunschweig testet das DLR die Vernetzung von Autos und Infrastruktur, damit die autonom fahrenden Autos im fließenden Verkehr links abbiegen können.
    Ein Bericht von Werner Pluta

    1. LTE-V2X vs. WLAN 802.11p Wer hat Recht im Streit ums Auto-WLAN?
    2. Vernetztes Fahren Lobbyschlacht um WLAN und 5G in Europa
    3. Gefahrenwarnungen EU setzt bei vernetztem Fahren weiter auf WLAN

    1. Videostreaming: Netflix und Amazon Prime Video locken mehr Kunden
      Videostreaming
      Netflix und Amazon Prime Video locken mehr Kunden

      Der Videostreamingmarkt in Deutschland wächst weiter. Vor allem Netflix und Amazon Prime Video profitieren vom Zuwachs in diesem Bereich.

    2. Huawei: Werbung auf Smartphone-Sperrbildschirmen war ein Versehen
      Huawei
      Werbung auf Smartphone-Sperrbildschirmen war ein Versehen

      Besitzer von Huawei-Smartphones sollten keine Werbung mehr auf dem Sperrbildschirm sehen. Der chinesische Hersteller hatte kürzlich Werbebotschaften auf seinen Smartphones ausgeliefert - ungeplant.

    3. TV-Serie: Sky sendet Chernobyl-Folge mit Untertiteln einer Fanseite
      TV-Serie
      Sky sendet Chernobyl-Folge mit Untertiteln einer Fanseite

      Der Pay-TV-Sender Sky hat die Serie Chernobyl in der Schweiz mit Untertiteln ausgestrahlt, die von einer Fan-Community erstellt wurden. Wie die inoffiziellen Untertitelspur in die Serie gelangt ist, ist unklar.


    1. 12:24

    2. 12:09

    3. 11:54

    4. 11:33

    5. 14:32

    6. 12:00

    7. 11:30

    8. 11:00