cocoa/Xcode und java vollkommen compiliert

N

NOcTua

Aktives Mitglied
Thread Starter
Dabei seit
17.12.2006
Beiträge
463
Reaktionspunkte
5
Hallo,

ich weiß nicht genau, wie ich das ausdrücken soll. Es ist doch so, dass code, der in java geschrieben wurde nur zum teil compiliert wird und bei der ausführung von der java umgebung noch einmal compiliert wird, was dazu führt, dass java programme ziemlich ressourcend fressend sind. Oder zumindest so in der art.

Habe erst vor kurzem angefangen java zu lernen, doch mir ist gleich die frage gekommen, ob es mit hilfe von Cocoa bzw. Xcode möglich ist ein programm zwar mit java code zu schreiben, aber so, dass es auf allen apple computern läuft, auch wenn sie kein java installiert hat, da cocoa/Xcode das programm gleich in maschinensprache umwandelt ?!?!

hoffe jemand versteht, was ich meine und kann mir antworten.
 
dazu müsstest du das ganze als native code compilieren, z.b. mit gcj.
aber den liefert apple nicht mit...
 
das klingt doch schonmal sehr gut. Aber dann kann ich nicht den Interface Builder von Apple nutzen mit dem schönen cocoa design, oder?
 
die cocoa-java api ist schon lange deprecated...
 
hm ... wieso versuchst du es nicht gleich mit Cocoa?
 
warum ich nicht gleich cocoa nutze? weil ich in der uni gerade java lernen muss. Aber da ich noch nicht wirklich begeistert von java bin dachte ich mir, dass ichd ennoch das beste herausholen sollte. Dabei kam mir dann der gedanke, java und cocoa so zu kombinieren, dass es wie ein "echten" programm in maschinensprache funktioniert und das schöne mac design hat
 
Das ist ein Argument ;)

Ich mein ja nur da Java und Cocoa an C angelehnt sind ...
 
ich weiß nicht genau, wie ich das ausdrücken soll. Es ist doch so, dass code, der in java geschrieben wurde nur zum teil compiliert wird und bei der ausführung von der java umgebung noch einmal compiliert wird, was dazu führt, dass java programme ziemlich ressourcend fressend sind. Oder zumindest so in der art.
warum sollte man einen der grössten Vorteile von Java aufgeben wollen?
 
Du versuchst hier die Nachteile von Java mit den Nachteilen von Cocoa zu vereinen.
Einer Java Applikation merkt man - meist - an, dass sie in Java geschrieben ist.
Cocoa ist leider - meist (http://www.cocotron.org/) - nicht Plattform-unabhängig.
 
naja, weil ich das nicht wirklich als vorteil anerkenne ^^. außerdem würde das Programm schneller und kleiner laufen und da es der selbe code ist, könnte ich ihn ja 2x compilieren. 1x als Maschinencode für mac und 1x als normales java programm.
 
Du versuchst hier die Nachteile von Java mit den Nachteilen von Cocoa zu vereinen.
Einer Java Applikation merkt man - meist - an, dass sie in Java geschrieben ist.
Cocoa ist leider - meist (http://www.cocotron.org/) - nicht Plattform-unabhängig.

das es nicht plattformunabhängig ist, ist kein problem für mich. solange es flüssig und sauber auf dem mac läuft.
 
ich weiss nicht was du in Java schreibst und an welchem Mac du arbeitest. Auf einem halbwegs modernen Mac laufen Java Applikationen sauber und flüssig.
Wenn die Performance nicht reicht: andere Sprache wählen
 
das ist es ja: eine andere sprache kann ich nicht wählen, bzw. kann ich schon aber wir lernen gerade java, da ist es schon praktisch bei java zu bleiben. außerdem ist es ja gerade das was ich vermeiden will, dass falls die Performance nicht reicht das programm dennoch perfekt läuft, da es als maschinencode compiliert wurde.
 
außerdem ist es ja gerade das was ich vermeiden will, dass falls die Performance nicht reicht das programm dennoch perfekt läuft, da es als maschinencode compiliert wurde.
ok, so lange du nicht sagst an was du ungefähr schreibst hat eine weitere Diskussion wenig Sinn. Fakt ist aber dass Java sicher nicht so träge ist wie sein Ruf.
Natürlich ist C++ in manchen Bereichen besser geeignet, nur: sollte dir die Java Performance in der VM nicht reichen, wird es auch als native code nicht um Galaxien schneller sein :)
 
also wenn es wirklich keinen unterschied macht, dann ist das ja sehr schön ^^. Bin zwar noch sehr frisch was java angeht, doch wundert mich dann, warum es so wenige programme mit java gibt und es so einen schlechten ruf hat. Aber nagut, wenn du das sagst.

Wobei mich nur eins stört, undzwar, dass die gui nicht so wirklich schön ist und man java dafür installiert haben muss.
 
es gibt nicht wenige Programme die in Java implementiert sind. Dass deren Ruf schlecht ist liegt an
a) manch grottenschlechter Java GUI (ich erinnere bspw. an Maple 9)
b) schlechter Implementierung und
c) an einigen anderen Sachen die Java zwar vergleichsweise komfortabel, aber auch undurchsichtig machen
 
Dass Java langsam ist, ist doch ein Gerücht.

Zuerst, was ist hier mit Java gemeint? Die Programmiersprache selbst mit Sicherheit nicht, eher die Laufzeitumgebung.

Was ist in Java langsam? Nicht die Interpretation des Binärcodes. Der Mechanismus ist inzwischen durch die Just in Time Compiler schnell genug und steht Kompilaten aus C++ in kaum etwas nach. Langsam ist allerdings die Implementierung der grafischen Bibliotheken AWT/Swing (gewesen). Aber ganz ehrlich: Meist ist es die Blödheit des Programmierers, der ineffizienten Code schreibt. Man muss bei jeder Programmiersprache die Eigenschaften des Compilers kennen, um seinen Code effizient zu machen. Es gibt genügend grafische Bibliotheken, die die Nachteile von Swing ausgleichen.

Im Übrigen: Java hat sich inzwischen im Tools- und Server-Backend (JSP, Webservices,...) durchgesetzt und leistet dort gute Dienste. Für jeden Anwendungsfall gibt es eine passende Sprache. Man würde ja auch nicht versuchen, mit einem Schraubenzieher einen Nagel in die Wand zu schlagen, oder?
 
Langsam ist allerdings die Implementierung der grafischen Bibliotheken AWT/Swing (gewesen). Aber ganz ehrlich: Meist ist es die Blödheit des Programmierers, der ineffizienten Code schreibt. Man muss bei jeder Programmiersprache die Eigenschaften des Compilers kennen, um seinen Code effizient zu machen. Es gibt genügend grafische Bibliotheken, die die Nachteile von Swing ausgleichen.

Von der doch etwas stark übertriebenen Anwendung von Objektorientierung abgesehen, ist Swing eigentlich gar nicht mal so schlecht, auch im Bezug auf Performance.

Alleine durch den konsequenten Einsatz der SwingWorker Klasse, habe ich die gefühlte GUI-Geschwindigkeit meiner Anwendung so ziemlich verdoppelt. Man muss halt nur wissen, dass es sie gibt und wie man es macht. Dann dauert die Anpassung nicht mal 10min ^_^
 
Zurück
Oben Unten