PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Objektorientierte Programierung



Lord Tombery
17.02.2004, 03:51
Salut

Ich bin in Sachen Programmierung ein Anfänger.:)
Ich habe diesen Herbst begonnen auf einer sehr einfachen, aber nicht objektorientierten, Programmiersprache (DarkBasic) erste kleine Spiele umzusetzen. Ich hatte grossen Spass daran, aber möchte jetzt etwas "grösseres" in Angriff zu nehmen.

Und nun meine Frage: Lohnt es sich auf eine Schwierigere Objektorientiert Sprache wie z.b C++ zu lernen?

Bin auf euch Profis angewiesen...

Ineluki
17.02.2004, 05:01
also meiner meinung nach lohnt sich ein umstieg auf OOP immer .. ich kann mir meine programme ohne oop kaum noch vorstellen ^^

was C++ angeht, ist das eine Sprache nur fuer fortgeschrittene ... ich wuerde an deiner stelle vielleicht noch einen "umweg" ueber delphi machen ... das ist prinzipiell (fast) genau so maechtig, jedoch wesentlich einfacher zu handhaben ...

wenn man dann die oop und den umgang mit windows richtig im groff hat, kann man immer noch auf c++ umsteigen, wenn man die vorzuege ueberhaupt zu nutzen weiss und nicht mehr in den nachteilen untergeht. der umstieg ist dann nicht mehr all zu schwer ...

Gruss Ineluki

Durandal
18.02.2004, 00:16
Aus welchem Grund ist Delphi eigentlich leichter als C++?
Ich persönlich habe mich nicht lange mit Delphi beschäftigt und kann es daher nicht beurteilen (das was ich gesehen habe war im Großen und Ganzen doch genauso komplex wie bei C)

Ausser den Syntax und dem Window editor (was im übrigen geschmacks und lern sache ist) habe ich darüber noch nichts gelesen.

[Edit]
Ich spreche jetzt nur von der Sprache an sich.
Natürlich ist es mit Delphi unendlich einfacher sein erstes window zu starten usw, allerdings frage ich mich wo hierbei später die Vorteile liegen.

Ineluki
18.02.2004, 02:51
ganz einfach ... delphi ist nicht ganz so pointer-orientiert wie c++

In c kannst du doch nicht mal eine Zeichenkette bearbeiten, ohne dich mit pointern auseinandersetzen zu muessen ... oder einen veraenderbaren parameter an eine funktion zu uebergeben (gut .. mit referenzen hat sich das wieder geaendert, aber erklaere mal jemandem, was eine referenz ist ^^)

zudem hat delphi nicht so viele verschiedene symbol-operatoren, wie c++ ... was fuer den fortgeschrittenen programmierer von nachteil ist, ist fuer den anfaenger von vorteil ...

zudem ist im allgemeinen ein pascalquelltext fuer den lernenden leichter lesbar, da pascal ehr schluesselwort- statt symbol-orientiert ist

das folgende ist zwar nicht sprachspezifisch, aber delphi-typisch

und bei der windowsprogrammierung wird einem 90% der arbeit abgenommen, was das zusammenspiel von fenstern etc angeht ...

die Palette an vorgefertigten Komponenten ist enorm ... man braucht fuer fast nichts das rad neu zu erfinden ... das hast du z.B. bei einem Blodshed Dev-C++ nicht ...

die Hilfe ist ausgezeichnet und kontextsensitiv, zudem werden einem schon beim schreiben moegliche methoden, eigenschaften oder parameter angezeigt ... auch das erleichtert das programmeiren enorm

Kurz gesagt ... die Delphi IDE ist (fast) perfekt dazu auch noch intuitiv, einfach und uebersichtlich ...

Gruss Ineluki

Durandal
18.02.2004, 06:35
Hmm die guten Pointer ...
Also meinen Erfahrungen nach kommen viele Leute mit Referenzen wesentlich schneller und besser klar, als mit Pointern. (wird im übrigen auch oft als Grund genannt, weshalb C# leichter als C/++ ist)
Allerdings ist beides eine potentielle Fehlerquelle:rolleyes:

zudem ist im allgemeinen ein pascalquelltext fuer den lernenden leichter lesbar, da pascal ehr schluesselwort- statt symbol-orientiert ist
Das kann ich nicht beurteilen.
Meiner Meinung nach ist der C/++ syntax auf den ersten Blick sicher abschreckend, aber wenn man sich erstmal damit befasst hat einfach nur noch logisch und übersichtlich. (hierbei wurde nebenbei wieder bei C# geschlampt - so eine Mischung aus Symbolen und Wortorientierter Syntax)

Kurz gesagt ... die Delphi IDE ist (fast) perfekt dazu auch noch intuitiv, einfach und uebersichtlich ...
Dem stimme ich zu.

Man darf allerdings nicht vergessen, dass die vielen Buttons und Fenster und sonst was in Delphi auch viele Anfänger regelrecht erschlagen.

Onii-chan
24.02.2004, 19:12
Grundsätzlich halte ich die Auswahl der Programmiersprache für zweitrangig. Es ist schon mitentscheidend, was die Sprache für einen Overhead hat, aber der wird häufig kompensiert durch Entwicklungstools, die Syntaxüberprüfung bieten oder in CASE-manier die lästigen Kleinigkeiten erträglicher machen.

Wichtig ist, daß man sich Verfahren der Systemanalyse und Umsetzung in Algorithmen aneignet. Das geht mit jeder Sprache.

Für kleinere Projekte kommt man sicher ohne Objektorientierte Strukturen aus, da ist der Overhead teils aufwendiger als der eigentliche Algorithmus. Bei komplexeren Anwendungen dreht sich das ganze dann: Die Objektorientierte Struktur macht das Projekt letztendlich erfaßbarer und besser zu warten. Als Rechenleistung noch ein Faktor war, und demzufolge Software noch verstärkt in Assembler oder Assemblernahen Sprachen wie C programmiert wurde, stand OO noch nicht zur verfügung, und dennoch konnte an sich alles realisiert werden, was heutzutage auch geht. Das größte Problem war damals parallelisierung von Entwicklungsarbeit. Ohne fest definierte Schnittstellen und Strukturen ist ein immenser Aufwand nötig um mehrere Entwickler in einem Projekt zu koordinieren.

Da Entwicklungszeit heutzutage einer der kritischsten Punkte der Entwicklung ist, kommst du in keinem Fall um Objektorientierung drumherum, wenn du dich beruflich damit auseinandersetzen willst.

Fab96
26.02.2004, 02:25
Auch wenn Delphi einfacher sein mag würd ich torzdem mit C++ anfgangen gleich, warum erst was anderes lernen wenn maneh umsteigen will ?

klar c++ ist schwerer wohl aber wenn man sich reinkniet geht es.

Und kann man erstmal eine Sprache sind andere auch nicht mehr so dasproblem, es sei den man steigt von Prozedural zu OOP um.

Durandal
26.02.2004, 04:15
Es ist falsch zu denken, dass C++ die ultimative Programmiersprache ist auf die alle umsteigen wollen/müssen .....

Onii-chan
26.02.2004, 20:57
In der Tat. Eine einzelne Programmiersprache zur Eierlegenden Wollmilchsau hochzuloben ist wie jede Beliebige Arbeit mit der Kneifzange/Stichsäge/Werkzeugdeinerwahl verrichten zu wollen.

Für jede Art der Anwendung gibt es mehr oder weniger geeignete Programmiersprachen, also sollte man sich vorher überlegen, was man denn eigentlich entwickeln will.

C/C++ hat den Vorteil, daß es schnell ist, wenn es erstmal compiliert ist. Hängt damit zusammen, daß es relativ Maschinennahe Sprachen sind.

Will ich Platformunabhängig programmieren, wäre Java wohl die geeignetere Wahl.

Durandal
26.02.2004, 21:32
Du darfst wohl nicht vergessen, dass die Kompatibelität von Sprachen wie Java und C# einzig in der Hand der jeweiligen Firmen stehen. (Sun, microsoft)
Wenn du also etwas in einer solchen Sprache für eine Plattform programmieren willst, die nicht unterstütz wird hast du Pech.
Bisher hat man von der berühmten Kompatibelität zumindest nur geringe bis garkeine Vorteile.
Klar kann man behaupten, dass solche lustigen interpreter Dinger die Zukunft darstellen, wenn es um Programmierung auf z.B. Handys geht .... es ist allerdings riskant darauf heute schon zu spekulieren.

Onii-chan
26.02.2004, 21:46
Darf ich alles, ist nicht strafbar ;) Zu C# sag ich mal nix, bisher war mir die .NET-Diskusse zu merkwürdig. Mal wieder ein neuer Versuch von M$ durch nonkonformität und Ignorieren bestehender Standards mit Hilfe von Wirtschaftshebel eine Monopolposition zu erlangen.

Fakt ist jedenfalls, daß Standardkonformes Java wesentlich portierbarer ist als C/C++, welches in den seltensten Fällen problemlos auf allen Platformen compiliert ohne Anpassungsarbeiten.
Diese M$-Java-Gesumse (hab vergessen wie es heißt) ist auch schon wieder so eine Eigenbrötelei von Mickysoft. Häufig sieht es doch so aus: Es wird ein Industriestandard geschaffen, der dann von den Größten Konzernen ignoriert, torpediert und umgangen wird, weil sie Angst vor der Kreativität von Open Source-Entwicklern haben.

Warum zum Beispiel kann ich mit nichts anderem als dem IE bei einem der größten Webchatanbieter chatten? Weil da M$ Scheiß mit M$-Software für M$-Browser "programmiert" wurde. Es leben die Snowboarder!

Aber ich schweife ab. Wenn man etwas entwickeln will, sollte man sich halt überlegen mit wem und für wen. Will ich Open Source entwickeln, sollte ich Programmiersprachen verwenden, die eben halt auch jedem zur Verfügung stehen. Wenn ich für einen Auftraggeber arbeite, muß ich mich eh danach richten, was der sich hat Aufschwatzen lassen.
Wenn der nun partout so furchtlos ist, ein M$ als Webserver zu benutzen - bitte. Seine Beerdigung.

Durandal
26.02.2004, 22:19
Java ist wesentlich besser portierbar als C/++ wenn es um Handy oder leuchtende Kugelschreiber geht.
Wenn du nun aber von Windows, Linux und Mac Krams ausgehst gibt es überhaupt kein Problem bei der Portierung.
(ausser der Programmierer hat sich für Windowsbasierende Programmierung entschieden, was dann allerdings nicht die Schuld der Programmiersprache ist)

Die Vorteile von Java liegen meiner Meinung nach eher bei den Features in Verbindung mit Internet.

Onii-chan
27.02.2004, 00:34
Bzw bei der Platformneutralität bei Verwendung eines Webinterfaces. Jo. Das wiederum setzt allerdings auch voraus, daß ich beim Frontend nicht wieder nichtstandardisierten IE-Explorerblödsinn verwende ;)
Über die Portierbarkeit NACH Windows hab ich mir noch nie so große Gedanken gemacht, warum Windows verwenden, wenn die Applikation auch woandersdrauf läuft ;)

Durandal
27.02.2004, 01:51
Wenn nur du selbst das Programm benutzen soll, ist das alles auch völlig uninteressant.
Wenn es allerdings mal veröffentlicht werden soll geht das nicht so einfach ...

Ineluki
27.02.2004, 04:10
ich glaube mittlerweile sind wir doch etwas sehr weit vom thema abgekommen ... dieser thread heisst doch nicht "Portabilitaet unter dem Gesichtspunkt von C/++ und Java als Konterstandard zu Microsoft"