Eine ernst gemeinte Frage:

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.

Mann kann ALLE Probleme auch ohne Klassen lösen.

Umfrage endete am Freitag 10. April 2009, 13:40

Stimme ich zu
26
87%
Stimme ich nicht zu
4
13%
 
Abstimmungen insgesamt: 30
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

Dienstag 7. April 2009, 21:07

Leonidas hat geschrieben:(Ich meine, wie schwer ist es einem Thread einen sinnvollen Titel zu geben, wenn man schon umbedingt eine unnötige Umfrage haben muss)
Deswegen habe ich diese Frage bei Just Testing reingeschrieben, weil dies denn nach einer Woche gelöscht werden sollte..

Aber ich bin von den bisherigen Antworten positiv überrascht!!!

Vielen Dank dafür
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 8. April 2009, 08:56

Pascal hat geschrieben:Deswegen habe ich diese Frage bei Just Testing reingeschrieben, weil dies denn nach einer Woche gelöscht werden sollte..
Just Testing ist nicht für Diskussionen oder Fragen gedacht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Goswin
User
Beiträge: 361
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen

Mittwoch 8. April 2009, 17:13

FAZIT:
Das "verallgemeinerte-Übersichtlichkeits-Problem" lässt sich ohne Klassen NICHT lösen :-). Es ist ja auch ein sehr komplexes Problem.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 8. April 2009, 17:15

Goswin hat geschrieben:Das "verallgemeinerte-Übersichtlichkeits-Problem" lässt sich ohne Klassen NICHT lösen :-).
Logisch geht das, nur ist es nunmal so dass man in Python für so etwas meist Klassen einsetzt.
Sonst würdest du ja sagen, dass man in Programmiersprachen die keine Klassen haben, keine übersichtlichen Programme schreiben kann. Das stimmt aber so nicht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Mittwoch 8. April 2009, 17:29

@Goswin

Das kannst du so allgemein nicht sagen (und was ist eine allgemeine Übersichtlichkeit? ;) ). Klassen sind ein Werkzeug, genau wie Generatoren / Koroutinen, Closures, Continuations, goto, Rekursion und nicht zuletzt auch Funktionen. Je nach Problem können mehrere Werkzeuge mehr oder weniger geeignet sein, manche hingegen absolut nicht. Man kann auch jedes beliebige iterative gelöste Problem auch rekursiv lösen. Das sagt aber nichts über die Qualität der Lösung aus. Manche Dinge lassen sich iterativ natürlicher lösen, andere Dinge dagegen rekursiv, wo einem die Lösung direkt ins Auge springt. Letztendlich gehört immer Abwägung dazu, denn man kann irgendwo alles als Objekt betrachten, das macht OOP auch gefährlich. Typischer Fall von "If you only have a hammer, everything looks like a nail.". Außerdem kann man Klassen mit Funktionen und Closures nachbilden, sofern die verwendete Sprache Funktionsdefinitionen innerhalb von Funktionen erlaubt.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Mittwoch 8. April 2009, 18:16

Um noch ein bisschen zu Klugscheißen: Natürlich sind Klassen nicht notwendig. Selbst das Konzept von Objekten - welches von Klassen unabhängig ist, auch wenn das häufig in einen Topf geworfen wird - ist entbehrlich. Ebenso sind Funktionen als Abstraktion entbehrlich. Wir wissen, dass eine Turingmaschine (Turing, 1936) alle berechnbaren Probleme lösen kann. Wir wissen, dass z.B. eine Unbeschränke Registermaschine (Shepherson und Sturgis, 1963) mit den beiden Befehlen "Springe, wenn Register X ungleich 0 ist" und "Ziehe 1 von Registerinhalt X ab" auskommt, da man damit eine Turning-Maschine simulieren kann. Ein weiteres Stichwort ist "Lambda-Kalkül" (Church und Kleene, 1936), ein Formalismus, der einzig Funktionen kennt und die mathematische Grundlage für fast alle Programmiersprachen, die wir so kennen (und die auf dem von Neumann-Prinzip basieren), bildet.

Es ist eine Fingerübung, Objekte mittels Funktionen (die über Variablen abgeschlossen sind, so genannte Closures) zu repräsentieren. Klassen sind schließlich nichts anderes (neben der Idee, als Bauplan zu fungieren) als Funktionen, die Objekte erzeugen können.

Stefan
BlackJack

Mittwoch 8. April 2009, 20:03

Nur für den Fall, dass es bisher noch nicht erwähnt wurde: Auch für OOP braucht man kleine Klassen, es reichen auch Objekte. Heisst ja auch nicht Klassenorientierte Programmierung. :-)
Antworten