Hallo! Ich bräuchte mal einen Tipp für eine gut geeignete Programmiersprache. Ich habe folgendes vor: Mein Computer soll mit meinen Mikrocontrollerschaltungen (und ein paar gekauften Systemen wie etwa einem Multimeter) kommunizieren. Diese Kommunikation soll über einen seriellen Port (bzw. über einen virtuellen seriellen Port über USB) ablaufen. Für später wäre auch die direkte Nutzung der USB-Schnittstelle interessant, aber zunächst reicht com. Der Rechner soll Anweisungen an den µController senden und Daten empfangen können, und zwar in den beiden Modi: PC sendet Anweisung, µController sendet 1 Antwortstring oder der µController sendet von sich aus regelmäßig (z.B. 4 mal pro Sekunde) einen String mit Daten. Das PC-Programm soll diese Daten empfangen können, grundlegend bearbeiten (z.B. ASCII String in Zahl umwandeln oder umgekehrt, alle "." durch "," ersetzten, skalieren, mit offset versehen, etc.) und anschließend zur weiterverarbeitung speichern (z.B. als durch TAB getrennte ASCII-Tabelle). Außerdem sollte das PC-Programm Datenfiles einlesen und auch entsprechend verarbeiten können. Schön wäre es, wenn ich dann direkt aus dem Programm heraus z.B. gnuplot starten könnte, um die Daten zu visualisieren. Noch schöner wäre es, wenn ich die Daten im Programm selber schon visualisieren könnte (einfaches 2D Wert-Zeit-Diagramm). Laufen muss das ganze unter Windows. Schön wäre es, wenn es auch auf dem Mac direkt, also ohne Windows läuft. Nun zu meinen Programmiererfahrungen: Angefangen habe ich vor ca. 25 Jahren mit Basic auf dem Schneider CPC, dann kam Pascal hinzu. Später ging es mit einem PC/XT unter DOS mit Turbo Pascal 3.0 und 5.5, sowie 8086-Assembler weiter. So weit lief alles prima. Dann kam ein Atari ST, und mit ihm die graphische Benutzeroberfläche. Seither (auch unter Mac und Windows) bin ich eigentlich nie wieder so richtig in der Computer-Programmierung drin gewesen. Der Overhead für die GUI und die Zusammenarbeit mit dem jeweiligen Betriebssystem war mir einfach immer zu viel. Ich hab's zwar immer wieder mal probiert, und dabei ein wenig C gelernt, aber wirklich was Vernünftiges ist nie draus geworden. Die alten Kenntnisse sind noch latent vorhanden. Dann fing ich vor ein paar Jahren mit µControllern an: Zunächst PIC in Assembler (mach ich ab und zu immer noch) un dann kamen der Parallax Propeller, Flowcode für PIC (mit kleinen C-Einlagen) und PICAXE dazu. Zwischendurch habe ich mich auch mal an AVRs und Arduino versucht, aber die waren nicht so mein Ding. Ich suche also eine Sprache, mit der ich ohne große Rücksicht aufs Betriebssystem möglichst direkt loslegen kann, ohne viel Overhead. Die Sprache sollte leicht verständlich sein, so dass man auch nach ein paar Monaten Pause wieder leicht reinkommt. Von den Sprachen, von denen ich bisher mal was gehöhrt habe, ist denke ich Python ganz gut geeignet. Seht ihr das auch so, oder gibt es da was besseres für mich? Vielen Dank, Lutz
Wenn Du bereits Erfahrungen mit Basic hast, empfehle ich Dir für die PC-Seite "Visual Basic Express" von MS, und Bascom für die AVRs (falls du Atmel uC verwenden möchtest). Möchtest Du hingegen komplett neu anfangen, nimm Visual C++ von MS und ein C für die Prozessoren.
Warum mit Kanonen auf Spatzen schießen? C# wäre für deine Anwendung sicher besser geeignet als C++.
Eine Skriptsprache wie Ruby oder Python. Kompilierte Sprachen sind für so eine Anwendung zu umständlich, C++ sowieso.
Wenn du schon Erfahrung mit Pascal hast, warum nimmst du dann nicht Delphi oder Lazarus? OK auf dem Mac laufen diese Programme vermutlich nicht, mit Mac kenne ich mich nicht aus. Vorteile von Delphi/Lazarus: - Es existieren fertige Komponenten für die Ansteuerung der RS232 - Es existieren Komponenten, die eine grafische Darstellung von Messwerten sehr einfach macht - Export, Import von Dateien total einfach - Grafische Oberfläche ohne Aufwand, einfach Buttons, Labels usw. auf die Form ziehen und Ereignis zuweisen Ist halt nicht sooo die professionelle Lösung, aber für Privat finde ich das ganz in Ordnung. Man erreicht mit wenig Aufwand in wenig Zeit ein schönes Programm...
Vielen Dank erst mal für die Tipps. Momentan würde ich wohl zu den Skript-Sprachen tendieren. Von Python hatte ich ja schon mal gehöhrt, von Ruby wusste ich bisher nur, dass es das gibt. Auf den ersten Blick scheinen beide geeignet (und wie mir gerade aufgefallen ist, kann man in diesem Forum ja auch nach "Python/Ruby" filtern lassen). Gibt es da als Entscheidungshilfe zwischen den beiden eine brauchbare Gegenüberstellung? Was ich da bisher gegoogelt habe, geht alles so in die Richtung "Wir fühlen uns gut beim Programmieren." (Ruby) vs. "Dafür programmieren wir was ernsthaftes." (Python). Erinnert mich irgendwie an alte CPC vs. C64- und später Atari ST vs. Amiga-Zeiten. Ich hatte 'nen CPC und ST, also müsste mir dann wohl Python eher liegen ;-) Wobei sich Lazarus (in Erinnerung an meine Pascal-Zeit) auch nicht schlecht anhöhrt. Das werde ich mir sicher auch mal näher angucken. Beste Grüße, Lutz
Wenn du keine Allergie auf Klammern hast, dann schau dir mal http://racket-lang.org/ an, kommt mit einer netten IDE und ist ziemlich effizient, hat OpenGL und GUI Library ... und ich bin damit ziemlich zufrieden, weil ich letzes Monat ein Projekt von C nach Scheme portiert habe und der Code dabei auf 1/10 geschrumpf :-)
Kleiner Vergleich zwischen Ruby und Python. Naja, mehr der Community, weniger der Sprachen selbst. Wie immer grain of salt und so. Ruby ist total cool, da rennen in der Community Leute rum, die wirklich extrem intelligent sind und abgefahrene Sachen programmieren. Da schaue ich hin, wenn ich inspiriert werden will. Und Leute bewundern will. Python ist total cool, da rennen in der Community Leute rum, die zusammen einfach so ziemlich alle Themengebiete hervorragend abdecken (NumPy/SciPy, NLTK für Natural Language, und noch viel mehr) und alles wunderbar dokumentieren. Da schaue ich hin, wenn ich soliden, funktionierenden Code haben will, der auch nach dem nächsten Update sicher noch funktioniert. Das ist ein großer Mentalitätsunterschied. Die Ruby-Leute monkey-patchen ihre Klassen -- und vor allem auch fremde Klassen -- bis zum Gehtnichtmehr. Lade mal Rails und schaue, wieviele Methoden Object plötzlich hat. Das ergibt unglaublich konzisen Code, unglaublich ausdrucksstarke DSLs (schau alleine mal sinatrarb.com an), aber immer das Risiko, daß zwei Codeteile sich gegenseitig auf die Füße steigen (der eine patcht die Methode um, die der andere eigentlich braucht). Die Python-Leute könnten das von der Sprache her auch, lassen es aber. Dafür suchen sie nicht die endgültige Eleganz, sondern gucken eher, daß alles verständlich und nachvollziehbar bleibt.
Lazarus hat den großen Vorteil, dass es plattformunabhängig ist. In der Arbeit entwickeln wir damit unter Linux und können das auch ganz einfach auf dem Mac oder Windows kompilieren. Die Kunden sind begeistert, besonders da wir keinerlei Installationsroutine brauchen. Und es ist schön eine Sprache zu haben, bei der man einige Sicherheitsfunktionen einschalten kann, wie beispielsweise die Überprüfung von Arraygrenzen, und das in der Praxis ohne dass man da nennenswerte Geschwindigkeitsprobleme hätte. Microsoft behauptet man müsse dafür interpretierten Code einsetzen. :)
> Microsoft behauptet man müsse dafür interpretierten Code einsetzen. :)
Wer glaubt schon das, was M$ sagt?
Lazarus hat all die netten Dinge, die TP6 anno Schnee auch schon hatte,
nur schöner :-)
ich würde excel vba und die rsapi.dll nehmen. ruck zuck ist damit eine kommunikation via com hergestellt und mit den diagrammen von excel läßt sich alles schneller anzeigen als man gucken kann.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.