Forum: PC-Programmierung Programmiersprachen Empfehlung?


von Lutz (Gast)


Lesenswert?

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

von Alex W. (a20q90)


Lesenswert?

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.

von Sharping (Gast)


Lesenswert?

Warum mit Kanonen auf Spatzen schießen? C# wäre für deine Anwendung 
sicher besser geeignet als C++.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Eine Skriptsprache wie Ruby oder Python. Kompilierte Sprachen sind für 
so eine Anwendung zu umständlich, C++ sowieso.

von Engineer (Gast)


Lesenswert?

Ich würde auch Python nehmen.

von Gelöscht (kami89)


Lesenswert?

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...

von Lutz (Gast)


Lesenswert?

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

von Zwie B. (zwieblum)


Lesenswert?

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 :-)

von XTerminator (Gast)


Lesenswert?

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.

von Christian B. (casandro)


Lesenswert?

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. :)

von Zwie B. (zwieblum)


Lesenswert?

> 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 :-)

von walterwalter (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.