Welche Sprache soll ich verwenden?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Welche Sprache soll ich verwenden?

    Hallo Forum,

    ich habe nun schon ein wenig gesucht und bin leider nicht viel schlauer geworden.

    Ich habe die Aufgabe bekommen, ein altes Projekt neu aufzubauen. Dabei habe ich freie Wahl der zu nutzenden Programmiersprache.
    Die Neuerung zum alten Projekt soll eine rechenintensive Berechnung während der Laufzeit - also während Messdaten aufgezeichnet werden - sein.
    Bisher geschah dieses nach der Datebaufzeichnung und dauerte einige Zeit.
    Es sind übrigens Berechnungen zur Frequenzanalyse - näheres weiß ich leider noch nicht.

    Das alte Projekt wurde mit Visual Basic 6 erstellt (hey ich kann nichts dafür:-) ).
    Das Programm wird auf einem Windows Rechner mit XP oder 7er OS laufen. Ob, der Rechner überhaupt genug Rechenleistung hat, muss ich noch klären.
    Ich vermute aber stark, dass die heutigen Rechner dieses leisten können.

    Hier nun die Fragen:
    Welche Programmiersprache soll ich wählen?
    Sind Berechnungen in Basic langsamer als wenn sie in C (C++/C#) geschrieben werden? Verbraucht Basic mehr Rechenleistung?
    Dieses hängt ja - wenn mich meine Kenntnisse nicht täuschen - stark von dem Compiler und Linker ab, oder?
    Oder gibt es gar andere effektivere Sprache?
    Was ist mit Java?

    Ich hoffe, ich hab mich klar ausgedrückt und nicht zu viel falsches dank meiner Unwissenheit geschrieben.
    Ein Punkt der noch wichtig sein könnte:
    Ich habe schon einigermaßen viel in Basic (VB6 und 2010), Java und C/C++(VC6) programmiert. Meine Kollegen, die auch mitarbeiten werden, eher nur in Basic (VB6).
    Allerdings nur auf einem niedrigen Level dieser Sprachen (wenig Nutzung der Fähigkeiten - Vererbung usw.).
    Somit ist der Faktor Erlernen der Sprache auch noch ein wichtiger Punkt.

    Gruß und vielen Dank im Voraus
    Tukuan
  • Du schreibst zwar nicht wie die Daten in den PC kommen, aber da es sich um ein hardwarenahes Projekt handelt, kannst du Java eigentlich ausschließen. Bleiben im wesentlichen noch C/C++, .NET wenn es perfomancetechnisch damit gehen würde oder irgendwelche Exoten. Mit welcher Auflösung samplest du denn die Messdaten?
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • Schon mal vielen Dank.

    Wir steuern den Messrechner und dessen Mess-Software mit unserer Software.

    Die Daten werden auf Platte abgelegt und sollen dann berechnet werden. Ist also nicht ganz so wie es sich vielleicht zunächst angehört hat.
    Die Berechnung ist nicht wirklich zur Laufzeit. Aber sie muss dann beendet sein, wenn auch die Messung zu Ende ist (+ x Sekunden).
    Die Sampelrate ist 4 bzw. 20 KHz. Könnte sich aber auch noch deutlich steigern (50 kHz...100kHz).

    Klingt vielleicht nicht viel, allerdings werden mehrere Messkanäle (ich glaube 8 -12) aufgezeichnet und die Berechnungen sind - denke ich - recht komplex.

    Von Basic würdest du auch eher abraten?
    Gibt es da wirklich einen merkbaren Performaceunterschied zu C, C++,.Net?

    Gruß
    Tukuan
  • Ja gibt es. Bei Visual Irgednwas (inkl. .NET) hast du mindestens immer den Overhead einer Programmbibliothek, bei .NET sogar noch eine Zwischenschicht. Bei 8x100kHz bewegen wir uns schon im recht feinen Rahmen, da ist fast schon die Frage ob du nicht ein Echtzeitbetriebssystem nimmst und dort mit einer ISR arbeitest. DU solltest auf jedenfall in in der sample-Geschwindigkeit arbeiten weil du sonst puffern musst, und dann deine Messreihe nicht mehr "beliebig" lang werden kann.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • Vielen Dank. Hilft mir schon weiter.
    Wenn ich mal zusammenfasse:
    Am besten geeinget sind für die Aufgabe C/C++ ohne den Overhead von Visual.
    Hat jemand da eine gute Entwicklungsumgebung, die gut passen könnte?

    Meinst du mit ISR - Interrupt Service Routine?
    Ja, muss ich warscheinlich verwenden - wenn es geht.

    Ich bin leider an das System gebunden. Echtzeitsystem kann ich nicht verwenden.
    Das OS wrid Windows XP sein. Bei neueren Systemen Win7.

    Vielen Dank
    Tukuan