OOP oder prozedurale Programmierung?

Welche Programmierparadigma bevorzugt ihr?


  • Umfrageteilnehmer
    64
L

Lightstorm

Foren As
Würde mich mal interessieren inwieweit ihr die Objektorientierte Programmierung einsetzt.
Nennt doch mal die Sprache und was ihr bevorzugt. Prozedurale oder OOP.

Ich lerne momentan noch die OOP mit PHP und C++ und mir fällt es bisher ehrlich gesagt schwer zu glauben das die OOP große Vorteile bringt.
Denke noch zu sehr in prozeduralen Struckturen.
 
Zuletzt bearbeitet:
OOP mit PHP und Java, wobei ich ersteres wieder einstellen werd, des geht mir langsam immer mehr auf'n Senkel. So richtig hab ich mich mit dem PHP-Käse eh nie anfreunden können

OOP vereinfacht sehr vieles, hab ich aber auch weniger beim Java/C++-selbst-lernen, als mehr im "richtigen" Einsatz gemerkt, als ich um Studienbeginn rum wengs nem Nebenjob PHP mehr oder weniger "by doing" gelernt und so erst relativ spät geblickt hab, das OOP mit PHP überhaupt geht^^ :headup:
 
Also ich finde, man braucht beides gleich viel.

Ich persönlich nutze OOP nur, um Sachen, die man oft gleich braucht, (beispielsweise eine Klasse zum verwalten von Datenbankverbindungen) zusammen zu fassen.

Alles andere mache ich klassisch.

(Alle Aussagen beziehen sich auf PHP, nicht auf C++)
 
Es ist relativ egal ob du OOP nun gut oder schlecht, angnehm oder unangenehm, sinnvoll oder sinnlos findest, da du nicht auf einer Insel lebst musst du wohl, zumindest sofern du dich ernsthaft mit Computern auseinandersetzen möchtest, auch mit dieser Denkweise anfreunden, einfach weil es sich um ein relativ verbreitetes Paradigma handelt und somit auch relativ viele Programme existieren die du nur dann verstehen wirst wenn du die objektorientierten Strukturen verstehst.
Ob OOP nun gewaltige Vorteile bringt, ich glaube schon, je umfangreicher die Projekte werden desto hilfreicher ist sie.
 
Naja, das Lustige an der Sache ist ja, dass sich objektorientierte und prozedurale Programmierung in keinster Weise ausschließen. Das wäre jetzt eher bei "prozedural vs funktional" zu finden.

Das Besondere an OOP ist sozusagend die Kapselung von Daten und Methoden sowie deren Sichtbarkeit.
 
Leider kenn ich ausser PHP nicht wirklich was anderes... nur VisualBasic 6... aber zum Glück verwend ich kein M$-zeug um produktiv zu werden.

Wär mal nett, was anderes zu lernen. Hab allerdings zur Zeit keine Zeit was anderes zu lernen... wobei wahrscheinlich schon, wenn ich ne ordentliche Seite finde mit der ich ordentlich lernen kann. Ruby hab ich mir schon angeguckt, nur bin ich da irgendwie verwirrt...
Ist Ruby nun wie Python, wo alles mit Einrückungen funktioniert, oder werden dort auch { und } verwendet?

Und man _könnte_ OOP im Grunde ja wie eine art Teilprogramm in einem gesamten betrachten. Jedes Objekt ist für eine eigene Aufgabe zuständig (zumindest sollte das so sein).
 
Nein, Ruby arbeitet nicht mit Einrückungen.
Geschweifte Klammern können (in einige Fällen), müssen aber nicht verwendet werden.
 
Musste in der Schule (leider) Delphi 5 unter Windows lernen. *augenroll*
In der Uni haben wir im ersten Semester Scheme gelernt (funktional und imerativ) und im 2. Semester Java (objektorientiert). Ich kann beide Sprachen noch, arbeite in der Anwendungsprogrammierung aber ausschließlich mit Java.
 
Ich arbeite am liebsten mit prozeduralen Sprachen ala COBOL, Assembler,
C usw - Zu meiner Zeit gabs auf dem Großrechner noch keine OO und
die Denweise in OOP läuft mir persönlich gegen den Strich.
Bei C oder Z/OS -Assembler, da weiß man wenigstens, was man macht.
 
Ich persönlich nutze OOP nur, um Sachen, die man oft gleich braucht, (beispielsweise eine Klasse zum verwalten von Datenbankverbindungen) zusammen zu fassen.

Alles andere mache ich klassisch.

Du hast OOP nicht verstanden.

Und man _könnte_ OOP im Grunde ja wie eine art Teilprogramm in einem gesamten betrachten. Jedes Objekt ist für eine eigene Aufgabe zuständig (zumindest sollte das so sein).

Du auch nicht.

Ich arbeite am liebsten mit prozeduralen Sprachen ala COBOL, Assembler,
C usw - Zu meiner Zeit gabs auf dem Großrechner noch keine OO und
die Denweise in OOP läuft mir persönlich gegen den Strich.
Bei C oder Z/OS -Assembler, da weiß man wenigstens, was man macht.

Du hast noch nie im Team gearbeitet. Und die Aussage

Bei C oder Z/OS -Assembler, da weiß man wenigstens, was man macht.

ist so weltfremd, das ich sie lieber mal nicht zerpflücke.

Das Besondere an OOP ist sozusagend die Kapselung von Daten und Methoden sowie deren Sichtbarkeit.

Nein, da ist noch wesentlich mehr dahinter, ich werfe nur mal den Begriff "Patterns" in den Raum, bei denen du strikt "prozedural" wenig reissen wirst.

In der Uni haben wir im ersten Semester Scheme gelernt (funktional und imerativ) und im 2. Semester Java (objektorientiert). Ich kann beide Sprachen noch, arbeite in der Anwendungsprogrammierung aber ausschließlich mit Java.

Zwischen was "können" und einem "hello world"-Programm sind ein paar Unterschiede.

Schon zu sehen, was hier wieder mal für eine Horde an Experten unterwegs ist.
Wie wäre es mit Lesen vor dem Labern?

-> http://en.wikipedia.org/wiki/Object-oriented_programming

Aber das ist halt die Linux-Community, jeder hat eine - im Prinzip meist unfundierte - Meinung zur Programmierung, nachdem er es geschafft hat 'ne shell zu öffnen.
 
Du hast OOP nicht verstanden.
Eine sehr konstruktive Kritik.
supersucker schrieb:
Eine noch konstruktivere Kritik.

supersucker schrieb:
Du hast noch nie im Team gearbeitet. Und die Aussage [...] ist so weltfremd, das ich sie lieber mal nicht zerpflücke.
Er wird sich sicher über diesen Hinweis freuen.

supersucker schrieb:
Zwischen was "können" und einem "hello world"-Programm sind ein paar Unterschiede.
Deshalb wählte ich meine Wortwahl auch durchaus korrekt.
Kennen wir uns?

supersucker schrieb:
Schon zu sehen, was hier wieder mal für eine Horde an Experten unterwegs ist.
Wie wäre es mit Lesen vor dem Labern?

Ich bitte alle, die dies hier lesen, sich an dem Freundlichen Ton von "supersucker" ein Beispiel zu nehmen. :D

Back to topic:
Dieses Thema hat die Frage aufgeworfen, wie es mit der Verteilung der Anwendung zweier verschiedener Programmierparadigmen unter den Forumsbenutzern aussieht, und nicht die Frage, welches Paradigma das beste ist. Letztere stellt sich nämlich nicht. Es gibt für alle Paradigmen Anwendungsbebiete und Vorzüge, wie auch Nachteile.

MfG,
Schard
 
dieses topic ist meines erachtens total sinnlos. etwa so wie welche eier esst ihzr morgens zum frühstück.
 
Programmier doch mal einer eine Steuerung mit einer 8bit CPU und 8k Speicher mit OO. Oder eine Officeanwendung ohne OO. Ich nehm ja auch nicht den Löffel für's Schnitzel und die Gabel für die Suppe.
 
Hi,

Aber das ist halt die Linux-Community, jeder hat eine - im Prinzip meist unfundierte - Meinung zur Programmierung, nachdem er es geschafft hat 'ne shell zu öffnen.

hehe, da ist was dran. ;)

Aber ich denke das liegt zum Teil auch einfach an den stark unterschiedlichen Hintergruenden der Leute hier. Wir haben hier so ziemlich alles, vom professionellen Software Engineer oder SysAdmin, ueber nicht-technische Berufe, bis zu Studenten, Schuelern und Vorschuelern. ;)

Schon bei dem Software Engineer und dem Admin wirst du voellig unterschiedliche Auffassungen haben, weil sie nunmal beide andere Erfahrungen und Ansprueche haben. Nicht zu vergessen die Querelen zwischen dem low-level embedded Programmierer und dem Business Architect.

Ganz ehrlich, mit 15, 16 hab ich teilweise auch totalen Quatsch von mir gegeben. Das passiert mir mittlerweile nur noch gelegentlich, oder das hoffe ich zumindest. ;)

Das Problem ist IMHO aber auch die Literatur, denn ich denke die meisten Programmierer sind Autodidakten. Uebers Programmieren ist mittlerweile soviel frei verfuegbar, wovon etwa 90% einfach nur Bullshit ist. Woher soll ein Anfaenger wissen was gute Literatur ist? Woher soll ein Autodidakt wissen, dass ein guter Programmierer viel mehr koennen muss als eine Schleife oder ein GUI zu schreiben? Es steht ja nirgendwo. Ich habe noch in keinem Anfaengerbuch Hinweise darauf gesehen, was man nach dem lesen des Buches sinnvollerweise lesen sollte.

Es gibt gute Buecher, es gibt sogar hervorragende Buecher, du musst nur erstmal wissen welche das sind. Und dann musst du noch wissen, in welcher Reihenfolge du die Buecher lesen musst. Wirklich programmieren habe ich erst an der Uni gelernt, etwa 6 Jahre nachdem ich anfing zu programmieren...

Auch die Ausbildung von Studenten laesst zu wuenschen uebrig, aber da haben schon schlauere Leute als ich drueber geschrieben. Der Artikel "API Design Matters" von Michi Henning waere zu empfehlen, obwohl es nur am Ende kurz ueber die universitaere Ausbildung geht. Aber da gibt es jede Menge Material zu.

Mein Tipp an alle die es ernst meinen, ist nach dem ersten Programmierbuch erstmal jemanden zu fragen der Ahnung hat, was man als naechstes Lesen sollte. Nein, eigentlich am besten schon vor dem ersten Programmierbuch, damit derjenige ein vernuenftiges Anfaengerbuch empfehlen kann. ;)

Buecher die Konzepte nicht richtig vermitteln sind ziemlich wertlos. Und es ist ziemlich eindeutig, dass hier einige Kommentare von Leuten kommen, denen die OO Konzepte nie vermittelt wurden. Tutorials sind fast immer wertlos, es sei denn man beherrscht die Konzepte schon, und will nur schnell die Syntax fuer eine neue Sprache lernen.

Eigentlich muesste ich mal nach einem guten Text suchen a la "Wie werde ich Software Engineer", analog zu dem schoenen Text von ESR "Wie werde ich Hacker". Da muss doch schonmal jemand was sinnvolles zu geschrieben haben. Sonst muesste ich so einen Text vielleicht mal selbst schreiben, dann koennte ich da in Zukunft wenigstens immer drauf verweisen. ;)

Ah, hier ist ein brauchbarer Artikel von Bruce Eckel, aber noch nicht ganz das was ich suche: http://www.artima.com/weblogs/viewpost.jsp?thread=259358

Mhh, der dort verlinkte Artikel von Peter Norvig (wer ihn nicht kennt stellt sich bitte die naechsten 2 Stunden in eine Ecke ;)) ist eigentlich noch schoener:

http://norvig.com/21-days.html schrieb:
Felleisen et al. give a nod to this trend in their book How to Design Programs, when they say "Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.

Aber ich werde mir den Text wohl selbst schreiben muessen, das ist alles noch nicht so ganz was ich suche und entspricht sicherlich nicht immer meiner Meinung.

Mhh, ich bin leicht abgeschweift, also doch nochmal kurz on-topic: Ich programmiere fast immer OO, aber man muss eh beides koennen (und mehr), von daher ist die Frage relativ muessig. Es kommt immer auf den Kontext an, was gerade besser geeignet ist.

Im uebrigen sollten Anfaenger nie mit C++ beginnen, es sei denn ihr habt jemanden an eurer Seite der euch sauberes Design lehren kann... Tut euch und euren moeglicherweise spaeteren Kollegen diesen Gefallen. ;)

mfg,
bytepool
 
Du hast OOP nicht verstanden.
Eine sehr konstruktive Kritik.

Ja, ich bin hier ja auch nicht angestellt als Lehrer - sucht selber.

Das war übrigens früher so, das man das Suchen vor dem Dummschwätzen gemacht hat.

Zitat von supersucker
Du hast noch nie im Team gearbeitet. Und die Aussage [...] ist so weltfremd, das ich sie lieber mal nicht zerpflücke.
Er wird sich sicher über diesen Hinweis freuen.

Nö.

Leute, die solche Aussagen treffen,wollen in 99% der Fälle nix mehr wissen.

Zitat von supersucker
Zwischen was "können" und einem "hello world"-Programm sind ein paar Unterschiede.
Deshalb wählte ich meine Wortwahl auch durchaus korrekt.

An der Uni lernst du NICHT programmieren. (Auch wenn du dafür viele sinnvolle andere Dinge lernst.)


Nope.

Ich bitte alle, die dies hier lesen, sich an dem Freundlichen Ton von "supersucker" ein Beispiel zu nehmen.

Oh, bitte!

Generell ging es mir in meinem Beitrag eigentlich nur darum, alle Linux-"ich bin so ein cooler Coder"-Deppen zu ärgern.

Das wird bei der "von nix ne Ahnung, aber immer die Fresse aufreisen"-Linux-community nicht schwer - wie man ja sieht.

P.S.:

All die Leute, die die wirkliche Arbeit machen - sprich in ernstzunehmenden, sinnvollen OS-Projekten arbeiten - nehm ich natürlich von obigen Aussagen aus.
 
Zuletzt bearbeitet:
@supersucker

Naja, es steht eigentlich nirgendwo geschrieben das man ein professioneller Programmierer sein muss um über das Thema sprechen zu können.
Genau so wenig wie man in irgendwas Meister sein muss nur weil man in der Garage werken möchte.

Also ich hab oft erlebt wie jemand kam und unkluges von sich gab, jedoch hat man ihn schmunzelnd und sachlich korrigiert.
Was du machst ist die Leute vor den Kopf zu stoßen, du kritisiert das andere Möchtegern Coder sind, aber deutest selber mit deiner aggressiven Art an, für wie toll du dich selber hältst.

Statt mit deinem Wissen, andere fertig machen zu wollen, solltest du deine sachliche Aufklärung/Meinung oder Kritik äußern, ansonsten lieber schweigen, zwingt dich ja schließlich niemand dich damit zu beschäftigen.

Sei ein Vorbild und nicht jemand vor dem Anfänger sich blamiert fühlen :D

Und ich stimme @bytepool zu, die teilweise krassen Meinungsverschiedenheiten rühren sicherlich daher das jeder von einem anderen Bereich kommt und auch andere Ansprüche hat.


Was die OOP angeht, ich werde das weiterhin lernen, es gibt aber auch viele Programmierer die nicht beruflich programmieren und die damit nicht wirklich gezwungen sind OOP zu beherrschen.
Und daher hab ich mich gefragt wie das wohl in etwa ausschaut.
 
Nur zur Info
Ich arbeite seit 1982 in der Software-Entwicklung und habe schom viele
Programme und Systemroutinen für die Z/OS entwickelt, die bundesweit
eingesetzt werden. (Übrigens seit 1982 im Team). Versuch mal mit OO eine
dynamische Allokierung von Dateien hinzubekommen - das geht eben nur
mit Assembler und dem SVC 99. Gleiches gilt für diverse Exit-Routinen, um
Programmabbrüche abzufangen - auch da hilft nur Assembler weiter...
Es ist wohl, wie schon vorher angedeutet, eine Frage der Anwendung, ob
OO zum Zuge kommen kann...

Ich bin Weidechef - ich darf das --- Assembler-Programme schreiben.
 
Du hast OOP nicht verstanden.
Naja. Eigentlich sollte hier jetzt ein Roman stehen, um Dich vom Gegenteil zu überzeugen, aber bei der Hälfte hatte ich keine Lust mehr. Denk was Du willst, wenn du meinst dass Du es besser weißt.

Hab ehrlich gesagt auch nichts anderes von Dir erwartet.

Es gibt genug Beispiele von mir, die das Gegenteil beweisen. Musst nur mal suchen, bin ja nicht dein Lehrer.
 

Ähnliche Themen

Programmierung unter Linux

Tipps zum Einstieg

Problem mit Apache2 + MySQL Server

GUI Programmierung: Toolkit vergleich

Zurück
Oben