16 Stimmen

Was ist eine gute Desktop-Programmiersprache, die ein Webentwickler lernen sollte?

Ich möchte eine Desktop-Programmiersprache lernen, vorzugsweise C, C++ oder C#. Ich bin ein PHP/HTML/CSS-Programmierer und würde gerne in Desktop-Anwendungen einsteigen. Ich brauche etwas ziemlich Leistungsstarkes und möchte Anwendungen mit Windows-GUIs erstellen können.

Was würde die Stack Overflow-Community empfehlen? Gibt es irgendwelche Kenntnisse, die ich haben sollte, bevor ich in diese Sprachen eintauche?

74voto

Tiberiu Ana Punkte 3595

Éditer :

A Webprogrammierer will schaffen Windows-Anwendungen und Sie empfehlen C?

Was ist nur los mit euch?!

/Bearbeiten

Offensichtlich C#.

Mit C# ist der Einstieg einfacher und Sie können Windows-Anwendungen mit WinForms oder WPF und all den neuen Microsoft-Spielzeugen in .NET erstellen. Wenn Sie sich mit PHP auskennen, sollten Sie bereits mit der Syntax, objektorientierten Konzepten, Ausnahmebehandlung usw. vertraut sein.

Ich schlage vor, dass Sie Ihr Leben nicht mit C und schon gar nicht mit C++ verkomplizieren, wenn Sie nur Windows-GUIs erstellen wollen. Sie bieten eine gute pädagogische Erfahrung und sind nützlich für fortgeschrittenere Dinge (plattformübergreifende Entwicklung mit anderen Toolkits zum Beispiel), aber um den Preis einer steileren Lernkurve und geringerer Produktivität.

Auch wenn Sie ein Webentwickler ist C# die nur Sprache zu den 3 Optionen, die Sie (realistischerweise) für das Web verwenden können. ASP.NET ist kein schlechtes Framework und könnte ebenfalls eine Untersuchung wert sein.

16voto

Marc Gravell Punkte 970173

"Ich brauche etwas ziemlich Leistungsstarkes und möchte Anwendungen mit Windows-GUIs erstellen können."

Für reichhaltige Windows-GUIs wäre ich versucht, mir die "xaml"-Varianten anzusehen: WPF (Full-Desktop) und Silverlight (wie Flash) - dies wird Ihnen die neuesten Tools usw., und eine Menge von Styling Macht.

Hierfür wäre C# die erste Wahl. Managed C++ ist eine Option, aber es ist mehr Arbeit.

16voto

Cruachan Punkte 15597

Werfen Sie zunächst einen kurzen Blick auf C, bis hin zum Schreiben einiger Übungsprogramme. C ist klein, gut definiert und die endgültige Sprachdefinition (Kernighan & Ritchie - The C Programming Language) ist nur ein paar hundert Seiten lang. Obwohl es eine Herausforderung sein kann, sich mit Zeigern und Rekursionen zurechtzufinden, ist die Sprache selbst so klein, dass es möglich ist, die Sprache vollständig zu beherrschen. Eine der Freuden beim Schreiben von C ist, dass es nicht allzu schwer ist, ein Niveau zu erreichen, bei dem man einfach nur programmieren kann, ohne ständig in der Dokumentation nachschlagen zu müssen, wie man das wenig bekannte Feature x oder die Bibliotheksfunktion y verwendet. Betrachten Sie das Erlernen von C als die Schaffung der Grundlagen.

Um jedoch tatsächlich nützliche Anwendungen zu schreiben, sollten Sie C++ oder C# verwenden. Das hängt davon ab, was Sie schreiben wollen. C# wird wahrscheinlich in den meisten geschäftsorientierten Fällen wegen der Garbage Collection und der allgemeinen Benutzerfreundlichkeit punkten, aber C++ würde für hohe Leistung, Low-Level- oder Spiel-Domänen punkten. Es gibt auch große Mengen an C++-Bibliothekscode, der relativ leicht genutzt werden kann (und auch reinen C-Code, der leicht angepasst werden kann). Wenn Sie etwas für ein bestimmtes Problem schreiben wollen, dann könnte die Verfügbarkeit von C++ den höheren Overhead, den C++ hat, wenn es darum geht, Dinge zu erledigen, höchstwahrscheinlich ausgleichen.

Als Beispiel hierfür habe ich eine gefilterte Suche nach "image" auf Sourceforge durchgeführt und die folgende Anzahl von Projekten gefunden

C# : 139
C++: 569

Und selbst mit etwas, das absichtlich geschäftsorientierter ist, schneidet C++ immer noch besser ab - "Finanzen".

C# : 12
C++: 32

Bei allem, was mathematisch oder technisch ist, ist das Ergebnis stark gegen C# gewichtet - 'fraktal'.

C# : 4
C++: 44
C : 24 <-- (C++ ausdrücklich ausgeschlossen)

Das ist natürlich eine ziemlich grobe Analyse, aber wenn ich zum Beispiel ein Programm für einen Fraktalgenerator für den Desktop schreiben wollte, würde ich mich für C++ und nicht für C# entscheiden, da der zusätzliche Aufwand, der mit der Handhabung der Benutzeroberfläche in C++ verbunden ist, durch die Fülle an Beispielcode, der in C++ verfügbar ist, leicht ausgeglichen wird. Wenn ich jedoch eine Geschäftsanwendung schreiben würde, bei der es keinen großen Vorteil gibt, Beispielcode zu haben und viel UI zu handhaben, dann würde ich mich für C# entscheiden.

Nachtrag: Ein weiterer Grund, sich zumindest mit C vertraut zu machen, ist, dass es auch Objective-C als Hauptentwicklungsumgebung auf dem Mac und iPhone gibt. Objective-C ist C mit einem sehr dünnen Wrapper und eigentlich nur ein Cousin ersten Grades von C++. Wenn Sie also vorhaben, jemals in die Lage zu kommen, Code auf den Mac zu portieren oder direkt auf dem Mac zu entwickeln, dann denke ich, dass Sie es weniger verwirrend finden würden, wenn Sie zumindest ein Gefühl dafür hätten, wie C++ (oder C#) auf C aufbaut, anstatt einen "Seitwärtsschritt" durch den Baum machen zu müssen.

7voto

Navaneeth K N Punkte 14884

Mein Vorschlag ist, C++ zu lernen. C# ist gut, aber es wird Sie daran hindern, portablen Code zu schreiben. Wenn Sie C++ lernen, haben Sie viele Möglichkeiten. Unter Windows können Sie Windows Forms-Anwendungen oder WPF mit dem .NET Framework verwenden. MFC ist eine weitere gute Wahl. QT ist die andere Möglichkeit, die auf mehreren Plattformen funktioniert. Wenn Sie also eine Sprache lernen, können Sie Code für mehrere Plattformen schreiben und haben eine Vielzahl von GUI-Tools zur Verfügung. Nach dem Erlernen von C++ wäre es trivial, C# zu lernen.

Alles Gute

7voto

annakata Punkte 72408

C# und die anderen lösen wirklich ganz unterschiedliche Aufgaben, aber angesichts Ihres Web-Hintergrunds und des schnellen Entwicklungsansatzes, würde ich definitiv mit C# gehen

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