1. Foren
  2. Kommentare
  3. Wissenschaft
  4. Alle Kommentare zum Artikel
  5. › Sel4: Fehlerloser Microkernel…

Was ein Schwachfug

  1. Thema
  1. 1
  2. 2

Neues Thema Ansicht wechseln


  1. Was ein Schwachfug

    Autor: Linuxschaden 29.07.14 - 16:55

    Leute, die behaupten, man verwende Mirkokernel für die Sicherheit, sind nicht das Papier wert, auf denen ihr Arbeitsvertrag gedruckt steht. Aber sind halt Australier, können nicht anders oder was?

    Dann versuchst du, den Kernel von deren Webseite runterzuladen, und sollst erst mal ne EULA akzeptieren und E-Mail-Adresse und so angeben. Ernsthaft? Fick euch hart ins Knie, das ist der Epic Fail des Tages. GPL und OpenBSD-Lizenz heißt: hier hast du den Code, (GPL) wenn du den kommerziell nutzen willst, musst du eine separate Lizenz mit uns aushandeln, oder (BSD) verklag uns nur nicht. Mit der gleichen Qualität, mit der die die Lizenzierung ausgehandelt haben, haben die wahrscheinlich auch die Sicherheitstests durchgeführt.

    Dann holst du dir den Code von github, weil er da ja auch ist, und bekommst erst mal einen Schlag, weil da ein Ordner namens "Haskell" ist. :) Ich stehe zwar nicht so auf den alten K&R-Stil, aber auf den ersten Blick schien der Code relativ OK zu sein. Allerdings fehlen mir persönlich Kommentare - um Fefe zu zitieren: Wenn du einen Riesenkontext benötigst, um den Code zu lesen, ist der Code scheiße. Die Erklärung der Strukturen muss wie die Steuererklärung auf einen Bierdeckel passen. Hier gibt es nicht mal einen einzigen Kommentar hierzu - siehe mal include/kernel/cspace.h. Ein Programmierer, der nicht hinter jeder Funktion und jeder Struktur einen Kommentar hinterlässt, was Sache ist, hat auf dem Sitz nichts verloren und sollte erst einmal ein Jahr Programmierverbot bekommen, in dem sein Code nicht veröffenticht werden darf. Drastisch, aber anders bekommen wir diese Pfuscher nicht weg. Und wer ernsthaft dagegen ist, ist selbst ein Pfuscher (und die Leute, die sich angesprochen fühlen, fühlen sich wahrscheinlich zu recht angesprochen ;).)

    Kurz: sieht ordentlich aus, riecht aber unangenehm - würde ich eher nicht vertrauen. Aber wer bin ich schon ...

  2. Re: Was ein Schwachfug

    Autor: picaschaf 29.07.14 - 17:05

    Ich stimme dir großteils zu, aber du Sitzt einem Mythos bzgl. der GPL auf. Hier geht es um die Bedingungen bei einer Lizenzierung. Die Rechte der GPL erhältst du als Lizenznehmer und nicht als Erdenbürger. Dh. du kannst durchaus ein kommerzielles Produkt unter der GPL vertreiben weil du erst durch Kaufpreiszahlung Lizenznehmer wirst und dann erst die Rechte der GPL erhältst. Die verlangen halt kein Geld, sondern deine Email Adresse.

  3. Re: Was ein Schwachfug

    Autor: SelfEsteem 29.07.14 - 17:11

    Was die GPL angeht, liegst du etwas falsch, aber was den Rest angeht ... dafuer wuerde ich dir gern ein Bier ausgeben. Oder ... lass gleich 'nen Kasten machen.
    Und wenn du es wirklich mal schaffen solltest, dass die ganzen hirntoten Horden, die ihren hingerotzten Schrottcode undokumentiert hinterlassen, fuer ein Jahr in unbezahlten Urlaub geschickt werden, finanzier ich dir deinen Bierbedarf bis zur Rente.

    Oder kurz: Amen ;)

  4. Re: Was ein Schwachfug

    Autor: Linuxschaden 29.07.14 - 17:17

    Hm, klar. Hatte ich in den Hintergrund gerückt, aber natürlich habt ihr recht bezüglich der GPL. Die Lizenzierung selbst machst du dann immer noch selbst, aber die GPL garantiert dir als Lizenznehmer halt, dass du den Code bekommst und so modifizieren kannst, wie du ihn brauchst. Die initialen Lizenzbedingungen hatte ich ausgeblendet.
    Danke für die Hinweise.

    Trotzdem verwundert mich das, dass ich das nicht tun muss, wenn ich den Code auf github einsehen will. Oder ist das bereits BSD?

  5. Re: Was ein Schwachfug

    Autor: SelfEsteem 29.07.14 - 17:24

    Linuxschaden schrieb:
    --------------------------------------------------------------------------------
    > Hm, klar. Hatte ich in den Hintergrund gerückt, aber natürlich habt ihr
    > recht bezüglich der GPL. Die Lizenzierung selbst machst du dann immer noch
    > selbst, aber die GPL garantiert dir als Lizenznehmer halt, dass du den Code
    > bekommst und so modifizieren kannst, wie du ihn brauchst. Die initialen
    > Lizenzbedingungen hatte ich ausgeblendet.
    > Danke für die Hinweise.
    >
    > Trotzdem verwundert mich das, dass ich das nicht tun muss, wenn ich den
    > Code auf github einsehen will. Oder ist das bereits BSD?

    Ich habe jetzt nicht auf die Pages geschaut, aber ich wuerde mal sagen: Nein, das hat damit erstmal nichts zutun.
    Die GPL verbietet es dir nicht, die Verbreitung deiner Software an irgendetwas anderes zu knuepfen. Als Urheber kannst du tun und lassen, was dir lieb ist.
    Afaik ist es nur dann anders, wenn du fremde Software modifizerst - dann koennte man sich ueber die EULA-Geschichte da evtl. streiten.

    Dadurch sind ja z.B. auch Doppelizensierungen moeglich. Das funktioniert im Prinzip nur dadurch, dass Urheberrecht ueber Lizenz geht.

  6. Re: Was ein Schwachfug

    Autor: walkytalky 29.07.14 - 17:26

    tuDies(); // tu dies
    tuJenes(); // tu jenes

    ;)

  7. Re: Was ein Schwachfug

    Autor: derdiedas 29.07.14 - 17:33

    ...man verwende Mirkokernel für die Sicherheit...

    Ach nee macht man nicht - nein wirklich nicht...

    Flugüberwachung, Medizinische Geräte, Airbag usw... usw... weil halt ein Treiber eben NICHT die Stabilität des Kernels beeinträchtigt.

    Ein Microkernel hat etwa meist nur einen Bruchteil der Codezeilen eines herkömmlichen Monolithischen kernels. QNX etwa 100.000 Codezeilen vs. Linux 14 Millionen.

    Und weniger Code bedeutet zwangsläufig eine leichtere und umfassendere QA. Schon der Heartbleed Bug zeigt das Code schnell zu komplex wird das man Fehler zeitnah erkennen kann. Daher ist ein Microkernel inherent sicherer was mathematisch sogar beweisbar ist.

    Also begründe noch einmal warum man Microkernel NICHT für Sicherheit einsetzt? Denn das ist aktuell der Fall.

  8. Re: Was ein Schwachfug

    Autor: Linuxschaden 29.07.14 - 17:34

    SelfEsteem schrieb:
    --------------------------------------------------------------------------------
    > Linuxschaden schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > Ich habe jetzt nicht auf die Pages geschaut, aber ich wuerde mal sagen:
    > Nein, das hat damit erstmal nichts zutun.
    > Die GPL verbietet es dir nicht, die Verbreitung deiner Software an
    > irgendetwas anderes zu knuepfen. Als Urheber kannst du tun und lassen, was
    > dir lieb ist.
    > Afaik ist es nur dann anders, wenn du fremde Software modifizerst - dann
    > koennte man sich ueber die EULA-Geschichte da evtl. streiten.
    >
    > Dadurch sind ja z.B. auch Doppelizensierungen moeglich. Das funktioniert im
    > Prinzip nur dadurch, dass Urheberrecht ueber Lizenz geht.

    M-hm. Darf ich kotzen? :) Ist ja grausam und hört sich wieder nach einer billigen Arbeitsbeschaffungsmaßnahme für Juristen an ... aber was will ich machen? *seufz*

    walkytalky schrieb:
    --------------------------------------------------------------------------------
    > tuDies(); // tu dies
    > tuJenes(); // tu jenes
    >
    > ;)

    Ach komm schon, du weißt, was ich meine ;)

  9. Re: Was ein Schwachfug

    Autor: SelfEsteem 29.07.14 - 17:35

    walkytalky schrieb:
    --------------------------------------------------------------------------------
    > tuDies(); // tu dies
    > tuJenes(); // tu jenes
    >
    > ;)

    So wuenscht man es sich, aber in der Realitaet heissen Funktionen oft
    TuEtwas();
    TuEtwas2();
    und
    TuEtwasAnderes4()
    TuEtwasAnderes5()
    (Wo sind 1, 2 und 3 geblieben?)
    Haben gleichzeitig 2000 Zeilen Code und es wurde kein Platz fuer Kommentare verschwendet ;)

    Nein, ich beschreibe nicht den seL4-Code, sondern einige Gruende fuer einige meiner Austraster in den letzten Wochen ;)

  10. Re: Was ein Schwachfug

    Autor: SelfEsteem 29.07.14 - 17:39

    Linuxschaden schrieb:
    --------------------------------------------------------------------------------
    > M-hm. Darf ich kotzen? :) Ist ja grausam und hört sich wieder nach einer
    > billigen Arbeitsbeschaffungsmaßnahme für Juristen an ... aber was will ich
    > machen? *seufz*

    Ich wuesste nicht, was daran schlimm sein soll. Dreh mal den Spiess um, dann wirds evtl. sinnvoller.
    Schreib eine Software und stell sie unter GPL. Schreib dann eine Lib fuer kommerzielle Zwecke, die du nicht unter GPL stellen willst.
    Nun stell dir die Frage, ob die GPL-Lizenz DEINER Software DIR verbietet gegen DEINE Lib zu linken ;)

    Waere doch ziemlicher Unfug ;)

  11. Re: Was ein Schwachfug

    Autor: Linuxschaden 29.07.14 - 17:51

    SelfEsteem schrieb:
    --------------------------------------------------------------------------------
    > Linuxschaden schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > M-hm. Darf ich kotzen? :) Ist ja grausam und hört sich wieder nach einer
    > > billigen Arbeitsbeschaffungsmaßnahme für Juristen an ... aber was will
    > ich
    > > machen? *seufz*
    >
    > Ich wuesste nicht, was daran schlimm sein soll. Dreh mal den Spiess um,
    > dann wirds evtl. sinnvoller.
    > Schreib eine Software und stell sie unter GPL. Schreib dann eine Lib fuer
    > kommerzielle Zwecke, die du nicht unter GPL stellen willst.
    > Nun stell dir die Frage, ob die GPL-Lizenz DEINER Software DIR verbietet
    > gegen DEINE Lib zu linken ;)
    >
    > Waere doch ziemlicher Unfug ;)

    Es geht mir nicht um die Lizenz an sich, sondern um die Komplexitätsbäume, die das ganze schon wieder hervorruft. Denn auch, wenn das Unfug wäre ... ich bin so beknackt idealistisch und würde mich daran halten. :) Ja, ist beknackt, aber ich habe die Lib als GPL veröffentlicht, es handelt sich um eine eigene Entität, und das würde ich respektieren.
    Wobei ich es allerdings auch eine GPL-lizensierte Version und eine unfreie Version veröffentlichen könnte, und letztere bekommt halt Updates. Dann muss ich das aber so direkt von anfang an so halten, sonst wäre ich ein ziemlicher Heuchler (ja, ist dämlich, ich weiß).

    derdiedas schrieb:
    --------------------------------------------------------------------------------
    > ...man verwende Mirkokernel für die Sicherheit...
    >
    > Ach nee macht man nicht - nein wirklich nicht...
    >
    > Flugüberwachung, Medizinische Geräte, Airbag usw... usw... weil halt ein
    > Treiber eben NICHT die Stabilität des Kernels beeinträchtigt.
    >
    > Ein Microkernel hat etwa meist nur einen Bruchteil der Codezeilen eines
    > herkömmlichen Monolithischen kernels. QNX etwa 100.000 Codezeilen vs.
    > Linux 14 Millionen.
    >
    > Und weniger Code bedeutet zwangsläufig eine leichtere und umfassendere QA.
    > Schon der Heartbleed Bug zeigt das Code schnell zu komplex wird das man
    > Fehler zeitnah erkennen kann. Daher ist ein Microkernel inherent sicherer
    > was mathematisch sogar beweisbar ist.
    >
    > Also begründe noch einmal warum man Microkernel NICHT für Sicherheit
    > einsetzt? Denn das ist aktuell der Fall.

    Erstens: ich habe hier nicht einmal das Wort "Linux" eingeworfen und auch nicht behauptet, dass Linux sicherer wäre. In der Regel hast du natürlich recht, höhere Komplexität ist zu vermeiden, und Linux hat nun mal 14 M Zeilen Code - auch wenn diese nicht immer zur gleichen Zeit verwendet werden, ich habe beispielsweise ein Eigengebräu laufen, welches nur die benötigten Module laufen hat - ohne Initramfs, nur 4.1 MB groß das Binary. Da läuft zu keiner Zeit der komplette Kernel, sondern wenn's hochkommt ein Zehntel, wenn nicht weniger.

    Zweitens: ich habe mal vor Jahren ein Beispiel gesehen, wo jemand auf Minix (ein OS mit Mikrokernel) geownt wurde. Lustigerweise sagt das der olle Fefe auch schon seit Jahren. Wenn dein Userspace kacke ist, hilft das nicht die Bohne. Man muss ja nicht mal den Kernel direkt kompromittieren, es reicht oft schon, die darauf laufende Software zu knacken.

    Siehe auch: https://xkcd.com/1200/

  12. Re: Was ein Schwachfug

    Autor: Linuxschaden 29.07.14 - 18:13

    @SelfEsteem:

    TuEtwas();
    TuEtwas2();
    und
    TuEtwasAnderes4()
    TuEtwasAnderes5()

    Das ist so ziemlich die schlimmste Art von Code, die man sich vorstellen kann - ein globaler Programm-State. Meistens - also zumindest in C - machst du das schon imperativ, aber du gibst immer das Objekt mit an, welches geändert werden soll.
    Ich habe hier gerade einen PS1-Emulator auf der Festplatte, den ich analysiere, wenn ich die Muße dazu habe. Und dieser verwendet einen globalen State. Das mag zwar toll sein, wenn du immer nur von einem State gleichzeitig ausgehst, aber es wird katastrophal, wenn das nicht mehr der Fall ist. Wenn du beispielsweise richtig emulieren willst und pro Chip einen Kernel-Thread startest, der dann synchronisiert werden muss - wann ist welches Objekt für welchen Thread freigegeben? Was gehört überhaupt zu welcher Struktur?

    Und Leute denken, dieser Emulator wäre auch noch klasse ... :/

  13. Re: Was ein Schwachfug

    Autor: SelfEsteem 29.07.14 - 19:14

    Naja, du sprichst jetzt bereits ueber die Architektur. Darueber kann man sich wunderbar streiten, wenn man die alte begriffen hat.

    Mir ging es erstmal um Funktionsbenamungen und fehlende Kommentare, die es auf grandiose Art verhindern, irgendetwas zu begreifen ;)

    Ich muss beruflich Code oft "mal ueberfliegen". Riesige Funktionsbloecke, die nicht aufgespaltet wurden, fehlende Kommentare und unsinnige sowie nichtsaussagende Funktionsnamen fuehren schnell mal dazu, dass man ein x-faches der Zeit benoetigt um einen groben Ueberblick zu bekommen.

    Das nervt einfach tierisch und imho ist im Berufsalltag die einzig korrekte Reaktion auf derartigen Code ein gigantischer Einlauf, auf dass derjenige draus lernt.
    Leider kommt derartiger Schrott meiner Erfahrung nach (muss sich nicht mit anderen decken) meist von Leuten aelterer Generationen, die vor 30 Jahren programmieren gelernt haben und seit dem voellig unbelehrbar sind.
    Dazu dann noch die Floskel "das haben wir doch schon immer so gemacht".

    Dann sind das gern noch die eher bequemen Herrschaften, die bei der Aufforderung, ihren Muell sauber zu machen, erstmal husten und pusten und einem mit "boa, das wuerd aber dauern" ankommen.
    Ich mag ja gern direkt sein, aber eine aggressive Persoenlichkeit bin ich ansich nicht, doch in solchen Situationen geht bei mir die Tachonadel schnell auf 180.
    Mir ist meine Lebenszeit schlicht zu schade um fremden Schrottcode Zeile fuer Zeile zu lesen, nur um grob zu begreifen, was die Software da tut.

  14. Re: Was ein Schwachfug

    Autor: Linuxschaden 29.07.14 - 19:46

    SelfEsteem schrieb:
    --------------------------------------------------------------------------------
    > Naja, du sprichst jetzt bereits ueber die Architektur. Darueber kann man
    > sich wunderbar streiten, wenn man die alte begriffen hat.

    *kopfkratz* Achso, dir ging es jetzt um die Benamung der Funktionen und die Enumerierung. Mir ging es jetzt darum, dass keine Argumente in den Aufrufen verwendet wurden - und das ist einfach zum Kotzen. Wenn ich eine Funktion aufrufe, soll die keinen globalen State setzen, die soll das Objekt, welches ich ihr gebe, ändern, und NICHTS im Hintergrund machen, was ich nicht an meinem Objekt sehen kann.
    Die Benamung finde ich jetzt mal nicht so schlimm, solange nicht 0, 2, 4 und 5 wild durcheinandergemixt werden. So kann man sich zumindest noch einreden, dass 1 und 3 nicht mehr gebraucht werden ... was allerdings auch nicht sicher ist.

    > Mir ging es erstmal um Funktionsbenamungen und fehlende Kommentare, die es
    > auf grandiose Art verhindern, irgendetwas zu begreifen ;)

    Und das habe ich erst gelesen, NACHDEM ich den obrigen Absatz geschrieben hatte. Bravado, Linuxschaden, du Trottel ... :/

    > Ich muss beruflich Code oft "mal ueberfliegen". Riesige Funktionsbloecke,
    > die nicht aufgespaltet wurden, fehlende Kommentare und unsinnige sowie
    > nichtsaussagende Funktionsnamen fuehren schnell mal dazu, dass man ein
    > x-faches der Zeit benoetigt um einen groben Ueberblick zu bekommen.
    >
    > Das nervt einfach tierisch und imho ist im Berufsalltag die einzig korrekte
    > Reaktion auf derartigen Code ein gigantischer Einlauf, auf dass derjenige
    > draus lernt.

    Kenn ich.
    Während meiner Ausbildung musste ich auch oft riesige Teile von Code lesen, und - ich scherze nicht - alle Programmierer minus 2 (ich und noch ein anderer), die dort gearbeitet hatten, hatten eine absolute Sauklaue, haben verwirrende Kommentare hinterlassen oder komplexere Stellen überhaupt nicht kommentiert. Der Chefprogrammierer hat so kaputten Code hinterlassen, dass absolut niemand, nicht mal er selbst, wenn er deine Arbeit debuggen musste, verstanden hat, worum es da ging. Lieber hat er es noch mal gemacht ...

    > Leider kommt derartiger Schrott meiner Erfahrung nach (muss sich nicht mit
    > anderen decken) meist von Leuten aelterer Generationen, die vor 30 Jahren
    > programmieren gelernt haben und seit dem voellig unbelehrbar sind.

    ... und der Typ ist erst 32 Jahre alt gewesen (bin selbst noch ein wenig jünger). Auch die anderen Programmierer waren Anfang bis Ende Zwanzig, die auf keinen Fall 15 Jahre Programmiererfahrung hatten. Und der einzige andere Typ, der sie hatte, hat zwar Kommentare hinterlassen, aber diese haben nur Anweisungen beschrieben, keine Konzepte hinter dem Code, wenn überhaupt (eher hat er ASCII-Art in den Programmcode gebaut, wie eine Kuh auf einem Bauernhof) ...

    Eines Gutes hatte das aber: ich habe mir geschworen, nicht so zu programmieren. Einfach, weil ich auch ein eher schlechtes Gedächtnis habe und es schon sein kann, dass ich nach einer Weile echt nicht mehr weiß, was zur Hölle ich da eigentlich programmiert habe.

    > Mir ist meine Lebenszeit schlicht zu schade um fremden Schrottcode Zeile
    > fuer Zeile zu lesen, nur um grob zu begreifen, was die Software da tut.

    Ich bin da schmerzbefreiter. :(
    Ich muss mir das so richtig schön reinziehen, um dann auch zu wissen, wie beschissen das alles ist.

    EDIT: Was mich wirklich beunruhigt, ist dass auch kritische Infrastruktur davon betroffen ist. Beispielsweise der X-Server unter Linux. Da habe ich einmal den Fehler gemacht und reingeblinzelt, und direkt eine mögliche Memory Corruption beim Einladen und Parsen einer Konfigurationsdatei gefunden. Deswegen hoffe ich auch auf Wayland - schlimmer als X kann's kaum werden, und wenn die das wirklich schaffen sollten, schlimmer zu sein, können wir wenigstens ordentlich flamen. :)



    1 mal bearbeitet, zuletzt am 29.07.14 19:51 durch Linuxschaden.

  15. Re: Was ein Schwachfug

    Autor: Steffo 29.07.14 - 22:19

    Linuxschaden schrieb:
    --------------------------------------------------------------------------------
    > Aber wer bin ich schon ...

    Der einzig sinnvolle Satz in diesem Beitrag.
    Tipp: Gut geschriebener Code muss man nicht großartig kommentieren. Wer jede Funktion und jede Struktur kommentieren muss, der sollte seinen Code/Namensgebung nochmal überarbeiten.
    Du hast entweder nie ernsthaft programmiert oder es jahrelang falsch gemacht.

    L. G.,
    Steffo

  16. Re: Was ein Schwachfug

    Autor: SelfEsteem 29.07.14 - 22:56

    Steffo schrieb:
    --------------------------------------------------------------------------------
    > Linuxschaden schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Aber wer bin ich schon ...
    >
    > Der einzig sinnvolle Satz in diesem Beitrag.
    > Tipp: Gut geschriebener Code muss man nicht großartig kommentieren. Wer
    > jede Funktion und jede Struktur kommentieren muss, der sollte seinen
    > Code/Namensgebung nochmal überarbeiten.
    > Du hast entweder nie ernsthaft programmiert oder es jahrelang falsch
    > gemacht.

    Diese Aussage ist so allgemein leider ziemlicher Schwachsinn.

    Fuer banale Codestrukturen magst du recht haben, wird der Code jedoch komplexer, kommst du um Kommentare nicht mehr herum.

    Es geht dabei auch nicht darum, dass man den Code ohne Kommentare garnicht verstehen kann, aber man muss sich oft unnoetig reindenken, nur um zu begreifen, was da gerade abgeht.

    Und ja, ein Mittelmass ist wichtig - Romane will man im Code nicht lesen muessen.

    Ein anderer Punkt sind z.B. Doku-Generatoren wie Doxygen oder JavaDoc, die die Kommentare erfassen.

  17. Re: Was ein Schwachfug

    Autor: Linuxschaden 29.07.14 - 23:16

    Steffo schrieb:
    --------------------------------------------------------------------------------
    > Linuxschaden schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Aber wer bin ich schon ...
    >
    > Der einzig sinnvolle Satz in diesem Beitrag.
    > Tipp: Gut geschriebener Code muss man nicht großartig kommentieren. Wer
    > jede Funktion und jede Struktur kommentieren muss, der sollte seinen
    > Code/Namensgebung nochmal überarbeiten.
    > Du hast entweder nie ernsthaft programmiert oder es jahrelang falsch
    > gemacht.
    >
    > L. G.,
    > Steffo

    Und wer so einen Schwachfug schreibt, fleht mich geradezu an, auf die Igno-Liste zu kommen. Meine Fresse, und sowas darf programmieren? Allein für diesen Satz wärst du der erste, bei dem dieses Programmierverbot angewendet werden sollte.

    > Und ja, ein Mittelmass ist wichtig - Romane will man im Code nicht lesen
    > muessen.

    Nicht überall, stimmt - aber wenigstens in den Headern. Da würde ich schon oft gerne lesen, was der Programmierer sich hier gerade gedacht hat, von mir aus auch in Romanform. Ich will nicht jede Anweisung beschrieben haben, aber wenn ich jetzt einen Block von n-Anweisungen habe, die so ungefähr miteinander zu tun haben (Initialisieren eines Objekts für einen gewissen Zweck z.B.), oder wo mehrere Checks auf Variablen gemacht werden, oder einfach nur Code, bei dem jemand schon ein ungutes Gefühl hat, weil da in einer Zeile 500 Zeichen stehen, oder wo du auch wirklich die Chance siehst, dass es Ungereimtheiten geben kann - da setze ich lieber einen Kommentar hin. Das kostet mich 5 Minuten, erspart anderen Stunden, und ich ziehe mir nicht den Unmut anderer Nachfolgeprogrammierer auf mich. Wer das nicht tut -> siehe Programmierverbot.

    Anders geht das auch gar nicht mehr. Man stelle sich mal vor, das hätte man bei OpenSSL gemacht, mal so richtig in einfachem Englisch erklären, was dieses Headerfile so für Funktionen bietet, und wie die Strukturen interagieren. Hat man nicht gemacht. Macht man auch heute nicht. Ich will keinen beleidigen, aber inzwischen habe ich ernsthaft das Gefühl, dass das ein Autismus bei vielen Programmierern vorliegt, der sie denken lässt, dass andere schon verstehen werden, welches Verbrechen sie da vollzogen haben.

    Ich hatte mal eine Implementierung von memcmp in C für OpenBSD gesehen. Wäre verdammt hilfreich gewesen, wenn die da einfach mal geschrieben hätten, dass sie hier vektorisieren und <Anzahl der Bytes in einem int auf der Maschine> Bytes auf einmal prüfen, damit sie nicht jedes Bytes vom Hauptspeicher explizit laden müssen. Haben sie nicht gemacht. Hat mich 10 Minuten gekostet, bis ich rausgefunden hatte, was die da eigentlich machen. Niedergeschrieben ist es in zwei Minuten.
    Oh, und eines der Hauptargumente, als GNU ins Leben gerufen wurde, war ja auch, dass nachfolgende Generationen von Programmierern den Code lesen und verstehen sollen ... und dann muss ich mir Steffos Schwachsinn reinziehen.



    1 mal bearbeitet, zuletzt am 29.07.14 23:31 durch Linuxschaden.

  18. Re: Was ein Schwachfug

    Autor: Hello_World 29.07.14 - 23:36

    Nö, er hat vollkommen recht mit dem, was er schreibt. Der beste Code ist der, der einfach keine Kommentare braucht, weil er auch so zu verstehen ist. Und für lesbaren Code sorgt man nicht, indem man Kommentare vorschreibt, sondern indem man die Probe auf's Exempel macht: Code Reviews.

    Schwachfug ist nur das, was Du hier absonderst. Unbegründetes Haskell-Gebashe, herumreiten auf völlig Unbedeutendem (was könnte unbedeutender sein als der K&R-Codingstil?), und den eigentlich relevanten Punkt – nämlich garantierte Bugfreiheit durch formale Verifikation – wischst Du mit „würde ich eher nicht vertrauen“ beiseite. Keine Ahnung, aber davon viel…

  19. Re: Was ein Schwachfug

    Autor: Linuxschaden 30.07.14 - 00:08

    Hello_World schrieb:
    --------------------------------------------------------------------------------
    > Nö, er hat vollkommen recht mit dem, was er schreibt. Der beste Code ist
    > der, der einfach keine Kommentare braucht, weil er auch so zu verstehen
    > ist.

    In der Theorie hast du recht. Gibt es aber nicht. Außer in Beispielprogrammen. Also ist der Inhalt dieser Aussage nur für Beispielumgebungen interessant.

    > Und für lesbaren Code sorgt man nicht, indem man Kommentare
    > vorschreibt, sondern indem man die Probe auf's Exempel macht: Code
    > Reviews.

    Ja, genau. Man macht eine aufwendige Review, um mal zu schauen, was der Programmierer da eigentlich gemacht hat, anstatt Kommentare einzufügen, die genau erklären, was der Programmierer da gemacht hat.

    Eine Frage: ist in deinen Arbeitsvertrag definiert, dass ihr eine bestimmte Menge an Halluzinogene zugewiesen bekommt? So ähnlich wie die Balmer's Peak?

    Das kann doch nicht euer Ernst sein ... so neben sich KANN man nicht sein.

    > Schwachfug ist nur das, was Du hier absonderst. Unbegründetes
    > Haskell-Gebashe,

    Jaah, weil ich so unbedingt Haskell im Kernel hätte. Wobei, wenn du dir den Post mal vollständig durchgelesen hättest und nicht nur wie derdiedas einen Stichpunkt, dann wäre dir aufgefallen, dass ich nicht schrieb "Öh, Scheißhaskell", sondern nur, dass mich der Schock traf, daneben ein Smiley. Hey, vieleicht brauchen die das für die Verwaltung oder Codebereinigung oder what-ever, und ich habe nur nicht daran gedacht, und dann den Punkt explizit offengelassen? Aber nein, soweit denken wir ja nicht -> Killfile.

    > herumreiten auf völlig Unbedeutendem (was könnte
    > unbedeutender sein als der K&R-Codingstil?),

    Und auch hier habe ich nur geschrieben, dass ich nur nicht so sehr auf K&R stehe. Hey, WAS hat das mit der Codequalität zu tun? Mein Posting bezüglich der Qualität bezog sich REIN auf die Dokumentation/Kommentation; wenn ich ein Headerfile öffne und nicht da drin steht, wofür die Typen sind - nur, um eventuell meine Zweifel auszuräumen - dann ist das Schrott. Punkt. Heilige Scheiße, es gibt Code-Beautifier, die den Code in meinen präferierten Stil umwandeln, und jeder ist da individuell drauf.

    > und den eigentlich relevanten
    > Punkt – nämlich garantierte Bugfreiheit durch formale Verifikation
    > – wischst Du mit „würde ich eher nicht vertrauen“
    > beiseite.

    Weil mir diese formale Verifikation der Fehlerfreiheit am Hintern vorbeigeht, um es mal salopp zu formulieren. Weil ich schon Pferde habe kotzen sehen und nichts, was mir jemand als "sicher" verkaufen will, auch schon als "sicher" erachte. Vielleicht ist der Kernel sicher(!), ich weiß es nicht. Aber wenn ich etwas weiß, ist dass es keine absolut korrekten Theorien und absolute Sicherheit gibt (was nicht heißt, dass man nicht trotzdem darauf hinarbeiten sollte). Und wenn mir jemand was von "garantierter und erwiesender und mathematischer und militärischer Sicherheit" verkaufen will, klingelt nun mal mein Snakeoil-Alarm. Und anstatt wie ein dummer Junge dem zu vertrauen, schaue ich dann doch lieber mal in den Code und will mir das Durchlesen - und wie ich bereits sagte: wenn ich ein Headerfile öffne und da zig Stukturen habe und da nirgendwo steht, wofür die sind, dann bekomme ich einen Hals. Geht weg mit eurer statischen Codeanalyse und weiß der Kuckuck, der Code ist in dem Fall [Scheiße]. [Vielleicht] ist er [fehlerfrei], aber mir geht's erst mal um [Scheiße].

    > Keine Ahnung, aber davon viel…

    Was bin ich froh, mir das von jemandem erklären lassen zu müssen, der mir bereits gezeigt hat, was er drauf hat. :-o) Aber mühe dich nicht, ich lese es eh nicht.

    @topic:

    Übrigens will ich mir auch keine externe Dokumentationsquelle reinziehen müssen. Für die Definition der API dieser Lib, gut, das kann man noch extern regeln, denn in diesem Fall will man das Ding ja nicht debuggen, sondern nutzen, und da soll man dann nicht in den Quellcode schauen müssen. Aber sobald es ans Debuggen geht, MÜSSEN da Kommentare rein, oder du bekommst den Code wie einen nassen Lappen um die Ohren geschlagen.

    Ich las und lese auch immer noch Code von fremden Leuten und bin jedes Mal bass erstaunt, dass die Programmierer so gar keine Scharm besitzen. Ein Beispiel: weil VD-PAU auf meiner Gentoo-Box nicht funzte, habe ich mir den Source des Treibers heruntergeladen und dann mal analysiert. Warum funktionierte es nicht? Weil Haswell zu diesen Zeitpunkt noch nicht unterstützt wurde (war ne veralterte Version). War IRGENDWO ein Marker/Kommentar "Hey, Co-Programmierer, hier habe ich alle Modell-IDs definiert, auf die ich probe, welchen Chip du hast!"?

    Nein, natürlich nicht. Es wurden nur Funktionen aufgerufen und der Rückgabewert in eine Variable geschrieben, und dieser Wert wurde auf -1 geprüft. Kein Kontext, kein Kommentar, kein gar nichts. Wie sollen Leute, die den Code lesen, ohne Kontext diese Funktionalität raffen?

    Die beiden Gipfel der Inkompetenz bei der Dokumentation waren für mich aber immer noch diese "VIDEOADAPTOR SECTION" in der xorg.conf-Manpage (Nobody wants to say how this works. Maybe nobody knows ...), und dann dieser Eintrag in der ffmpeg-Manpage, der mir doch (als User!!!) riet, den Code zu lesen, um alle gültigen Optionen für dieses Argument nachzuschauen.

  20. Re: Was ein Schwachfug

    Autor: Hello_World 30.07.14 - 00:43

    Linuxschaden schrieb:
    --------------------------------------------------------------------------------
    > In der Theorie hast du recht. Gibt es aber nicht.
    Doch, gibt es. Kannst Du jetzt gern abstreiten, ist trotzdem so.

    > Ja, genau. Man macht eine aufwendige Review, um mal zu schauen, was der
    > Programmierer da eigentlich gemacht hat, anstatt Kommentare einzufügen, die
    > genau erklären, was der Programmierer da gemacht hat.
    Erfahrungsgemäß ist es so, dass derjenige, der den Code schreibt, so tief in der Materie steckt, dass er prinzipiell nicht geeignet ist, zu erkennen, welche Fragen sich dem Leser des Codes stellen. Um Code Reviews kommt man also *nie* herum, wenn man wirklich Wert auf lesbaren Code legt.

    > Eine Frage: ist in deinen Arbeitsvertrag definiert, dass ihr eine bestimmte
    > Menge an Halluzinogene zugewiesen bekommt? So ähnlich wie die Balmer's
    > Peak?
    *LOL*
    Billige und unbegründete persönliche Angriffe werden deine Diskussionspartner sicher überzeugen.

    > Jaah, weil ich so unbedingt Haskell im Kernel hätte. Wobei, wenn du dir den
    > Post mal vollständig durchgelesen hättest und nicht nur wie derdiedas einen
    > Stichpunkt, dann wäre dir aufgefallen, dass ich nicht schrieb "Öh,
    > Scheißhaskell", sondern nur, dass mich der Schock traf, daneben ein Smiley.
    > Hey, vieleicht brauchen die das für die Verwaltung oder Codebereinigung
    > oder what-ever, und ich habe nur nicht daran gedacht, und dann den Punkt
    > explizit offengelassen? Aber nein, soweit denken wir ja nicht -> Killfile.
    >
    > > herumreiten auf völlig Unbedeutendem (was könnte
    > > unbedeutender sein als der K&R-Codingstil?),
    >
    > Und auch hier habe ich nur geschrieben, dass ich nur nicht so sehr auf K&R
    > stehe. Hey, WAS hat das mit der Codequalität zu tun? Mein Posting bezüglich
    > der Qualität bezog sich REIN auf die Dokumentation/Kommentation; wenn ich
    > ein Headerfile öffne und nicht da drin steht, wofür die Typen sind - nur,
    > um eventuell meine Zweifel auszuräumen - dann ist das Schrott. Punkt.
    > Heilige Scheiße, es gibt Code-Beautifier, die den Code in meinen
    > präferierten Stil umwandeln, und jeder ist da individuell drauf.
    Wenn weder Haskell noch der Codestil irgendwas mit dem Thema zu tun haben, warum erwähnst Du es dann überhaupt? Offenbar beschränkt sich deine Logorrhoe nicht auf deinen Code…

    > Weil mir diese formale Verifikation der Fehlerfreiheit am Hintern
    > vorbeigeht, um es mal salopp zu formulieren. Weil ich schon Pferde habe
    > kotzen sehen und nichts, was mir jemand als "sicher" verkaufen will, auch
    > schon als "sicher" erachte. Vielleicht ist der Kernel sicher(!), ich weiß
    > es nicht. Aber wenn ich etwas weiß, ist dass es keine absolut korrekten
    > Theorien und absolute Sicherheit gibt (was nicht heißt, dass man nicht
    > trotzdem darauf hinarbeiten sollte). Und wenn mir jemand was von
    > "garantierter und erwiesender und mathematischer und militärischer
    > Sicherheit" verkaufen will, klingelt nun mal mein Snakeoil-Alarm.
    Ah ja. Vermutlich klingelt dein Snakeoil-Alarm dann auch bei anderen mathematisch bewiesenen Sätzen. Der Zwischenwertsatz? Wer weiß, ob der wirklich stimmt, ist schließlich nur mathematisch bewiesen!

    > Und
    > anstatt wie ein dummer Junge dem zu vertrauen, schaue ich dann doch lieber
    > mal in den Code und will mir das Durchlesen
    Vielleicht solltest Du lieber mal an die relevanten Stellen schauen: die Spezifikation und die Beweise in Form von Isabelle/HOL-Code.
    https://github.com/seL4/l4v

    Der Rest Deines Kommentars ist nur Blabla und keine Antwort wert. Und schlussfolgere aus dieser Bemerkung jetzt bitte nicht, dass das nicht auch bei dem ersten Teil des Postings so ist.

  1. Thema
  1. 1
  2. 2

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Softwareentwickler:in Kfz-Versicherung
    HUK-COBURG Versicherungsgruppe, Coburg
  2. Head of IT Project Services (m/f/d) EMEA
    Fresenius Medical Care, Bad Homburg vor der Höhe
  3. Mitarbeiter:in im IT-Support
    BLS AG, Köniz (Schweiz)
  4. SAP FI/CO Inhouse Consultant (m/w/d) im Bereich International Systems and Solution Group (ISG)
    GLOBUS SB-Warenhaus Holding GmbH & Co. KG, St. Wendel

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 6,99€
  2. 8,99€
  3. 29,99€
  4. Über 3400 Angebote mit bis zu 90 Prozent Rabatt


Haben wir etwas übersehen?

E-Mail an news@golem.de