Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

61

20.04.2009, 13:29

Zitat von »"dv"«


Zitat

- Erfahrene Coder würden niemals sagen, dass das Header/Source-Prinzip veraltet ist sondern mehr Vorteile mit sich führt als Nachteile und vorallem kein steinzeitliches Laster sind.


Dem widerspreche ich total. 99,9999999% aller C++-Header werden quasi wie Interfaces verwendet. Das Header/Source-Prinzip hat historische Wurzeln, und ist heutzutage nicht mehr vernünftig vertretbar. Packages haben sehr viele Vorteile, z.B. intelligentes Dependency-Tracking, private Sektionen (z.B. Ausblenden von Systemheadern - das Pimpl-Idiom existiert u.a. als eine Krücke, um das zu erreichen), vorkompilieren bzw. cachen von Parserschritten (v.a. bei Templates wichtig), ....

Header haben natürlich den Vorteil, dass man sich ums Compilieren u. Linken dessen Codes keine Gedanken machen muss. Ich mag ja auch Header-Only Libraries wie STL und Boost.Bind/MPL/Fusion/Graph/... , aber man kann nicht leugnen, dass Header an sich eine Krücke sind. Sinnvoller wäre es, das gesamte Konzept von Libraries, Headern, Linken usw. kräftig zu überdenken.


Ich finde Header-Files sehr viel übersichtlicher als alles in einer Datei wie bei Java/.Net. Es geht viel schneller um kurz die Schnittstellen und Verwendnung einer Klasse anzusehen, und das vor allem auch unabhängig von irgendwelcher IDE-Funktionalitäten.
Wenn auch noch ein paar Kommentare vorhanden sind wird jede weitere Dokumentation der Klasse in der Regel überflüssig.

Packages empfinde ich als verkappte Namespaces. Dependency-Tracking sollte auch bei C++ nicht schwer zu realisieren sein, muss ja nur die includes zusammensuchen und fertig?

62

20.04.2009, 14:47

Zitat von »"Beneroth"«

Dependency-Tracking sollte auch bei C++ nicht schwer zu realisieren sein, muss ja nur die includes zusammensuchen und fertig?

und die libs. d.h., man muss an zwei stellen suchen: im Quellcode und in den Compileroptionen. also ist rein quellcodebasiertes depndency-tracking in C++ höchstenes dann möglich, wenn der Tracker zu jedem header weiß, welche lib benötigt wird.

dv

Frischling

Beiträge: 30

Wohnort: Südamerikanischer Dschungel

  • Private Nachricht senden

63

20.04.2009, 17:36

Wenn eine Bibliothek header-only ist, ist das ein Pluspunkt für sie. Das alleine zeigt, dass Packages sinnvoll wären. Die Gründe, wieso nicht alles in Headern steht, sind (1) enormer Compileaufwand (2) doppelte Definitionen (zB nicht-inline-Funktionen, statische Member). Templates gehen nur header-only, und das verursacht signifikante Compilezeitprobleme.

Und niemand sagt, dass bei Packages keine Namespaces möglich wären.
~dv();

ugoessner

Frischling

Beiträge: 52

Wohnort: Wedemark OT-Mellendorf

Beruf: Systeminformatiker

  • Private Nachricht senden

64

30.06.2009, 13:54

Zitat von »"unsigned long"«

Also ich würde jederzeit mit C++ ins Bett springen.

Wenn das mal gehen würde... ...würde ich das sofort machen.
Ich würde sogar mit C++ eine Familie gründen wollen.

C++! Ich komme!!!
#define __miniMAL 0x00

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

65

30.06.2009, 15:12

Zitat von »"ugoessner"«

Zitat von »"unsigned long"«

Also ich würde jederzeit mit C++ ins Bett springen.

Wenn das mal gehen würde... ...würde ich das sofort machen.
Ich würde sogar mit C++ eine Familie gründen wollen.

C++! Ich komme!!!

Das kriegt in dem Zusammenhang eine ziemlich interessante Bedeutung :lol:

66

30.06.2009, 15:26

Eine Gabe, wenn man zwischen den Zeilen lesen kann, xardias!
Andererseits: Ein Schelm, wer böses dabei denkt... ;)

Achso, ich hab C++ auch ganz doll lieb! :p
fka tm

Werbeanzeige