Login
Newsletter
0
Von LH am Mi, 7. Februar 2001 um 18:56

Nun, das kommt drauf an. Aus Programmierer sich mag QT besser sein, doch ich wie viele andere finde ich GTK angenehmer bei der Bedienung (obwohl ich eigentlich garnicht weis warum ;) ), und wenn du etwas schreibst um es selbst zu nutzen wirst du wohl auch das nehmen was dir in der Bedienung am meisten zusagt.
0
Von Steffen am Mi, 7. Februar 2001 um 18:43
Danke für die tolle Erklärung. Ich denke ich habe es soweit verstanden, zumindest zum Teil. Aber mal ehrlich, ist nicht "richtige" Objektorientierung ala C++ viel leichter und schöner zu benutzen??? Ich kann jetzt alle verstehen, die über GTK+ lästern. Sorry, aber da finde ich QT um einiges besser. In QT habe ich mich sehr schnell eingewöhnt, warum dann noch GTK+ lernen???
0
Von Anonymous am Mi, 7. Februar 2001 um 17:38
Erstmal: Um "objektorientiert" zu programmieren bedarf es nicht einer "objektorienterten" Sprache wie C++ oder Smalltalk, da es ein Programmierpardigma ist und es erstmal nichts mit technischen Dingen zu tun. Objektorientierte Programmierung beinhaltet z.B. Datenkapelung, Generalisierung/Spezialisierung usw.

C++ und Smalltalk bieten Sprachkonstrukte die die Umsetzung dieser Paradigmen _sehr vereinfachen_.

Zu den Fragen weiter oben:
In C wird Vererbung durch einen einfachen Trick erreicht: Verschachtelt man structs ineinnander, starten diese beide an der selben Adresse. Bsp: Klasse ClassA, Klasse ClassB soll von ClassA abgeleitet werden:

struct ClassB {
ClassA parentclass;

int i;
};

i ist dann zusätzliches öffentliches Attribut und ClassB enthält auch alle Attribute und Methoden von ClassA. Man kann einen Pointer auf diesen struct nach ClassA und nach ClassB casten.

Für private Attribute und Methoden wird ein BPrivate struct in der *.h Datei deklariert und in der *.c Datei definiert. Die darin enthaltenen Attribute sind daher für andere Klassen die B verwenden nicht sichtbar.

Der größte Nachteil von C ist, dass es von sich auch nicht Typsicher ist. Daher gibt es keine implizite Polymorphie und alles mus explizit mit Makros gecastet werden.

0
Von Frank Arnold am Mi, 7. Februar 2001 um 13:37
Nicht jedes Auto mit einem schnellen Motor, ist gleichzeitig auch ein Ferrari...
C ist eine rein prozedurorientierte Sprache. Es fehlen fast alle Leistungsmerkmale die ein OO-Sprache ausmachen. Sicherlich kann man mit C-Strukturen Daten zusammenfassen, allerdings macht das noch kein Objekt aus objektorientierter (programmier)Sichtweise aus.

Erst "ObjectiveC" kann man als objektorientiert bezeichnen und "C++" natürlich sowieso...
Objektorientiert meint unter GTK+ eher das zusammenfassen von Daten in Strukturen. Mit einigen Abstrichen und beiden Augen zudrücken könnte man das als Kapselung bezeichnen. Wenn mit generischen Zeigern gearbeitet wird (und das macht man ja bei GTK+ )auch als Abstraktion.
GTK+ kann man eher als gut strukturiertes, prozedurorientiertes Toolkit bezeichnen. Objektorientiert passt aber nicht zu GTK+ - oder um bei der Einleitung zu bleiben: "Nicht jedes rote Auto ist auch ein Ferrari"

0
Von Steffen am Mi, 7. Februar 2001 um 12:01
Schön, daß ich mit meiner Unwissenheit nicht alleine bin ;-)
Jetzt muß ich aber noch einmal fragen. Was bedeutet "casten"? Wie muß man sich das vorstellen? Ich habe leider bisher nur QT programmiert und noch nie in GTK+. Vielleicht muß ich das mal nachholen.....
0
Von Markus am Mi, 7. Februar 2001 um 11:57
Ein einfaches Beispiel für Datenkapselung in C wäre ein "struct" bestehend aus Variablen (den Daten) und Zeigern auf Funktionen.
Schon hat man ein einfaches Objekt erzeugt, nur die nativen Fähigkeiten des Schutzes und der Vererbung wird man wohl nie finde ...
Aber soooo schlimm sieht das auch nicht aus finde ich.
0
Von LH am Mi, 7. Februar 2001 um 11:51
Und weil C langsam aus der Mode kommt freuen wir uns alle auf Kylix :)
(ist ein scherz ok)

GTK und C++ wäre eine Schöne Kombi, auch wenn mit GTK+Kylix besser gefalle würde. Mal sehen wie lange man auf die ersten Umsetzungen warten muss (QT ist nicht soo mein traum)

0
Von Anonymous am Mi, 7. Februar 2001 um 11:40
Gtk+ ist hat trotz C eine objektorientierte
Hierarchie. Die Widgets sind voneinander
abgeleitet. natürlich hat C OOP nicht eingebaut. darum muß man die Widgets auch immer casten anstatt Polymorphismus.
private, public und protected wie in C++ oder Ruby gibts da nicht. das kann C nicht.
objektorientiert programmieren kann man theoretisch mit jeder sprache. bei C sieht es halt nicht so toll aus und es ist auch nicht so ausgereift und mächtig wie bei C++
0
Von B-nonymous am Mi, 7. Februar 2001 um 11:40
Das klingt mir hier alles etwas nach "Selbsthilfegruppe". Eine Gruppe mit dem selben Problem trifft sich hier und hofft, daß durch einen Austausch des Nichtwissens plötzlich Wissen entsteht.

Aber ich schließe mich Steffens Frage an.

0
Von Lutz am Mi, 7. Februar 2001 um 11:35
Ich weiß nur, daß es vor dem C++-Compiler den C++-Präprozessor gab, der alle C++-Befehle in C-Befehle umwandelte. Später entstand daraus der erste C++-Compiler, der auch noch ein paar Erweiterungen enthielt.

Ansonsten teile auch ich Deine Frage und hätte ebenfalls gerne eine Antwort dadrauf gewußt.

0
Von Anonymous am Mi, 7. Februar 2001 um 11:18
Würd' mich auch interessieren!
Danke.
0
Von Steffen am Mi, 7. Februar 2001 um 11:10
Kann mir mal jemand erklären, was "Gtk+ ist auch objektorientiert und trotzdem
in C geschrieben" bedeutet? Wie schafft man dann die Kapselung von Variablen als "private, protected und public" hin? Bzw. Vererbungen etc. eben alles was objektorientierte Programmierung ausmacht?
Wie verhindert man zum Beispiel, daß das Programm doch nicht ungewollt auf "private" deklarierte Variable von außerhalb der Klasse zugreift?
Wo liegt dann der Unterschied zu C++?
0
Von Anonymous am Mi, 7. Februar 2001 um 14:53
ADA ist für einige eine vernünftige Programmiersprache und für andere nur die längste Praline der Welt.

ADA95 hat OO Erweiterungen erhalten und ist etwas besser nutzbar.

Ansonsten ist ADA eine Sprach Spezifikation des US Verteidigungsministerium. Hat sich allerdings wesentlich freier als entwickelt als JAVA wo ja SUN der Übervater ist.

Bei den Lizenzen sehe ich keine Probleme GVD ist ja auch Free Software.

0
Von Hermann am Mi, 7. Februar 2001 um 11:07
Da steht, daß GVD in GtkAda geschrieben wurde. Beides (GVD und GtkAda) stammt von denen und ist unter der GPL.
Kann mir einer mehr zu Ada sagen?
Ich dachte Ada gehört einer Firma. Wenn man solche Bibliotheken mit einem Programm linkt, dann darf das Resultat doch nicht unter der GPL stehe. Oder?
0
Von Plitsch am Mi, 7. Februar 2001 um 10:58
Spitze!
Und wenn man nun noch den GNU Visual Debugger (GVD) hinzunimmt, hat man ein perfektes Entwicklungssystem auf Basic von GTK+/Linux. :-)
0
Von Markus Jais am Mi, 7. Februar 2001 um 09:33
Objektorientiert kann alles heißen.
Man sollte dazu schreiben, das Inti eine
C++ bibliothek ist.
Gtk+ ist auch objektorientiert und trotzdem
in C geschrieben. Drum sieht es manchmal etwas grausig ist.
0
Von Anonymous am Sa, 10. Februar 2001 um 13:13
Gefunden!!!

Das Cookfire-ISO gibt's auf ftp.sunet.se...

...und das sogar per rsync ;-)

0
Von stefan am Mi, 7. Februar 2001 um 19:36
Hy
hat sich schon jemand die Software angeschaut???
Wäre nett wenn mir jemand seine erfahrungen mitteilen könnte

stefan

0
Von lodger am Mi, 7. Februar 2001 um 19:24
Quark, ich nutze oft sogar nur einen C64 als Terminal und erfreue mich an der guten Lesbarkeit der Buchstaben auf meinem Fernseher.

*prust*

lodger

0
Von LH am Mi, 7. Februar 2001 um 19:07

"echte" Männer haben kein Force Feadback, Frauen haben das !;)

Mein Trackball ist auch Optisch, und das schon lange bevor M$ je so eine Maus rausgebracht hat!


 
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten