der-doktor: UMFRAGE: perfekter code - oder funktion

Hi Leute!

Ein voriger Post hat mich jetzt auf diese Idee gebracht, was ich hier schon seit Jahren mal fragen wollte, und zwar:

Was ist für euch wichtiger:
Ein perfekt programmiertes Skript oder die Tatsache das es funktioniert auch wenns vielleicht nur 80% perfekt ist?

Ich mein damit jetzt reine Skripts, also kein HTML.
Interessant für mich wäre auch, in welchem Umfeld ihr euer Können anwendet. Privat, Semiprofessionell (hobbymäßig, aber auch mal ein richtiger Auftrag) oder Professionell (ihr lebt davon).

Da bin ich mal gespannt.

grüße,
der doktor

  1. echo $begrüßung;

    Was ist für euch wichtiger:
    Ein perfekt programmiertes Skript oder die Tatsache das es funktioniert auch wenns vielleicht nur 80% perfekt ist?

    Der Idealfall -- der von mir immer mit mehr oder weniger Erfolg angestrebt wird -- ist ein funktionierender Code der perfekt programmiert ist.
    Code der Sorte "Hauptsache es funktioniert", dessen Autor wenig Wert auf das Abfangen von Fehlersituationen oder die Vermeidung von Sicherheitslücken gelegt hat, existiert leider bereits zur Genüge. Ob dabei Unwissenheit oder eine "ist doch egal"-Einstellung dahinter steckt(e) sei mal dahingestellt.

    Interessant für mich wäre auch, in welchem Umfeld ihr euer Können anwendet. Privat, Semiprofessionell (hobbymäßig, aber auch mal ein richtiger Auftrag) oder Professionell (ihr lebt davon).

    Sowohl als auch, in allen drei Varianten. Aber das ist nicht so wichtig dabei. Was jemand in seinen eigenen 4 Wänden macht ist egal. Sobald aber ein Script veröffentlicht oder öffentlich genutzt wird, ist es dem Ausnutzer der Sicherheitslücke herzlich egal, ob der Autor in einer der drei Kategorienen programmiert hat. Und auch den Anwender interessiert es nicht ob der Programmautor nun privat, semiprofessionell oder professionell nicht in der Lage war perfekt zu programmieren.

    echo "$verabschiedung $name";

  2. Hallo Doktor,

    Ein voriger Post hat mich jetzt auf diese Idee gebracht, was ich hier schon seit Jahren mal fragen wollte, und zwar:

    Was ist für euch wichtiger:
    Ein perfekt programmiertes Skript oder die Tatsache das es funktioniert auch wenns vielleicht nur 80% perfekt ist?

    Das kommt ganz darauf an.
    Wenn es innerhalb kurzer Zeit gemacht werden muss, um eine dringende Aufgabe zu erfüllen, dann tendiere ich dazu ein Script zu programmieren das zwar funktioniert, aber noch nicht ganz so perfekt ist.
    Das dient dann aber meist nur zum kurzfristigen, nicht-öffentlichen Gebrauch.

    Wenn aber mehr Zeit zur Verfügung steht und das Script z.B. keine Sicherheitslücken enthalten darf etc. nehme ich mir die Zeit, um das Script so perfekt wie möglich zu machen. Dann kann es auch schon mal vorkommen dass ich mir die Mühe mache und das komplette Script mehrfach überarbeite, um neuere Kenntnisse mit einzubringen und das Script auf diese Art so perfekt wie möglich zu gestalten.
    Entsprechend gut kommentiert wird das Ganze dann auch.

    Meist ist (zumindest bei mir) also der zeitliche Faktor der entscheidende.

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    http://emmanuel.dammerer.at/selfcode.html
  3. Hallo Doc!

    Was ist für euch wichtiger:
    Ein perfekt programmiertes Skript oder die Tatsache das es funktioniert auch wenns vielleicht nur 80% perfekt ist?

    Kommt auf den Verwendungszweck an.

    Hau-Ruck-Aktion für einmaligen Einsatz, möglichst schnell und sofort:
    Dann ist die Hauptsache, es funktioniert. Eleganz und Struktur sind mir dann schnurz.
    In allen anderen Fällen:
    Die Funktion ist Hauptsache. Aber ich achte dann auch auf Korrektheit und saubere Darstellung und Strukturierung. Es kann ja immer mal sein, dass ich das Script in zwei Jahren mal wieder erweitern oder "recyceln" will, oder jemand anderem in die Hand geben.

    Interessant für mich wäre auch, in welchem Umfeld ihr euer Können anwendet.

    Überwiegend privat.
    Ab und zu als Nebenerscheinung im Beruf (für den firmeninternen Gebrauch).
    Ganz selten mal als Auftrag auf Hobby-Niveau gegen ein symbolisches Entgelt.

    Da bin ich mal gespannt.

    Ich auch.
    So long,

    Martin

  4. Was ist für euch wichtiger:
    Ein perfekt programmiertes Skript oder die Tatsache das es funktioniert auch wenns vielleicht nur 80% perfekt ist?

    Perfektion ist immer das Ziel. Sollte es mal nicht erreicht werden, muss es einen guten Grund dafür geben. Nicht selten gibt es viele gute Gründe.

    Ich mein damit jetzt reine Skripts, also kein HTML.

    Ich bin kein Programmierer. Das ist ein guter Grund.

    Viele Grüße!
    _ds

  5. Hi,

    Ein perfekt programmiertes Skript

    davon hab ich schon mal gehört. Das liegt doch im geheimen Schloss von Nessamabour, bewacht von sieben auf Einhörnern reitenden Waldelfen, richtig?

    oder die Tatsache das es funktioniert auch wenns vielleicht nur 80% perfekt ist?

    Da gibt es haufenweise Ansätze, von "wenn es die Tests erfüllt, ist es fertig" über "wir beginnen mit dem Minimum und erweitern es, wenn sich die Anforderungen ändern" bis "wir konzipieren die Architektur vollständig und implementieren atomare, fehlerfreie Einzelcodes". Jeder Ansatz hat seine Vorteile, keiner ist ohne Nachteile.

    Interessant für mich wäre auch, in welchem Umfeld ihr euer Können anwendet. Privat, Semiprofessionell (hobbymäßig, aber auch mal ein richtiger Auftrag) oder Professionell (ihr lebt davon).

    Alle drei.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi Cheatah,

      Ein perfekt programmiertes Skript
      davon hab ich schon mal gehört. Das liegt doch im geheimen Schloss von Nessamabour, bewacht von sieben auf Einhörnern reitenden Waldelfen, richtig?

      Irgendwo hab ich mal gelesen:
      Ein fehlerfreies Programm ist wie ein Perpetuum Mobile.
      Jeder hat schon mal davon gehört; einige meinen, es müsste eigentlich möglich sein; aber gesehen hat es noch keiner.

      Darauf wolltest du doch hinaus, oder?

      Schönen Abend noch,

      Martin

      1. Hi,

        Darauf wolltest du doch hinaus, oder?

        nein, das speziell kannte ich noch nicht. Ich verstehe auch nicht so ganz, was ein perfektes Script mit einem Perpetuum Mobile zu tun haben soll :-)

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Ich verstehe auch nicht so ganz, was ein perfektes Script mit einem Perpetuum Mobile zu tun haben soll :-)

          Das perfekte Script läuft und läuft und läuft. Es bewegt sich also permanent. Wie ein Perpetuum Mobile.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. Hi,

            Das perfekte Script läuft und läuft und läuft.

            hm, dann ist das perfekte Script wohl ein Service ;-)

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi,

              Das perfekte Script läuft und läuft und läuft.
              hm, dann ist das perfekte Script wohl ein Service ;-)#

              Nein. Ein VW Käfer ;-)

              cu,
              Andreas

              --
              Warum nennt sich Andreas hier MudGuard?
              Schreinerei Waechter
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
              1. Hi,

                hm, dann ist das perfekte Script wohl ein Service ;-)#
                Nein. Ein VW Käfer ;-)

                dieses Wortspiel wollte ich vermeiden, weil ein perfektes Script vermutlich keinen Bug hat ;-)))

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
                1. Hi,

                  dieses Wortspiel wollte ich vermeiden, weil ein perfektes Script vermutlich keinen Bug hat ;-)))

                  Ein Käfer ist keine Wanze.

                  cu,
                  Andreas

                  --
                  Warum nennt sich Andreas hier MudGuard?
                  Schreinerei Waechter
                  Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                  1. Hi,

                    Ein Käfer ist keine Wanze.

                    argl! Wie viele Humorlose braucht man, um eine Glühbirne zu wechseln?

                    Einen.

                    Chea "*seufz* ..." tah :-)

                    --
                    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
                  2. Hallo,

                    Ein Käfer ist keine Wanze.

                    Dann forsche doch mal nach, wie der VW Käfer im englisch-amerikanischen Sprachraum üblicherweise genannt wird.

                    Ciao,

                    Martin

                    PS: Nein, "Beetle" ist eine Wunschvorstellung des VW-Konzerns. ;)

                    1. Hi,

                      Dann forsche doch mal nach, wie der VW Käfer im englisch-amerikanischen Sprachraum üblicherweise genannt wird.

                      "Wolkswäg'n"

                      cu,
                      Andreas

                      --
                      Warum nennt sich Andreas hier MudGuard?
                      Schreinerei Waechter
                      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                2. hi,

                  weil ein perfektes Script vermutlich keinen Bug hat ;-)

                  Es kann aber ein paar Heckflossen aufweisen, was bei einem VW-Käfer aus anatomischen Gründen unmöglich ist.

                  Grüße aus Berlin

                  Christoph S.

          2. Hallo MudGuard,

            Das perfekte Script läuft und läuft und läuft. Es bewegt sich also permanent. Wie ein Perpetuum Mobile.

            Hey, nach deiner Definition habe ich das[tm] perfekte Script gefunden!

            Beispiel in JavaScript:

              
            while(true)  
            {  
              /* gäääähnende Leere... */  
            }  
            
            

            Beispiel in PHP:

              
            while(true)  
            {  
              /* gäääähnende Leere... */  
            }  
            
            

            Man kann dieses Script übrigens in so gut wie jede andere Programmiersprache übersetzen.
            Die beiden Scripts oben sind perfekt. Auch wenn ein Browser oder ein PHP-Interpreter sie irgendwann beenden - wenn man sie lässt, laufen sie und laufen sie und laufen sie... ;-)

            Grüße

            Marc *SCNR* Reichelt || http://www.marcreichelt.de/

            --
            "Ja wo laufen sie denn?"
            Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
            http://emmanuel.dammerer.at/selfcode.html
    2. hallo Cheatah,

      bewacht von sieben auf Einhörnern reitenden Waldelfen, richtig?

      Falsch. Es sind keine Einhörner, sondern Eichhörnchen. Ein tragischer Schreibfehler, dem selbst Nostradamus in einignr seiner die Entwicklung des Web betreffenden Prophezeiungen aufgesessen ist.

      Grüße aus Berlin

      Christoph S.

      1. Hallo Christoph,

        bewacht von sieben auf Einhörnern reitenden Waldelfen, richtig?
        Falsch. Es sind keine Einhörner, sondern Eichhörnchen.

        Seltsam. Ich habe beim ersten flüchtigen Lesen auch "Eichhörnchen" gelesen und fand die Vorstellung irgendwie amüsant. :-D

        Ciao,

        Martin

        1. hallo,

          Seltsam. Ich habe beim ersten flüchtigen Lesen auch "Eichhörnchen" gelesen und fand die Vorstellung irgendwie amüsant. :-D

          Ja, das ist der unbewußt ablaufende "einhorn-Effekt", den Sigmund Freud bereits zutreffend beschrieben hat (allerdings unter anderem Namen).

          Übrigens führt es dazu, daß ich neuerdings ein paar Minuten in die Zukunft blicken kann: dein posting trägt den Zeitstempel 21·26 Uhr, aber mein Rechner zeigt mit erst 21.14 Uhr an.

          Grüße aus Berlin

          Christoph S.

  6. Hallo der-doktor,

    Ein voriger Post hat mich jetzt auf diese Idee gebracht, was ich hier schon seit Jahren mal fragen wollte, und zwar:

    Was ist für euch wichtiger:
    Ein perfekt programmiertes Skript oder die Tatsache das es funktioniert auch wenns vielleicht nur 80% perfekt ist?

    "Das Funktionieren ist ein Beleg für das Funktionieren." - Heinz von Foerster[2]

    Ganz so eng sehe ich das nicht, aber ich habe den Standpunkt, wenn der Algorithmus funktioniert, dann ist er perfekt[1]. Das bedeutet auch, dass er die eventuellen Veränderungen der (Anfangs-) Bedingungen (Stichwort Fehlerabfangen) berücksichtigt. Bei einem Behelfscode enge ich die Bedingungen ein, indem ich beispielsweise die Prämisse verwende, dass der Code nur eine kurze Zeit in einem engeren Anwendungsschema funktionieren muss.

    Ich mein damit jetzt reine Skripts, also kein HTML.

    Das hast du auch Glück gehabt. Perfekt programmiertes HTML ist natürlich unerreichbar.

    Interessant für mich wäre auch, in welchem Umfeld ihr euer Können anwendet. Privat, Semiprofessionell (hobbymäßig, aber auch mal ein richtiger Auftrag) oder Professionell (ihr lebt davon).

    Als bald-Student weiterhin semi-professionell. Ich verdiene mit Webprogrammierung Geld, aber ich muss nicht davon leben.

    [1] Ein schnellerer Algorithmus, der das gleiche tut führt das nicht ad absurdum. Wenn er _dasselbe_ nur schneller tut, dann entwertet das den anderen ja nicht.

    [2] Dazu ist zu sagen, dass von Foerster diesen Satz nicht im Zusammenhang von (Internet-)Programmierung gesagt hat, sondern in einem Interview zur philosophischen Wahrheitsverifikation.

    Grüße aus Barsinghausen,
    Fabian

    --
    "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>
    1. Hallo Fabian, Heinz von Foerster Fan ;-)

      "Das Funktionieren ist ein Beleg für das Funktionieren." - Heinz von Foerster[2]
      [2] Dazu ist zu sagen, dass von Foerster diesen Satz nicht im Zusammenhang von (Internet-)Programmierung gesagt hat, sondern in einem Interview zur philosophischen Wahrheitsverifikation.

      und was hältst du vom Halteproblem bei einer Turing Maschine? Da ist das Funktionieren kein Beweis mehr für das Funktionieren ;-)

      speziell: http://www.matheprisma.uni-wuppertal.de/Module/Turing/Kapitel10.htm
      allgemein: http://www.matheprisma.uni-wuppertal.de/Module/Turing/

      Beste Grüsse
      Richard

      1. Hallo Richard,

        Hallo Fabian, Heinz von Foerster Fan ;-)

        Ich habe ihn hier lediglich zitiert, weil mir dieses Zitat in den Sinn kam. Ich muss zugeben, dass ich nicht allzu viel von ihm gelesen habe, und seine Denkansätze auch nicht immer voll teile, aber der o.g. Satz ist mir zweifellos sympathisch ;-)

        "Das Funktionieren ist ein Beleg für das Funktionieren." - Heinz von Foerster[2]
        [2] Dazu ist zu sagen, dass von Foerster diesen Satz nicht im Zusammenhang von (Internet-)Programmierung gesagt hat, sondern in einem Interview zur philosophischen Wahrheitsverifikation.

        und was hältst du vom Halteproblem bei einer Turing Maschine? Da ist das Funktionieren kein Beweis mehr für das Funktionieren ;-)

        Du hast ja [2] gelesen. Natürlich ist das Halteproblem eines, das vom Definitionssystem aus nicht gelöst werden kann. Die Lösung für ein Problem kann schließlich auch darin bestehen herauszufinden, dass es nicht lösbar ist. Ein Algorithmus (angewandt auf das Halteproblem), der "nicht lösbar" als Ergenismenge liefert kann ja immernoch perfekt sein ;-)

        Grüße aus Barsinghausen,
        Fabian

        --
        "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>
        1. Hallo Fabian,

          Ich habe ihn hier lediglich zitiert, weil mir dieses Zitat in den Sinn kam. Ich muss zugeben, dass ich nicht allzu viel von ihm gelesen habe, und seine Denkansätze auch nicht immer voll teile, aber der o.g. Satz ist mir zweifellos sympathisch ;-)

          ich war einfach etwas überrascht, diesen Satz so ohne Einschränkung Grades von dir zu hören. Eine mit FrontPage erstellte site funktioniert im ie auch ;-)

          "Das Funktionieren ist ein Beleg für das Funktionieren." - Heinz von Foerster[2]

          Mehr aber auch nicht! Es wird lediglich gesagt, dass etwas in einem konkreten Fall unter diesen Bedingungen nach festgelegten Kriterien funktioniert. Daraus kann nicht geschlossen werden, dass es auch in Zukunft oder unter anderen Bedingungen funktionieren wird. Internetseiten so intensiv wie möglich unter verschiedenen Bedingungen auf ihre Funktionsfähigkeit zu testen reicht deshalb nicht, weil niemals alle möglichen Fälle getestet werden können. Es wird also immer auch der verwendete Code kritisch betrachtet werden müssen, was zwar auch keine Garantie ist, aber die Fehlerwahrscheinlichkeit vermindern hilft. Deshalb gibt es den vom OP unterstellte Gegensatz von "funktioniert" und "perfektem Code" gar nicht.

          [2] Dazu ist zu sagen, dass von Foerster diesen Satz nicht im Zusammenhang von (Internet-)Programmierung gesagt hat, sondern in einem Interview zur philosophischen Wahrheitsverifikation.

          Er gilt aber generell, auch für das Erstellen von Internetseiten, gerade wenn Heinz von Foerster es sagt.

          und was hältst du vom Halteproblem bei einer Turing Maschine? Da ist das Funktionieren kein Beweis mehr für das Funktionieren ;-)
          Ein Algorithmus (angewandt auf das Halteproblem), der "nicht lösbar" als Ergenismenge liefert kann ja immernoch perfekt sein ;-)

          Es ist gar nicht möglich, einen derartigen Algorithmus zu erstellen, deshalb mein Hinweis. Funktionieren bedeutet aus praktischen Gründen, mit einem voraussagbaren Ergebnis funktionieren. Eine Internetseite funktioniert dann, wenn sie ein gewünschtes Ergebnis liefert. Insofern hast du mit dem zitierten Foerster-Satz völlig Recht. Dieses Funktionieren kann aber nur Falsifiziert werden, es gilt nur, bis der erste Fall eintritt, bei dem es nicht mehr funktioniert. In der Praxis muss ich mich ganz einfach damit abfinden, dass nichts perfekt ist und schon froh sein, wenn es ausreichend funktioniert. Aber was funktioniert, könnte wahrscheinlich auch noch besser funktionieren, danach strebe ich. Und du auch, dessen bin ich mir sicher.

          Beste Grüsse
          Richard

          1. Hallo Richard,

            Ich habe ihn hier lediglich zitiert, weil mir dieses Zitat in den Sinn kam. Ich muss zugeben, dass ich nicht allzu viel von ihm gelesen habe, und seine Denkansätze auch nicht immer voll teile, aber der o.g. Satz ist mir zweifellos sympathisch ;-)

            ich war einfach etwas überrascht, diesen Satz so ohne Einschränkung Grades von dir zu hören.

            Wie bitte?

            Eine mit FrontPage erstellte site funktioniert im ie auch ;-)

            Streiche das auch. Sie funktioniert nur dort. (Und das auch nur manchmal.)

            "Das Funktionieren ist ein Beleg für das Funktionieren." - Heinz von Foerster[2]
            [2] Dazu ist zu sagen, dass von Foerster diesen Satz nicht im Zusammenhang von (Internet-)Programmierung gesagt hat, sondern in einem Interview zur philosophischen Wahrheitsverifikation.
            Er gilt aber generell, auch für das Erstellen von Internetseiten, gerade wenn Heinz von Foerster es sagt.

            Nach meinem Empfinden gilt er hauptsächlich auf der Meta-Ebene der Betrachtung einer Theorie, die es zu falsifizieren gilt, wo das aber eben nicht "mal eben" möglich ist. Im Grunde ist Informatik für diesen Satz viel zu banal, um ihn darauf anzuwenden ;-)

            Funktionieren bedeutet aus praktischen Gründen, mit einem voraussagbaren Ergebnis funktionieren.

            Dann bedeutet "perfekt funktionieren", auch unter allen (zur Veranschaulichung: un_vorstellbaren_) unbekannten Bedingungen mit einem voraussagbaren Ergebnis zu funktionieren. Mit anderen Worten: Ein Programm, das das tut, was ich von ihm erwarte (sobald sich die Erwartung durch die Kenntnis der Ausgangsbedingungen formulieren lässt), ohne dass ich diese Erwartung formulieren muss, ist perfekt.

            Das ist ungefähr das, was zu leisten ist, wenn 42 herauskommt, und ich noch nicht weiß, dass die Ausgangsbedingung 9*6 war.

            Grüße aus Barsinghausen,
            Fabian

            --
            "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>