auf was setzten für mehrjähriges projekt c++ oder c#



  • hallo programmiererfreunde, ich plane ein von Grund auf neues Projekt das ca. 2 Jahre Zeit in Anspruch nehmen soll (zwei Jahre ist die Deadline, danach geht mir das Geld aus);-) Die Frage ist soll ich es in C# oder C++ schreiben. beides wäre geeignet, das es nur Daten analysieren soll auf einem/mehrerern Servern im Hintergrund, die Ausgabe/Reportdatei würde in html oder in Textform erfolgen. Beide Sprachen wären dafür geeignet, und eigentlich würde ich mehr zu C# neigen, die Vorzüge von .net sind einfach kaum zu toppen.

    Java wäre eine Überlegung Wert, allerdings sind meine Kenntnisse in Java bei Weitem nicht so gut wie C# oder C++, was bei einem mehrjährigen Projekt nicht so toll ist, da man evtl. viel Code produziert denn man mit mehr Hintergrundwissen wieder überholen muss.

    Das Problem ist für mich im Moment die Unsicherheit seitens von MS was mich gerade Richtung C++ treibt, obwohl mir bewusst ist dass es mit C# leichter ginge. Niemand weiß im Moment wies mit .Net weitergeht und in zwei Jahren - falls das Projekt bis dahin fertig ist - ist wahrscheinlich schon Windows 10 in den Startlöchern.

    Welche Sprache würdet ihr nehmen/mir raten? Also von den dreien? Die Software soll auf einem Server, bevorzugt IIS, aber auch ein Linux Server wäre nicht ausgeschlossen. Die Software soll mehrere Millionen Rechenschritte und ein paar tausend Werte pro Tag verarbeiten. Danke für die hoffentlich zahlreichen Antworten



  • Falls das Deine einzige Sorge ist: .NET und C# werden mit Sicherheit noch viele Jahre in der oberen Liga mitspielen. C# ist sehr verbreitet und wird weiterentwickelt.



  • mikadoo schrieb:

    ...mehrjähriges projekt...zwei Jahre...

    Ja, 2 Jahre sind schon mehrjährig, aber wirklich langfristig auch nicht. Bei nur 2 Jahren dürfte die Wahl der Sprache und des Frameworks so ziemlich egal sein.

    Grundsätzlich sehe ich die Aussage von "qweasdyxc" für richtig an, ich habe sogar das Gefühl das sich bei C# nach kurzen bergab (Nachdem bei Microsoft-Veranstaltungen immer HTML5+JS propagiert wurde) durch Unsicherheiten, es sich eher wieder gefestigt hat. Grundsätzlich ist es aber ohnehin egal, da der Supportzeitraum bei MS selbst im schlechten Fall 10 Jahre ist. Sprich würden sie heute .Net einstellen, würdest du noch mindestens 10 Jahre sicher sein können das .Net dennoch unterstützt wird. Von einem Einstellen kann ich aber nichts sehen (eher schon im Gegenteil).

    Des weiteren scheint sich auch Xamarin recht erfolgreich zu sein, so das man C# sogar für iOS, Mac und Android gut nutzen kann.

    mikadoo schrieb:

    Das Problem ist für mich im Moment die Unsicherheit seitens von MS was mich gerade Richtung C++ treibt,

    Welche Unsicherheiten? Das oben genannte Zeitweise propagieren von HTML5+JS? (Ja, es ist eine neue Option, aber bei weiten nicht die Einzige)? Oder das WinRT intern auf C++ aufbaut (Anmerkung: Das ist auch nichts neues, .Net basiert in nicht unwesentlichen Teilen auf einer C-API, nämlich der Win32 API).

    mikadoo schrieb:

    Welche Sprache würdet ihr nehmen/mir raten? Also von den dreien? Die Software soll auf einem Server, bevorzugt IIS, aber auch ein Linux Server wäre nicht ausgeschlossen.

    Linux-Server würde im C#-Fall zumindest einige Einschränkungen bedeuten (u.a. weil Mono bei weiten nicht alles unterstützt).

    mikadoo schrieb:

    Die Software soll mehrere Millionen Rechenschritte und ein paar tausend Werte pro Tag verarbeiten. Danke für die hoffentlich zahlreichen Antworten

    Grundsätzlich spricht auch dies nicht gegen C#, und wenn es doch Probleme geben sollte, kann man rechenintensive Aufgaben noch immer in eine C++ Dll auslagern.



  • C# ist mittlerweile enorm verbreitet, gerade im Business Bereich.

    Und der Support für das Framework 4.5 ist ja noch einige Jahre gegeben, selbst wenn Microsoft plötzlich .NET sterben ließe (was ich aber aufgrund des Verbreitungsgrades nicht glaube).

    Von der Performance her könntest Du ja durchaus das Beste aus beiden Welten nehmen, man muss ja nicht alles komplett nur in einer Sprache entwickeln.

    Die Rechenschritte die am kritischsten sind könntest Du in C++ machen und über einen Wrapper in C# einbinden (dabei ist C# aber auch so schon schnell genug, gerade wenn man Techniken wie Object-Pooling einsetzt damit einen der GC nicht ausbremst). Oder in C, dann brauchste noch nichtmal einen Wrapper.

    Nimm das was für Dich am zweckmäßigsten ist, im Bezug auf Entwicklungsaufwand bzw. Entwicklungsdauer und Performance.

    Viel Erfolg bei Deinem Projekt.



  • Schicksal erleidet wie so viele von MS und innerhalb von drei Jahren komplett ersetzt wird. Ich möchte nicht gegen MS wettern und es ist im Zusammenhang mit .net viel gutes entstanden, linq, WPF, usw. allerdings frage ich mich zusehends ob ich diese Tempo bei Erweiterungen/Änderungen auf Ewig mitmachen kann. Ich beherrsche die Basics in Html und auch Javascript, trotzdem graut es mir davor Anwendungen damit zu Erstellen, auch wenn das die Zukunft sein soll.


Anmelden zum Antworten