|
welche nur wofür und warum?
|
|
01 Nov 2007, 20:45
|
tangel
Punkte: 1038
seit: 18.01.2005
|
Zitat(mmarx @ 01 Nov 2007, 17:57) ... Patterns an sich sind einfach mal deshalb scheisse, weil wiederkehrende Muster in Quelltexten _voellig unterschiedlicher Programmen_ bedeuten, dass die Sprache (oder die Programmierer) an dieser Stelle defizitaer ist, ansonsten gaebe es ja irgendein Feature, mit dem man diese Muster beseitigen kann.
Nehmen wir z.B. mal das Proxy Pattern - soll dafür jetzt ein Konstrukt in die Sprache eingeführt werden? Zitat Sun straeubt sich zum Beispiel, mal const in Java zu integrieren, weil es da diverse Patterns gibt, mit denen man das nachbauen kann (ist ja kein Ding, wenn man da statt einem Schluesselwort pro Methode ein komplettes Interface fuer braucht, man hat ja eine gute IDE und die Zielgruppe wird sich schon nicht beschweren). Konstanten in einem Interface unterzubringen ist kein Pattern im eigentlichen Sinne. Dafür ein neues Schlüsselwort in die Sprache zu integrieren wäre vollkommen redundant und Redundanz in einer Sprache führt zu unsauberen, schlecht lesbaren Code. Wenn du dein Programm nicht in Klassen unterteilen willst und einen großen Klotz in Java haben willst - bitte schön. Machst du dir eine einzige statische Klasse Main und kippst dort deinen Code rein - sinn macht das zwar keinen, aber du hast ja die Wahl
--------------------
|
|
|
|
|
02 Nov 2007, 20:01
|
Exmatrikulator
Punkte: 2083
seit: 17.08.2006
|
Zitat(mmarx @ 01 Nov 2007, 17:57) Class-obsessed geht weiter als nur reine Objektorientierung; insbesondere zwingt einem Java auf, wie man sein Programm zu organisieren hat (naemlich in Klassen, und dabei jede Klassen in eine eigene Datei et cetera). Patterns an sich sind einfach mal deshalb scheisse, weil wiederkehrende Muster in Quelltexten _voellig unterschiedlicher Programmen_ bedeuten, dass die Sprache (oder die Programmierer) an dieser Stelle defizitaer ist, ansonsten gaebe es ja irgendein Feature, mit dem man diese Muster beseitigen kann. Übrigens gibt es noch andere Sprachen, die dir Objektorientierung vorschreiben. Mecker doch mal über Smalltalk.. Den zweiten Absatz versteh ich echt nicht. Warum ist die Sprache dann defizitär? Und was ist an den Mustern scheiße? Und wie stth schon sagte - die kannst gerne alles in eine riesengroße Klasse hauen und zig innere Klassen bauen. Ob das die Leserlichkeit vom Code erhöht, ist allerdings fraglich..
--------------------
|
|
|
|
|
02 Nov 2007, 21:19
|
tangel
Punkte: 1038
seit: 18.01.2005
|
Zitat(mmarx @ 01 Nov 2007, 20:08) Es geht nicht um Konstanten, sondern um konstante Methoden; insbesondere darum, const correctness zu erzwingen. Und dafuer lohnt sich ein Schluesselwort sehr wohl. Kann es sein, daß du das willst, was in Java eine statische Methode ist, die auf keine member Variablen zugreifen kann? Aus obiger Quelle: Zitat In addition, a method can be declared as const, indicating that calling that method does not change the object. Such const methods can only call other const methods and cannot assign member variables.
|
|
|
|
|
02 Nov 2007, 21:21
|
No-Know-How
Punkte: 631
seit: 27.04.2007
|
na, das c nicht so schnell aussterben wird hat sich ja jetzt geklaert zum lernen find ichs uebrigens tatsaechlich nicht schlecht... sollen die leute doch lieber erst mal alles selbst machen muessen eh sie vereinfachungen vorgeworfen bekommen. Zitat(Killerspieler @ 01 Nov 2007, 11:36) Wie willst du denn bitte ein Betriebssystem in Java oder C# schreiben? Bei C++ geh ich noch mit, weil der intern auch nur C-Code erzeugt. Für manche Dinge gibt es eben Sprachen die einfach dafür passen, und das ist C für Betriebssysteme. Die werden nicht so einfach aussterben. Auch denk ich nicht, dass sich irgendeine andere Sprache durchsetzen wird um Software für Linux zu schreiben, eben weil C schon soweit etabliert ist. in c++ kannst du auch nicht direkt nen betriebssystem schreiben... schon allein die runtime und die teilweise undefiniertheiten von wegen initialisierung etc. sind da im wege. was aber geht, und was ms eben grad mit singularity und c# macht, ist nen minimalen loader fuer allen benoetigten kram in c & assembler schreiben und damit die benoetigten .net teile in den speicher zu schieben... was low-level-kram und error-handling angeht kommen sie natuerlich trotzdem nicht um ein paar in c/asm/et al geschriebene module drumrum. so... vielleicht sollte man wirklich mal nen eigenen thread fuer das thema aufmachen
--------------------
|
|
|
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder:
|