Overhead bei Objektorientierung

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

Re: Syntaxerweiterung von Pascal

Beitragvon m.fuchs » 19. Jun 2017, 16:51 Re: Syntaxerweiterung von Pascal

Timm Thaler hat geschrieben:Und Klassen und so Kram kann ich auch in prozeduraler Programmierung verwenden, das ist ja nicht auf OOP beschränkt.

Häh? Wenn du Klassen verwendest dann benutzt du OOP.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1685
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.6, FPC 3.0) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon Timm Thaler » 19. Jun 2017, 20:20 Re: Syntaxerweiterung von Pascal

m.fuchs hat geschrieben:Häh? Wenn du Klassen verwendest dann benutzt du OOP.


Naja, das würde ich jetzt nicht überbewerten. Das ist nicht das, was OOP ausmacht.

Aktuell habe ich ein Projekt, da definiere ich ein der Klasse svg mehrere Prozeduren zur Erstellung von Elementen eines SVG, also Linie, Kreis, Bogen, Polygon... Dennoch werden diese Elemente prozedural aufgerufen und abgearbeitet. Ja, würde auch anders gehen, lohnt aber den Aufwand nicht. Die Klasse hat hier nur den Grund, dass der Aufruf schöner erfolgen kann.

Andererseits ist es kaum möglich, eine GUI in Lazarus nicht per OOP zu erzeugen. Dennoch kann das dahinterliegende Programm größtenteils prozedural ablaufen. Was in Qt deutlich garstiger ist.
Timm Thaler
 
Beiträge: 439
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.6 FPC3.0.0, Raspbian Jessie Laz1.6 FPC3.0.0 | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Mathias » 19. Jun 2017, 21:15 Re: Overhead bei Objektorientierung

Und Klassen und so Kram kann ich auch in prozeduraler Programmierung verwenden, das ist ja nicht auf OOP beschränkt.

Im Prinzip stimmt dies, dein schöner Objectorientierter-Lazarus-Code, wird von Compiler schlussendlich in Assembler übersetzt, und dies läuft dann voll prozedural ab.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3249
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Marsmännchen » 19. Jun 2017, 22:35 Re: Overhead bei Objektorientierung

Mathias hat geschrieben:
Und Klassen und so Kram kann ich auch in prozeduraler Programmierung verwenden, das ist ja nicht auf OOP beschränkt.

Im Prinzip stimmt dies, dein schöner Objectorientierter-Lazarus-Code, wird von Compiler schlussendlich in Assembler übersetzt, und dies läuft dann voll prozedural ab.


Ja genau. OOP ist ja auch nicht dafür gedacht, Compiler glücklich zu machen. Es soll doch eigentlich den Menschen helfen, ihren Code besser in den Griff zu kriegen. Oder habe ich das falsch verstanden???
Ich mag Pascal...
Marsmännchen
 
Beiträge: 291
Registriert: 4. Mai 2014, 20:32
Wohnort: Berlin
OS, Lazarus, FPC: Ubuntu 16.04, FPC 3.0.2, Lazarus 1.6.4 | 
CPU-Target: 64bit
Nach oben

Beitragvon m.fuchs » 19. Jun 2017, 23:06 Re: Overhead bei Objektorientierung

Marsmännchen hat geschrieben:Ja genau. OOP ist ja auch nicht dafür gedacht, Compiler glücklich zu machen. Es soll doch eigentlich den Menschen helfen, ihren Code besser in den Griff zu kriegen. Oder habe ich das falsch verstanden???

Das hast du vollkommen richtig verstanden. Nachdem der Compiler durchgelaufen ist, kann man von OOP nicht mehr viel sehen. Lediglich dass bei den Aufrufen der Methoden ein Zeiger auf die Objektdaten übergeben wird. Und bei virtuellen Methoden kommt noch die VMT dazu. Aber letztendlich ist es eigentlich nur für den Programmierer.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1685
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.6, FPC 3.0) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon Mathias » 20. Jun 2017, 17:32 Re: Overhead bei Objektorientierung

Aber letztendlich ist es eigentlich nur für den Programmierer.

So habe ich es mir auch immer vorgestellt. Mit Klassen ist die Programmierung um einiges einfacher und übersichtlicher geworden.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3249
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •
Vorherige

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 4 Gäste

porpoises-institution
accuracy-worried