Welche Programmiersprache?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 12.11.2004 22:58:12

suntsu hat geschrieben: Damit kann man wirklich schnell und praktisch ein GUI machen. Und der Ansatz mit dem XML fasziniert mich jetzt ein bisschen ;)
Kann ich verstehen, hat mich auch fasziniert als ich es das erstemal verwendet habe.
Ich finde das geniale ist auch, dass ich die GUI jederzeit verändern kann, also solange keine Entscheidenden Elemente hinzugefügt oder entfernt werden, ohne das Programm neu zu kompilieren. Glade Datei ändern, Programm neu starten und schon sieht die GUI anders aus. Das funktioniert auch wenn ich das GTK+ Programm mit einer anderen Sprache geschrieben haben (C, C++,...), da die GUI wirklich vom Quellcode getrennt ist und nicht kompiliert werden muß.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 12.11.2004 23:08:01

BeS hat geschrieben:Kann ich verstehen, hat mich auch fasziniert als ich es das erstemal verwendet habe.
Ich finde das geniale ist auch, dass ich die GUI jederzeit verändern kann, also solange keine Entscheidenden Elemente hinzugefügt oder entfernt werden, ohne das Programm neu zu kompilieren. Glade Datei ändern, Programm neu starten und schon sieht die GUI anders aus. Das funktioniert auch wenn ich das GTK+ Programm mit einer anderen Sprache geschrieben haben (C, C++,...), da die GUI wirklich vom Quellcode getrennt ist und nicht kompiliert werden muß.
Ich möchte noch anfügen das wxWidgets/wxPython das auch kann, dort heist das Format XRC und kann mit XRCed bearbeitet werden (also nicht nur geschieben), wobei ich aber zugeben muss, das Glade doch etwas besser ist.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 13.11.2004 09:21:23

Leonidas hat geschrieben:
peschmae hat geschrieben:Portabel ist das sehr wohl.
SWT gibts ja für X11 (auf Fox, Motif und Gtk2-Basis), Windows und MacOS X. QNX gibts auch noch. Damit dürften (neben BeOS oder so) die wichtigsten Plattformen für "normale" GUI-Programme, d.h. auf PC-Computer-Dingern laufende , abgedeckt sein.
Da dürften nicht all zu viele relevante Plattformen übrig bleiben für die es Java mit Swing (oder so) gibt und SWT nicht.
Oben beschwerst du dich das man Bindings installieren muss, aber wenn man zusätzlich zu Suns fettem Java auch noch SWT installieren muss (nicht unbeding einfach wie ich vor *einiger* Zeit festgestellt habe), dann ist das ok?
u.A. darum schrieb ich ja auch
peschmae hat geschrieben: SWT siehts anders aus, aber das ist wiederum eine ganz andere Geschichte
Ist aber trotzdem portabel, und darauf bezog ich mich. Ich hab nicht geschrieben ich würde das ums verrecken verwenden ;)
Ist auch einer der Gründe wieso ich das nicht mehr nehme. Suns JVM braucht man übrigens für SWT nicht (es sei denn das Programm braucht die).
Es gibt aber auch so Tools wie Installer die ein Python Script in eine Form verpacken, das man zum ausführen keinen Interpreter mehr braucht. Das ist zwar keine richtige kompilation, aber meist reicht das schon.
Ah, ok, dann sind das zwei verschiedene Sachen ;)

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
ckihm.deb
Beiträge: 263
Registriert: 26.12.2002 18:49:38
Wohnort: Saarbrücken

Beitrag von ckihm.deb » 13.11.2004 10:26:22

Oben beschwerst du dich das man Bindings installieren muss, aber wenn man zusätzlich zu Suns fettem Java auch noch SWT installieren muss (nicht unbeding einfach wie ich vor *einiger* Zeit festgestellt habe), dann ist das ok?
Naja, allzu schwer ist das nicht, zumal der User wenn man es richtig macht gar nichts extra installieren muss (abgesehen von Java). Ich habe sogar mal eine Java Anwendung mit SWT geschrieben, die über Java Web Start verteilt wurde. Dazu lag die Anwendung und die SWT Jars + die Windows SWT dll auf einem Webserver. Über eine Webseite brauchte der User nur einen Link anzuklicken (eine jnlp Datei steht dahinter) und schon wurde über sein WebStart ( das wird bei der Installation von Java mitinstalliert) die Anwendung runtergeladen, und abhängig vom Betriebssystem die richtigen swt Libs gleich mit. Danach wird der User gefragt ob er dem Zertifikat vertraut, und die Anwendung starten will, und schon läuft sie. Einfacher geht es für den User nicht. Ein Link für alle unterstütze Betriebssystem.
christian

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 13.11.2004 12:39:57

peschmae hat geschrieben:Ist auch einer der Gründe wieso ich das nicht mehr nehme. Suns JVM braucht man übrigens für SWT nicht (es sei denn das Programm braucht die).
Ja, gut, aber irgendeine JVM braucht es doch. Und Die Sun JVM ist relativ groß, die von IBM ist es warscheinlich auch und die Blackdown... ka, auch?
peschmae hat geschrieben: Ah, ok, dann sind das zwei verschiedene Sachen ;)
Ja. Ich habe mich wie üblich kompliziert ausgedrückt.
ckihm.deb hat geschrieben:Naja, allzu schwer ist das nicht, zumal der User wenn man es richtig macht gar nichts extra installieren muss (abgesehen von Java).
Ja, gut, ich habe es händisch versucht, und zwar mit wenig enthusiasmus... was ich aber bei jars festgestellt habe: die JVM 1.4.2 will im Manifest unbedingt eine main class definition haben, wie kann man das umgehen, das es auch ohne läuft? Die wenigsten Jars haben main-class definitionen, und das entpacken, ins blaue raten, editieren, packen, testen ist nervig.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
ckihm.deb
Beiträge: 263
Registriert: 26.12.2002 18:49:38
Wohnort: Saarbrücken

Beitrag von ckihm.deb » 13.11.2004 13:56:35

Nun ich glaube das dies nicht umgangen werden kann, da der Interpreter ja wissen muss welche Klasse er aus dem Archiv nun starten kann. Das heisst das wenn dies nicht in der manifest steht, nur der Weg bleibt die Main Klasse selbst anzugeben. Allerdings sollte jeder Entwickler bevor er Jars zur Verfügung stellt eine entsprechende Manifest im Jar erstellt haben.
christian

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 13.11.2004 14:53:39

Aber warum ging das dann mit 1.4.1 (wenn ich mich nicht irre)?
Schaut euch mal das GeoNext Jar an, das hatte in der version die ich hatte auch keine main-class. Warum ist das so? Haben die Autoren ihre Jars nicht getestet? Das glaube ich nicht, ich denke das es vorher auch irgendwie ohne ging.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 13.11.2004 17:45:35

Leonidas hat geschrieben:
peschmae hat geschrieben:Ist auch einer der Gründe wieso ich das nicht mehr nehme. Suns JVM braucht man übrigens für SWT nicht (es sei denn das Programm braucht die).
Ja, gut, aber irgendeine JVM braucht es doch. Und Die Sun JVM ist relativ groß, die von IBM ist es warscheinlich auch und die Blackdown... ka, auch?
Ich bezog mich auch nicht auf die. Die sind ja ansonsten äquivalent zu der von Sun mehr oder weniger (vom Funktionsumfang).
SWT geht auch mit GCJ/GIJ oder Kaffe oder Sablevm.

Ja, gut, ich habe es händisch versucht, und zwar mit wenig enthusiasmus... was ich aber bei jars festgestellt habe: die JVM 1.4.2 will im Manifest unbedingt eine main class definition haben, wie kann man das umgehen, das es auch ohne läuft? Die wenigsten Jars haben main-class definitionen, und das entpacken, ins blaue raten, editieren, packen, testen ist nervig.
Ich komm da nicht mit. Ich hatte diesbezüglich nie Probleme (mit SWT oder meinst du jetzt allgemein?)
Naja, wenn du eine Main-Class hast (d.h. das ganze eine app und keine Lib ist) schreibst du das halt ins Manifest... oder ging das früher auch ohne? (Wie fand das dann raus er die Main-Class war? Kann ja gar nicht sein.)

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 13.11.2004 18:45:41

peschmae hat geschrieben:Ich bezog mich auch nicht auf die. Die sind ja ansonsten äquivalent zu der von Sun mehr oder weniger (vom Funktionsumfang).
SWT geht auch mit GCJ/GIJ oder Kaffe oder Sablevm.
Ja, ok...
peschmae hat geschrieben:
Leonidas hat geschrieben:Ja, gut, ich habe es händisch versucht, und zwar mit wenig enthusiasmus... was ich aber bei jars festgestellt habe: die JVM 1.4.2 will im Manifest unbedingt eine main class definition haben, wie kann man das umgehen, das es auch ohne läuft? Die wenigsten Jars haben main-class definitionen, und das entpacken, ins blaue raten, editieren, packen, testen ist nervig.
Ich komm da nicht mit. Ich hatte diesbezüglich nie Probleme (mit SWT oder meinst du jetzt allgemein?)
Naja, wenn du eine Main-Class hast (d.h. das ganze eine app und keine Lib ist) schreibst du das halt ins Manifest... oder ging das früher auch ohne? (Wie fand das dann raus er die Main-Class war? Kann ja gar nicht sein.)
Nein, ich meine nicht im Zusammenhang mit SWT sondern allgemein:
Ich meine zum beispiel das Jar in diesem Zip: http://geonext.uni-bayreuth.de/data/dow ... t.1.11.zip hat einen Meta-Inf/ Ordner, mit einer Manifest.mf in der kein Main-Class ist. Wie soll das gehen, denn ich weiss ja auch das das komisch war das er das vorher scheinbar konnte, jetzt aber nicht mehr.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 13.11.2004 19:57:59

Hast du mal in das install-Script geguckt? Die Idee bei dem ist gar nicht dass du das mit java -jar ausführst sondern dass du das mitlieferte Installtscript benutzt welches dann ein Startscript erzeugt was wiederum
java -cp $geonextlocation/geonext.jar geonext/Geonext &
ausführt.

Ob/Wie das früher mal ging - keine Ahnung, das übersteigt mein Vorstellungsvermögen ;)

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 13.11.2004 20:02:40

Warum sollte man es denn so kompliziert machen, wenn es doch auch einfach geht indem man die Main Class rein tut?
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 14.11.2004 10:26:50

Wegen weil. Hey, ich hab den Mist nicht gebaut ;)

Der Punkt ist wohl dass du den meisten Nutzern ein "java -jar $jar" nicht zumuten kannst, d.h. du brauchst eh ein Startscript. Wenn du dann noch faul bist und nicht an die Nutzer denkst die sehr wohl "java -jar $jar" tippen können haben die halt Pech gehabt...

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 14.11.2004 11:24:45

peschmae hat geschrieben:Wegen weil. Hey, ich hab den Mist nicht gebaut ;)
Ja, die warscheinlichkeit auf den zu treffen der das gemacht hat ist eher gering :)
peschmae hat geschrieben:Der Punkt ist wohl dass du den meisten Nutzern ein "java -jar $jar" nicht zumuten kannst, d.h. du brauchst eh ein Startscript. Wenn du dann noch faul bist und nicht an die Nutzer denkst die sehr wohl "java -jar $jar" tippen können haben die halt Pech gehabt...
Behinderung von Power-Nutzern, das sieht man gerne. Ich will dadurch nicht sagen das Java scheiße ist (nein, nicht java, jar nur), aber ich würde für nächste jar versionen vorschlagen main-class angaben zur Pflicht zu machen.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Maj0r
Beiträge: 476
Registriert: 08.12.2003 14:52:39
Wohnort: Jüchen, Ne
Kontaktdaten:

Beitrag von Maj0r » 14.11.2004 12:19:06

Leonidas hat geschrieben: Ja, gut, ich habe es händisch versucht, und zwar mit wenig enthusiasmus... was ich aber bei jars festgestellt habe: die JVM 1.4.2 will im Manifest unbedingt eine main class definition haben, wie kann man das umgehen, das es auch ohne läuft? Die wenigsten Jars haben main-class definitionen, und das entpacken, ins blaue raten, editieren, packen, testen ist nervig.
Wie willst Du es denn dann anstellen, wenn Dein Programm mehrere main-Klassen hat, was in einigen Fällen sehr sinnvoll ist ?

Benutzeravatar
ckihm.deb
Beiträge: 263
Registriert: 26.12.2002 18:49:38
Wohnort: Saarbrücken

Beitrag von ckihm.deb » 14.11.2004 13:00:58

Eigentlich kann man das nicht für alle zufriedenstellend lösen. Ändert man die Konventionen so das ein main-class Eintrag zur Pflicht wird, gibt es neben den von Maj0r erwähnten Problem keine Abwärtskompatibilität mehr.

Aber anbei mal eine Frage:
Wie kann ich KDE beibringen das die extension jar mit java -jar verknüpft wird. Also das man durch Klick im Konqueror eine jar Datei mit main-class Eintrag in der Manifest starten kann?
christian

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 14.11.2004 13:24:24

Maj0r hat geschrieben:Wie willst Du es denn dann anstellen, wenn Dein Programm mehrere main-Klassen hat, was in einigen Fällen sehr sinnvoll ist ?
Tja, man würde es so machen, das man eine default Main Classe hat, was meist genügt, und wenn man eine andere haben will macht man es wie jetzt durch die angabe im prompt. Abwährtskompatibel würde es ja dadurch bleiben.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Antworten