Expertensystem mit C# und .net 4.0 macht das Sinn?



  • hustbaer schrieb:

    Weil beide Sprachen nen Schwerpunkt auf "Correctness" legen, und gute Tools dafür anbieten Fehler zu vermeiden. Was ich bei Software für den Bereich Medizin für nicht ganz unwichtig halte.

    Als ob es bei einem Expertensystem im entferntesten um Leben und Tod gehen würde...



  • volkard schrieb:

    Ok, es sind Implementierungen vorstellbar, wo das nicht reicht, denke zunächst an Bloomfilter und so ganz abgefahrene Sachen, aber die macht Ihr nicht.

    Warum ist das ausgerechnet bei bloomfiltern ein problem?



  • Hardware? OS?

    Ist es überhaupt Windows oder Linux (Mono)? Oder ein anderes OS, auf dem es gar kein .Net gibt? Diese Info ist doch wichtig für eine Entscheidung.

    Ansonst ist ja auch C++ mit einer Scriptsprache (Lua oder Angel) gut kombinierbar. Für Correctness gibt es xUnit.

    Aber wenn es für die Zielplattform .Net/Mono gibt, würde ich auch C# in Betracht ziehen.



  • Jester schrieb:

    volkard schrieb:

    Ok, es sind Implementierungen vorstellbar, wo das nicht reicht, denke zunächst an Bloomfilter und so ganz abgefahrene Sachen, aber die macht Ihr nicht.

    Warum ist das ausgerechnet bei bloomfiltern ein problem?

    Da hab ich falsch gedacht.
    Außer vielleicht mit der gegen Überläufe geprüften Arithmetik und den Hash-Funktionen, das könnte lahm werden.



  • hustbaer schrieb:

    vfsdfdsfs schrieb:

    C# hat den Overhead, dass es interpretiert werden muss.

    Nein.

    C# wird nie interpretiert sondern immer JIT compiliert - ausgeführt wird immer native Code.
    Was auch ein Grund dafür ist dass C# Programme nicht so langsam sind wie viele meinen immer wieder behaupten zu müssen.

    ich glaube kaum, dass die JIT Compilierung "gratis" ist.
    C++ Code wird direkt ausgeführt, bei C#/.NET muss erstmal der Zwischencode übersetzt werden, und erst dieser kann dann ausgeführt werden. Das muss einfach einen gewissen Overhead erzeugen.



  • Was heißt du glaubst und es muss? Wen interessierts? Ich hab vier Jahre C# programmiert, und das ist auch schon wieder Jahre her, dazwischen liegen paar Hardwaregenerationen. Die Performance war damals schon völlig ausreichend, ich hab nie irgendeinen Unterschied gespürt. Die Programme haben schnell gestartet und haben flott reagiert, es gab überhaupt keine Probleme.



  • Mechanics schrieb:

    Was heißt du glaubst und es muss? Wen interessierts? Ich hab vier Jahre C# programmiert, und das ist auch schon wieder Jahre her, dazwischen liegen paar Hardwaregenerationen. Die Performance war damals schon völlig ausreichend, ich hab nie irgendeinen Unterschied gespürt. Die Programme haben schnell gestartet und haben flott reagiert, es gab überhaupt keine Probleme.

    das stimmt so nicht.

    auf embedded hardware ist das starten des .net frameworks deutlich spürbar.
    c++ hingegen startet direkt los ohne verzögerung.

    außerdem hat c# deutlich mehr checks zur laufzeit, sodass auch zur laufzeit c++ einen vorteil hat.



  • @vfsdfdsfs
    Ich hab' auch nicht behauptet dass es keinen Overhead gäbe.
    Ich hab' nur eine unwahre Behauptung von dir korrigiert.



  • nene schrieb:

    auf embedded hardware ist das starten des .net frameworks deutlich spürbar.

    Mag sein. Das wär aber schon wieder eine zusätzliche Randbedingung, die hier nicht angegeben wurde und mich daher auch nicht interessiert.



  • vfsdfdsfs schrieb:

    ich glaube kaum, dass die JIT Compilierung "gratis" ist.
    C++ Code wird direkt ausgeführt, bei C#/.NET muss erstmal der Zwischencode übersetzt werden, und erst dieser kann dann ausgeführt werden. Das muss einfach einen gewissen Overhead erzeugen.

    Ah, ein echter JIT Experte. Kannst Du denn auch die Vorteile des JIT-Compilierens aufzählen oder bashst Du hier nur mit Halbwissen etwas das Du nicht verstehst?



  • loks schrieb:

    vfsdfdsfs schrieb:

    ich glaube kaum, dass die JIT Compilierung "gratis" ist.
    C++ Code wird direkt ausgeführt, bei C#/.NET muss erstmal der Zwischencode übersetzt werden, und erst dieser kann dann ausgeführt werden. Das muss einfach einen gewissen Overhead erzeugen.

    Ah, ein echter JIT Experte. Kannst Du denn auch die Vorteile des JIT-Compilierens aufzählen oder bashst Du hier nur mit Halbwissen etwas das Du nicht verstehst?

    die "vorteile" darf ich tagtäglich bestaunen: startet saumäßig langsam auf embedded hardware, ausführung ist durch andauernde run time checks auch nicht gerade toll.
    ich kann keinen vorteil von C#/.NET mitsamt JIT erkennen.



  • vfsdfdsfs schrieb:

    loks schrieb:

    vfsdfdsfs schrieb:

    ich glaube kaum, dass die JIT Compilierung "gratis" ist.
    C++ Code wird direkt ausgeführt, bei C#/.NET muss erstmal der Zwischencode übersetzt werden, und erst dieser kann dann ausgeführt werden. Das muss einfach einen gewissen Overhead erzeugen.

    Ah, ein echter JIT Experte. Kannst Du denn auch die Vorteile des JIT-Compilierens aufzählen oder bashst Du hier nur mit Halbwissen etwas das Du nicht verstehst?

    die "vorteile" darf ich tagtäglich bestaunen: startet saumäßig langsam auf embedded hardware, ausführung ist durch andauernde run time checks auch nicht gerade toll.
    ich kann keinen vorteil von C#/.NET mitsamt JIT erkennen.

    q.e.d


Anmelden zum Antworten