user131 schrieb:
> GeorgPeter schrieb am 14. Februar 2012 22:24
> > user131 schrieb:
> > > GeorgPeter schrieb am 14. Februar 2012 15:57
> > >
> > > > Java Programme sind nicht wegen der JVM, sondern wegen
> > > > der zahlreichen Java Bibliotheken, portabel.
> > > Whaaat?
> >
> > Ich bezog mich auf die Portabilität von Sourcecode. Wenn ein
> > Compiler zum Erzeugen von Maschinencode vorhanden ist, wird
> > keine Virtuelle Maschine benötigt.
>
> Ja, das dürfte jedem klar sein. Allerdings setzt das voraus, dass man
> den Sourcecode auch herausgibt, ...
Warum? Wer den Sourcecode nicht hergeben will, der portiert
selbst und liefert das ausführbare Programm und die
Bibliotheken für die unterschiedlichen Systeme aus.
Wie gesagt, Bibliotheken die überall dasselbe API haben,
helfen bei der Portierung enorm. Zur Klarstellung: Es ist nicht
die Aufgabe des Anwenders diese Bibliothek zu portieren.
Kompilierte Sprachen wie D, Go und Seed7 haben eine mehr oder
weniger portable Bibliothek. Für Seed7 habe ich die folgenen
Links parat:
http://seed7.sourceforge.net/libraries/index.htm
http://seed7.sourceforge.net/faq.htm#portable
Die Apps für Android laufen auch nicht auf dem PC (ausser mit
Emulator), obwohl sie in Java geschrieben sind. Das liegt an
den unterschiedlichen Bibliotheken für die Ein- / Ausgabe. Die
Android Bibliotheken gibts zwar vielleicht bereits passend für
den PC, aber die sind sicher nicht vorinstalliert.
Es ist so wie ich sagte:
Unterschiedliche Bibliotheken -> Portabilität futsch
> Das hat zur Folge, dass die Linuxer die
> Software nicht verwenden können, die Winboys aber schon. Portabilität
> verletzt durch Geschäftspraktiken.
Siehe oben. Wenn kein Linux executable ausgeliefert wird, hat
man leider Pech. Java Programme haben auch dieses Problem,
wenn eine betriebssystemnahe Bibliothek, wie bei Android,
verwendet wird.
> Meinen Sie dabei, dass man immer stdin und stout hat, egal ob man
> gerade unter Puppy Linux oder Fenster kompiliert? Weil die libraries
> selbst, die Dateien (/usr/lib/libc.so z.B.) ganz bestimmt nicht
> portabel sind.
Die portiert der Anwender ja nicht, die bekommt er mit einer
Applikation mitgeliefert, oder die sind vorinstalliert (z.B.
von einer anderen Anwendung).
Gruss Georg Peter