CapFuture schrieb:
Vom Argument "Heutzutage haben alle xyz Ghz, CPU Cyklen sind billig" halte ich im allg. auch nix. Wenn du an deutschen Schulen gehst, wirste haufenweise rechner <500 Mhz finden die alle aktiv gebraucht werden.
Wenn man .Net wirklich verbreiten möchte, so muss es für die Schulen/Lehrer attraktiv werden. Mir ist bewusst, dass Lehrer bestenfalls 10% soviel wissen wie ein Schüler und davon bestenfalls die hälfte richtig ist, aber man kann schlecht auf nem 233er P2 mal ein .Net programm vorstellen... Java geht da noch, aber wird bei etwas komplexeren Programmen auch schon zur qual.
Da hilft es auch nicht, dass das Programm beim 2. oder 3. mal schnell läuft, dafür aber den Ram vollschreibt...
Glaubst du wirklich, dass sich Microsoft oder Sun um die "Entwickler" an deutschen Schulen scheren? .net und Java sind nix für kleine Spielchen sondern fürs Big Business wo Programmierer 1000€ am Tag kosten können. Die müssen auch entsprechend schnell
und vor allem im Team programmieren können. Da interessieren doch keine Schüler/Lehrer, mit denen man nichtmal besonders viel Geld verdient.
FHs sind schon eher interessant, sind aber auch entsprechend ausgestattet.
Ich finds auch nicht besonders gut einfach leistungsfähigere Hardware unnötig zu beschäftigen aber wer in diesem schnelllebigen Geschäft mithalten will muss schnell entwickeln. Erfahrene Leute schaffen das mit C++ auch aber die ganzen Fachinformatiker (no offense) haben nicht genug Zeit um die Erfahrung zu sammeln bei diesen Anforderungen.
>C/C++ <-- Teilweise doch schon betagt (einfaches Bsp. Strings), schnell, für Zeitkritische anwendungen tauglich
Husky hat schon auf std::string hingewiesen, ist fast schon flexibler als java.lang.String und deutlich schneller sowieso. Bei reinem C ist das schon ein Hickhack aber mit C werden überwiegen nur noch die richtig systemnahen Sachen gemacht, wo es auf jeden einzelnen Takt ankommt.
Du solltest C und C++ nicht über einen Kamm scheren. C ist besser lesbares Assembler.
C++ ist vollständig objektorientert, lässt sich aber auch als C missbrauchen.
>Java <-- modern, sehr leicht portierbar, langsam, defizite in der GUI, (GC)
Was meinst du mit leicht portierbar? Die VM/JRE? Die ist nicht sooo leicht portierbar.
Langsam auch nicht unbedingt. Ok, langsamer als nativer Bytecode (ob C, Assembler oder was auch immer) aber dennoch ist das Framwork effizient designt.
Vor allem spricht für Java die Typsicherheit (ob man die toll findet steht auf einem anderen Blatt), die Plattformunabhängigkeit (die mit dem 1.5er Release nochmal deutlich besser wurde) und die Ausführbarkeit im Browser als Applet. Natürlich hats noch ein paar andere Tugenden und Nachteile, soll aber auch nur kurz angerissen sein.
Bei der GUI hat die 1.5er jetzt stark nachgelegt (u.a. OpenGL Beschleunigung von 2D Grafik).
Und wie bereits erwähnt gibt es SWT von IBM, welches auf die System Widgets zugreift und damit nochmal um Längen schneller ist als Swing.
Wenn man sich ein wenig mit Java GUI Programmierung auskennt, kann man hochperformante Grafik erzeugen. Nicht umsonst gibt es ein Java Media Framework für Mediaplayer und MP3 De/Encoding...
>C# <-- modern, effizienteres verhalten (Von MS für MS), nicht wirklich portierbar
Im Endeffekt für mich immer noch das gleiche wie Java nur von MS für MS wie du richtig schreibst.
CapFuture schrieb:
Was bleibt ist die erkenntnis, dass man immer das nehmen sollte, was das problem schnell (programmiertechnisch) und effizient für eine bestimmte zielgruppe löst. Alles kann man leider nicht haben...
Wenn du mit effizient lösen den Aufwand des Programmierers meinst, bist du mit Java und .net bei komplexeren Sachen sicherlich besser dran. Einfache Sachen würde ich einfach weils schneller ist in C++ umsetzen. Natürlich auch solche wo es auf das letzte Bisschen Performance ankommt.
Einsatzbereiche wo std::vector schon als zu langsam gilt.
Ansonsten noch einen guten Rutsch ins neue Jahr...
@Siberian Husky: .net exe mit mono... Ich denk schon, ansonsten wäre das Klassenziel verfehlt

Zumindest wenn du kein GUI drinhast, da hat mono einen Mix aus GTK+ und eigenen Klassen zusammengebaut soweit ich mich erinnere.
edit in blau