Alternative zu Java
Dmitri Rettig
- sonstiges
Hallo,
ich will ein Programm erstellen, das sowohl unter Linux, als auch unter Windows und Mac OS lauffähig ist.
Ich habe schon angefangen am Programm zu basteln, und zwar mit Java. Allerdings dauert es über zwei Sekunden, bis es eine kurze HTML-Datei eingelesen, diese auf dem Bildschirm ausgegeben [keine grafische Oberfläche, sondern mit System.out.print()] und in einer anderen Datei abgespeichert hat. [Ich wollte lediglich die Ein- und Ausgabetechnik von Java testen, also nicht lachen, weil das oben beschriebene Progrämmchen so billig ist].
C wird von Linux unterstützt, und von Windows glaube ich auch (Mac OS keine Ahnung). Allerdings will ich eine Objektorientierte Programmiersprache benutzen, und C ist hier nicht die beste Wahl.
C++ ist zwar nicht sooo objektorientiert wie Java, ist aber besser als C. Sind C++ Programme unter Linux, Windows und Mac OS lauffähig? So ohne weiteres?
Und hat man mit diesen Programmiersprachen die Möglichkeit, auch grafische Oberflächen zu erstellen?
Gibt es andere Programmiersprachen, die für mein Vorhaben geeignet sind? Ich will noch betonen, dass ich mit Programmiersprachen auch solche meine, also nicht Visual Basic (was ja sowieso unter Linux nicht läuft) oder Delphi o. ä.
Oder ist Java wirklich die beste Lösung?
MfG Dmitri
hallo Dmitri,
ich will ein Programm erstellen, das sowohl unter Linux, als auch unter Windows und Mac OS lauffähig ist.
Das heißt, es soll _exakt_ dieselbe Datei laufen? Das ist nicht hinzukriegen, weil "Programme" unter Windows nun einmal EXE heißen, was für LINUX egal ist
Ich habe schon angefangen am Programm zu basteln, und zwar mit Java.
JAVA ist _eine_ Möglichkeit, ja
C wird von Linux unterstützt, und von Windows glaube ich auch (Mac OS keine Ahnung).
C ist ein Programmiersprache. Im Ergebnis des Compilerdurchlaufs kannst du auf allen drei Plattformen lauffähige Applikationen erhalten
C++ ist zwar nicht sooo objektorientiert wie Java, ist aber besser als C. Sind C++ Programme unter Linux, Windows und Mac OS lauffähig?
Ja. Aber wie kommst du zu der Einschätzung, C++ sei "nicht so objektoirientiert"? JAVA ist sozusagen als "Gegenentwurf" zu C entwickelt worden
Und hat man mit diesen Programmiersprachen die Möglichkeit, auch grafische Oberflächen zu erstellen?
prinzipiell ja. Es kann auch hier wieder davon abhängig sein, welche Bibliotheken dir dein Compiler auf der entsprechenden Plattform zur Verfügung stellt. Visual C++6, womit allerhand WINDOWS-Bestandteile gebaut worden sind, hat da ein paar Besonderheiten
Gibt es andere Programmiersprachen, die für mein Vorhaben geeignet sind?
TCL/Tk käme noch in Frage, das ist extra für solche Zwecke entworfen worden.
Oder ist Java wirklich die beste Lösung?
Das hängt sehr stark davon ab, was deine Applikation können soll
Grüße aus Berlin
Christoph S.
Hallo,
ich will ein Programm erstellen, das sowohl unter Linux, als auch unter Windows und Mac OS lauffähig ist.
Das heißt, es soll _exakt_ dieselbe Datei laufen? Das ist nicht hinzukriegen, weil "Programme" unter Windows nun einmal EXE heißen, was für LINUX egal ist
Ich weiss, dass ich nicht die selbe Datei verwenden kann. Aber ich würde gerne den gleichen Code verwenden, und für das jeweilige Betriebssystem compillieren.
Ich habe schon angefangen am Programm zu basteln, und zwar mit Java.
JAVA ist _eine_ Möglichkeit, ja
C wird von Linux unterstützt, und von Windows glaube ich auch (Mac OS keine Ahnung).
C ist ein Programmiersprache. Im Ergebnis des Compilerdurchlaufs kannst du auf allen drei Plattformen lauffähige Applikationen erhalten
C++ ist zwar nicht sooo objektorientiert wie Java, ist aber besser als C. Sind C++ Programme unter Linux, Windows und Mac OS lauffähig?
Ja. Aber wie kommst du zu der Einschätzung, C++ sei "nicht so objektoirientiert"? JAVA ist sozusagen als "Gegenentwurf" zu C entwickelt worden
Nein, ich sage zwar nicht, dass die Programmiersprache nicht objektorientiert ist, im Gegenteil. Aber wie ich so vom Lesen gehört habe, gibt es dort einige nicht objektorientierte C-Ansätze.
Und hat man mit diesen Programmiersprachen die Möglichkeit, auch grafische Oberflächen zu erstellen?
prinzipiell ja. Es kann auch hier wieder davon abhängig sein, welche Bibliotheken dir dein Compiler auf der entsprechenden Plattform zur Verfügung stellt. Visual C++6, womit allerhand WINDOWS-Bestandteile gebaut worden sind, hat da ein paar Besonderheiten
Was meinst du mit Besonderheiten?
Gibt es andere Programmiersprachen, die für mein Vorhaben geeignet sind?
TCL/Tk käme noch in Frage, das ist extra für solche Zwecke entworfen worden.
Mal gucken was das ist.
Oder ist Java wirklich die beste Lösung?
Das hängt sehr stark davon ab, was deine Applikation können soll
Angenommen man hat eine längere Dokumentation, mit gleicher Seitenstruktur, und man will auf jeder Seite immer das gleiche Element verändern, z. B. Email-Adresse, oder einfach mal ein kleines Element an eine bestimmte Stelle einfügen. Dann kann man eine gewisse Strukturdatei der ganzen Doku verändern, und das Programm geht jede HTML-Seite durch und fügt da gewisse Dinge ein oder entfernt welche. So muss man sich nicht die Mühe machen und das ganze manuell zu erledigen.
Ich hoffe das ist verständlich.
Gruß Dmitri
hallo Dmitri,
Ich weiss, dass ich nicht die selbe Datei verwenden kann. Aber ich würde gerne den gleichen Code verwenden, und für das jeweilige Betriebssystem compillieren.
ok, das kann man mit so ziemlich allen Programmiersprachen so machen
wie kommst du zu der Einschätzung, C++ sei "nicht so objektoirientiert"?
Aber wie ich so vom Lesen gehört habe, gibt es dort einige nicht objektorientierte C-Ansätze.
Das hast du wahrscheinlich richtig gelesen. C++ ist eine Weiterentwicklung von C, eben gerade, weil mit C++ objektorientiertes Arbeiten ermöglicht werden soll. So weit ich das einschätzen kann, war C++ die erste derartige "Erweiterung" einer bestehenden Sprache, mit der OOP konsequent implementiert wurde. Da C++ keine _eigene_ Sprache ist, werden einige Elemente von C weiterhin benutzt. Nicht _jedes_ Programm, das man schreibt, muß unbedingt mit OOP erstellt werden.
Visual C++6, womit allerhand WINDOWS-Bestandteile gebaut worden sind, hat da ein paar Besonderheiten
Was meinst du mit Besonderheiten?
spezifische Klassenbibliotheken, so sogenannten MFC
TCL/Tk käme noch in Frage
Mal gucken was das ist.
schau dich unter http://dev.scriptics.com um. Downloadmöglichkeiten gibt es (für WINDOWS) bei http://www.activestate.com/Products/Download/Download.plex?id=ActiveTcl
Angenommen man hat eine längere Dokumentation, mit gleicher Seitenstruktur, und man will auf jeder Seite immer das gleiche Element verändern»» Ich hoffe das ist verständlich.
natürlich ist das verständlich. Aber dafür brauchst du kein "Programm". Das ist eigentlich eines der "klassischen" Einsatzgebiete von PERL, und PHP kann das auch
Grüße aus Berlin
Christoph S.
Hi,
Angenommen man hat eine längere Dokumentation, mit gleicher Seitenstruktur, und man will auf jeder Seite immer das gleiche Element verändern»» Ich hoffe das ist verständlich.
natürlich ist das verständlich. Aber dafür brauchst du kein "Programm". Das ist eigentlich eines der "klassischen" Einsatzgebiete von PERL, und PHP kann das auch
Heist das etwa, es gibt schon tausende solche Programme und es lohnt sich gar nicht, das Rad neu zu erfinden?
Gruß Dmitri
hallo Dmitri ;-)
Heist das etwa, es gibt schon tausende solche Programme und es lohnt sich gar nicht, das Rad neu zu erfinden?
naja, so ungefähr so etwas meine ich tatsächlich *g*
wie gesagt, ein PERL-Script kann das, was du haben möchtest, mit weit weniger Aufwand als ein ganzes Programm. Aber wenn dein Projekt sehr groß ist (ein paar tausend Dateien enthält) und es viele verschiedene user gibt, kann man durchaus darüber nachdenken, auch ein eigenständiges Programm zum Beispiel in C/C++ zu schreiben
Grüße aus Berlin
Christoph S.
Moin, moin
Allerdings dauert es über zwei Sekunden, bis es eine kurze HTML-Datei eingelesen, diese auf dem Bildschirm ausgegeben [keine grafische Oberfläche, sondern mit System.out.print()] und in einer anderen Datei abgespeichert hat.
Das könnte daran liegen, daß es einige Zeit dauert, bis die Java-Laufzeitumgebung gestartet ist. Der Programmablauf selber sollte ziemlich schnell gehen. Gerade bei Java 1.4
Gruß,
Maddin
Hallo!
Ich habe schon angefangen am Programm zu basteln, und zwar mit Java. Allerdings dauert es über zwei Sekunden, bis es eine kurze HTML-Datei eingelesen, diese auf dem Bildschirm ausgegeben [keine grafische Oberfläche, sondern mit System.out.print()] und in einer anderen Datei abgespeichert hat.
Wie groß ist denn die Datei?
Die Ausgabe dieser Datei http://www.w3.org/TR/REC-xml braucht bei mir auf nem P III (1 GHz) 200 ms.
Wobei die Ausgabegeschwindigkeit sehr von der verwendeten Konsole abhängt. Mit kterm braucht es 10 mal so lang.
Wenn es schon bei einer sehr kurzen Datei so lange braucht, machst Du vermutlich was falsch. (z.b. bytewiese Aus- und Eingabe)
C++ ist zwar nicht sooo objektorientiert wie Java, ist aber besser als C. Sind C++ Programme unter Linux, Windows und Mac OS lauffähig? So ohne weiteres?
Sie müssen in jeden Fall auf der entsprechenden Platform kompiliert werden und Du darfst keine Platformspezifischen Schnittstellen verwenden.
Und hat man mit diesen Programmiersprachen die Möglichkeit, auch grafische Oberflächen zu erstellen?
Ja. Mit QT ist da auch eine ziemlich mächtige Bibliothek für grafische Oberflächen vorhanden.
Gibt es andere Programmiersprachen, die für mein Vorhaben geeignet sind?
Scriptsprachen. Ein sauber porgrammiertes Perlprogramm läuft z.B. auch auf allen/vielen Platformen.
Oder ist Java wirklich die beste Lösung?
Ich denke, es ist zu mindest die einfachste.
Java löst viele der Probleme von platformübergreifendem Programmieren, die Du bei anderen Spachen selber lösen müsstest.
Grüße
Daniel
Hi, meine Datei ist nicht so ewig lang. Aber ich habe vergessen zu sagen, dass meine Kiste 100MHz hat ;-(
MfG Dmitri
Hallo Dmitri
Auf nem pentium 133mhz braucht mein Programm für die genannte Datei dann auch 2 Sekunden.
Wenn Du für solche Rechner Programme entwickeln willst, ist java höchsten noch für komandozeilenorientierte Programme geeignet.
Grafische Anwendungen (speziell solche mit Swing) kannst Du abschreiben.
Allerdings stößt Du auch mit Bibliotheken wie QT vermutlich schnell an die Grenzen.
Perl mit Tk wäre eine Möglichkeit. Allerdings ist die objektorientierung von Perl eher gewöhnungsbedürftig. (Zu mindest meine Meinung)
Grüße
Daniel
Hallo,
Tach
ich will ein Programm erstellen, das sowohl unter Linux, als auch unter Windows und Mac OS lauffähig ist.
Ich habe schon angefangen am Programm zu basteln, und zwar mit Java. Allerdings dauert es über zwei Sekunden, bis es eine kurze HTML-Datei eingelesen, diese auf dem Bildschirm ausgegeben [keine grafische Oberfläche, sondern mit System.out.print()] und in einer anderen Datei abgespeichert hat. [Ich wollte lediglich die Ein- und Ausgabetechnik von Java testen, also nicht lachen, weil das oben beschriebene Progrämmchen so billig ist].
Wie lange das dauert, hängt u.a. auch davon ab, WIE man die Datei einliest (buffered/unbuffered, block-/byte-weise)...
Auch ist zu berücksichtigen (wie bereits erwähnt), daß erstmal die VM gestartet werden muß...
C wird von Linux unterstützt, und von Windows glaube ich auch (Mac OS keine Ahnung). Allerdings will ich eine Objektorientierte Programmiersprache benutzen, und C ist hier nicht die beste Wahl.
C-Kompiler gibt es für so gut wie alle Betriebssysteme.
C ist überhaupt nicht objektorientiert.
C++ ist zwar nicht sooo objektorientiert wie Java, ist aber besser als C. Sind C++ Programme unter Linux, Windows und Mac OS lauffähig? So ohne weiteres?
C++-Kompiler gibt es ebenfalls für so gut wie alle Betriebssysteme.
Ob ein C++-Programm auf verschiedenen Systemen lauffähig ist, hängt sehr stark von den verwendeten Bibliotheken und Klassen ab (solange Du nur systemunspezifische Sachen nutzt, ja!)
Und hat man mit diesen Programmiersprachen die Möglichkeit, auch grafische Oberflächen zu erstellen?
Ja, aber hier ist die Gefahr, systemspezifische Sachen benutzen zu müssen, besonders hoch.
Gibt es andere Programmiersprachen, die für mein Vorhaben geeignet sind? Ich will noch betonen, dass ich mit Programmiersprachen auch solche meine, also nicht Visual Basic (was ja sowieso unter Linux nicht läuft) oder Delphi o. ä.
Perl (mit Tk für die Oberfläche).
Oder ist Java wirklich die beste Lösung?
Da Java von Anfang an für systemunabhängiges Programmieren geschaffen wurde, ist es damit relativ leicht, systemunabhängig zu programmieren.
Ist aber auch in anderen Sprachen nur eine Frage der Disziplin.
Andreas