Das alte Denken



  • rapso schrieb:

    loks schrieb:

    Um Profi zu werden muß man bereit sein zu Lernen... Lernen heisst aber auch sich neuen Ideen öffnen und sie zumindest zu verstehen. Sicher, ich muß OOP nicht gut finden, mich aber grundsätzlich davor zu verschließen ist falsch.

    aber ein profi sollte auch profi genug sein um bei den meisten revolutionen die aufkommen objektiv zu sehen was sie sind und nicht nur auf die marketing abteilungen zu hoeren und alles zu glauben.
    Ich seh nur zu oft dass viele sich sowas hingeben, weil sie glauben dass sie pleotzlich besseren code schreiben wuerden, weil irgendwas neues ihnen die moeglichkeiten nimmt und sie somit weniger moeglichkeiten haben fehler zu machen.
    Code und Programqualitaet haengt weniger davon ab ob man oop oder nicht benutzt, man sollte ein gutes design haben. danach sucht man sich das werkzeug aus, mit dem man persoenlich das beste resultat erzielt.

    btw. ich halte OOP irgendwie schon fuer oldschool, data driven design FTW 😉

    is Data-driven design nicht eine design methode für oop? ^^



  • Also meine Erfahrung ist, daß die anderen nicht immer erkennen, daß ich doch alles besser weiß. Sie wollen es einfach nicht glauben und sind oft der Meinung, sie wüssten irgendetwas besser als ich. 😃



  • newschooler schrieb:

    So ein bißchen gehst du auch in die Abblockrichtung 😃

    wie meinen?

    PRIEST schrieb:

    is Data-driven design nicht eine design methode für oop? ^^

    nein, ganz sicher nicht. OOP steht fuer klassendesign. DDS ist eben das gegenteil, du sparst dir ein oft overengineertes design von klassenhierarchieen, abhaengigkeiten und pattern wie diese verknuepft sind und interagieren.

    beispiel: kleines RTS

    du hast im oop vielleicht diese hierarchy

    basis-objekt
     - gebaeude
       - bauegebuaede
       - verteidigungsgebaeude
     - fahrzeuge
       - ernter
       - kampffahrzeuge
    

    irgendwann denkt man sich, dass viele der dinge von fahrzeugen gleich sind und versucht objetke mit komposing zu generieren, also

    basis-object
      - gebaeude
      - fahrzeug
    

    dabei erhalten diese

    -bau
      -ernt
      -waffen
    

    als objekte uebergeben.

    nun willst du aber dass der ernter auch schiessen kann, also entweder mit zwei elementen komposen oder ein std::vector?.... naja, kannst auch wieder loeschen, der gamedesigner hat sich doch dagegen entschieden.

    data driven hast du:
    -objekt

    beim instanzieren davon uebergibst du ein xml, daraus zieht es sich alles rein was der gamedesigner wollte (nein, du hast nichts mehr damit zu tun neue objekte anzulegen).
    aus der xml liest sich jedes objekt raus wie schnell es sich bewegen kann, bauhof.speed =0
    tank.speed = ...
    ach, du willst dass ein objekt mitten beim spiel zum gebaeude wird, weil es altererie ist? gerne, artelerie.speed=0;artelerie.firepower=...

    man muss nur die balance finden zwischen datandriven und spezialisierung.



  • rapso schrieb:

    OOP steht fuer klassendesign.

    OOP Steht für Object Orientated Design.

    Das hat primär absolut gar nichts mit Klassen zu tuen. Klassen unterstützen lediglich OOP, sie machen es aber nicht aus...

    rapso schrieb:

    artelerie.speed=0;artelerie.firepower=...

    Sieht für mich aber unheimlich nach OOP aus... Nur weil die Objektdefinition vom Code ins Xml verlagert wird verliert es doch nicht den Objekt status? Artelerie ist doch immer noch ein Objekt, speed ein Attribute usw.



  • loks schrieb:

    rapso schrieb:

    OOP steht fuer klassendesign.

    OOP Steht für Object Orientated Design.

    Das hat primär absolut gar nichts mit Klassen zu tuen. Klassen unterstützen lediglich OOP, sie machen es aber nicht aus...

    objekte an sich kannst du sonst in c mittels structs haben.. mit klassen erst verbindest du daten und funktionalitaet, sowie reduzierung von redundanz mittels vererbung usw. OOP ist weniger ein technisches mittel, sondern eine designphilosophy die mit klassen eine art der realisierung findet. deswegen schliessen sich klassen und DDS auch nicht aus, denn mit klassen kann man auch wunderbar DDS verwirklichen. aber mit den moeglichkeiten die dir c bietet waere das ebenfalls sauber und einfach moeglich.

    rapso schrieb:

    artelerie.speed=0;artelerie.firepower=...

    Sieht für mich aber unheimlich nach OOP aus... Nur weil die Objektdefinition vom Code ins Xml verlagert wird verliert es doch nicht den Objekt status? Artelerie ist doch immer noch ein Objekt, speed ein Attribute usw.

    OOP primitivster art, quasi ne struct. das objektverhalten wird nicht vom typen entschieden, sondern anhand der daten. Im einfachstem fall koenntest du als ein gebaeude selektieren und einen marschbefehl geben, das wuerde sich dann nen pfad raussuchen und tatsaechlich mit speed 0 loslaufen.



  • rapso, hast du evtl ein paar gute Links oder noch mehr Erklärungen zu Data-Driven Design? Der Wiki-Artikel ist mehr als mager, Google spuckt zwar viel aus aber da muss man ganz schön viel aussortieren. Und es hört sich interessant an 🙂



  • ~fricky schrieb:

    ...glauben ist eher was für theisten....

    Na - da hat aber einer das mit den Ober- und Untermengen noch nicht ganz durchschaut. :p 😉 😃
    (und zudem noch Homophone verwechselt)

    Gruß,

    Simon2.



  • loks schrieb:

    rapso schrieb:

    OOP steht fuer klassendesign.

    OOP Steht für Object Orientated Design.

    Das hat primär absolut gar nichts mit Klassen zu tuen. Klassen unterstützen lediglich OOP, sie machen es aber nicht aus...

    Um das mal zu ergänzen: Statt Klassen zu instanziieren kann man auch Prototypen clonen, in einigen Sprachen wird OOP so realisiert (in JavaScript AFAIK), da gibts dann keine Klassen in dem Sinne.

    BTW, OOP heißt natürlich Object Oriented Programming

    Zu Data-Driven-Design: Klingt nach Greenspun's Tenth Rule, mal wieder 😉



  • Simon2 schrieb:

    Homophone

    was ist denn das? latein-griechisch für 'menschliches geräusch'. bestimmt hast du dir das wort gerade selbst ausgedacht.
    🙂



  • ~fricky schrieb:

    was ist denn das? latein-griechisch für 'menschliches geräusch'. bestimmt hast du dir das wort gerade selbst ausgedacht.

    Oder 'gleich klingend' auf griechisch-griechisch 🙄



  • Bashar schrieb:

    Oder 'gleich klingend' auf griechisch-griechisch

    ich hab's vorher noch nie gehört, ehrlich.
    🙂



  • Das glaub ich dir sofort.



  • ~fricky schrieb:

    Bashar schrieb:

    Oder 'gleich klingend' auf griechisch-griechisch

    ich hab's vorher noch nie gehört, ehrlich.
    🙂

    😮 😮
    Also das gehört eigentlich zu meinem aktiven Wortschatz ... und ich bin bestimmt kein Fremdwortfreak ... äh Xenolinguist ;).

    "Bank" und "Bank" sind z.B. Homophone (oder "Heide" oder ...).
    und "glauben(dass)" und "glauben(an)" eben auch.

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Also das gehört eigentlich zu meinem aktiven Wortschatz ... und ich bin bestimmt kein Fremdwortfreak

    das wollt' ich dir auch nicht unterstellen.

    Simon2 schrieb:

    und "glauben(dass)" und "glauben(an)" eben auch.

    hat aber beides nicht viel mit gewissheit zu tun.
    aber was wolltest du mir eigentlich sagen? oder hat dich nur mein schlechtes deutsch gestört?
    🙂



  • ~fricky schrieb:

    ...

    Simon2 schrieb:

    und "glauben(dass)" und "glauben(an)" eben auch.

    hat aber beides nicht viel mit gewissheit zu tun....

    Doch.
    "Glauben an" drückt die "Hingabe"/"Übernahme von"/"Wahrnehmung" (und damit genau diese "Gewissheit") aus. Mit "glauben an" wird der persönliche weltanschauliche "Basissatz" bezeichnet, aufgrund dessen man die Welt interpretiert - und jeder Mensch hat (wenn auch jeweil einen eigenen).
    Hierzulande ist z.B. der "Glaube an die Demokratie" relativ weit verbreitet...(oder an die "Marktwirtschaft" oder "die Wissenschaft" oder ...).

    Dass ich das angesprochen habe, liegt natürlich weniger an Dir als an mir. Vielleicht kennst Du das: Es gibt so ein paar Dinge, die einem immer wieder begegnen und einen zunehmend nerven. Bei Manchen sind es nicht gesetzte Blinker, das Wort "Triologie", der Begriff "Amerika", wo "USA" gemeint ist, das Verwenden (oder Weglassen) der weiblichen Form bei Berufsbezeichungen, .... viele Menschen haben solche "Reizthemen".
    Bei mir ist es eben diese Verwechslung/Vermischung.

    Oder kurz gesagt: Marotte von mir. 😃

    Gruß,

    Simon2.



  • Simon2 schrieb:

    "Glauben an" drückt die "Hingabe"/"Übernahme von"/"Wahrnehmung" (und damit genau diese "Gewissheit") aus.

    es kann sich aber, trotz dieser imaginären gewissheit, als falsch oder zumindest in vielen situationen als unpassend herausstellen. zum beispiel: der glaube an gott ist toll, weil man damit weihnachten feiern kann, geschenke bekommt usw. aber der glaube an gott ist doof, wenn man jeden sonntag in die kirche rennen muss, obwohl man lieber in der kneipe ein paar bierchen schlürfen würde. und ähnlich ist es mit dem programmieren (um mal wieder zum thema zu kommen): wer z.b. 'glaubt', dass oop oder mehrfach verschachtelte makros das allheilmittel sind, der wird's auch da einzusetzen versuchen, wo es eher hinderlich ist.
    🙂



  • ~fricky schrieb:

    ...es kann sich aber, trotz dieser imaginären gewissheit, ...

    "Gewissheit" ist eh' nur ein mentaler Zustand - er kann nichts anderes als "imaginär" (= der eigenen Vorstellung entsprungen) sein.

    Dass die eigenen Grundüberzeugungen manchmal als "hilfreicher" und manchmal als "weniger hilfreich" empfunden werden, sagt nichts über ihren "Wahrheitsgehalt" aus. Und etwas Besonderes (oder gar auf "Gottglauben" reduziertes) ist es auch nicht:
    Der Glaube an die Demokratie kann Dir z.B. ganz übel ins Handwerk pfuschen, wenn Du ein fähiger Präsident mit einem grottigen Parlament bist ... mit ganz objektiv meßbaren Schäden für Andere. .. oder wenn Du in Burma lebst.
    Und der Glaube an die Marktwirschaft macht einige Leute unglaublich reich ... und andere (obwohl sie evtl. selbst daran glauben) unglaublich arm.

    Gruß,

    Simon2.



  • Und mal wieder artet ein gutes Thema aus...

    Als ich noch in einer groesseren Bank gearbeitet habe, musste ich mit einen aelteren Mann zuzammenarbeiten. Der hatte seinen MCSE noch auf NT gemacht, Assembler ueberhaupt kein Problem, Linux und c hat er geliebt. Gemeinsam haben wir die Firewall administriert und ich konnte extrem viel lernen. Vor allen im Basiswissen sind die aelteren kaum zu schlagen. Die haben eben TCP/IP usw von der Pike auf gelernt. Genausso c und dieverse andere Sprachen.
    Eine sehr guter Erfahrung...

    Ivo



  • 10 Jahre sind im IT Bereich eine lange Zeitspanne. Vor 10 Jahren gab es aber bereits OOP, C++ und MSVC++6. C und Makros sind vermutlich in vielen Bereichen noch berechtigt. Wenn der eine OOP und der andere Freestyle macht, kann natürlich kein großartiges Produkt heraus kommen. Letztendlich zählt für den Kunden das Ergebnis und für den Lieferanten der Aufwand. An dieser Stelle muss man ansetzen und vor allem überzeugen. Also sollten die "Jungen" den "Alten" beweisen, wie man schneller bessere Ergebnisse erzielt.



  • So viel sind 10 Jahre im Software-Bereich aber auch wieder nicht. Hier wird vieles, was schon lange da ist, immer wieder neu erfunden.

    Die heute übliche Programmiermethodik edit-compile-link-run stammt aus den 50er Jahren, die ersten GUIs mit Maus und Fenstertechnik aus den späten 60ern/frühen 70ern. Objektorientierte Programmierung gibt es seit über 35 Jahren, mindestens ebensolange auch virtuelle Maschinen ähnlich der von java.

    Wenn ich heutige linux- oder windows-Versionen mit denen vor 10 Jahren vergleiche, kann ich wenig revolutionäre Neuerungen erkennen. Die Fensterdeko sieht anders aus. Die meisten Sorten von Anwendungsprogrammen, die es heute gibt, gab es auch schon vor 10 Jahren. Die Sprachenlandschaft hat sich etwas in Richtung java, Basic und C# verschoben.


Anmelden zum Antworten