Archiv verlassen und diese Seite im Standarddesign anzeigen : java C# oder doch C++ ?
Hallo,
bekomme eine gratis DVD von video2brain und da ich eh eine weitere programmiersprache lernen wollte habe ich mich mal auf 3 sprachen beschränkt, kann mich aber nicht entscheiden welche ich nun nehme
-java (gefällt mir eigtl sehr gut vorallem weil ich damit auch sachen für webseiten machen kann, plattformunabhängig braucht aber leider immer das dumme java plugin,
kann ich mit java eigtl auch direkt auf dateien usw zugreifen von dem PC der das programm ausführt ? auch eclipse ist ja eine schöne anwendung und funktioniert perfekt)
-c# (nicht schlecht, microsoft , .net frameword nötig was mich doch sehr stört, dafür soll sie "relativ einfach" sein und mit visual studio 2005 express hätte ich gleich eine top entwicklungsumgebung, habe schonmal eine kleine konsolenanwendung verwendet und habs nicht schlecht gefunden)
-c++ (eigtl standard und extrem interessant aber scheinbar ist es damit auch einiges komplizierter eine kleine anwendung mit menü etc aufzubauen ... )
vielleicht kann mir ja einer von euch weiterhelfen
im mom sind eigtl java und C# meine favoriten
was ich schon aus anderen foren erfahren habe:
performance unterschiede gibt es wohl kaum
c# würd ich persönlich weglassen (da auch nicht wahnsinnig verbreitet und proprietär MS). Um zwischen Java und C++ (zweiteres ist massiv schneller, da vollständig kompiliert) zu entscheiden, kommt es darauf an, was du gerne machen willst.
MfG Bischi
PS: Jetzt bitte keinen Flamewar starten...
PS: Jetzt bitte keinen Flamewar starten... Will nur kurz auch meine Meinung kundtun:
Bei grafischen Sachen - mit Menüs und so - nehme ich immer Java her und würde Dir auch dazu raten.
Zu den anderen beiden Möglichkeiten schließe ich mich meinen Vorredner an.
peschmae
24-06-2006, 15:05
Will nur kurz auch meine Meinung kundtun:
Ich auch :)
Bei grafischen Sachen - mit Menüs und so - nehme ich immer Java her und würde Dir auch dazu raten.
Bei grafischen Sachen - mit Menüs und so - nehme ich immer alles nur nicht Java :)
Wieso?
- Vom Endanwender zu erwarten dass er Java installiert ist schon ein rechter Brocken.
- Swing-Guis mag ich selber nicht so (Geschmackssacke...) - da werde ich sicher nicht noch selber welche schreiben
- langsam sind Swing-Sachen leider auch immer noch - zumindest was die Startzeiten angeht (klar profitieren andere Anwendungen davon dass die Libs z.T. schon im Arbeitsspeicher sind - aber das macht die Swing-Programme auch nicht schneller gestartet ;))
- SWT lassen wir jetzt mal aussen vor - zu programmieren ist das nicht wirklich angenehm
Dann lieber C++ mit Qt, Gtk oder WxWidgets wenn mans mag.
Was jetzt nicht heisst das sich dir unbedingt C++ nahelegen möchte - fürn Anfang ists recht happig und ich finds auch sonst eher mühsam. Naja. Du hast die Wahl :D
MfG Peschmä
also das jemand java installiert hat setze ich vorraus, beim .net framework nicht unbedingt, aber ich finde das C# eine recht schöne sprache ist auch wenn es eine microsoft eigenentwicklung ist
also mich interessiert eigtl eher weniger ob man dazu jetzt noch ein plugin oder .net framework braucht sondern eher ob die sprachen was taugen ... viele leute sind ja sehr zufrieden mit ihrer java programmierung, ich habe damit noch keine erfahrungen, deswegen kommts ja erst zu der thematik
peschmae
25-06-2006, 10:08
also das jemand java installiert hat setze ich vorraus,
von mir aus. Aber wozu genau sollte jemand Java installiert haben? Ich brauche das für genau ein Ding: map24
also mich interessiert eigtl eher weniger ob man dazu jetzt noch ein plugin oder .net framework braucht sondern eher ob die sprachen was taugen ... viele leute sind ja sehr zufrieden mit ihrer java programmierung, ich habe damit noch keine erfahrungen, deswegen kommts ja erst zu der thematik
Die Sprache Java ist schon ok - C# genauso (und ich nach dem was ich gesehen hab hat es auch ein paar nette Sachen die Java nicht hat ;)).
Auf jeden Fall beides besser geeignet zum Anfangen als C++ imo.
MfG Peschmä
naja also bei mir kommt Java immer drauf weil mans auch teilweise für webseiten braucht ... und ich denke auch das es sehr viele drauf haben, zur not kann ich ja nen .msi machen der das Plugin mitinstalliert
Ich habe mit Java OOP gelernt und muss sagen, dass es wirklich eine schöne Sprache ist.
Derzeit entwickle ich mit C++ und Qt. Persönlich spricht mich das gerade mehr an.
Wichtig ist aber vor allem der Bereich. Für Web + Server würde ich zu Java tendieren. Für eigenständige Applikationen mit GUI zu C++ und Qt. Irgendwie ist ein aufwendiges Programm in Java immer behebiger als ein natives Programm.
Waxolunist
26-06-2006, 09:22
Java ist doch ohnehin heutzutage schon auf jedem Rechner installiert. Mit SWT programmiert man schon ganz einfach Oberflächen, die die API des Destktopmanagers, der lokal vorhanden ist, verwendet, ohne die Fenster selbst zu zeichnen.
Der Geschwindigkeitsvorteil gilt heute nicht mehr, da die Virtuelle Maschine eigentlich nicht mehr bremst. Und ob dass jetzt 10 oder 8 ms dauert ist schnurz. Ich sage mal, Java kann man besser optimieren als C++.
Die Plattformunabhängigkeit, das einfache Portieren, da spricht doch schon viele für Java. Ich bin auch noch immer sehr für das Erlernen von C, nur die Java-basher sollten sich mal neue Argumente überlegen.
peschmae
26-06-2006, 10:57
Java ist doch ohnehin heutzutage schon auf jedem Rechner installiert.
Beweis durch Behauptung? Ich behaupte das Gegenteil :p
Ich sag ja auch nicht dass das ein extremes Problem ist. Nur sollte man das auch im Auge behalten. Wenn ich so ein kleines Tool erstelle dann will der Endanwender vielleicht nicht ne ganze 20MB JRE installieren für mein 200kb-Progrämmchen.
Ist mir so gegangen mit diesem einen .NET CPU-Taktungs Tool für Windows. Hab ich dann halt nicht installiert weil das ne .NET Laufzeitumgebung gewollt hätte die ich nicht hab und nicht will...
Mit SWT programmiert man schon ganz einfach Oberflächen, die die API des Destktopmanagers, der lokal vorhanden ist, verwendet, ohne die Fenster selbst zu zeichnen.
Ja, SWT gibt ganz nette Apps von der Benutzerseite her. Aber das Ding hat auch seine Haken und Ösen bei der Verwendung - die API ist noch nicht ganz optimal.
Der Geschwindigkeitsvorteil gilt heute nicht mehr, da die Virtuelle Maschine eigentlich nicht mehr bremst. Und ob dass jetzt 10 oder 8 ms dauert ist schnurz. Ich sage mal, Java kann man besser optimieren als C++.
Für Serveranwendungen mag das hinhauen. Aber bei lokalen GUI-Programmen finde ich die Startzeit immer noch störend. (Und ja - es gibt auch lahme C/C++-Programme, man denke da nur an OpenOffice... - nur im Schnitt finde ich vergleichbare Javaprogramme immer noch einiges langsamer als äquivalente in C/C++)
Die Plattformunabhängigkeit, das einfache Portieren, da spricht doch schon viele für Java.
Das ist eigentlich *das* Argument. Funktioniert Grundsätzlich auch sehr gut.
Allerdings hatte ich mit SWT da dann auch schon mal so meine Problemchen - halt weil die verschiedenen Ports verschiedene Sachen machten...
Dürfte mittlerweile aber wohl besser geworden sein. :)
Ich bin auch noch immer sehr für das Erlernen von C, nur die Java-basher sollten sich mal neue Argumente überlegen.
Ich hab noch ein paar alte die was taugen ;)
z.B. Java ist nicht frei :D
Da kannst du jetzt natürlich sagen das ist dir egal - ok. Mir isses aber nicht egal :)
Was im ganzen sehr für Java - gerade als Lernsprache - spricht ist aber dass es sehr nett und in OOP zu programmieren ist. Da kriegt man viel schneller etwas funktionierendes und stabiles einer einigermassen vernünftigen Grösse hin als in C++ wo man sich erst durch Pointer- und Referenzenwälder kämpfen muss. Ganz zu schweigen von C... ;)
Nur wird es schon seinen Grund haben dass sich Java bei Desktopanwendungen nicht durchgesetzt hat.
MfG Peschmä
Java ist doch ohnehin heutzutage schon auf jedem Rechner installiert.
Hmm, bei mir gerade nicht.
Mit SWT programmiert man schon ganz einfach Oberflächen, die die API des Destktopmanagers, der lokal vorhanden ist, verwendet, ohne die Fenster selbst zu zeichnen.
Gerade mit SWT ist die Leichtigkeit des Programmierens von Java schnell dahin. Von "Einfach" kann da nicht unbedingt die Rede sein.
Der Geschwindigkeitsvorteil gilt heute nicht mehr, da die Virtuelle Maschine eigentlich nicht mehr bremst. Und ob dass jetzt 10 oder 8 ms dauert ist schnurz.
Vergleiche mal bitte OpenOffice (was schon langsam ist) mit NeoOffice (in Java geschrieben). Beides soll eigentlich dasselbe sein. Mit letzterem kann ich zumindest nicht wirklich arbeiten.
Bei normalen Anwendungen ist Deine Behauptung falsch.
Ich sage mal, Java kann man besser optimieren als C++.
Das ist wohl Wurst. Unerfahrene Leute können sicher viel Murks in C++ gestalten, aber optimieren geht da wesentlich besser. Oder weißt Du, wie man die Anwendung für genau einen Prozessor-Typ bereitstellt?
Die Plattformunabhängigkeit, das einfache Portieren, da spricht doch schon viele für Java. Ich bin auch noch immer sehr für das Erlernen von C, nur die Java-basher sollten sich mal neue Argumente überlegen.
Plattformunabhängigkeit? Ich hatte schon oft Java-Code, der nicht unter OSX lief. Bisher ist das mit Qt und C++ bei mir noch nicht vorgekommen. Dieses Argument schwindet immer mehr, weil es immer mehr Sprachen gibt, die das unterstützen.
Und nein, ich bin kein Java-Basher. Für serverlastige Dinge ist diese Sprache meine erste Wahl. Zum Lernen des OOP-Prinzips finde ich sie wunderbar, weil sich damit einfach schön und leicht funktionierender Code entwickeln lässt.
also ich bin auch irgendwie der meinung das java anwendungen lahm sind, allerdings merke ich das immer nur an spinchat sachen, eclipse läuft bei mir super
und jre ist doch bei den meisten mit drauf ... im vergleich zum .net framework
ich werde jetzt die nächsten tage mal die C# tutorials der C't durchmachen, habs schonmal ein bissl verwendet und es hat mir eigtl sehr gut gefallen, aber leider hat eben kaum jemand das .net framework2.0 und die anwendungen laufen auch nur wieder unter windows ...
ich hab schon probleme :(
Ich habs ja gewusst: Das ganze ist in einen Flamewar ausgeartet :D
z.B. Java ist nicht frei :D
Da kannst du jetzt natürlich sagen das ist dir egal - ok. Mir isses aber nicht egal :)
Noch nicht - solls aber werden: http://www.pro-linux.de/news/2006/9704.html
MfG Bischi
ich werde jetzt die nächsten tage mal die C# tutorials der C't durchmachen, habs schonmal ein bissl verwendet und es hat mir eigtl sehr gut gefallen, aber leider hat eben kaum jemand das .net framework2.0 und die anwendungen laufen auch nur wieder unter windows ...
Kaum jemand das .NET 2-Framework? Das wird doch schon von ner Menge Anwendungen benötigt. Also egal ob C++, Java oder .NET, die Technologien werden auf jedenfall nicht so schnell auslaufen. Mit den letzteren beiden ist GUI-Entwicklung sogar ziemlich fix möglich.
Gruss,
comrad
peschmae
26-06-2006, 18:04
Noch nicht - solls aber werden: http://www.pro-linux.de/news/2006/9704.html
So eine Meldung gabs schon letztes und vorletztes Jahr. Vorvorletztes ziemlich sicher auch ;)
Sun sind halt die Spezialisten im Marketing :D
Einmal sagen sie "wird wahrscheinlich GPL" dann "wird OpenSource" dann "wird Open" und dann "Open" sind wir ja schon - kann ja "jeder" am Java Community Prozess teilhaben ;)
Statistisch gesehen behaupt ich jetzt einfach mal dass das erst GPL oder vergleichbar lizenziert wird wenn Classpath komplett, aktuell, bugfrei und mit einer schnellen JVM versehen ist.
MfG Peschmä
Kaum jemand das .NET 2-Framework? Das wird doch schon von ner Menge Anwendungen benötigt. Also egal ob C++, Java oder .NET, die Technologien werden auf jedenfall nicht so schnell auslaufen. Mit den letzteren beiden ist GUI-Entwicklung sogar ziemlich fix möglich.
Gruss,
comrad
trotzdem hat es kaum jemand, wir gehn jetz mal nicht nur von "pros" aus, die meisten wissen ja noch garnicht was das .net framework eigtl ist ;) java dagegen wird oft mitgeliefert
naja ich habe das buch "handbuch der java programmierung" und die C# Tutorials aus der C't ... die mache ich jetzt durch und entscheide dann was ich will
peschmae
26-06-2006, 23:12
Wer liefert Java mit? Vielleicht lebe ich ja auch am falschen Ort - aber bei mir ist noch nie Java mitgeliefert worten :)
Tutorials werden dich allerdings, denke ich, bei der Entscheidung auch nicht wirklich weiterbringen. Weil am Anfang sind sich die Sprachen dann doch zu ähnlich. Und nachher auch immer noch ziemlich...
MfG Peschmä
ja nein ich glaub ich habe mich falsch ausgedrückt, aber die java webapplikationen kann man doch eigtl immer starten ;) zumindest an den rechner wo ich bisher war ;)
aber wenigstens hast du auch gleich einen schlauen satz gebracht: die sprachen sind sich am anfang sehr ähnlich und dann auch noch ;)
aber so ähnlich können sie sich ja dann auch wieder nicht sein ...
schade übrigens das die schweiz rausgeflogen ist :(
Du brauchst aber immer das Plugin. Ausserdem besteht Java aus deutlich mehr als diesen Web-Plugin (so wie du vorhin meintest, man müsse ja nur das Plugin als .msi mitliefern).
Wenn man es geschickt anstellt, kann man in Java auch anständige GUIs hinbekommen, sogar Spiele (Tribal Trouble von Oddlabs.com ist grad bei mir eingetroffen, genial!).
Unerfahrene Programmierer können hier aber natürlich genauso Murks machen wie bei jedem anderen Toolkit auch (ausgehend von Swing). Bei Swing merkt man es aber halt deutlicher, wenn die Anwendung lahmt.
Gruss,
comrad
Waxolunist
27-06-2006, 08:25
Zitat von peschmae: Wer liefert Java mit? Vielleicht lebe ich ja auch am falschen Ort - aber bei mir ist noch nie Java mitgeliefert worten
Novell z.B.
Auf Solaris ist es auch zumeist dabei.
Das jre zu installieren dürfte doch wohl kein Problem sein.
Aufgrund von JITs und anderen Sachen, ist Java nicht wirklich langsamer als C++, und ganz bestimmt nicht langsamer als .NET. http://www.javaworld.com/jw-02-1998/jw-02-jperf-p4.html
Java ist robuster. GC, einfaches MultiThreading und das Exceptionhandling lassen weniger Bugs in der Software zu. Für Spiele ist Java nicht geeignet.
Auf älteren PCs läufts auch nicht so gut. Aber auf modernen PCs bietet Java sehr viele Vorteile. Man sehe sich nur Eclipse an oder auf Servern JBoss oder Tomcat. Und wenn du z.B. Azureus als behäbig empfindest, dann weiß ich auch nicht, was dann als schnell empfunden wird.
Wer sich jetzt nicht die JVM von Sun zulegen möchte, der darf auch gerne die JRocktit oder die von IBM ausprobieren. Sun stellt lediglich die Referenzimplementierung her, welche auch zugleich die beste ist, auch wenn ich selbst in der Arbeit die von IBM verwenden muss.
Genauso ist Tomcat nur eine Referenzimplementierung.
ist im IE nicht so eine art JRE nur aus dem hause MS dabei ?
also wie gesagt, ich probier jetzt mal C# und Java aus und wenns beides aus meiner Sicht keine vorteile zu C++ bietet dann werde ich sogar C++ benutzen,
interessant ist ja auch das die nächste windows shell die .net sachen nutzen wird ... für webapplikationen werde ich wohl ohnehin bei PHP bleiben
Residuen
05-07-2006, 21:39
Hi,
ich habe gestern erst eine heiße Diskussion gehabt, welche Sprache nun
besser oder schlechter ist.
Alles in allem kann man doch sagen, das jede Sprache seine Vor- und
Nachteile hat.
Java ist gewiss die platformunabhängiste von allen, solange man nicht
zu sehr auf Systemnahe Anwendung mit dem native-Interface abgewiesen ist.
Einmal geschrieben, überall läufts (nur beim Mac hapert es schon mal, vor allem
wenn man mit Java3D oder vtk arbeitet).
Swing finde ich, bei guter Programmierung, auch inzwischen recht zügig, es
gibt einige recht fixe Swing basierte Anwendungen die den Vergleich mit
anderen nicht scheuen müssen.
Ein Vorteil von C++ ist sicherlich, dass es viele grafische API's gibt. Da
ist für jeden Anwendungsfall immer das passende zu finden. gerade QT hat
mich überrascht, wie (relativ) einfach es zu erlernen ist. Zudem ist es in
seiner Ausführung auch sehr schnell. Der Nachteil ist natürlich, dass es nicht
so einfach ist, seine Software mal eben auf einem anderen System ans
laufen zu bekommen. QT in der neuen 4er Version hat dieses manko jedoch
deutlich reduziert. Auch GTK+ (ebenfalls kostenlos) ist "erlernbar".
Zu C# kann ich nicht viel sagen, versierte Softwareentwickler aus
meiner Diskussion sind aber der Meinung, dass die Tatsache das Microsoft die
besten Aspekte aus Java und C++ in C# integriert hat, das große Plus von C#
sind.
Letztendlich war unsere Meinung, das Java die einfachste Sprache zum
erlernen ist und den meisten Anforderungen voll und ganz genügt.
Gruß
Residuen
danke auch für deine meinung ;)
ich habe mir jetzt eine dvd zu Java in ebay ersteigert und bin in mom am lernen
mitte juli bekomme ich dann die dvd zu C# und evtl kauf ich mir die nächsten wochen noch ein buch zu C++
dann habe ich bei allen mal einen einstieg und etwas grundwissen und kann dann immernoch sehen was ich machen will
nicht zu vergessen bei C# ist das man damit auch Webseiten machen kann (geht natürlich mit JSP auch ;) )
peschmae
06-07-2006, 11:23
Ich würde dir eigentlich eher das Gegenteil empfehlen. Lern *eine* der Sprachen richtig. Dann kennst du die allgemeinen Konzepte (OOP, Templates, ...).
Wenn du das mal kannst ist der Umstieg zu einer anderen Programmiersprache recht einfach. Das einzige was sich ändert ist ein bisschen Syntax und die Namen der Funktionen/Klassen.
Ausnahme: Umstieg C#/Java nach C++ - da kommt dann schon einiges dazu (Pointer, Speichermanagement (Stack <-> Heap), unverständliche Compilerfehlermeldungen und jede Menge Subtilitäten - aber genau wegen diesen Sachen würde ich eher nicht mit C++ anfangen...)
MfG Peschmä
hast mich falsch verstanden, ich will jede sprache nur mal ansehen und kleine sachen damit machen und die die mir am besten gefällt lerne ich richtig
zum thema RT's und unkompliziert:
bei uns gibts musterclients, und da iss ne aeltere version von java drauf. sobald da irgendwas moderneres installieren will, sprengts die hotline, weil das kein user standardmaessig darf ^^
ok, eigene rt in eigenem verzeichniss ... wird durch die systemeinstellungen ueberschrieben und meistens zieht der trotzdem dann die javart.dll ausm system32 an ^^ nichts funkt mehr.
installiert man die javart von sun oder blackdown, geht alles, nur darf das keiner / admin aufwand iss zu gross, wenn jeder admin redchte zum installieren braucht.
.Net 2.0 setzt service Pack 2 vorraus. service pack 2 iss bei uns ned freigegeben im unternehmen. gibt wohl in gewissen bereichen eklatante sicherheitsprobleme (wobei ich mich da frage warum nicht auch beim sp1 ^^)
Also das so runtimes unproblematisch sind, halt ich mal fuern geruecht ^^ spaetestens in richtig grossen unternehmen ...
Aber cobol und Fortran programme laufen hier noch super ^^
Ciao ...
Ciao ...
Corcovado
14-07-2006, 21:16
Meine Meinung - Jede Sprache hat ihr Einsatzgebiet und konkurriert in den Ueberschneidungsgebieten mit anderen Sprachen mehr oder weniger.
Java - Ich wuerde Java v.a. fuer kleine bis mittelgrosse Projekte einsetzen, bspw um schnell mal was Fenstermaessiges zusammenzubauen fuer die eigene Firma, Facharbeit, Diplomarbeit etc. Java ist oft leider nicht ganz so effektiv und blaeht fasst immer sehr auf. Java ist von SUN und afaik nicht mal allg. Standartisiert. Java hat sich schnell entwickelt, weshalb bspw die Libraries auch verhaeltnismaessig viel unausgegorenen Schrott enthalten (bspw Vector), Dinge werden eingefuerht mit einer Version. Befehle und Schleifen (bspw for each Schleife in 1.5 oder diese Java-Template aehnlichen Dinger, bspw ArrayList<String>) kommen mit der naechsten und wegen Kompatibilitaet, wird das alte halt nur discourraged oder obsolete wird, wenn das mal anfaengt richtig rausgenommen zu werden, wirds noch richtig lustig - jedenfalls macht es das lernen/schnell mal nachsehn wie was geht oft einigermassen unuebersichtlich. Serialization ist mit jeder weiteren Version irrsinnig, etc. Grafik, afaik wird jedem geraten das mit Swing zu machen, wenn kein besonderer Grund besteht auf awt oder swt zurueckzugreifen, sh dazu auch folgendes:
http://www-128.ibm.com/developerworks/opensource/library/os-swingswt/?ca=dgr-lnxw01WhichGUI
Bei Swing muss ich allerdings schon sagen, dass bspw GridBagLayout ohne GUI Builder fast nicht zu haendeln ist. Ach ja, Java ist nicht plattformunabhaengig, die JVM ist eine Plattform, alles was mit der speziellen Konfiguration des jeweiligen Rechners zu tun hat, kann mit Java zum Riesenalptraum werden, bspw das einbinden von Fremdcode der dann in C/C++ geschrieben ist. Dafuer muss man mit Runtime und Java Native Interface anruecken und das ist schon bei kleineren Anwendungen nur schwer zu debuggen. Der naechste Nachteil den ich damit gerade erlebt habe ist, dass entpsrechende Pfade dann nur der JVM uebergeben werden koennen, zusaetzlich muss eine Systemvariable gesetzt werden - all das kann nicht von Java-Code aus geschehn, Setup dateien sind auch mit der neueren Version nicht eingefuehrt worden (soviel zum Thema, das haben sie noch vor..). SUN ist allerdings afair fuehrender Server Hersteller, ich hoere auf diesem Gebiet von jedem nur gutes ueber Java. Es soll Sachen geben die in Java schneller ablaufen als in C++, Java soll bei vielem gleich schnell sein wie C++. Java Code kann man wirklich schnell "erleben", dh man kann schnell und einfach Fenster erstellen und mit diesen etwas anfangen. Java zwingt angaenger zu einem gewissen Stil beim programmieren, was in Java Regel ist, kann man in C++ schon oft umgehen, gerade am Anfang, wenn man das alles noch nicht so blickt, sagt man sich dann oft, warum so kompliziert, das geht doch auch so, bspw mit haufenweise globalen Variablen, Konstanten und gerade das "Zeiger-Ding" pass-by-reference, pass-by-value. Ich finde es allerdings oft sehr unuebersichtlich - wenn man sich an Zeiger gewoehnt hat, sieht man was da steht dereferenziert oder nicht, in Java geschieht das hintenrum und man weiss es halt irgendwann. Garbage Collection ist oft ne praktische Sache. Ausserdem ist der Support von SUN und die Moeglichkeiten was nachzulesen gigantisch, Java ist die einzigste Sprache bei der ich noch nie ein Buch gebraucht habe es gibt wirklich alles im Netz und das ist dann auch aktueller als jedes Buch.
C# - ist gross gehyped worden und scheint v.a. bei kleineren Dingen Boden gewonnen zu haben. Afaik hat es ein aehnliches Anwendungsgebiet wie Java, nur dass es eben auf .net aufbaut. Der Byte-Code soll angeblich um einiges effektiver sein als der von Java und naja Microsoft ist der Marktfuerher in seinem Bereich. Die Ressourcen was eigenes brauchbares zu liefern, samt Unterstuetzung des hauseigenen Betriebssystems versprechen imo einiges, gerade bei diesen Kontroversen die es damals mit SUN und Java gab bei OLE und COM. Ich halte Java dennoch momentan fuer etablierter, dh auch, dass es vllt um einiges einfacher ist im Zweifelsfall Hilfe zu bekommen, usw. Nja die Wahl von C# zieht wohl gleichzeitig die Wahl des OS mit sich. C# habe ich noch nie wirklich benutzt, soviel zu meiner Kompetenz mit C#.
C++ - afaik mal als Nachfolger von C geplant, ist mittlerweile standartisiert und immer wieder nachstandartisiert worden. Es gibt wohl noch einiges an Arbeit zu tun. Vorteil ist es gibt haufenweise Libraries, man kann auch sehr tief in der Hardwareebene runtergehn etc. Auf Grund der Komplexitaet wuerde ich allerdings bei kleinen Projekten eindeutig zu Java raten. Der Lernfortschritt ist in C++ wohl am langsamsten und man braucht schon einige Zeit und muss vieles verstanden haben um mal ein Fenster zu machen (man muss die Sprache wirklich erst mal erlernen bevor man sich an ne Library bspw MFC, QT, etc wagen kann). Ist man jedoch in C++ soweit hat man wirklich was gelernt, ich finde man merkt das oft wenn man Diskussionen in Java Boards liest oder auf C/C++ Boards. Zusaetzlich sollte man sich bei C++ eben noch mit der STL, der spracheigenen Library beschaeftigen - das alles dauert, wirklich. Dabei gibt es auch einige Tuecken, wie man gewisse Zugriffe etwa implementiert, Buecher wie "More Effektiv C++", etc sind imo dringend anzuraten. Das Debuggen kann aufgrund der Moeglichkeiten deutlich schwieriger sein, v.a. wenn man sich nicht an "Guten Stil", der Debuggen erleichtern soll haelt. C++ kann auch schwerfaellig sein, hier kommt noch dazu, dass man sich mit seinen Werkzeugen, den Compilerflags etc auseinander setzen muss um Dinge zu optimieren usw usf. Qt oder GTK+ gibt es, aber ob die da eingesetzt werden wo man arbeitet? Oft laufen dort auch Windows Maschinen und C++ ist oft eine indirekte Wahl von Windows, da man ja idR fuer eine Maschine programmiert, zumindest wenn man die Libraries des "Marktfuehrers" verwendet. Ach ja, wie war das mit dem Sich ins Bein schiessen, wenn man das mit C macht - ok, mit C++ ist das ganze Bein ab! Will heissen, in C++ kann bei unsachgemaesser Anwendung wirklich undefiniertes (und undefiniert heisst wirklcih _undefiniert_) Verhalten auftreten!!
Imo gibts eh ueberall nur Nachteile, aber man kann auswaehlen ob man den einen oder einen andern Hasenfuss will. Sicherlich sehn andere das wieder anders, das war nur meine Meinung zum Thema. :)
auch dir danke für deine meinung ;)
bin leider die letzten tage zu nix gekommen weil ich nur bei meiner freundin war
naja also ich werd morgn mal wieder etwas angreifen und meine java kenntnisse erweitern und dann mal weitersehen
Christoph
09-08-2006, 08:51
Ein ernstzunehmendes Problem aus Sicht der Anwender der Software sind Abhängigkeiten von weiterer Software oder vorzuinstallierenden Frameworks. Die von Entwicklern oft zu hörende Aussage, das gerade von ihnen verwendete Framework sei in der von ihnen verwendeten Version "heutzutage standardmäßig überall installiert" ist mehr arrogant als hilfreich. Dieses Problem betrifft Java genauso wie .Net, Tcl/TK oder sonstige Frameworks.
Wenn Du also ernsthaft willst, dass andere Deine Software benutzen, dann minimiere die Abhängigkeiten. Aus diesem Grund bin ich für GUI-Anwendungen mittlerweile bei C++ mit FLTK gelandet. Da ist eine normale Anwendung 200kB groß ohne irgendwelche zusätzlichen Abhängigkeiten oder zusätzlich zu installierende DLL's.
Wenn Du aber nur Programme für den eigenen Gebrauch schreibst, dann ist das egal, da Du ja auf deinen Rechner vollen Zugriff hast.
falke2203
09-08-2006, 12:28
Hmm... Ein immer wieder spannendes Thema. Um es gleich vorweg zu nehmen - ich persönlich bin konsequenter Verfechter von Java. Das mag vielleicht darin begründet sein, dass Java meine erste "Hochsprache" war, und ich bisher recht wenig Berührungspunkte mit C/C++ hatte.
Wenn es aber darum geht, sich mit den Konzepten der Objektorientierung auseinanderzusetzen, was ja prinzipiell erst mal völlig unabhängig von der verwendeten Sprache ist, kann ich in der Tat auch nur zu Java raten, da vor allem die Syntax und spracheigene Konzepte wesentlich einfacher zu erlernen sind als bspw. in C++. So zumindest meine Erfahrung.
Wenn man dann OO Programmierung an sich verinnerlicht hat (und bei diesem Lernprozess kann ich nur empfehlen sich mit Literatur von bspw. T. Budd und E. Gamma auseinander zu setzen), ist immer noch Zeit sich zu entscheiden auf welche Sprache man sich dann weiter konzentriert. Alles weitere, und da unterscheiden sich die Hochsprachen alle nicht voneinander, beruht im Wesentlichen dann auf dem kennenlernen von irgendwelchen Bibliotheken, die verwendet werden um ein konkretes Ziel zu realisieren.
Natürlich gibt es viele Faktoren, die die Wahl der geeigneten Sprache beeinflussen. Performance gehört meiner Erfahrung nach inzwischen allerdings nicht mehr dazu. Da liegt es tatsächlich mehr am Entwickler als an der Sprache.
Ein ganz entscheidender Faktor ist auf jeden Fall die Motivation. Wenn eine Sprache bspw. vor dem Hintergrund einer besseren beruflichen Perspektive gelernt wird, ist einem, je nach gewünschtem Berufsbild, die Entscheidung eigentlich auch schon abgenommen worden. Interessanter Weise lassen sich die beiden Märkte B2C und B2B was die Verwendung von Sprachen für die Entwicklung angeht recht gut voneinander abgrenzen: Während Endanwender-Applikationen meist plattformspezifisch übersetzt werden, ist im B2B-Bereich inzwischen überwiegend Java im Einsatz.
Übrigens, Spiele kann man sehr wohl in Java programmieren, und zwar sowohl performant als auch ansprechend. Leider wird oft vergessen, dass es neben DirectX auch noch sowas namens OpenGL gibt... Bevor jetzt jemand aufschreit dass OpenGL eine C-Implementierung ist - wie oben erwähnt, am Ende geht es immer nur um die Verwendung der richtigen Bibliotheken :)
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.