Prozedurale Programmierung und Oberflächen?

Hallo,

wenn man von Oberflächenprogrammierung (Windows MFC, etc.) spricht, meint man in der Regel objektorientierte Programmierung. Fenster, Buttons, Listboxes etc. sind Objekte mit Eigenschaften und Methoden (z.B. Ereignisbehandlung). Nun würde mich interessieren, ob es auch Möglichkeiten gibt, Oberflächen durch prozedurale Programmierung zu erstellen. Ist die Windows API nicht so ein Modell?

Vielleicht kennt jemand LabWindows/CVI von National Instruments, eine Entwicklungsumgebung die speziell für Messzwecke ausgerichtet ist. Die eigentliche Programmierung erfolgt in C, doch lassen sich auch Dialoge Editor erstellen. Wie würde man dies einordnen?

Welche Art der Programmierung empfiehlt sich wann bzgl. Oberflächen?

Gruß

seventh_son

hallo

also oberflächenprogrammierung hat eigentlich überhaupt nichts mit objektorientierung zu tun. das gtk (gimp toolkit) unter linux ist z.b. für C optimiert - also nix mit objekten und so. natürlich kann man so ein control (oder widget) auch als objekt ansehen - bedeutet aber nicht unbedingt, dass man dafür objektorientierte sprachen benötigt. beispiele: die unter linux verbreitete skriptsprache tcl ist definitiv prozedural. mit der grafischen erweiterung tcl/tk kann man oberflächenprogramme schreiben. tk gibt es auch für perl (perl/tk), damit kann man grafische programme auch unter perl erstellen.

grafische komponenten, eventbehandlung und so sind ja kein vorrecht von objektorientierten sprachen und gab es schon vorher. viele windows-programme sind reines C. auch unter linux/x-window sind vermutlich die meisten programme noch in C geschrieben.

objektorientierung ist ja auch nicht unbedigt besser als prozedural. es ist einfach ein anderes programmierkonzept, dass sich für manche probleme besser eignet - aber bei gott nicht für alle probleme. im gegenteil: viele probleme schreien quasi nach prozeduraler programmierung. die mit objektorientierten sprachen lösen zu wollen, führt dazu, dass man prozeduralen code schreibt. ich kenne durchaus leute, die schon monatelang mit java programmieren und die alle methoden als static deklarieren. deren code ist klassischer prozeduraler code ohne jedes bisschen objektorientierung (nur weil ich mit klassen arbeite, bin ich noch lange nicht objektorientiert!).

lg
erwin