- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Vorstellung meines Programmiertutorials auf Youtube

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    Zitat Zitat von ces Beitrag anzeigen
    Ja und für welche Problemstellung ist objektorientierte Programmierung unumgänglich?
    gar nichts ist hier unumgänglich, auch C++ wurde ja als Erweiterung von C alleine mit den C-Bordmitteln möglich, also kann man es z.B. auch selber ohne die ++ Erweiterung alleine mit ANSI C (C99) schaffen. Java hat dann C++ nur von Grund auf neu erfunden (ohne historischen C-Ballast, sogar main() ist hier eine OOP-Methode).

    OOP (C++, Java, Pascal/Delphi, C#,...) macht aber vieles sehr viel einfacher, wenn man eine große Anzahl gleichartig oder ähnlich funktionierender Funktionsstrukturen hat (=> mehrere Instanzen derselben Basis-Objekts), und wenn einige davon sich nur in wenigen Details von anderen unterscheiden (=> Vererbung).
    Beispiele:
    - Fensterobjekte mit gleichartigen Grundsteuerungen sowie optionalen Menüs und Gadgets in GUI-Applikationen
    - Simulationsspiele mit-zig Spielfiguren, die dort alle gleichartige oder ähnliche Grundeigenschaften und Funktionsfähigkeiten haben (Age of Empires, Civilization, Siedler, Fifa, MarioCart, Lemminge, ...)
    - Softwaredriver für mehrere Implementierungen von gleichartigen Hardware-Devices (gleichartige Grundobjekte für verschiedene Displays wie bei Adafruit GFX mit identischer API, mehrere Instanzen derselben Device-Objekte, wenn nicht nur 1, sondern viele davon parallel betrieben werden sollen,...)

    Es geht auch hier sicher ohne OOP, aber mit OOP muss man nicht immer wieder das Rad neu erfinden.

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    Zitat Zitat von HaWe Beitrag anzeigen
    Java hat dann C++ nur von Grund auf neu erfunden (ohne historischen C-Ballast, sogar main() ist hier eine OOP-Methode).
    Naja, ein paar Designentscheidungen, die sich bei C++ als häufige Fehlerquelle erwiesen haben, wurden schon besser gelöst. Keine Mehrfachvererbung, und Pointer mußte man in Java auch noch niemandem erklären. Oder gar Pointerarythmetikfehler beheben. Oder das Überschreiben fremder Speicherbereiche.


    Zitat Zitat von HaWe Beitrag anzeigen
    Es geht auch hier sicher ohne OOP, aber mit OOP muss man nicht immer wieder das Rad neu erfinden.
    Ganz genauso ist es. Ich möchte noch anfügen, daß sich die Realität objektorientiert oft sehr einfach beschreiben läßt. Und manche sehr komplexe Problemstellung läßt sich objektorientiert wunderbar elegant lösen, wenn man sich mal ein paar Entwurfsmuster ansieht. Das Dekoratormuster ist da so mein Lieblingsbeispiel:
    https://www.philipphauer.de/study/se.../decorator.php
    Man kann sowas natürlich auch prozedural lösen, sogar in Assembler...aber warum will man das, wenn es auch anders geht?

  3. #3
    ces
    Gast
    Kurze Frage noch bevor ich mich mich mal versuche.
    Es gibt für dieselbe Problemstellung immer nur eine einzig richtige Beschreibung und Entwurfsmuster?
    Jeder z.B. C++ Programmierer würde zum selben Ergebnis kommen und es dann "einfach" innerhalb der Methoden etwas anders umsetzen?

    - - - Aktualisiert - - -

    Ach ja und ist es Plicht sich um Garbage Collector und Exceptions (sieht man selten) explizit zu kümmern?
    Bin am Buch "Java in 21 Tagen" kläglich gescheitert. Habe genau 0 verstanden, Java gewählt weil kein GC notwendig.

    - - - Aktualisiert - - -

    Mein Hello World das ich mir immer aussuche ist meine Waschmaschiene:

    Anhang 34404

    Konkrete "Basisgerichte"
    Pumpen Abpumpen Heizen Waschen Spülen Schleudern

    Konkrete "Beilagen"
    Temperatur Umdrehungszahl Optionen ExtraSpülen

  4. #4
    Danke für das Feedback. Tatsächlich ist C++ formal nicht einfach nur eine Erweiterung von C, sondern gilt als eigenständige Programmiersprache. Es gibt Konstrukte, die nur in C funktionieren, aber nicht in C++.

    Ich denke auch die Unterschiede von objektbasierter (C) und objektorientierter (C++) Programmierung könnten interessant für einen Beitrag sein.

    Das Gesetz von Demeter ist sicher auch Interessant.

  5. #5
    HaWe
    Gast
    Zitat Zitat von Tesla42 Beitrag anzeigen
    Danke für das Feedback. Tatsächlich ist C++ formal nicht einfach nur eine Erweiterung von C, sondern gilt als eigenständige Programmiersprache. Es gibt Konstrukte, die nur in C funktionieren, aber nicht in C++.

    Ich denke auch die Unterschiede von objektbasierter (C) und objektorientierter (C++) Programmierung könnten interessant für einen Beitrag sein.
    Das Gesetz von Demeter ist sicher auch Interessant.
    die Fälle, in denen C-Konstrukte nicht sofort in C++ funktionieren, kann man an 1 Hand abzählen - meist liegt es daran, dass z.B. C gewisse Ungenauigkeiten zulässt, die bei C++ nicht direkt funktionieren, weil es reservierte Keywords sind oder man Statements präzisieren muss, z.B. :
    1) new is a keyword in C++ so can't be used as a variable name.
    2) C++ doesn't allow automatic pointer conversion.
    3) C++ doesn't allow you to call undeclared functions.
    4) in C++ struct and typedef have the same scope so the same identifier can't be used for each, in C they are separate.
    5) ISO C++ forbids converting a string constant to ‘char*’ )
    Das ist aber derart ausgesucht, dass es IMO vernachlässigbar ist.

    Tatsächlich ist C++ definierbar als {C plus Objekte plus Stream plus Überladung}, und von daher ist C durchaus eine Untermenge von C++.
    C würde ich als prozedural vs. C++ = objektorientiert definieren - C++ lässt aber auch weiterhin rein prozedurales Programmieren zu oder Mischformen (weil es die vormalige C-Syntax samt ihrer Möglichkeiten ebenfalls noch zulässt), anders als andere rein objektorientierte Sprachen wie Java.
    Viele meiner prozeduralen C-Programme (mit wiringPi, openVG und pthread auf dem Raspi) lassen sich sowohl mit GCC (C99 oder C11 usw.) als auch - völlig unverändert - mit g++ (C++11/14) kompilieren und starten, und wenn man dann Objekte hinzunimmt, läuft alles nach wie vor mit C++ weiter (aber dann ntl nicht mehr mit ANSI-C).
    Geändert von HaWe (28.09.2019 um 18:38 Uhr)

  6. #6
    ces
    Gast
    Da mein Programm aber auf normalen PCs/Laptops läuft ist es mir egal ob da jetzt ein paar hunderttausend Taktzyklen mehr bei der Ausführung benötigt werden und ob das Programm jetzt mit 30MB oder 50MB im Speicher rumliegt.
    Das ist die Entwicklung die ich bedauert habe.

  7. #7
    HaWe
    Gast
    Zitat Zitat von ces Beitrag anzeigen
    Das ist die Entwicklung die ich bedauert habe.
    das halte ich angesichts der Vorteile bei Nutzerfreundlichkeit, der Programm-/Ausführungs-Sicherheit, Skalierbarkeit, Flexibilität/Veränderbarkeit und auch aus Wartungsgründen für reichlich überholt und weltfremd.
    Warum nutzt man heute wohl auf PCs (Windows, Linux) und Androids objektorientierte Fenster- und Menütechnik als Userinterfaces statt reine Textterminals mit Programmzeilenparameter-Tohuwahobu?

  8. #8
    ces
    Gast
    reichlich überholt und weltfremd.
    Scheint mir auch so.

    Wie mir mein Chef mal gesagt hat wird z.B. bei EIB das Programmieren nach Mausklicks und die Visualisierung dazu nach Anzahl verwendeter Objekte bezahlt.
    Zudem musste ich auch alles ausdrucken, im Schnitt 800 Seiten die von der Software automatisch für den Auftraggeber nachvollziehbar erstellt wurden. Bei Erstellung der Visualisierung wurde ich angehalten es "aufzublasen".

    Wenn ich mit einer 50MB Software ankomme klingelt die Kasse.

  9. #9
    HaWe
    Gast
    Zitat Zitat von ces Beitrag anzeigen
    Scheint mir auch so.

    Wie mir mein Chef mal gesagt hat wird z.B. bei EIB das Programmieren nach Mausklicks und die Visualisierung dazu nach Anzahl verwendeter Objekte bezahlt.
    Zudem musste ich auch alles ausdrucken, im Schnitt 800 Seiten die von der Software automatisch für den Auftraggeber nachvollziehbar erstellt wurden. Bei Erstellung der Visualisierung wurde ich angehalten es "aufzublasen".

    Wenn ich mit einer 50MB Software ankomme klingelt die Kasse.
    ich spreche nicht von Selbstzweck, Missbrauch und Beutelschneiderei, sondern von Funktionilät und optionalen, potentiellen Möglichkeiten.

  10. #10
    ces
    Gast
    Das Ausdrucken hat 2 Tage gedauert in der Firma, wurde auch nach Anzahl Seiten bezahlt.

    - - - Aktualisiert - - -

    Die Beutelschneiderei ist ein Service der Hersteller für die Firmen.
    Die ist nicht mehr zu trennen.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Digitales Multi-Effektgerät auf YouTube
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 17.04.2011, 12:48
  2. Youtube Video verlinken
    Von _|Alex|_ im Forum Offtopic und Community Tratsch
    Antworten: 12
    Letzter Beitrag: 10.03.2011, 20:36
  3. Interessante Roboter-Dokumentation auf youtube
    Von wisda.noobie im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 19.11.2009, 14:23
  4. Youtube: Linienfolger Hexas
    Von gimme1302 im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 6
    Letzter Beitrag: 07.05.2009, 17:17
  5. interessanter robot auf youtube
    Von robocat im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 21
    Letzter Beitrag: 28.02.2007, 12:36

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress