C, C++ oder Java??

F

fknapp

Aktives Mitglied
Thread Starter
Dabei seit
30.12.2003
Beiträge
143
Reaktionspunkte
0
Hi,
Ich bin blutiger anfaenger. Welche Sprache wuerdet ihr mir empfehlen?
Moechte unter anderem in Xcode programmieren.
Dake
 
Hi,

es kommt auf Dein Anwendungsgebiet an. Ich persönlich finde Java sehr gut. Man kann nicht so viele Fehler machen wie in C oder C++, programmiert sauber und es läßt sich auch leicht eine GUI erzeugen. Ein weiterer Punkt ist die Plattformunabhängigkeit.
Aber um die da genauere Tips zu geben müsstest Du uns wohl erzählen, was Du genau machen willst.
 
Hab gehoert, dass Java recht langsam sein soll. Und ist es nicht besser, Programme in C, bzw. C++ zu schreiben und fuer Internet sich mit php anzufreunden?
Und ist C wirklich Platformabhaengig?
 
Also mit JAVA haste die größte Plattformunabhängigkeit. Auf (fast) jedem Rechner kann das JAVA-Pack installiert werden, läuft zwar nich ganz so schnell wie C++-Progs aber es läuft.
 
Also von C würd ich wirklich abraten. Wenn dann nimm gleich C++.

Stellt sich nur die Frage zwischen C++ und Java. Als Anfänger würd ich auf jeden Fall mit Java anfangen. Beide sind sich sehr ähnlich, Java aber ne ganze Ecke aufgeräumter und an vielen Stellen durchdachter. C++ musste einen Haufen Features von C übernehmen.

Geschwindigkeitsmäßig tun sich beide auf nem Windows PC fast nichts mehr. Auf einem Mac ist Java deutlich langsamer.

C++ gibt Dir an einigen Stellen mehr Möglichkeiten. Diese wirst Du aber als Anfänger gar nicht brauchen. Dafür musst Du eine Reihe möglicher Fehlerquellen beachten, die bei Java gar nicht passieren können.

Fazit: Beide haben ihre Vorteile, aber einem Anfänger würde ich auf jeden Fall Java empfehlen.

PHP ist übrigens was ganz anderes. Das braucht man idR ausschließlich, um dynamische Webseiten zu erzeugen.
 
Ich mag Java da die Entwicklungsumgebungen einfach komfortabler sind.
Außerdem: Unterschätze nie das Framework das du mit Java geschenkt bekommst, unter C++ fehlt mir sowas immer,..

Grüße Sebastian

PS: Habe erst Java und danach C/C++ gelernt und bin daher vielleicht ein Java Jünger, aber irgendwie kann man (ich) damit schneller Software entwickeln :)
 
snady schrieb:
---schnipp---
Außerdem: Unterschätze nie das Framework das du mit Java geschenkt bekommst, unter C++ fehlt mir sowas immer,..
---schnipp---
Was genau meinst Du mit Framework bei Java? Ist das nicht prinzipiell ein Konstrukt, welches sich auf eigentlich jede Sprache übertragen läßt?
 
Tim99 schrieb:
Geschwindigkeitsmäßig tun sich beide auf nem Windows PC fast nichts mehr. Auf einem Mac ist Java deutlich langsamer.
Java ist auch am PC zum K***** langsam. Wirklich schrecklich! C++ ist dagegen viel schneller.

Ich habe erst C++ gelernt weil mir der Umstieg von Pascal (jaja uralt; aber so war der Lehrplan) auf Java einfach nicht gelingen wollte. Durch den Umweg über C++ hab ich nun auch die Objektorientierte Programmierung verstanden und hatte dann keine Probleme mehr mit Java.

MfG, juniorclub.

Btw: Pascal an der HTL StP gelernt; Java wollt ich an der TU Wien machen - nicht geschafft; C++ an der Uni Wien gelernt - dann Java an der Uni Wien.
Nun kenn ich mich zumindest ein bisschen aus... ;)
 
Sym schrieb:
Was genau meinst Du mit Framework bei Java? Ist das nicht prinzipiell ein Konstrukt, welches sich auf eigentlich jede Sprache übertragen läßt?

Ja, recht hast du.

Gemeint war die Klassenbibliothek, eben alles was schon im standard JRE verfügbar ist. Von ordentlich komfortablen Strings über URL Verbindungen bis zu XML Parsern ist in Java alles schon drin. Und ordentlich Dokumentiert. Javadoc ist einfach unschlagbar ( in dem Punkt werde ich jede andere Meinung einfach ignorieren ;) ). Wenn ich dagegen C/C++ ( hab bisher nur unter Windows Erfahrung gesammelt ) benutze, dann muß ich mir alles irgendwo besorgen was ich an Bibliotheken brauche, und die WinAPi ist sowas von verhunzt,.. LPCZSTR pStr - Wenn ich sowas schon lese wird mir schlecht.

Grüße Sebastian

PS: Nicht hauen, vielleicht hab ich einfach zu viel rosarote Java Brille auf,.. ist nur meine Meinung
 
Von Java würde ich abraten. Ist unter OSX viel langsamer und hat nicht so eine "saubere" GUI
 
Was meinst Du mit "nicht so eine saubere GUI"? Ich arbeite mit SWT und finds eigentlich ganz sauber/gut.

Und zum Thema Geschwindigkeit: Einen großen Vergleich zwischen C++ und Java (beides Windows) gabs vor ca. einem Jahr in der ct. C++ ist nur noch bei sehr hardwarenahen Aufgaben. Insbesondere bei starker Ausnutzung von objektorientierten Prinzipien ist Java teilweise sogar schneller... Alles andere sind Vorurteile. Da hat sich einiges getan in letzter Zeit. Allerdings wohl noch nicht so sehr unter OS X... Leider.
 
fknapp schrieb:
Hi,
Ich bin blutiger anfaenger. Welche Sprache wuerdet ihr mir empfehlen?
Moechte unter anderem in Xcode programmieren.
Dake

Wenn du noch jungfräulich bist, das aber schnell ändern möchtest ohne viele Tränen zu vergießen, dann schau dir doch mal BlueJ an. Das ist kostenlos, bietet einen sehr einfachen Einstieg in Objektorientierte Programmierung und kostet nichts. Einfach downloaden, Java-SDK dazuladen und loslegen.

Ich verwende für den Informatikunterricht BlueJ und Kara für den Einstieg. Mit XCode oder Eclipse einzusteigen ist in der Regel nicht anzuraten (für Einsteiger in die Programmierung zu verwirrend).
 
Zuletzt bearbeitet von einem Moderator:
Also:

C brauchste wirklich net zu lernen... im Anwendungsbereich wirste den geschwindigkeitsvorteil zu c++ nicht bemerken...
c++ ist anspruchsvoller als java, aber mir persönlich lieber... adison-westley hat ein sehr nettes, Anfängerfreundliches buch..
java... läuft auf alle plattformen... und durch den garbage collector langsam (übernimmt das entfernen von nicht mehr gebrauchten Objekten, in C++ muss der Programmierer das selber machen)

Der beste Beweis ist Azureus... bei sehr großen files einfach den download starten und wieder stoppen... die HDD rödelt wie verrückt nur wegen dem schei* garbage collector..

Ja man kann als anfänger java lernen, die Hanover Uni hat ein sehr schönes script dazu, aber ich persönlich und meine Komunitonen "verachten" Java..
 
Vielleicht sollte man (für kleinere Aufgaben) auch shell scripting in Betracht ziehen. Wer sich über (Beispiele von) shell scripting informieren will, sollte sich mal www.shelldorado.com anschauen. Außerdem gibts ja Tools wie http://www.scriptgui.com. Die Standard Shell von Mac OS X heisst bash. Shell tutorials gibts glaub ich auf http://www.osxfaq.com.
 
Zuletzt bearbeitet von einem Moderator:
Java Programme sehen unter OS X oft unschön aus und reagieren manchmal nicht auf Klicks (wie bei Windows). Eine Cocoa-GUI ist viel bugfreier und schöner
 
Rappy schrieb:
Java Programme sehen unter OS X oft unschön aus und reagieren manchmal nicht auf Klicks (wie bei Windows). Eine Cocoa-GUI ist viel bugfreier und schöner
Das kann ich nicht nachvollziehen. Bei mir läuft alles sauber. Und mit Cocoa (so schön das auch ist) ist die Plattformunabhängigkeit gleich hin.
 
CapFuture schrieb:
java... läuft auf alle plattformen... und durch den garbage collector langsam (übernimmt das entfernen von nicht mehr gebrauchten Objekten, in C++ muss der Programmierer das selber machen)
Java läuft auf Mac-Systemen langsamer, was wohl an der Umsetzung von Apple liegt.
Was heutzutage noch an der Geschwindigkeit zieht ist die GUI (wobei man ja nicht Swing nutzen muss) und das starten der Virtual Machine. Es gibt genügend Tests, in denen Java auch mal schneller als C++ ist.
Das der Garbage-Collector das System langsamer macht, höre ich jetzt zum ersten mal. Der Collector steht doch schon in dem kompilierten Code fest (und wurde meines Wissens mit eingebunden). Dadurch kann man halt nicht mehr so viel Mist machen - aber langsamer ... ich weiß nicht.
 
In Java wird ein automatic garbage collector genutzt...
Dies ist ein Prozess, der automatisch im hintergrund läuft und den Speicher von "toten Objekten" bereinigt.
Wann der garbage collector anspringt, ist ihm selber überlassen... er springt aber garantiert an, wenn der speicher voll ist...
Also Spamt dein Java App im extremfall deinen Speicher erstmal komplett zu, um ihn dann wieder zeitaufwendig zu bereinigen...

Die einzige möglichkeit ihn direkt zum bereinigen zu zwingen ist die gc() methode, die aber von keinem benutzt wird...

Java Apps laufen in den meisten fällen langsammer als C++ oder gar C Programme... Darum wird es ja auch nicht bei Echtzeitsystemen wie z.B. ABS benutzt...
Oder stellt euch mal vor, der Garbage Collector springt an wärend ihr scharf bremmst um kein kleines Kind zu überfahren.

Garbage Collector: "Och ich will mal bissel aufräumen... lalala... kannst ja später weiterarbeiten... auf die milisekunden kommts ja net an..."
 
Rappy schrieb:
Java Programme sehen unter OS X oft unschön aus und reagieren manchmal nicht auf Klicks (wie bei Windows). Eine Cocoa-GUI ist viel bugfreier und schöner

Soweit ich weiß (benutze selbst nur schön brav Objective-C) kann Cocoa auch von Java aus benutzt werden.

Von C++ würde ich jedem Anfänger dringend abraten!

Wieso nicht was freundliches wie Python oder Ruby oder (ach) Scheme?

Es wäre schon gut zu wissen, was du genau vorhast. Einfach nur Programmiererfahrung sammeln oder ein spezielles Projekt.
 
Die ersten Programmiererfahrung würd ich immernoch mit Turbo Pascal sammeln...
Prozedurale Programmierung ist für den leien einfach leichter zu verstehen und der ganze firlefanz der Objektorientierten Programmierung stört nicht.
TP ist einfach gestrickt, aber zum lernen immernoch das beste...
 
Zurück
Oben Unten