JAVA/C#/C++
-
UNeverNo schrieb:
Mono
Zu dumm dannach zu suchen?
Mein Gott...
-
UNeverNo schrieb:
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?
Das SDK ist das S.DEVELOPMENT.K - zum Entwickeln (!) von Anwendungen!
Zum Ausführen reicht natürlich die Runtime - einfach auf diese tolle bunte Seite verlinken: http://java.com/de/
EXE-"Compiler" lohnen sich nicht.UNeverNo schrieb:
C# läuft doch nur unter Windows, oder? Alles andere sollte mich bei M$ wundern
-
Danke Sgt.
Warum lohnen sich exe-compiler nicht? Wird der Code aufgebläht? Oder das Programm langsamer?
-
UNeverNo schrieb:
Danke Sgt.
Warum lohnen sich exe-compiler nicht? Wird der Code aufgebläht? Oder das Programm langsamer?
Langsamer sicher nicht. Im Prinzip wird da aber nur die ganze Java API reingepackt und mit einer Runtime versehen, d.h. aus Deiner 20 KB class-Datei werden 9 MB - fast so groß wie die Runtime zum Runterladen.
Ab der 2. EXE lohnt sich das also nicht mal mehr, ausserdem ist das nicht der "saubere" Weg.
Zudem hat man mit "Java WebStart" wirklich exzellente Möglichkeiten, die Anwendung direkt auf die Homepage zu stellen, und herunterladbar und ausführbar zu machen, per Klick (kein Applet!), als Beispiel bei installiertem JWS z.B. http://www.wurmonline.com/ <- Einfach links bei "Play Wurm Online" klicken...
-
Man braucht ja nur eine funktionierende Manifest-Datei in das JAR packen und schon kann der User per Doppelklick die JAR-Datei unter windows gaaanz normal starten. Natürlich muß die Runtime einmalig installiert sein, aber das muß der User halt nur einmalig machen.
Insofern ist ein EXE-Compiler (oder wie sich der Kram auch immer nennen soll) völlig sinnlos.
-
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++.