[linux-l] RS-232 oder USB lesen mit (Schauder...) Java Os-unabhaengig

Oliver Bandel oliver at first.in-berlin.de
Di Sep 20 02:14:07 CEST 2005


On Mon, Sep 19, 2005 at 02:19:06AM +0200, Volker Grabsch wrote:
> On Sun, Sep 18, 2005 at 10:21:07PM +0200, Oliver Bandel wrote:
> > > Für die GUI würde ich dir bei Java entsprechend Swing empfehlen. Bei den
> > > "ordentlichen" Sprachen (Python, ...)
> > > würde ich zu GTK+ raten. Aber
> > > wxWindows und TclTk kannst du genauso nehmen, die haben alle ihre Vor-
> > > und Nachteile.
> > 
> > Das Problem ist ja, daß der Krempel evtl. auch unter Windows laufen soll....
> 
> Das tut es! Für Python gibt es TclTk, das läuft stabil und gut sowohl
> unter Windows als auch unter Linux. Mit GTK+ und Python habe ich auf
> beiden Systemen gute Erfahrungen gemacht, obwohl ich auch schon von
> einigen gehört habe, dass sie Ärger mit GTK+ unter Windows hatten.
> wxWindows unter Linux ist IMHO ein Graus, aber unter Windows läuft
> es ziemlich gut (angeblich besser als GTK+, aber das kann ich persönlich
> nicht bestätigen).


Muß man für den GTK+ Cygwin oder ähnliches installieren, oder
kann man das auf Windows direkt laufen lassen?

Von Tcl/Tk weiß ich, daß man das direkt installieren kann und
dann loslegen. Auch ohne Cygwin.



> 
> > Ggf. halt das ganze als CGI bauen, dann liest und schreibt es HTML
> > und dann ist's auch gut!
> 
> Nö, das brauchste nicht. Dann nimm lieber TclTk.  ;-)

Alles, was Installationsaufwand erfordert fällt eigentlich schon fast ganz raus.
Vermutlich bleibt dann bloß noch Schauder-Java übrig. ;-(


> 
> Doch, im Ernst, so primitiv und schlecht TclTk auch aussehen mag,
> finde ich, dass die GUI-Fähigkeiten der Browser (durch HTML-Formulare)
> noch weitaus schlimmer sind, auch wenn sie mit entsprechenden
> Stylesheets vielleicht besser aussehen.

ja, finde ich eigentlich auch.

Aber man muß dann Tcl/Tk erst mal installieren.

Das sollte eiegnlich nicht notwendig sein müssen.


> 
> > > Ich finde Java viel zu umständlich. Besser als C, aber kein Vergleich
> > > zu Haskell, Python, ... (s.o.)
> > 
> > OCaml. :)
> > 
> > Aber bzgl. GUI ist OCaml nicht der optmial-Freak. :(
> 
> Kannst du mal einen kurzen Abriss über OCaml geben. Vorallem, was dich
> persönlich an dieser Sprache reizt?


Oh jeh.

Kann man ja auf http://www.ocml.org finden....

...aber OK, kurz und knapp:


 - funktional
 - imperativ
 - objekt-orientiert

 - mächtiges Modulsystem (mit Funktoren (Funktionen über Module :)) !)
 - rigides Typsystem; type-inference, compile-time checked, polymorphic 
 - gut sortierte Bibliothek
 - pattern matching (im Sinne von Haskell, nicht im Sinne von Perl)
 
 - performanter Compiler
 - performantes Compilat (und trotzdem Garbage Collection)

 - interaktives Toplevel (Interpreter-like)
 - Bytecode-Compiler
 - Native-Code-Compiler für sehr viele Plattformen

 - Garbage Collector (und dennoch sauschnell)

 - keine Pointer, keine Casts
 - array/string boundary checks

 - ocamllex/ocamlyacc
 - camlp4 ---> Syntax-Extensions

 - Debugger kann vorwärts und rückwärts arbeiten

 - einfache Einbindung von C-Code


..äääh, hab' ich alles?


...ach ja.... relativ kleines tgz für eine so mächtige Sprache. :)





> 
> > > Ich hab mir in Java immer nen Wolf getippt. Python ist noch weniger
> > > Lernarbeit, /und/ weniger Tipparbeit  :-)
> > 
> > OCaml ist viel Lernarbeit... ja, teils sehr viel.
> > Aber danach geht's um so besser. :)
> 
> Ich denke, du kennst Python gar nicht!? Dann kannst du das doch kaum
> einschätzen.

Naja, ein bischen rein gerochen habe ich da schon.

Soweit ich das seh', hanfdhabt Python Datentypen ziemlich lax.
Was ziemlich schade ist.
Als ich von Perl nach OCaml wechselte, fand ich so einen
Compiler, der mir wegen der Typprüfung immer auf die Finger haut, ziemlich
nervig.
Aber mittlerweile will ich das nicht mehr missen!
Das hilft so oft, Fehler schon sehr früh ausfindig zu machen.

Und das ist eine absolute Arbeitserleichterung.
Verkürzt die Debugging-Zeiten radikal. :)

Code, der compiliert werden kann, ist schon deshalb recht solide.
Man kann nicht einfach irgendwas zusammen bauen und zur Laufzeit kracht's.
Fehlerhafter Code fällt dann schon auf, bevor er laufen könnte.

Was war das bei Perl für ein generve... und ohne "use strict"
konnte man es bei komplexen Programmen doch eh vergessen.
Aber was ist schon "use strict" gegen OCamls erfreuliche Pedanterie. ;-)





> Aber das würde ich dir einfach mal empfehlen: Lerne Python,
> das ist nicht weiter wild, und sollte nicht allzu lange dauern.

Naja, wenn ich mal die Muße habe ;-)



> Zumal
> Python weit genug verbretiet ist, sodass du damit in absehbarer
> wahrscheinlich sowieso zu tun haben wirst.

Das ist natürlich eine Überlegung wert.


> Wenn du das getan hast, würde
> mich deine Meinung zum Vergleich von OCaml und Python sehr interessieren
> ... nicht wegen der Einarbeitungszeit, sondern ob sich diese
> Einarbeitungszeit danach auch auszahlt.

Da ich OCaml schon kann, wird sich Python nur dann auszahlen, wenn
jemand dafür bezahlt, daß ich das benutze.
Ansonsten lohnt es nicht.




> 
> > > Wozu willst du eigentlich direkt den USB-Port ansprechen? Willst
> > > du eigene Hardware damit ansprechen?
> > 
> > Siehe meine Anfrage bzgl. Messdatenkarten, also einlesen von Daten via
> > externer Messdaten-Erfassungskarten.
> 
> Gibt's da keine Standard-Protokolle?

Doch. ModBus.
Gibt's da denn schon Libraries für?



> 
> > > Das würde mich mal interessieren,
> > > weil ich selbst auch mal sowas gemacht habe ... ist aber schon etwas
> > > her.
> > 
> > Was hast Du gemacht?
> > externe hardware angesprochen?
> > Wat denn genau?!
> 
> Nichts großes. Naja, von den Abmaßen her schon. Ein Schulprojekt
> zusammen mit zwei Freunden. Es geht um eine ausrangierte Anzeigetafel
> (Feld von 96x7 LEDs), die wir mit einem PIC (Einchip-Mikrorechner, d.h.
> RAM, Prozessor etc. auf einem Chip) angesteuert haben. Dieser wurde mit
> PIC-Assembler programmiert. Das heißt, eigentlich läuft das Ding
> "sourverän", aber die Vorgänger wurden per PC angesteuert.
[...]

Für ein Schulprojekt ist das aber schon ziemlich cool. :)

Auf welcher Schule macht mann denn so interessante Sachen?


Ciao,
   Oliver



Mehr Informationen über die Mailingliste linux-l