PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dringend Tips gesucht: Java oder C++ für µC ??



freecell
10.02.2005, 10:06
Hallo,

ich bekomme gerade in meiner Firma angeboten mich entweder in Java oder C++ (meine engere Auswahl) weiterbilden zu lassen.

Problem ich muß mich bis morgen entscheiden.

Da ich die Kenntnisse auch Privat für µC-Programmierung einsetzen möchte wollte ich euch mal fragen was sich eher empfiehlt, Java oder C++ ??

Java wird ja hochgelobt, aber ich bin mir nicht so sicher ob Java wirklich eine ernstzunehmende Alternative zu C++ bei der Programmierung von µC in den kommenden Jahren ist bzw. wird ?


Wäre für Tips dankbar, Gruß freecell.

PicNick
10.02.2005, 10:28
Mit C(++) bist du schon noch näher bei MicroControllern, tät' ich meinen.
Aber ich würd es auch pragmatisch sehen: Was davon hilft dir in der Firma (mehr/schneller) weiter ?
Wenn du das beruflich betreiben willst, mußt du sowieso alle paar Jahre was Neues lernen und Altes vergessen.

PasstScho
10.02.2005, 10:44
Nimm bloß nicht Java!
Ich hab bisserl was mit Java machen müssen(aber nicht an µCs) und war froh als ich fertig war. C++ ist einfach besser, ausgereifter, es gibt zu 99,9% der Anfänger-Probleme Seiten wo beschrieben wird, wie es richtig geht. Als ich bei Java mal was nicht kapiert hab hab ich nix im Netz gefunden und bin erst Tage später auf den billigen Fehler gekommen. Noch dazu gibt es einige gute C(++) Umgebungen, bei denen man notfalls auch gui einfach machen kann. Ich musste damals Java in Eclipse mit den Swing Komponenten machen - Das war einfach Mist!
Wenn du C++ kannst kannst du auch C. Ich hab das Projekt in Java für nen Freund machen müssen. Ich hatte vorher noch nie was damit gemacht. Wenn du unbedingt dann noch Java lernen willst, ist der Weg von C++ zu Java nicht weit.
Aber nimm auf jeden fall C++ :) !

MfG Alex

SlyD
10.02.2005, 15:56
Also ich kann PasstScho nicht komplett zustimmen - Java ist eine sehr gute Plattform für Anwendungssoftware und Webapplikationen(Server+Client). Und eigentlich ist es meiner Meinung nach viel übersichtlicher als C/C++ und leichter nachvollziehbar.

Gerade die GUI Programmierung mit Swing ist doch total einfach und selbsterklärend.

Keine Doku?! Wo hast Du denn gesucht?
Also es gibt viele sehr komplette Tutorials für alles rund um Java - zentrale Anlaufstelle ist http://java.sun.com/ - da ist ALLES sehr gut in Englisch dokumentiert und es gibt zahlreiche Tutorials zu allen möglichen Themen! Wenn man lieber was deutsches möchte nimmt man
z.B. das OpenBook http://www.galileocomputing.de/openbook/javainsel4/
Natürlich nicht ganz so komplett wie die SUN Doku aber das meiste wird einfachst erklärt.

Zahlreiche schöne Bibliotheken und Anwendungen die ne menge Zusatzfeatures bringen gibts auf http://www.java.net/ ...


Und nen GUI kann man sich auch in Eclipse zusammenklicken - da gibts nen Plugin für. Mit dem JBuilder gehts auch. Ob NetBeans sowas hat weiss ich jetzt gar nicht - sollte aber auch dafür verfügbar sein.
Vom GUI zusammenklicken halte ich aber sowieso nicht viel. Ich mache das lieber alles selber, da hat man viel mehr Kontrolle über die einzelnen Komponenten.


Natürlich kommt man nicht um C/C++ herum wenn man Hardware Geschichten Programmieren will ...

Es hat beides vor und Nachteile und es ist immer gut beides zu kennen.
Kommt immer auf den Anwendungszweck an. Was musst Du in der Firma denn programmieren?
Für Hardware geschichten (--> Treiber schreiben usw.) musst Du C/C++ nehmen - Für fast alles andere sind beide Sprachen in etwa gleich gut geeignet.

Für Mikrocontroller gibt es nur selten Java Compiler - aber komplette Java Mikrocontroller gibts schon: aJile und Dallas Tini - den aJile findet man z.B. auf der JStamp von Systronix.
Aber wegen der Preise ist das natürlich keine wirkliche Alternative zu PICs oder AVRs - und da ist es besser C zu können.



Ich persöhnlich würde das einfach davon abhängig machen was Die Firma normalerweise einsetzt...

PasstScho
10.02.2005, 23:00
Ja da hast du schon recht, für Web-Anwengungen ist Java schon ganz ok, weil es überall läuft. Aber wenn man mal etwas komplizierteres machen muss, dann wirds schon recht umständlich mit Java und C/C++ läuft ja auch überall. Ob ein Programm leichter nachvollziebar ist, kommt u.a. darauf an, was das Programm macht. Es ist selten einfacher ein kompliziertes Programm zu verstehen wenn es in Java statt C++ ist und die Übersichtlichkeit ist großteils Sache des Programmierers.
Wenn es wirklich so gute Doku gibt will ich ja nix sagen, aber als ich nen einfaches Problem hatte, hab ich in google nix gefunden.
Dieses JBuilder Ding ist genau das was ich meine. Das ist höllisch langsam, wenn es bei langen dateien mit dem Code Syncronisiert wird. Ich habe lange Delphi programmiert, und da sieht man wie es gehen muss. Auch mit dem in MS Visual Studio hab ich recht gute Erfahrungen gemacht. Mit C und C++ ist man einfach auf der Sicheren Seite, und es braucht keine VM - ist somit schneller.
MfG Alex

SlyD
11.02.2005, 15:45
EDIT: Mit Webanwendungen meinte ich übrigens keine Applets, sondern Java Server Pages und Java Webstart Applikationen ;)

Also komplexe Sachen damit machen: Kein Problem - hier zwei Screenshots der Control Software meines Bots ca. 20000 Zeilen Code und über 200 Klassen - kennst Du vielleicht schon aus dem Wettbewerbs Thread:
http://www.dsh-elektronik.de/arcrobot/fotos/software/big/software3.jpg
http://www.dsh-elektronik.de/arcrobot/fotos/software/big/software_sim.jpg

Also bei sowas kommt man mit einem "Klick Dir nen GUI zusammen" Programm sowieso nicht weit ;)

Und ob die Software gut nachvollziehbar ist oder nicht ist natürlich immer Sache des Programmierers - keine Frage - aber ich habe z.B. noch kein Java Programm gesehen das ich nicht in kurzer Zeit nachvollziehen konnte - bei C/C++ habe ich aber schon so einige kryptische Codestücke gesehen die man nur mit Mühe verstehen konnte.

Klar ist C/C++ etwas schneller als Java - wird ja auch in richtigen Maschienencode compiliert. Aber so groß ist der Unterschied nicht mehr - ich habe die neue 1.5er VM zwar noch nicht ausprobiert, aber die soll mehr Tempo machen als noch die 1.4er und hat soweit ich das gelesen habe nun sogar Hardware Beschleunigung für Grafik eingebaut.

Und wenn man viele Objekte erzeugen und verwalten muss ist Java C++ sogar überlegen.

Naja was solls - ist eigentlich nur Geschmackssache welche Sprache man nun lieber hat.

freecell
16.02.2005, 08:52
Vielen Dank erstmal für Eure Tips.

Ich habe mich für C++ angemeldet und wenns klappt kann ich im Juni mit der ersten Schulung loslegen, diesmal von Grundauf.

Ich habe vor ca. drei Jahren in einem Projekt mit Java gearbeitet und dort im Bereich der technischen Realisierung Sessionbeans programmiert. Die Entitybeans habe ich nie wirklich verstanden!

Vor den Arbeiten habe ich in einem Crashkurs ohne Vorkenntnisse der OOP den JAVA-Zertifikats-Programmierungskurs von SUN gemacht.

Meine Erfahrung aus dem Kurs, das 75% der Kursbesucher C++-Cracks waren und bei jeder zweiten Erklärung zur Programmierung mit JAVA erzählt haben, das sie dies bereits von C++ kennen.

Da ich damals im Projekt ohne Vorkenntnisse direkt mit Beans angefangen habe und ein superschlechtes Fundament an OOP-Kenntissen hatte, werde ich diesmal anders rangehen und von Grundauf die OOP lernen.

Aus meiner Kurserfahrung sowie euren Tips und Hinweisen hier entnehme ich, das es kein großes Problem ist nach C++ falls nötig auf Java umzusteigen. Zumindest ist C++ die bessere Grundlage um darauf aufzubauen, denke ich.

Gruße, freecell.

SlyD
16.02.2005, 18:05
*g* ohne Vorkenntnisse mi Java Beans anfangen... das konnte ja nix werden.

Erstmal die Sprache beherrschen und ein paar normale Programme schreiben bevor man mit sowas anfängt...

Naja ich wünsch Dir jedenfalls viel Erfolg!

PasstScho
16.02.2005, 19:59
Herzlichen Glückwunsch!
Das war auf jeden Fall die richtige Wahl ;)
MfG Alex