Hallo zusammen,
ich bräuchte eure fachliche Meinung zu einem Thema, da ich selbst nicht genügend HIntergrundwissen habe. Es geht darum, dass ich in einem Projekt, das nun startet, mitarbeiten soll. Im Moment wird diskutiert, welche Programmiersprache eingesetzt werden soll. Das Projekt solle eine Client Server Anwendung sein, wobei der Client größtenetils nur Messdaten aufnimmt und der Server die Clients steuert und reporting Funktionen besitzen soll. Zielplattform für den Server ist Windows und für den Client zu erst einmal Windows, jedoch soll hierbei auf Portabilität geachtet werden, so dass der Client zu einem späteren Zeitpunkt ohne größere Änderungen auf Linux/Unix oder auch OS X eingesetzt werden kann. Ich hoffe, dass dies genügend Infos zu dem Projekt sind.
Nun sieht es so aus, dass der Client wahrscheinlich in C++ programmiert werden soll. Jedoch sehe ich dabei einige Schwierigkeiten:
- kein standarisierte Threading Bibliothek (Einsatz von boost nötig)
- die Frage der Protabilität kann nicht geklärt werden, da noch nicht bekannt ist, welche Libs noch benötigt werden / wie platformabhngig diese sind.
- Der Server wird eindeutig nicht in C++ geschrieben. Daher hat man zusätzlichen Entwicklungsaufwand, da das Protokoll in 2 Programmiersprachen implementiert werden muss. Sollt ejedoch kein Protokoll entwickelt werden sondern auf RPC/RMI oder wie auch immer es in der Zielprogrammeirsprach heißt gesetzt werden, würde im Falle von C++ nur noch CORBA übrig bleiben, das bekanntlich nciht so einfach ist.
Hingegen spricht für C++, dass das Programm einfach auf den Client Rechnern installiert werden kann, da es keine Abhängigkeiten (-static) installiert werden kann. Hierbei hab ich eine Frage bezüglcih Windows? Ist nie gegeben, dass Vista oder Windows XP SP3 eine .NET runtime besitzt?
Ich würde gerne von euch wissen, welche Vorteile ihre bei dem Einsatz von C# gegenüber C++ seht. Hierbei muss dies nicht auf die oben angeführten Punkte zu treffen, es interessieren mich auch allgemeine Argumente.
Danke für eure Hilfe!
Mips