37 Stimmen

Warum sollten Sie C# verwenden wollen, wenn es langsamer ist als C++?

Ich bin auf der Suche nach einer neuen Sprache, die ich nach C++ und Java lernen möchte. Ich war im Begriff, C# zu versuchen, aber ein paar Leute sagen, dass es wirklich langsam ist, weil es eine Hochsprache ist. Warum sollte also jemand C# verwenden? Ist C++ nicht viel schneller? Macht es die Entwicklung einfacher, hat aber ein langsameres Endprodukt?

Außerdem: Wofür kann C# verwendet werden? Sie verwenden es für eine Menge .NET-Zeug unter Windows und für ASP.NET, aber was sind andere Situationen, in denen man C# verwenden würde? Wird es viele Beschäftigungsmöglichkeiten dafür geben?

77voto

Jon Skeet Punkte 1325502

Wer genau ist dieser "Haufen von Leuten"? Womit wird es verglichen?

Für die große Mehrheit der Dinge ist C++ no "viel schneller" als C#. Es hat sicherlich Vorteile in verschiedenen Situationen, insbesondere dort, wo man eine deterministischere Speicherbehandlung wünscht, aber meiner Erfahrung nach liegt der Engpass in den meisten Anwendungen nicht an Stellen, an denen C++ helfen würde. Wie spoulson sagt, liegt ein großer Teil der Leistung im Design und nicht in der genauen Implementierung - und da hilft es, verschiedene Designs einfach ausprobieren zu können.

Warum sollten wir C# verwenden, wenn es eine bit langsamer als C++? Weil man allgemein davon ausgeht (manche sind da anderer Meinung), dass es viel einfacher ist, damit zu entwickeln, ohne sich selbst in den Fuß zu schießen.

Was die Verwendung von C# angeht... was wollen Sie wollen für die Sie es verwenden wollen? Wenn Sie nicht gerade Treiber und Kernel entwickeln wollen, ist es vielleicht ganz gut für Sie geeignet. (Sogar in der Betriebssystementwicklung gibt es Leute, die C# verwenden...)

Arbeitsmöglichkeiten? Jede Menge.

Die Nachteile? Nun, .NET selbst ist nur auf Microsoft-Plattformen verfügbar. Es gibt Mono aber sie hat nicht ganz den gleichen Grad an Portabilität wie Java (zweifellos eine weitere "langsame" Sprache nach Meinung der gleichen Leute).

41voto

spoulson Punkte 20898

In Assembler geschriebener Code kann rasend schnell sein. Warum nicht einfach in Assembler schreiben?

Glauben Sie nicht alles, was Sie hören. C# war bei all meinen Projekten sehr schnell. In der Regel ist die Leistung mehr ein Faktor des Designs als rohe Plattformleistung.

22voto

JaredPar Punkte 699699

Ich würde sagen, dass die Leute, mit denen Sie gesprochen haben, einfach nicht wissen, wovon sie reden. Schlicht und einfach.

Viele Unternehmensanwendungen werden auf der Grundlage von C# und anderen .Net-Sprachen entwickelt. Sie sind nicht von Natur aus langsam. Ja, die pflegen langsamere Startzeiten zu haben, aber das war's dann auch schon.

Mir ist aufgefallen, dass Sie Java in der Liste der Sprachen erwähnt haben. Wenn Sie mit der Geschwindigkeit von Java vertraut sind, wird C# keine Probleme bereiten. Im Allgemeinen schneidet C# bei vielen verschiedenen Benchmarks mindestens genauso gut ab wie Java.

22voto

Dinah Punkte 50664

Mein letztes Unternehmen wurde von 5 C++-Veteranen mit jeweils über 15 Jahren Erfahrung gegründet. Sie verbrachten über einen Monat damit, einen bestimmten Windows-Dienst zu entwickeln. Einer von ihnen fand C# und probierte es aus. Innerhalb einer Woche war er weiter gekommen als das Kollektiv in einem Monat. Kurz darauf wechselten sie alle zu C#.

Warum C#, wenn es vielleicht langsamer ist: Welchen Preis zahlen Sie für diesen Grad an schneller Entwicklung?

7voto

Frederik Gheysels Punkte 54908

Warum sollte es langsam sein? In der Tat ist C# zu einer "Intermediate Language" kompiliert, die zur Laufzeit JIT'ed ist, aber dies kann Ihnen einen Leistungsvorteil, da die Laufzeit kann die meisten für die Plattform optimiert der Code läuft auf generieren ...

Je nach der Anwendung, die Sie schreiben wollen, hat die "Geschwindigkeit" der Sprache einen geringen Einfluss. Die Leistung Ihrer Anwendung wird hauptsächlich durch die Art und Weise bestimmt, wie Sie Ihre Anwendung entwerfen, ob Sie die von Ihnen verwendeten Tools/Technologien sinnvoll einsetzen, usw. ... Sicher, C# ist kein Allheilmittel, und es gibt Projekte, bei denen man es nicht verwenden sollte, weil es einfach nicht das richtige Werkzeug für die Aufgabe ist, aber für die meisten Geschäfts- und Unternehmensanwendungen ist es völlig ausreichend.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X