Programme erstellen fürs Studium

So ,war heute in einer Buchhandlung und habe mir das Buch "C++ echt einfach" von O. Böhm zugelegt. Ich hatte auch mal nach anderen Büchern geschaut unter anderem "C++. Lernen und professionell anwenden." Habe mal ein wenig drin rumgelesen und gebättert und mich aber dennoch für das von O.Böhm entschieden, da mir dies für den Moment einfach die "verständlichere" Möglichkeit von beiden ist. Sehr wahrscheinlich werde ich mir das andere Buch später noch zu legen.

Gruss Marcel
 
minilux schrieb:
nicht schlecht für den Anfang finde ich Java -- man kann OO programmieren lernen, muss sich aber nicht mit Speicherverwaltung o.ä. auseinandersetzen. hier kannst du ein kostenloses eBook runterladen (http://www.galileocomputing.de/openbook/javainsel3/)

edit: mit ein bisschen mehr Zeit kannst du auch gleich C/C++ lernen.

Java würd ich auch vorschlagen

Aber warum soll er wenn er Berechnungen am MAC durchführen will und eine einfache Benutzeroberfläche braucht mit C/C++ anfangen?

Da wär doch Objektive-C/Cocoa einfacher
 
vava schrieb:
Da wär doch Objektive-C/Cocoa einfacher
klar, er will aber das seine Programme Plattformunabhängig sind :)
 
minilux schrieb:
klar, er will aber das seine Programme Plattformunabhängig sind :)

Woher weisst du dass er Wert auf Plattformunabhängigkeit legt? (Oder habe ich eine Leseschwäche)

und warum ist C/C++ plattformunabhängiger als objective-C ?
 
vava schrieb:
Woher weisst du dass er Wert auf Plattformunabhängigkeit legt? (Oder habe ich eine Leseschwäche)
marcelc schrieb:
Wichtig wäre noch, dass die Programm dann unter WIN und Mac OS laufen.
vava schrieb:
und warum ist C/C++ plattformunabhängiger als objective-C ?
Läuft beides da, wo es den gcc gibt. Aber Cocoa (als Framework) gibt es nur auf Mac OS X.
 
Hi,

also am schnellsten zu einer Lösung zu kommen ist eigentlich immer als Nummer eins zu sehen. Und unbedarft an Java und C++ ran zu gehen ist schon sehr mutig! Angefangen mit der anzuwendenden IDE (Entwicklungsplattform wie Eclipse, JBuilder, ...) und den Möglichkeiten und Fallstricke der Objektorientierung...

Berühmter Gag in Java: "...welche IDE verwendet Sie !?" Antwort "...vi..."

Ich halte auch die interpretierten Sprachen für Dich für den schnelleren Einstieg in Programmiersprachen zur Findung von Lösungen. Python und der Tk Aufsatz (Graphische Ausgabe) sind hierbei nicht wirklich schlecht. Ich verwende in unserem System Tcl/Tk (auch eine interpretierte Sprache mit graphischem "Vermögen") ein und verwende diese seit 5 Jahren erfolgreich, um den kompletten Schienenverkehr mit Schnittstellen zu etlichen anderen System und dynamischen Waagen in unserem Werk im Blick zu behalten. Als IDE benutze ich ein winziges Tool namens vtcl. In keiner Programmiersprache kam ich bisher in vernetzten Systemen schneller zum Ziel! Hübsch in einem 3 Schichten Modell und viel Zauberei auf divesen Shells (Tcl- und Korn-Shell). Natürlich muß ich zugeben, daß in unserer Entwicklungsabteilung die Zeichen in Richtung Java gestellt sind und ich in Zukunft mein System dorthin integrieren/migrieren muß. Wenn ich aber sehe wie kompliziert alles, von außen zumindestens, aussieht (Clients, die mittels Applikationslogik auf diverse Datenbanken zugreifen), naja, als Anfänger wirst Du es schwer haben...

Auf der anderen Seite sieht es natürlich so aus: wenn Du keinerlei Programmierung kennst und Du direkt mit OO anfängst, dann hast Du die Chance so anzufangen, als wäre nie vorher was anderes da gewesen! Dann aber bitte mit Java, um wirklich Plattformübergreifend zu entwickeln!

Bye
Mirko
 
jetzt bin ich ein wenig verwirrt. Also wenn ich nun mal überfliege würde ich sagen, dass sich Jave und c++ schon irgendwie die Waage halten...Ich werde mich nun erstmal meinem C++ Buch widmen und dann mal sehen was draus wird. Wenn C++ absolut nichts für mich ist, kann ich mich ja immernoch umorientieren - nach Java.
 
marcelc schrieb:
Wichtig wäre noch, dass die Programm dann unter WIN und Mac OS laufen.
Also hab ich doch eine Leseschwäche :(

THX1138 schrieb:
Läuft beides da, wo es den gcc gibt. Aber Cocoa (als Framework) gibt es nur auf Mac OS X.

Naja wenn er mit C/C++ gegen proprietäre OSX-Librarys oder Frameworks(Carbon,oder was weiss ich) linkt läuft es auch nicht mehr überall wo es gcc gibt.

Andererseits wenn er GNUStep konform in Objective-C schreibt läuft das auch überall wo es den gcc gibt.

ok c/c++ ist plattformunabhängiger wenn er Trolltechs QT oder X11 verwendet nur dann wird es für ihn ziemlich aufwendig. Glaub da ist er mit java besser dran.
 
also ich als etechnik student würde dir vom prinzip auch java empfehlen (wie machen zwar c, aber auch in java kann ich n bisschen was.. und das ähnelt sich sehr ist nurplatformunabhängiger als c!)

aber:
warum nicht sowas wie Mathlab ausprobieren? Wenn es nur um komplexe formeln und ne darstellung geht dann soll das ganz gut sein. weil um z.b. wärmefluß zu berechnen sollte das genügen..
 
C++ bietet Dir tausend Möglichkeiten, Dir mit einer doppelläufigen Schrotflinte in den Fuß zu schießen. Eine wesentliche Zielsetzung bei der Entwicklung von java war unter anderem, die Fehler und Inkonsistenzen von C++ zu vermeiden. Allein die Möglichkeit, von mehreren Klassen zu erben schafft Fehlerquellen ohne Ende. Aus diesem Grund ist die Mehrfachvererbung bei moderneren Sprachen auch in der Regel nicht mehr im Paket. Und wenn Deine Programme auf Windows und Mac OS laufen sollen, hast Du mit C++ keine Möglichkeit, grafische Oberflächen zu programmieren, da die Frameworks, die das ermöglichen, nicht plattformübergreifend verfügbar sind. Das kannst Du nur mit Java. Und lass Dich nicht beirren - gerade bei umfangreichen Fließkommaberechnungen ist Java gar nicht sooo langsam.
 
Vorsicht!

Java und C++ sind Objektorientierte Sprachen - das ist auch gerade das Einzigste was so allgmein über Gleichheit sagen kann. C++ ist um längern Mächtiger und somit komplizierter als Java, wobei ich Java jetzt nicht als einfach dahinstellen will, räusper...

Ein tolles Beispiel wie unterschiedlich die beiden Sprachen sind, solltest Du Dir mal ein bischen Wissen in Richtung Referenzen zulegen (die nette Pointergeschichte in C++, die es Java so nicht gibt!). Während Du in Java immer mit dem Original arbeitest (immer!). Hast Du in C++ die Möglichkeit Referenzen auf die Objekte selbst oder mit einer Kopie des eigentlichen Objekts zu arbeiten. Kommt man von C, so hat man brav gelernt, daß man immer hübsch mit Kopien arbeiten und nicht mit dem Original, um die Gefahr der Datenverfälschung zu minimieren. Jetzt guck Dir mal bitte an, was Du Dir in C++ damit einhandelst. Schlagwörter hierbei sind z.B. Copykonstrukturen, etc., die Du alle hübsch selbst zu implementieren hast. Ebenfalls sehr umständlich ist die Handhabung des Speichers. Während Du in C++ selbst sagen mußt, wie sich ein Objekt in Nichts aufzulösen hat (Destruktoren), nimmt Dir diese Arbeit der Garbage-Collection der virtuellen Maschine ab... Und, und, und...

Und die andere Seite ist, Du wirst beim Umstieg in dieser Richtung dann java erst zu schätzen wissen :cool:

Bye
Mirko
 
Das Ding bei C++ ist, daß Du dich ,wenn Du mit Grafischer Oberfläche programmieren willst, für ein Framework entscheiden musst welches auf allen Platformen für die du Programieren möchtest vorhanden ist.
Ich nehm QT von Trolltech, da ich das Prinzip rechteinfach finde und man sich seine Fenster vorher schonmal zurecht malen kann. Allerdings sollte man vorher schon komplett durch die Objektorientierung, Klassen, Vererbungen, etc durchgestiegen sein um mit dem gemalten nachher was anfangen zu können.
Keine Ahnung wie einfach es unter Java ist eine grafische Oberfläche zu gestalten.

Meine meisten Projekte realisiere ich inzwischen über HTML/PHP, Da kann man die Oberfläche eingentlich einfach via HTML realisieren. Zum starten des Progs brauchts dann halt einen Webbrowser. Für deine Zwecke sollte PHP völlig genügen. Hab mit nen Kollegen der Bau-ing. ist schonmal an kleineren Progs für Statikberechnungen gearbeitet. Die haben wir in PHP realisiert. Ist meiner meinung nach das einfachste um Portabilität zu gewährleisten.
Nen Apache und PHP gibt es nahezu für jedes Betriebssystem.
 
Achja,

die Mehrfachvererbung - auch so ein tolles Ding von C++. Unser Prof meinte immer zu sagen, daß es noch keinen anständigen und eindeutigen Anwendungsfall gäbe, wo man tatsächlich die Mehrfachvererbung braucht! Jedes auch noch so konstruierte Beispiel bekam er mit einer Einfachvererbung hin - siehe Java...

Bye
Mirko
 
Diesen Einwand hatte bisher noch keiner.Da hast Du natürlich recht. Ich denke ich werde mich mal ein wenig mit C++ beschäftigen, denn ich habe mir ja heute ein Buch dafür gekauft.Wenn das absolut nix gibt werde ich versuchen Java zu lernen.
Wo wir gerade beim lernen sind. Wie starte ich Eclipse ??
 
THX1138 schrieb:
C++ bietet Dir tausend Möglichkeiten, Dir mit einer doppelläufigen Schrotflinte in den Fuß zu schießen.
das geht schon mit C, nur bei C++ fetzt es dir gleich den Fuß ab :D
 
Gibt es das mono-projekt nicht auch unter OSX?

dann wäre C# auch eine Möglichkeit oder?(von .NET,C# und mono hab ich ehrlichgesagt keine Ahnung)
 
vava schrieb:
Gibt es das mono-projekt nicht auch unter OSX?

dann wäre C# auch eine Möglichkeit oder?(von .NET,C# und mono hab ich ehrlichgesagt keine Ahnung)
Gibt es schon. Ich hab's mir mal probeweise installiert. Das Problem ist nur: Es fehlt eine gescheite IDE. Es gibt zwar ein Plugin für Eclipse, aber das taugt nichts. Wer also nicht vi benutzen möchte...
 
minilux schrieb:
das geht schon mit C, nur bei C++ fetzt es dir gleich den Fuß ab :D
Nur mit Pascal nicht. Da erklärt Dir der Compiler, daß Du eine Patrone vom Kaliber 20 mm nicht mit einer Waffe vom Kaliber 2 cm abfeuern kannst, weil die Typen inkompatibel sind.
 
-jez- schrieb:
Erklär mal bitte warum, das interessiert mich nämlich :)


also wie meine vorredner schon gesagt haben ist java plattformunabhängig,
was immer gut ist ;) schließlich programmiert er bestimmt so gut das er seinen kommilitonen das programm nicht vorenthalten kann :D
dann wurde in java besonders darauf geachtet die fehler von c/c++ zu vermeiden (stichwort: undefined behavior).

obj. c ist mir noch nirgends als auf dem mac begegnet (wiedersprecht mit ruhig ;) ).

so nun zu python.
ist ersten auch plattform unabhängig und wurde entwickelt um übersichtlich und einfach zu sein. desweiteren gerade für kleinere sachen ist der interpreter sehr zu empfehlen.

ich hoffe das reicht dir ^^
 
ich glaube nach wie vor, dass python das beste fuer dich waere. aber bevor du mehr geld fuer buecher ausgibst:

http://www.ibiblio.org/obp/thinkCS/python/english/

mit pyobjc und jython kannst du ausserdem aus einer modernen dynamischen programmiersprache heraus die unzaehligen api_s von cocoa und java benutzen.
 
Zuletzt bearbeitet:
Zurück
Oben Unten