JAVA/C#/C++



  • UNeverNo schrieb:

    Hab ein paar Fragen zu den o.g. Programmiersprachen.
    [list=1]
    [*]Hat jemand zufällig Geschwindigkeitsvergleiche zwischen den Programmiersprachen zur Hand? 🙂

    Da gab´s mal ein Test bei der CT.
    C++ war bei der strukturierten Programmierung am schnellsten. Wenn es objekorientiert programmiert wurde, waren C# und Java schneller als C++. *duck und wegrenn* Kommt natürlich auch auf den Compiler drauf an. Es wurden der Borland C++ Builder und der MS-Compiler getestet.

    Liebe Grüße
    Real



  • Der c't Vergleich war soooowas von inkompetent, das gibts nicht. Ich hab mir mal den Sourcecode runtergeladen. Der Autor des Artikels hat sowohl im Konstruktor als auch in den Methoden alle String-Parameter by-Value übergeben! 😮 😡 D.h. bei jedem Konstruktor und jeder Methode wurden erstmal alle Strings mehrfach sinnlos kopiert. Und ganz ehrlich, dafür das das gemacht wurde, war C++ recht schnell. Denn die anderen Sprachen machen default-mäßig alle Parameter mit Pointerübergabe.

    Der Autor hätte in C++ schön alles by-Reference oder mit Pointern übergeben sollen, dann wäre die Kuh geflogen, der Bär hätte gesteppt! 😃



  • Hi Artchi!
    Kannst du das mal so optimieren, wie du es gemacht hättest und den Sourcecode von Java und C# auch gleich mal ausprobieren und uns die Ergebnisse posten?
    Fände ich ziemlich interessant, was dabei rauskommt.

    Liebe Grüße
    Reality



  • Ich nicht... 🙄



  • Ich auch nicht. 🙄



  • Es gibt sicher noch ein paar andere denen es interessieren würde.

    Liebe Grüße
    Real



  • Ist es möglich ein JAVA-Programm zu einer ausführbaren Datei zu machen oder muß man immer das SDK mitliefern, damit das Programm läuft?

    es gibt auch Java-Compiler, zum Beispiel den GCJ, der ist ein GCC Front End und frei erhältlich

    Hat jemand zufällig Geschwindigkeitsvergleiche zwischen den Programmiersprachen zur Hand?

    Man kann keine Programmiersprachen vergleichen nur Implementierungen von Programmiersprachen 🙄 und alle Tests die ich in die Richtung gesehen habe, waren ziemlich kacke.

    btw. sucht man Programmiersprachen auch nicht nach Geschwindigkeit aus, in den meisten Fällen kommt das eh aufs gleiche raus.



  • Ist es möglich ein JAVA-Programm zu einer ausführbaren Datei zu machen oder muß man immer das SDK mitliefern, damit das Programm läuft?

    Frage wurde bereits beantwortet. Für xxx.exe nimmt man C++.

    C# läuft doch nur unter Windows, oder? Alles andere sollte mich bei M$ wundern

    http://www.mono-project.com/about/index.html
    Mono is a comprehensive open source development platform based on the .NET framework that allows IT and ISV developers to build Linux and cross-platform applications with unprecedented productivity. Mono's .NET implementation is based on the ECMA standards for C# and the Common Language Infrastructure.

    Hat jemand zufällig Geschwindigkeitsvergleiche zwischen den Programmiersprachen zur Hand?

    Wichtiger ist die Bedeutung und die entsprechende Nachfrage.
    http://www.gulp.de/kb/tools/gulpometer/pdb.html#Programmiersprachen
    Java liegt knapp vor C++, wird aber immer bedeutender.

    Achso last, but not least hat jemand ein paar online-Ressourcen zu C++ für mich parat?

    http://www.cpp-tutor.de/
    http://tutorial.schornboeck.net/
    http://de.geocities.com/throni3/
    http://www.cprogramming.com/tutorial.html
    http://www.codeguru.com/Cpp/
    http://www.codeproject.com
    http://www.robsite.de/tutorials.php?tut=c



  • @kuh_die_macht_muh

    1. Mono ist nicht 100% kompatibel zu dem MS dotNET! Da MS die Datenbank, GUI und Websachen nicht standardisiert hat.

    2. GULP ist nicht representativ und zweitens ist es jeden Monat anders, mal ist C++ vorne, mal Java und manchmal sogar COBOL... 🙄



  • kingruedi schrieb:

    btw. sucht man Programmiersprachen auch nicht nach Geschwindigkeit aus, in den meisten Fällen kommt das eh aufs gleiche raus.

    Das sehe ich anders.
    Für viele Anwendungen ist Geschwindigkeit ein Kriterium.
    Und selbst, wenn das natürlich auch von der Güte des Compilers abhängt (in dem Fall nimm man halt den Besten, den man sich leisten kann), schaut man bei der Wohl der Sprache doch auch darauf, wie gut(effizent) sie mit dem angestrebten Framework/Api zusammenarbeitet.
    Wäre das nicht so, würde jeder nur noch Plattformunabhängig programmieren.



  • Ahja. Ich schreibe mein Paint natürlich in Assembler, weil das ist ja schneller als C#.



  • @Gonzo
    quatsch, 99% der Anwendungen die entworfen werden sind Geschwindigkeits unkritisch (natürlich sollten sie flüssig laufen). Das ist totaler Blödsinn.



  • Das ist wohl eine pers. Definition was man unter Geschwindigkeitskritisch versteht, oder?

    Ich entwickel gerade für die Produktionsplanung eine Anwendung, wo auch Grafikfunktionen drin sind (so mit Layering, Vectorgrafik usw.). Nun, dazu ist es nötig 2D-Zeichnungen reinzuladen. Der Witz an der Sache ist, das Java für eine TIFF-Datei auf einem Pentium4 mit 2 GHz mehrere Sekunden benötigt, um diese entsprechend zu decodieren. Diese Grafik ist ca. 1600x1200 groß und s/w.

    Jedes andere billige Freeware-Programm in nativ Windows macht das schneller. Jetzt darf ich den Benutzern verklickern, das es am Java liegt. Aber Java als Entwicklungsplattform trotzdem gut ist. 😃 😉 Klar, in der normalen GUI mag sowas wie Java i.O. sein. Aber sobald es an größeren Datenmengen mit ein paar Algorithmen geht, bekommt der User Wartezeiten im Sekundenbereich zu sehen, wo nativer Code einen Wimpernschlag benötigt.

    Klar, es ist nicht kritisch, aber doch irgendwie traurig.



  • Optimizer schrieb:

    Ahja. Ich schreibe mein Paint natürlich in Assembler, weil das ist ja schneller als C#.

    Warum übertreibst Du so?
    Ich habe gesagt, für "viele" Anwendungen.
    Und eben weil ich diese Art Kommentare kenne, habe ich bewusst die Zusammenarbeit mit dem Framework mit einbezogen.
    Und für ein Zeichenprogramm, wie Photoshop, wurden Zeitweise übrigens extra PCI-Karten verkauft, die nichts weiter konnten, als die Arbeit mit diesem Programm zu beschleunigen.
    Für mich ist Geschwindigkeit nicht das einzige Kriterium, aber immerhin ein Wichtiges.
    Und selbst wenn ein einzelnes Programm gerade so noch flüssig läuft, gibt es einige Leute, die mehrere Programme nebeneinanderlaufen lassen möchten und trozdem noch Leistungsreserven haben möchten.
    Aber nein, warum sich darum scheren.Dazu gibt es ja Motherboards mit mehr als einer CPU.



  • Ich finde es einfach übertrieben, wie schon von Anfang an auf die Performance geachtet wird. Da kommen (jetzt nicht auf dich bezogen!) totale Anfänger daher und sagen: "Hey, welche Programmiersprache soll ich lernen? Ich habe gehört, dass C++ am schnellsten ist. Stimmt das?"
    Das ist doch lächerlich, solchen Leuten muss man vor Augen führen, dass der bei weitem allergrößte Teil der Performance von dem Typen vorm Monitor abhängt. Natürlich glaub ich das schon mal, wenn in Java die Swing-GUI langsam ist, etc. Aber es gibt immer eine "bessere" Lösung (wenn man C++ jetzt mal als "nicht gut" darstellen würde), als alles in C++ oder C zu coden. Du kannst bestimmte Teile Native coden. Die GUI ist z.B. in C#.Net auch keineswegs irgendwie träge.
    Ich finde solche generellen Aussagen einfach für den Allerwertesten. Vielleicht spare ich mir auch die halbe Entwicklungszeit und dafür braucht mein selbstgebauter ICQ-Client ne Sekunde länger zum Starten. Dafür läuft er auch auf Linux. Über sowas denkt aber keiner nach. C++ ist schneller (diese Verallgemeinerung ist sowieso falsch), also code ich C++. 🙄



  • Artchi schrieb:

    Der Witz an der Sache ist, das Java für eine TIFF-Datei auf einem Pentium4 mit 2 GHz mehrere Sekunden benötigt, um diese entsprechend zu decodieren. Diese Grafik ist ca. 1600x1200 groß und s/w.

    Da es in der Standardbibliothek von Java keine Möglichkeit gibt, TIFFs zu laden, würde mich interessieren, wie du das machst. JAI? Eigene Implementation? Ganz andere Bibliothek?

    Grundsätzlich liegt so ein Problem nicht an Java, sondern an einer schlechten Implementation des Algorithmus. Wenn dir die genutzte Bibliothek zu lahm ist, dann nutze halt ne andere oder schreib das ganze selbst. Wenn es schon dein eigener Code ist, dann optimier ihn mal. Vielleicht hast du einfach vergessen, irgendetwas zu puffern oder so. Wer weiß.



  • kingruedi schrieb:

    2. GULP ist nicht representativ und zweitens ist es jeden Monat anders, mal ist C++ vorne, mal Java und manchmal sogar COBOL... 🙄

    Hmmm... COBOL war lange nicht mehr vorne.

    Es mag sein, dass Gulp alleine nicht repräsentativ ist, aber wenn du dir diverse Jobbörsen etc. im Netz anguckst, dann wirst du schnell feststellen, dass an Programmiersprachen-Skills in erster Linie Java und C++ gesucht werden. Alle anderen folgen mit einigem Abstand.



  • Wir streben ein rundenbasierendes Strategiespiel an und da interessiert Geschwindigkeit schon...ich habe keine Luste mehrere Minuten auf die Züge der AI zu warten (Civilization 3 (hat das wer?) läßt grüßen...)



  • UNeverNo schrieb:

    Wir streben ein rundenbasierendes Strategiespiel an und da interessiert Geschwindigkeit schon...ich habe keine Luste mehrere Minuten auf die Züge der AI zu warten (Civilization 3 (hat das wer?) läßt grüßen...)

    Ihr wollt also Civilization 3 programmieren und wisst nicht mal welche Programmiersprache zu verwenden??

    Na dann viel Spass! Post doch in 5 Jahren noch mal, wie weit ihr seid... 🤡



  • Nö nicht Civ3, was neues. Und wir wissen schon, daß es ein paar Jährchen dauern wird 🤡

    Aber was wäre für die konkrete Anwendung nun das Beste?


Anmelden zum Antworten