Java?


Für den ARM-Prozessor gibt es keine offizielle VM, aber einige der Open-Source-VM laufen. Das Problem ist dabei nur die Kompatibilität.

Compilieren müsste man da aber nix, das ist ja der Knackpunkt bei Bytecode.
 
Ich gebe zu, ich bin jetzt nichtgerade ein Fachmann.
Ich würde bei 0 Anfangen und hoffte dass der Pandora meine bemühungen Steigert
also mein ziel ist es, für den Pandora zu Programmieren.. wenigstens ein "helloworld" programm.
Jedoch habe ich keine ahnung wie das dann laufen soll...
Also in wlechem format der Pandora die teile öffnen kann und wie ichd as ind as Format bekomme und was ich dafür brauche..
weiß da jemadn etwas?
 
Anfangs wird man wohl auf C/C++ angewiesen sein. (Ob man damit anfangen sollte, ist eine andere Frage, hat man jedoch das Programmierkonzept imperativer/objektorientierter Programmiersprachen im allgemeinen verstanden, ist der Wechsel zwischen diesen nicht mehr sehr schwer)
Und die Möglichkeiten "Hello World" auf dem Bildschirm auszugeben, sind auch recht vielfältig.
Mein Vorschlag: Nimm einen Linux PC, installiere GCC und schreib ein simples "Hello World" für die Konsole. Das wird ohne den Code zu ändern auch auf der Pandora laufen.
Apropos "Format": Ein Arm Prozessor versteht einfach keine X86 Befehle. D.h.: Was ein PC ausführen kann, ist für den Pandora nur Kauderwelsch.
Also muss ein extra Compiler für ARM her und damit würde ich auf das erscheinen des Pandoras warten.
 
würde es denn allgemein möglichsein auch komplexere anwendungen für den padnroa zu schreiben?

Das Programmierkonzept im allgemeinen habe ich verstanden.
Haben in der Schule WinLOGO gemacht und nun NQC .. aber mit diesen sprachen kann man nichts anfangen.
Deshalb werden wir eine JavaAG starten wo man Java lernt..
Kann man schon genauer sagen wie das gehen wird?
Linux habe ich GCC kann cih mri besorgen
und damit shcriebe ich dann die programme und brauche noch ein programm umd as auf einen ARM prozessor zu porten und kannd as dann aber einfach mit dem padnora starten?

Kann mal jemand ne Anleitung shcireben? xD
 
atto1 said:
brauche noch ein programm umd as auf einen ARM prozessor zu porten und kannd as dann aber einfach mit dem padnora starten?

du brauchst ein crosscompiler. also ein compilier, der dein code für unterschiedliche plattformen überetzen kann...

wenn du gcc hast, dann hol dir die notwendigen bibliotheken. oder, du nimmst die toolchain aus dem gp2x archiv, um schon einmal am gp2x zu üben... analog dazu wird es sicher auch bald passende toolchains für die pandora geben
 
der thread ist zwar schon ein paar wochen alt, aber ich schreib da jetzt trotzdem mal retour:

wenn du was gscheites machen willst, nimm C++ und SDL.
das ist echt nicht wirklich viel komplizierter als java. die prinzipien sind die selben.

Das Problem mit den open source java VMs ist, genau, die kompatibilität. natürlich kannst du gezielt so entwickeln, dass es auf einer...was weis ich...Apache Harmony (open source JAVA SE 5 implementierung) läuft. Die is aber z.B. noch nicht ganz fertig. Überhaupt sind alle die ich so kenne eher in einer Beta phase und noch nicht so ganz rund. Und java 6 unterstützt sowieso keine davon, das kommende 7 wohl noch lang nicht.

ganz abgesehen davon, daß du einen ARM built der VM brauchst. das ist aber sicher machbar, wenns nicht eh schon ausm ARM debian eine lauffähige gibt.

mein tipp: wenn du schon bissl tau von programmieren hast, stürz dich auf C++ oder python. Da kannst mit SDL bzw. PyGame feine sachen machen :)

lesenswert:
für C,C++, sprachen allgemein: http://www.mp.haw-hamburg.de/pers/GRichter/Lehrveranstaltungen.htm
guter kleiner einstieg in SDL: http://www.tutorials.de/forum/programming-tutorials/218464-spieleprogrammierung-mit-sdl.html


EDIT: nach näherer betrachtung scheint Harmony erstaunlich weit gekommen zu sein, und SE 5 ganz, SE6 zum teil zu unterstützen. das ist schon beachtlich. wäre schön, wenn das jemand auf die pandora portiert. muss ich mir mal ansehen, ob das viel aufwand ist.

EDIT2: von der kaffe JVM gibt es sogar einen linux/arm built. bin gespannt ob das laufen wird. die ist aber noch sehr unkomplett und unterstützt nicht mal alles, was 1.2 konnte.
 
Ich denke das Problem liegt eher darin, das nicht jeder C++ bevorzugt ;) Ich zB stehe eher auf Java, das hat zum einen den Grund, das ich es übersichtlicher finde, zum anderen das ich bis jetzt nur in Java praktische Erfahrung gesammelt habe. C++ wurde nur in ca. 3 Vorlesungen durchgenommen. Aber nur weil im 4. Semester in C++ programmiert wird. Ich bin jetzt im am Anfang des 3. Semesters und müsste noch nen halbes Jahr warten.

Mal sehen, ob ich mir C++ mal genauer anschaue. Aber wenn dann in Richtung 3D-Programmierung, da wär ja eher OpenGL sinnvoller? Ich könnte natürlich auch erstmal um in die SPrache rein zu kommen nen 2D Spiel programmieren. Mal sehen, so nen Tetris oder so, wollte ich schon immer mal programmieren ;)
 
kanzlr said:
wenn du was gscheites machen willst, nimm C++ und SDL.
das ist echt nicht wirklich viel komplizierter als java. die prinzipien sind die selben.

Um keinen Glaubenskrieg vom Zaun zu brechen habe ich das, was ich ursprügnlich schreiben wollte, einfach mal wieder gelöscht ^^

C++ ist vielleicht nicht unbedingt komplizierter, das einzig neue sind die Pointer (easy to learn, hard to master) und die Möglichkeit prozedural zu programmieren, aber C++ ist wesentlich "unübersichtlicher", da viele C++ und C mixen (vor allem Tutorials und auch einige Bücher machen das ganz gerne), das Mixen von C++ und C ist aber eigentlich ein absolutes no go! C Funktionen in C++ zu benutzen kann zu unvorhersagbarem Verhalten in Programmen führen. In der Regel wird das durch Compiller und die Grundlegenden Libs abgefangen, aber dass die Coder da an wirklich alles gedacht haben, das kann dir niemand garantieren.
Wenn man wirklich reines C++ programmiert, programmiert man schönes OOP, also von den Prinzipien her wirklich fast komplett wie in Java, aber man findet zu schönem und ordentlichem C++ keine wirklich brauchbaren Tutorials (zumindest hab ich keine, ich programmiere nun aber auch schon eine ganze Weile mit C# und Java). Die Art und Weise, wie C++ Coder manchmal ihren Code organisieren könnte auf den ersten Blick etwas komisch anmuten.

SDL kann ich aber auch nur empfehlen, oder wenn du lieber in 3D arbeiten möchtest kannst du auch das GLFW benutzen, falls es portiert wird. Aber SDL ist auf jeden Fall einen Blick wert, es gibt auch ein paar gute Tutorials dazu, zum Beispiel sols Tutorial stellt sehr viele Funktionen der SDL vor. Außerdem kann man mit Hilfe von SDL, genau wie mit dem GLFW, OpenGL relativ platformunabhängig initialisieren.
 
hab ein paar jahre als java programmierer gearbeitet, bevor ich ins software engineering gegangen bin.
ich halte von java sehr sehr viel. sowohl im enterprise bereich prinzipiell, als auch bei solchen entsprechenden high performance anforderungen. java ist toll. auch für rich clients, wenn mans richtig macht. java ist auch nett, als ME für handies.

aber um programme auf der Pandora, oder sonst einem mobilen gerät zu betreiben ist es nicht die richtige wahl. punkt.

mit C++ hast du nicht nur bessere performance, du sparst dir auch die VM, die programme starten meist flotter und du hast mit SDL (das es allerdings auch in verbindung mit java gibt) tolle möglichkeiten.

ich gebe aber den andern auch recht, daß wenn du C++ verwendest, du das sauber machen solltest, sonst wirds unübersichtlich. und eine gute IDE würd ich empfehlen (eclipse tuts schon).
 
Also Eclipse als IDE ist wirklich nur zu empfehlen, hat echt super Features schon von Haus aus und du kannst dir einen Haufen kostenloser Plugins besorgen. Vll gibt 's ja ein Tutorial zum Aufsetzen einer Pandora Toolchain basierend auf Eclipse, wäre für Leute die von Java kommen etc. sicherlich ganz praktisch.
kanzlr said:
aber um programme auf der Pandora, oder sonst einem mobilen gerät zu betreiben ist es nicht die richtige wahl. punkt.
Ausrufezeichen! Da muss ich dir voll und ganz recht geben, hab ich total vergessen zu erwähnen, denn der Punkt "betreiben auf einem mobilen Gerät" ist dabei der wichtigste (nachfolgend warum ich denke, dass VMs und mobile Geräte nicht so ganz zusammen passen, den Abschnitt kann der eilige Leser überspringen ;) ).
VMs brauchen in der Regel sehr lange bis sie wirklich ausgereift sind. Java hat einige Versionen gebraucht, bis es endgültig die Gerüchte zerschlagen hatte viel langsamer zu sein. Das .Net Framework (und die damit verbunden JIT Compiler) liegt mittlerweile schon in der dritten Version vor und wird immer noch von einigen bis vielen skeptisch beäugt. Ich weiß nicht wann die erste Version raus kam, aber es ist lange her. Um also eine wirklich effektive VM zu schafen braucht es sehr viel Zeit, Zeit haben Handhelds heute einfach nicht. Eine Generation jagt die nächste und die Grundlegende Architektur ändert sich wieder und wieder. Beim PC kann man wenigstens davon ausgehen, dass die Architektur abwärtskompatibel ist. Das ist einer der Gründe, wie ich finde wahrscheinlich der Hauptgrund, warum VMs auf Handhelds unpraktikabel sind: sehr schlechte Performance, da eine wirklich effektive gute Optimierung viel zu viel Zeit in Anspruch nehmen würde und den Lebenszyklus des Produktes übersteigt. Es wäre zumindest jetzt meine Argumentation, warum eine JavaVM auf mobilen Geräten eher unpraktikabel ist. Bin allerdings kein studierter Informatiker oder so, ganz im Gegenteil, ich bin eigentlich nur Hobbycoder. Vielleicht weiß ja jemand mehr zu dem Thema oder kann es besser erklären warum JavaVMs auf Handhelds und mobilen Geräten so unschön sind, würde mich freuen :)

Zum Thema C++ wurde mir das Buch von Bjarne Stroustrup "Die C++ Programmiersprache" empfohlen, da ich damals schon C#ler war habe ich es mir nie gekauft. Bjarne ist glaube ich einer der Väter von C++, bitte korrigiert mich wenn ich mich irre, und sollte somit wissen wovon er redet. Allerdings soll die deutsche Übersetzung teilweise schlechter sein als das englische Original.
 
"Turbo Pascal" wird wohl heutzutage ehr seltener eingesetzt? :D Ich frag nur, weil wir das früher in der Schule/Ausbildung hatten als Programmiersprache, C kam erst viel später und C++ gar nicht vor.
 
Für ARM Systeme gibts/wirds einen OpenJDK Port geben, z.B. hier http://gbenson.net/ zu sehen.

Meines wissens gibts für Debian lenny bereits Packete für ARM, für ein JRE.
 
pascal verwenden schon noch einige. also moderne delphi oder sachen wie FreePascal.

die frage ist nur, wozu.

lern C++, dann wirst du mit keiner objektorientierten sprache probleme haben.
leute die glauben, C++ wäre komplizierter als Java lassen sich von den guten Java IDEs (die es ja für C++ auch gibt) und der angesprochenen, verbreiteten vermischung von C und C++ täuschen.

bezüglich der toolchain für eclipse....mal sehen, ob ich eine der 3000 bekomme und ob ich dann motiviert bin und zeit hab. eigentlich spricht ja nichts dagegen. aber du kannst die toolchain natürlich auch außerhalb haben, und nur in eclipse programmieren. geht ja genauso gut.
 
Also das mit de IDE interessiert mich jetzt sehr. Ich programmiere ja Java überwiegend mit Eclipse (ab und an auch mal mit Netbeans). Habe aber gehört das Eclipse garnicht so gut für C++ sein soll, würde mal gerne über eure Erfahrungen mit Eclipse und C++ lesen.

In OO zu programmieren, dürfte für mich kein Problem sein, wäre bei nem Studium, wo der Prof sehr viel Wert drauf legt ja auch schlecht ;)

Also ich lass mich gerne von C++ überzeugen. Ich hab halt erst seit einem Jahr richtig Programmieren gelernt. Vorher hab ich zwar 3 Jahre programmiert, aber nur Microcontroller-Programmierung in C und das mit dem 80C537 und da kamen wir nicht so voran ;) Also zählt die Zeit nicht.

Hab mir überlegt, wenn die Prüfungsphase zuende ist, ein wenig nebenbei zu programmieren. Würde dann trozdem eher Zeit für das Newsportal opfern, das ich gerade mit ein paar netten Leuten aus dem Boden stampfe ;)
 
ich muss gestehen, ich schau mir eclipse für C++ selber gerade erst an (gibts auf der eclipse homepage direkt als download).
wie es mir gefällt kann ich dir erst in ein paar tagen sagen :)

hab aber bislang nur gutes drüber gelesen (und komfortabler als freund VI wirds schon sein...)
 
Back
Top