Hallo, On Fri, 15 Mar 2002, Konrad Neitzel wrote:
David Haller
schrieb: On Fri, 15 Mar 2002, Konrad Neitzel wrote:
Klar kannst Du, wenn Du eine JVM bereit stellst. Diese JVM muss natürlich erst geschaffen werden, dass ist klar!
Oh. Tolles Argument. Ich kann das ach so tolle Java verwenden, muss mir nur voher ne JVM schreiben. Na danke.
David: Was hast Du für ein Problem?
Diverse ;) Aber nicht das was du meinst.
Eine JVM referenz Implementation gibt es unter anderem bei Sun als auch bei blackdown.org.
Du musst also lediglich EINE Software portieren und schonläuft jedes Java Programm.
Du musst nur den C-Compiler+libc portieren... (und ja Java _ist_ die der compiler+jit+lib). Definiere eine Standard GUI-Lib (a la AWT/Swing), z.B. QT/GTK, und fuege die noch hinzu. Java ist nix besonderes. Das besondere an Java ist, dass die Lib ausserordentlich fett ist, dass die Byte-Code Zwischenschicht eingefuegt wurde (die M$ jetzt mit CLR nachahmt) und das ganze eben normiert ist. Das, was C und C++ fehlt ist die Standardisierung, was GUI etc. betrifft. Aber ich seh da nicht wirklich einen Nachteil darin.
Ausserdem ist es etwas, dass es für alle gängigen Plattformen gibt. Selbst für meinen Amiga hatte ich damals noch das Java 1!
Ja, fuer den Amiga gibt's so einiges.
Ja. Wenn auch nicht die glibc. Solange du nicht die GNU Erweiterungen verwendest laeuft's auf allen Systemen die C unterstuetzen (und das sind ein paar mehr, als fuer die's ne JVM gibt). Schau einfach mal in den Standard oder den K&R, was so alles "drin" ist...
Vielleicht ein bisschen, aber was kannst Du mit den paar Funktionen machen, die bereit gestellt werden?
Alles. Nur vielleicht nicht unbedingt bequem ;)
Ohh? Wie machst Du denn dann in ANSI C eine GUI? Das möchte ich sehen!
Oehm, ok, s.o. bzgl. lib/Standardisierung. Aber in was ist X geschrieben? Und in was GTK? Definiere das als Standard, packs in ne fette Lib und du hast (was das betrifft) Java. Und komm nicht mit "Portierbarkeit" X+GTK ist portabel (s. z.B. glib). Es gibt nur Feinheiten wo was auf die jew. Plattform umgesetzt wird.
Du hast ja noch nicht einmal ordentliche Containerklassen! Wozu gibt denn jeder Hersteller seine eigenen Libs mit? Von mir aus akzeptiere ich die STL noch für Containerklassen als Standard,
Jetzt bringst du aber offensichtlich C und C++ durcheinander. Die STL ist ein Teil von C++ und beim gcc in der libstdc++ enthalten, aber es gibt auch Alternativen wie z.B. stlport (die's uebrigens auch fuer Win* gibt).
Ich weiss, dass die STL für C++ ist und nicht für C! Mit C gebe ich mich - was grosse Projekte angeht - nicht mehr ab, weil dort schlicht weg zu viel fehlt. Wer dazu mehr wissen will, der soll sich mit Soware Engeenering beschäftigen, denn dazu werde ich hier nichts mehr schreiben. Alternativ kriegt man vielleicht auch genug mit, wenn man sich mit Objektorientierung und UML beschäftigt.
Ja? Und?
aber was ist mit Netzwerk? ist z.T. in der libc / kernel (man gethostbyname, man 2 socket) , gibt aber garantiert auch irgendwelche Wrapper...
Ohh ja. Toll! Und was hast Du denn dann? Betriebssystem spezifische Unterschiede. Windows hat andere Sockets als Unix (also anders implementiert). Siehe cygwin bei redhat!
Ja und? Wird das nicht z.B. auch von QT abstrahiert? Wie gesagt, man kann halt wirklich alles in _eine_ lib packen... Oder diverse Libs in ein "Package"...
Was ist mir Grafischer Ausabe?
man ncurses, man X, man $GUI_Toolkit (z.B. FLTK, QT, GTK, Motif, ...). Und X hast Du also auf allen Rechnern? Siehe Oben! AWT ist Bestandteil von Java. Swing ist bestandteil von Java2.
Ja und? Pack GTK oder QT oder ... mit in die libc(2) oder libstdc++.... (s.o.), definiere das dann halt (ala M$) als C<irgendwas> und bitte. Diese Argumentation ist sinn- und zweckfrei.
Und mind. QT und GTK sind _sehr_ portabel (z.B. QTEmbed!). QT laeuft Ohh ... Sehr Portabel! Also auch unter dem C64?
AFAIK sogar ja! :)
Ach duz meinst, ich muss mir das erst portieren?? Na Danke! QT hatte bis vor kurzem ja noch nicht einmal den Mac dabei gehabt! Na Danke auch!
Bitte, gern geschehen. War sicherlich tausendfach einfacher Java auf dem Mac zu implementieren... Mal abgesehen davon, das MacOS X nun de-facto ein BSD ist, und somit eine Portierung vergleichsweise einfach ist. Wie? MacOS X zaehlt nicht? Du nennst doch sonst immer die aktuelle Version als Vergleich! (nein, ich hab hier kein "up-to-date" Java! Aber auch einen veralteten gcc. Und Java SUCKS!!! MIGHTILY!!! Mag sein dass die aktuellsten JREs / JDKs besser geworden sind. So what!
also auch auf Plattformen, wo du mit Java noch nicht mal ein "Hallo Welt" zustande bringen wuerdest. Java (egal ob AWT oder Swing) ist doch sowieso ne Krankheit. Ja, "Java ist OO und kann Vererbung" *lol* (aber nur einmal)... *tssst* Dann beschäftige Dich etwas mehr mit Java. Danke! Java hat nur eine direkte vererbung, aber das Stichwort ist hier "implements".
URGS. Nein danke. Ich bin nicht masochistisch veranlagt. (ja ich weiss was "implements" bedeutet und impliziert).
Da liegen doch Welten zwischen! Ja. Vor allem was die Performance des Resultats angeht. Dann schau dir moderne JVMs mit JIT Compilern an.
[ ] tolles Argument. [..]
Ach? Und im JAR ist der Quelltext? Und du kannst ohne Rekompilation den Code aendern und dann einsetzen? Mag ja sein, dass Java ne ganz nette Idee ist (von wegen Plattformunabhaengig) aber die Umsetzung ist grauslich. Moment einmal. Es ging um den Einsatz des fertigen Programmes!
Ach? Und Bytecode ist ein fertiges Programm? Ja? Ok. Dann ist ein perl-script auch ein fertiges Programm. Das ist auch portabel. Da muss man auch "nur" ein Programm portieren...
Und das musst Du nicht neu kopilieren, wenn sich die Plattform ändert!
Perl auch nicht.
Und die aktuelle Umsetzung von Java ist so, dass man damit auch schon extrem gut arbeiten kann.
Ach? Extrem? Ja!!! Lahm, speicherfressend, und generell grauslich. Arbeiten???? Nein!!! Ich habe noch nicht _EIN_ Java Proggie in die Finger bekommen, das auch nur halbwegs verwendbar war.
man dialog, man kdialog, man gdialog... Und die habe ich auf allen Plattformen! Ja toll!
ok, dann eben perl/Tk. (oder auch perl/QT, oder oder oder). Ja, perl/Tk performt (hier) um Groessenordnungen besser als Java. -dnh PS: Rat mal, in was perl geschrieben ist? na? Genau: in C. Und? Ist perl portabel? Eben. -- 108: Doppelte Staatsbürgerschaft Was nützt der zweite Ausweis, wenn doch eh der gleiche Name drin steht? (E. Herbst nach Harald Schmidt)