![]() |
Welche Sprache für den Einstieg in die OOP
Hallo,
ich habe viele Foren durchforstet um eine Antwort zu finden, leider hab ich fast keine (aktuell und brauchbare) Antworten gefunden, drum wende ich mich hier her. Meine Ausgangssituation: Ich programmiere nach wie vor in Visual Basic 6. Hauptsächlich Anwendungen mit Datenbanken. Jedenfalls möchte ich jetzt einen Einstieg in die Objektorientierte Programmierung finden, da Visual Basic 6 wohl nicht mehr sehr zeitgemäß ist. Ich schwanke jetzt noch zwischen den Sprachen C, C++ und Java. Einerseits lege ich zwar Wert darauf Plattformunabhängig zu sein, da ich selbst mit Linux arbeite aber im Betrieb nur mit Windows arbeite. (laut Foren hat C++ im Gegensatz zu Java ja Plattform-Abhängige Bibliotheken) C++ würde mich aber aufgrund dessen, dass nach dem was ich gelesen habe die meisten Anwendungen darin geschrieben sind auch sehr interessieren und obwohl viel geschrieben wird das Java stetig beliebter wird und am wachsen ist, habe ich es entweder noch nicht gemerkt oder kenne nicht wirklich Anwendungen in Java. Jetzt habe ich in Foren gelesen dass manche schreiben, am besten zuerst C lernen, dann C++ und dann einen "einfachen Umstieg" auf Java. Andere behaupten wieder das Gegenteil (mit Java anfangen und auf C/C++ umsteigen). Deswegen bin ich jetzt ziemlich verwirrt, ob es sinn macht mit c zu beginnen, c++ oder java. Ich möchte längerfristig gesehen wahrscheinlich alle 3 Sprachen lernen, mein größtes Problem ist nur die Entscheidung womit ich anfange. Die Frage ist ja auch in wie Weit c++ Plattformunabhängig ist, da ich gerne unter Linux Programmieren würde, aber vorzugsweise Anwendungen für Windows schreiben würde. Auch der spätere Umstieg nachdem ich etwas Erfahrung in einer Sprache gesammelt habe spielt mir eine Rolle! Bitte teilt mir eure Erfahrungen mit, ich möchte hier auch keinen Glaubenskrieg auslösen aber Vor und Nachteile würden mich schon interessieren :D ! |
auch wenn es ev. nur nach "senfdazugeben" klingt:
inwiefern es gut geht, windows anwendungen unter linux (mit c++) zu entwickeln, finde ich äußerst fraglich. meiner meinung nach ist dazu wirklich java zu bevorzugen. ich denke, dass mit java zu entwickeln einfacher anzufangen ist, da es auch mehr literatur gibt bzw. es einfach eine spur einfacher zu verstehen ist?! finde ich halt... aber im endeffekt geschmackssache :D |
python!
bietet alles was du für oop brauchst + einfachheit :) guckst du hier: http://www.python.org/ deutsches forum dazu: http://www.python-forum.de/index.php |
Warum nicht in C# ??
|
Java, weil alles was du in Java schreibts immer läuft, sofern für die Plattform auch Java verfügbar ist. Einfach ausgedrückt: alles was du unter Windows geschrieben hast, läuft 1:1 auch unter Linux, du musst nichts neu compilen, es läuft einfach wie es ist, ohne murren ;)
|
An c# dachte ich weniger, da diese laut recherchen von microsoft entwickelt ist und ich dachte dass sie daher nicht so plattform-unabhängig ist. (schämen sollte ich mich wenn ich falsch liege)
Python hatte ich mir auch schon angeschaut, aber ich tendiere eher in richtung c++/java. Das liegt bei mir etwas an der Nachfrage (Java oder C++ Softwareentwicker-Jobs sehe ich in den Job-börsen am meisten.) Python wäre sicher sehr interessant, aber im Moment wäre eine andere Sprache für mich wohl die bessere Wahl. Dazu kommt noch, dass ich ja wie oben geschrieben längerfristig Java C/C++ lernen möchte und diese Sprachen sich ja sehr ähnlich sind und überall geschrieben wird, dass ein umstieg wenn man eine sprache mal richtig kann nicht mehr allzu schwierig ist. in dieser Hinsicht würde mir Python vermutlich nicht sehr viel bringen (Bis auf das Erfahrung sammeln im OOP natürlich!). Darum stellt sich mir einfach die Frage womit ich besser anfange, ob es überhaupt sinn mach mit C anzufangen oder gleich c++, wobei ich dazu sagen muss dass mir die unterschiede trotz rechergen immer noch nicht ganz klar sind (einsatzgebiete?). Dann auf Java... oder lieber Java und umgekehrt. Kann man eigentlich vergleiche aufstellen in welcher Sprache man wohl schneller wäre mit ersten Ergebnissen? Es liegt daran, dass ich laufend neue kleinere Projekte habe die ich sehr gerne in einer dieser Sprachen schreiben würde, aber im Moment mache ich immer alles in VB6, da ich darin schon viel Erfahrung gesammelt habe und kleine Progrämmchen wirklich in kürzester Zeit erzeugen kann. Wenn ich meinen Chef davon überzeuge, in Zukunft diese Applikationen in einer anderen Sprache schreiben zu können, wird er mir zwar sicher mehr zeit dafür geben, aber ich sollte eben doch zügig zu brauchbaren Ergebnissen kommen. (mir ist klar dass eine VB6 Anwendung und eine Java/C++ 2 paar schuhe sind...) Was mir einfach wichtig ist, dass ich möglichst schnell Projekte mit GUI und Datenbank-Anbindung machen könnte. |
Zitat:
das ist sonst ungefähr so wie "wie kann ich schneller htmlseiten erstellen, mit notepad oder frontpage :D ?"... :rolleyes: |
bei dieser auswahl bleib ich doch lieber bei notepad. :D :D
heisst das nun, dass grundsätzlich mit jeder dieser Sprachen mit der richtigen Entwicklungsumgebung relativ schnell zum Erfolg gekommen werden kann? meine Frage war mehr in die Richtung, mit welcher Sprache wohl (unter den selben Lernbedinungen) früher Anhand vom Wissensstand brauchbare Anwendungen mit Gui erstellt werden können, gemeint. |
nebenbei, was haltet ihr von dem Buch wenn ich die strategie:C Grundlagen, C++,später umstieg auf Javaverfolgen würde?
C/C++ Das umfassende Lehrbuch Ulrich Kaiser, Christoph Kecher Galileo Computing ISBN 978-3-89842-644-2 oder gibts andere Empfehlungen? |
Zitat:
Außerdem is die Performance von Java zum speiben. |
na dass ist mal n vergleich :D
Ja, hab mich wieder viel eingelesen und langsam tendier ich eher in die Richtung zuerst nur ein paar C Grundlagen zu lernen und dann aber gleich mit C++ anfangen. Deswegen auch die Frage mit dem Buch |
Zitat:
Ich hab den Frust von C++ Code Win+Linux mit Interface und DB Anbindung eh nicht ;) Das wird lustig, oh oh ich bin ein Cross-Compiler :lol: |
Hallo!
Noch meinen Senf dazu... Ich persönlich von von Turbo Pascal zu C zu C++ und zu Java gekommen. Von letzterem bin ich aber wieder weg, weil auch nicht alles sooo toll ist wie viele sagen. Meine Empfehlungen für OOP-Einsteiger: C Gar nicht erst ausprobieren. Ist nicht schneller als C++, kann aber weniger, weil C nicht objektorientiert ist. C++ Superschnell, wenn Du ANSI-C++ programmierst, ist es auch perfekt kompatibel (Ich hab' mal ein MUD programmiert, das unter Linux, Windows, Mac und Amiga ohne umschreiben lauffähig war). Der große Nachteil von C++ ist, dass es eigentlich nicht wirklich OOP ist. C++ ist (im Prinzip!!!) C mit künstlich aufgesetzten Objekten. Java Die Einbindung von Objekten ist deutlich natürlicher, viele Sachen programmieren sich wesentlich einfacher (Pointer sind unter C/C++ tw. etwas für Profis. Selbst noch nach Jahren muss ich hin und wieder mal nachschauen, wie ich irgendetwas Spezielles löse. Unter Java gibt's sowas einfach nicht!). Diese Einfachheit hat aber den Nachteil, dass es auch wesentlich weniger flexibel ist. Die Performance ist bei mathemaitk-intensiven Programmen von C/C++ nicht zu unterscheiden, bei vielen Pointerstrukturen, Speicherzugriffen usw. geht die Geschwindigkeit deutlich runter (Garbage Collection usw.). Und die Plattformunabhängigkeit hab ich auch schon mit recht simplen Problemen/Programmen unabsichtlich geknackt (ist aber schon länger her)... :zzz: Fazit: Fang mit C++ an, wenn Du gut zurecht kommst, versuch Dich mit Java (umgekehrt würde ich nicht empfehlen, ist aber subjektiv). Entscheide dann selbst anhand der vorhandenen Bibliotheken, Tools etc. Soweit mein Beitrag zur noch schwereren Entscheidung, Günther :lol: |
Zitat:
Jedenfalls bin ich jetzt eigentlich schon ziemlich sicher dass ich mich zuerst hinter c++ klemmen werde, die wichtigste frage ist ob ich dies über den umweg C machen soll oder ob ich C danach sowieso "automatisch" kann ? :rolleyes: Und zweitens noch die Frage welches Buch (hängt vom ersten ja ab). Dieses C/C++ Das umfassende Lehrbuch Ulrich Kaiser, Christoph Kecher Galileo Computing ISBN 978-3-89842-644-2 halte ich für interessant, da es anscheinend nur im ersten Kapitel C anschneidet und der rest dann mit C++ darauf aufbaut. |
Hallo!
Da C++ jegliche C-Code kompilieren kann, würde ich gleich mal mit C++ beginnen. Versteh mich nicht falsch, ich selbst schreib fast nur in C, aber für den OOP-Einstieg ist der Umweg über C ungeeignet. Für einen vollständigen Programmier-Anfänger ist C sicher besser, aber programmieren kannst Du ja schon. Das Buch kenn' ich nicht, wenn Du willst, schick ich Dir aber eine Mail mit zwei guten Manuals/Tutorials aus dem Netz. Die fangen fast bei Null an, gehen aber doch sehr weit und behandeln alles, was zumindest ich als Praktiker brauche. Man kann aber hier über den "Mail Client" leider keine Attachments verschicken. Schick mir bitte eine Mail von hier (per Klick auf meinen Namen), ich sende dann die Manuals retour. Greets, Günther :) |
Ich würde dir für den Anfang C# empfehlen.
Weil die Tools dafür gratis und sehr gut sind (Visual Studio 2008 Express Versionen), weil C# eine lässige Sprache ist und weil du ja halbwegs schnell zu Ergebnissen kommen willst, die auch ein gewisses Maß an Funktionalität bieten. Du "erschlägst" du mit dieser Sprache gleich mehrere Anwendungsgebiete - Windows-Standalone Applikationen, Web (ASP.NET und Silverlight), mobile Geräte (Compact Framework), Spieleprogrammierung (XNA). Außerdem kannst du dein Zeugs dann auch auf Linux oder dem Mac laufen lassen - zwar mit Einschränkungen, aber Kompromisse mußt du bei Xplattform-Applikationen meistens eingehen. Die Jobaussichten sind zur Zeit ebenfalls sehr gut. Von C++ in Verbindung mit Datenbanken würde ich eher abraten. Ist zwar auch nicht sonderlich schwierig, aber um einiges mühsamer als mit C# (oder auch Java). Soll aber nicht heißen, daß ich von C++ generell abrate. Es dauert halt etwas länger, bis man was Vernünftiges damit zusammenbringt. Wenn's dir aber mehr um's Verstehen geht, finde ich C++ besser. Nur-Java oder Nur-.NET Programmierer machen sich z.B. wahrscheinlich nie Gedanken darüber, warum und wie Polymorphismus funktioniert, C++ Programmierer hingegen schon.... |
und wie siehts mit dem späteren umstieg von c# auf c++ aus?
gibts da von der syntax her große unterschiede? bzw. was sind so die "groben" Unterschiede? |
welche tools verwendet ihr für c++ ?
also ich empfinde java um einiges einfacher zum anfangen da hab ichs sogar ohne viel kenntnissen geschafft ein programm umzuschreiben (dank hervorragendem debugger von eclipse ;)) |
Zitat:
Das ist eine 0815 Aussage die eigentlich überhaupt nicht mehr stimmt! Ein großteil der Performanceeinbußen einer Applikation sind auf falschen Einsatz von bestimmten Technologien zurückzuführen bzw. auf Fehler von Entwicklern. |
Warum ich Java nicht von Anfang an empfehle hat einen rein pädagogischen Grund: In Java gibt's (praktisch) keine Variablen oder Strukturen. Alles ist von vorn herein ein Objekt.
Zum Entwickeln ist das nur gut und konsequent, zum Lernen eher nicht. Ich finde es logischer, mit Einfachem zu beginnen. Wenn ich mal mit den Möglichkeiten von Variablen anstehe, schau ich mir die Strukuren an. Wenn die nicht mehr reichen, kommen die Objekte. Umgekehrt ist das nicht so einfach. Die Performance von Java ist fast ident mit der von C/C++. Signifikanten Unterschiede gibt's nur, wenn man
Für C/C++ verwende ich DevCPP, bzw. XEmacs und Linux. Borland/MS/oder sonstige Dialekte verwende ich wegen der Abweichungen zu ANSI-C/C++ nicht. Zu C# kann ich leider nichts sagen. Greets, Günther :) |
Würde auch sagen, von Visual Basic auf C# mit Studio Express umsteigen ist am einfachsten und besten. Ich würde einfach die Linux-Kiste einfach mal für den Anfang vergessen, wenn es umbedingt ein Muss ist, dann Java, ist halt schon einfacher damit als Anfänger OS übergreifend zu coden.
Ich code nicht "for living" und lerne meistens nur gerade das was ich brauche, um etwas umgesetzt zu bekommen. Wenn du irgend ein C drauf hast, ist das Umsteigen auf eine andere Syntax meistens eine Sache von maximal Tagen, je nach Zeit und vorhandener Docu. |
ich würd gleich C# nehmen und sonst nix.
tool landschaft (Visual Studio Express) ist gratis und mit dem .net Framework ist das ganze auch annähernd plattformunabhängig. |
C ist das Um und Auf. C++ ist ein Graus, Java ist ein Schatz. C# ist ein Fratz.
Basic -> Pascal -> Modula 2 -> C -> C++ -> Java. C und Java sind Pflicht, Kür und sinnvoll, weil unabhängig. C++ ist aufwändig, langatmig und kurzlebig. |
nur will er objektorientiert programmieren
das schliesst C mal fix aus ;) wobei ich auch der meinung bin, dass C zu beherrschen die basis von allem ist :D |
Zitat:
in einem beitrag soviel komprimierten blödsinn schreiben ist beinahe schon wieder kunstvoll. :rolleyes: C++ ist kurzlebig?!?! Welche Sprache sonst noch gibt es, die bereits so lange im einsatz ist? Was soll an Java Pflicht sein und warum ist es so viel besser als C#? Als techniker sollte man über solchen Diskussionen stehen - eine Programmiersprache ist ein Werkzeug um seine Arbeit zu verrichten (oder auch sein Hobby) - ich denke nicht, dass dein beitrag dem threadersteller maßgeblich geholfen hat. @moses_rotesmeer: warum möchtest du eine OOP sprache lernen? aus persönlichem interesse oder weil das in der arbeit gefordert wird? Je nachdem sind imho. unterschiedliche prioritäten zu setzen. Wenn in der Arbeit gefordert und es darum geht, in kurzer Zeit eine hohe Produktivität zu erreichen (wie das bei VB 6.0 zweifelsohne ist/war) würde ich dir C#, Java oder wenns sein muss VB.net empfehlen. (wobei letzteres nicht viel mit VB 6 gemeinsam hat) C wird eher verwendet für hardwarenahe programmierung und ist nicht objektorientiert. C++ ist objektorientiert jedoch sehr schwer zu beherrschen - es ist sehr gut geeignet, um sich konzepte anzueignen, jedoch ist eine modernere sprache wie c# einfacher handzuhaben (garbage collection, keine pointer nötig, typsicherheit, ...) java, c# und c++ sind von der syntax recht ähnlich, jemand der ein guter c++ programmierer ist, ist jedoch nicht auch zwangsläufig ein guter c# programmierer, weil hier einfach andere dinge zu beachten sind. Wenn es um rein persönliches interesse geht, sind imho. auch "exotischere" (sorry) sachen interesant wie python oder ruby. c# gibt es auch unter linux: such mal nach "mono project". fg hannes |
kurzlebig und langatmig bedeutet schreiben, verwenden, ablegen oder schreiben, verwerfen oder schreiben, abbrechen. Viel zu umständlich.
|
@kika
ich schliesse mal aus deinen komischen ansichten, dass du mit c# noch nie professionell gearbeitet hast. |
Re: Welche Sprache für den Einstieg in die OOP
Zitat:
nunja für mich ist das ganze ja von Vorteil... :D @biri Ich möchts privat und aus beruflichen Gründen. Es ist so, dass ich bisher bei der Arbeit wie gesagt immer Projekte in VB 6 programmiere. Ich würde allerdings sehr gerne hier mal umsteigen auf eine weiterentwickelte Sprache. Auch für die Zukunft (falls ich einen neuen Job brauche) möchte ich mich in diese Richtung weiterbilden, da in letzter zeit die Stellenangebote für VB6 Programmierer ziemlich schwach vertreten waren :) Im Betrieb arbeiten wir zwar nur mit Windows, aber da kommt eben der Knackpunkt. Ich wollte mich des öfteren in den Linux Bereich einarbeiten und würde dort auch gerne Selbst entwickeln. Ich habe das nach mehreren gescheiterten Versuchen (weil man halt schnell schnell mal was braucht, und das funktioniert in Windows besser als in Linux als Anfänger) nun mit der Strategie Windows zuhause verbannen und nur noch linux auf allen Rechnern installieren endlich geschafft, dass ich effizient arbeiten kann. Da ich jetzt diese Strategie eigentlich weiterführen möchte, würde ich einfach gerne eine Programmiersprache erlernen, mit der ich unter Linux zuhause kleine Übungen machen kann und sobald ich soweit bin, in der Arbeit auch die neuen Projekte mit der neu erlernten sprache Programmieren kann. Weiters reizt es mich sehr im Betriebssystem selbst zu programmieren (Linux). Wenn ich effizient genug wäre, würde mein Arbeitgeber es mir sicher erlauben im Betrieb auch unter Linux zu arbeiten / Programmieren oder zumindest mit einer neuen Programmiersprache zu arbeiten. Momentan geht das wegen dem Zeitdruck der meisten Projekte einfach nicht. |
hi,
wenn du dich auf OOP unter linux fixieren möchtest, würde ich an deiner stellt java lernen. ich persönlich favorisiere c# - programmiere aber auch unter windows. fg hannes |
ist das umlernen "von java nach c++" in etwa vergleichbar mit "c++ nach java"?
(wahrscheinlich etwas mehr, was ich so mitbekommen habe... aber könnte ich da einiges Erlernte von java mitnehmen?) |
Zitat:
|
hi,
ja, java und c++ hab schon einige gemeinsamkeiten - und wenn man eine der sprachen kann, lernt man die andere sicher um einiges leichter. Wichtig ist halt, dass man auch die zahlreichen spezifischen "Libraries" der jeweiligen sprache kennt - bei C++ wären das mfc, atl usw. - bei java gibt es noch viel mehr - eigene libraries für oberflächenprogrammierung, zahlreiche frameworks (spring) u.v.a. => erst diese sind das "salz in der suppe". Java ist halt die modernere sprache mit garbage collection, einheitlichem exception handling durchgängigere oop mechanismen. Ich denke, C++ zu lernen ist sicher der härtere weg - ob du dir das antun willst, liegt an dir. fg hannes |
Ganz nüchtern betrachtet: C++ ist ein Klotz am Bein, Java ist Programm.
|
Zitat:
und ja C++ |
tu da ned zitate beugen herst :D
|
Java Buch
Hi!
Für Java kann ich "Sprechen Sie Java?"empfehlen. Ich habe gute Erfahrungen mit der letzten Auflage gemacht. http://www.ssw.uni-linz.ac.at/Misc/JavaBuch/ mfG Swatchy |
Ich geb da auch noch meinen Senf dazu.
Also ich würde auch Java vorschlagen. 1. schreibst du dass du unter Linux unterwegs bist 2. habe ich darauf OOP "gelernt" und finde es um zu lernen wirklich gut 3. im Vergleich zwischen C# und Java (ich programmiere beides) finde ich Java konsequenter durchgezogen (Packages, Namensgebung etc.) und auch die Javadoc der API finde ich einfach um Welten besser als die MSDN! 4. ist Eclipse als Entwicklungsumgebung einfach weltklasse und IMHO besser als VS.NET 2005 Wenn man natürlich eine native Windows-Andwendung schreiben möchte ist man mit .NET besser aufgehoben. Auch finde ich ASP.NET für Webanwendungen wirklich gut. Da gibts zwar auch schon andere nette Dinge am "anderen Ufer", aber mit ASP.NET kommt man recht schnell sehr weit. Aber dies sind dann schon "spezialfälle" wo es um eine genaue Anwendungsanforderung geht - und nicht was vom Grundkonzept (=OOP) besser zu erlernen geht. Denn kannst in C# od. Java OOP Programmieren, kannst das jeweils andere nach etwas Einarbeitungszeit auch. Die größten Unterschiede sind wie schon einmal erwähnt die Klassenbibliotheken! |
ok... danke für die info
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag