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.

  1. Thema

Neues Thema Ansicht wechseln


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

Stellenmarkt
  1. Deloitte, verschiedene Standorte
  2. Polizeipräsidium Niederbayern, Landshut, Straubing, Passau
  3. DPD Deutschland GmbH, Aschaffenburg, Hamburg, Großostheim
  4. Allianz Deutschland AG, Stuttgart

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. 79,99€ (bei razer.com)
  2. 26,73€ (bei otto.de)
  3. 57,99€
  4. 289,00€ (Bestpreis!)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Threadripper 3970X/3960X im Test: AMD wird uneinholbar
Threadripper 3970X/3960X im Test
AMD wird uneinholbar

7-nm-Fertigung, Zen-2-Architektur und dank Chiplet-Design keine Scheduler-Probleme unter Windows 10: AMDs Threadripper v3 überzeugen auf voller Linie, die CPUs wie die Plattform. Intel hat im HEDT-Segment dem schlicht nichts entgegenzusetzen. Einzig Aufrüster dürften sich ärgern.
Ein Test von Marc Sauter

  1. Via Technologies Centaur zeigt x86-Chip mit AI-Block
  2. Nuvia Apples Chip-Chefarchitekt gründet CPU-Startup
  3. Tiger Lake Intel bestätigt 10-nm-Desktop-CPUs

Macbook Pro 16 Zoll im Test: Ein Schritt zurück sind zwei Schritte nach vorn
Macbook Pro 16 Zoll im Test
Ein Schritt zurück sind zwei Schritte nach vorn

Keine Butterfly-Tastatur mehr, eine physische Escape-Taste, dünnere Displayränder: Es scheint, als habe Apple beim Macbook Pro 16 doch auf das Feedback der Nutzer gehört und ist einen Schritt zurückgegangen. Golem.de hat sich angeschaut, ob sich die Änderungen auch lohnen.
Ein Test von Oliver Nickel

  1. Audioprobleme Knackgeräusche beim neuen Macbook Pro 16 Zoll
  2. iFixit Kleber und Nieten im neuen Macbook Pro 16 Zoll
  3. Macbook Pro Apple gibt fehlerhafte Butterfly-Tastatur auf

Cloud Gaming im Test: Leise ruckelt der Stream
Cloud Gaming im Test
Leise ruckelt der Stream

Kurz vor Weihnachten werben Dienste wie Google Stadia und Playstation Now um Kunden - mit noch nicht ganz perfekter Technik. Golem.de hat Cloud Gaming bei mehreren Anbietern ausprobiert und stellt Geschäftsmodelle und Besonderheiten vor.
Von Peter Steinlechner

  1. Apple und Google Die wollen nicht nur spielen
  2. Medienbericht Twitch plant Spielestreaming ab 2020
  3. Spielestreaming Wie archiviert man Games ohne Datenträger?

  1. Snapdragon 8c/7c: Zwei Chips für Chromebooks und Win10 on ARM
    Snapdragon 8c/7c
    Zwei Chips für Chromebooks und Win10 on ARM

    Qualcomm stellt sich breiter auf: Der Snapdragon 8c folgt auf den Snapdragon 8cx und ist für günstigere Notebooks mit Windows 10 on ARM gedacht, der Snapdragon 7c wird in Chromebooks stecken.

  2. Bundeskartellamt: Telekom und Ewe dürfen zusammen Glasfaser ausbauen
    Bundeskartellamt
    Telekom und Ewe dürfen zusammen Glasfaser ausbauen

    Mit hohen Auflagen hat das Bundeskartellamt wesentliche Teile der Glasfaser-Kooperation zwischen Telekom und Ewe genehmigt. Die Partner haben sich noch nicht dazu geäußert.

  3. Cloud Gaming: Stadia hat neue Funktionen und ein Spiel mehr
    Cloud Gaming
    Stadia hat neue Funktionen und ein Spiel mehr

    Nutzer des Spielestreamingdienstes Stadia können über das Gamepad auch den Google Assistant verwenden - allerdings mit Einschränkungen. Außerdem gibt es mit Darksiders Genesis erstmals ein neues Spiel auf der Plattform.


  1. 21:30

  2. 16:40

  3. 16:12

  4. 15:50

  5. 15:28

  6. 15:11

  7. 14:45

  8. 14:29