Soll ich C lernen?

Willkommen!

Wenn du im Nexave-Forum mitmachen möchtest, schreib an community@nexave.de. Wir haben die Registrierungsfunktion in unserem Diskussionsforum nämlich deaktiviert, weil sich praktisch nur noch Spammer und Werbebots registriert haben. Per E-Mail sind wir dir gern behilflich, einen Account anzulegen.
  • Hallo Palm-Programmierer


    Vor wenigen Jahren habe ich mit Turbo Pascal programmiert, heute mit VB/VBA. Ich möchte nun auch auf dem Palm entwickeln können ohne dazu viel Geld ausgeben zu müssen.
    Mir schwebt bspw. eine Audio-Anwendung vor, bei der ich direkt vom Mikrofon ein Powerspektrum anzeige (mit FFT, als 3D-Wasserfall) oder den Schallpegel messe (in dBA etc). Sowas ähnliches hatte ich mal mit Pascal gemacht (inkl. Hochqualitäts-Sinusgenerator, Frequenzgangplotter).


    Muss ich nun tausende Seiten Doku wälzen und erst noch C lernen :rolleyes:? Oder gibt's was einfacheres?

  • Ich kenne zwar die Basic-Umgebungen nicht, gehe aber davon aus, dass du damit solche Programme nicht unbedingt schreiben kannst. Möglicherweise stellen sie nicht das gesamte PalmOS-API zur Verfügung, auf das du aus C heraus zugreifen kannst.
    Möglicherweise spielt da auch dann die Rechenzeit eine Rolle. Für solche Anforderungen empfiehlt sich dann vielleicht sogar die Entwicklung von ARMlets, d.h. nativen ARM-Anwendungen...


    Wenn du schon mal Pascal kannst, kannst du mit Sicherheit auch C lernen. Die berühmten Pointer sind natürlich eine kleine Stolperfalle, aber das ist alles beherrschbar.


    Fazit: ich würde C empfehlen... :)

  • Hi,


    auch ich würde C++/c vorschlagen. Doch vorsicht! Es gibt verschiedene "C" für den Palm, z.B. Pocket C und Orbforms. Diese eignen sich nicht für das was Du vorhast, da diese keine echten Compiler sind, sondern tokencode erzeugen, ähnlich java, der interpretiert wird. Das merkt man zwar kaum an der Geschwindigkeit, solange man formularbasierte anwendungen schreibt - doch Du willst eine FFT programmieren, da kann man diese zwei C's vergessen.


    Da Du natürlich nach einer billigen Variante suchst und professionelle Entwicklungswerkzeuge für den Palm recht teuer sind gibt es folgende Alternativen:


    OnBoardC
    erzeugt echten Code, Entwickelt wird auf dem Palm. Das eignet sich m.E. nur für kleine Anwendung onthefly, oder für Masochisten.


    Gnu-C+Palmphi
    Gnu-C ist umsonst, ein brauchbarer Compiler und die SDK's für Palm gibts dazu. Palmphi ist eine Oberfläche, mit der man ganz gut die Formulare erzeugen kann, WYSIWYG ...
    Ich persönlich programmiere damit bzw. auch in PocketC/Orbforms - wenns nicht um Geschwindigkeit geht.


    Viele Grüße
    Rudi

    Die Kinder des Kometen küssen die blaue Perle.


    (Atari Portfolio->Sharp pc3000->IIIc->m505->ux50->Lifedrive->Pre)

  • Hallo,
    wenn Du schon mal in Pascal programmiert hast, dürfte dir der Umstieg auf C oder C++ nicht all zu schwer fallen. Suchst du noch nach preiswerten Alternativen zu kommerziellen Entwicklungsumgebungen fällt die Auswahl nicht all zu schwer.


    Ich hab dazu schon mal was in diesem Thread Sourcecode für eigene Entwicklung v. Palm-Applikationen gepostet. Auf alle Fälle solltest du noch die Dokus von PalmSource und Palm Open Source ansehen. Hier findest du eine Menge nützlicher Dinge. Als Buch empfehle ich dir "MALM-OS-Programmierung mit GCC" von Dirk Nöldner. Gibt es bei http://www.amazon.de. Da ist alles so easy beschrieben, dass auch ein Anfänger was damit anfangen kann. Außer für das Buch habe ich keinen weiteren Cent ausgegeben.


    Gruß Steffen

  • Zwar denke ich, dass der Umstieg von Pascal auf C/C++ schon etwas holprig vonstatten geht, aber ich schliesse mich meinem Vorgänger an.


    Grundsätzlich: FFT und 3D-Graphiken (wahrscheinlich noch in Echtzeit) verschlingen einiges an Rechenkraft und werden selbst in Form eines Armlets sehr inperformant ablaufen.

  • Zitat

    Original von gofur
    Grundsätzlich: FFT und 3D-Graphiken (wahrscheinlich noch in Echtzeit) verschlingen einiges an Rechenkraft und werden selbst in Form eines Armlets sehr inperformant ablaufen.


    Ein 486 PC mit 50 MHz konnte das (64 Spektren). Eigentlich sollte doch ein T3 mit 400 MHz auch eine bessere Auflösung ganz flott in Echtzeit hinbekommen, oder wieso nicht?


    Erstellt eigentlich nicht schon der Compiler kompletten ARM-Code?


    Vielleicht habe ich über die Festtage Zeit mal mit C anzufangen :rolleyes:

  • Stimmt. War im Gedanken bei meinem Tungsten1 und der Bildverarbeitung, da ist die FFT nämlich ziemlich behäbig.


    Klar, Compiler übersetzen den C/C++ Code in Maschinensprache, jedoch laufen Armlets "direkt" auf dem Prozessor und ersparen sich so den PalmOS-Layer. Vor allem können gezielte Optimierung vorgenommen werden.

  • Normale Palm-Programme werden bisher immer nur für den Motorola Dragonball-Prozessor compiliiert. PalmOS 5 übernimmt für dich die Übersetzung auf die ARM-Platform direkt auf dem Gerät. Es gibt noch keine Compiler für Palm-Programme in ARM-Code.


    Wenn dir funktionsorientiertes Programmieren von Pascal vertraut ist, wirst du auch mit C zurecht kommen. Dann kannst du die komplette, riesige PalmOS API mit all Ihren vielen Funktionen nutzen! Für ein richtiges Palm-Programm führt da kein Weg dran vorbei.


    Man kann für den Palm auch in C++ programmieren. Das lohnt sich aber nur, wenn man die Standard Template Library von Metrowerks hat (Codewarrior - kommerzielles Produkt). C++ ist halt objektorientiert im Gegensatz zu C. Das ist ein ganz anderer Ansatz, wie man sein Programm aufbaut. Bei C manipuliert man die ganze Zeit wild im Speicher herum, was zwar effizient ist, aber sehr fehlerträchtig. Bei C++ wird alles sauber in Objekten gekapselt.

  • Zitat

    Es gibt noch keine Compiler für Palm-Programme in ARM-Code.


    Doch. Der Codewarrior von Metrowerks kann das. Es werden hierzu allerdings nur die gebräuchlichsten PalmOS-Methoden angeboten.

  • Hallo,


    Pascal und Armlets in einem bietet PPCompiler.
    Es ist allerdings ein Onboard-Compiler und die Programme können maximal 32kB gross sein. Für mich ist es die erste Programmierumgebung (nach PDA Toolbox) mit der ich ohne Probleme ALLE Funktionen des Palms nutzen kann, ohne C lernen zu müssen.


    Gruss,
    Hardy.

  • armcode kann auch die version 4.1 von ns-basic... :)

    History: PDA600 - Palm Prof. - Palm 3 - Palm 3XE - M505 - T1 - T3 - T|X
    Equipment : EMTAC - Inklink - IR-Tast. - Powertogo - C-PEN 600C - Coolpix 3700 - Nokia 6310i - SE Z600 - WiFi SDIO Card
    SD: 1GB ExtreMe - 512 MB Sandisk Ultra II - 256 MB Sandisk