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?

2voto

Konrad Rudolph Punkte 503837

Sparen Sie sich das C. Diejenigen, die dazu raten, C zu lernen, sollten bitte Argumente dafür anführen. Ich behaupte, dass es absolut keinen Nutzen hat, C statt C++ zu lernen. Im Gegensatz zu ihnen habe ich Argumente à diese Behauptung untermauern .

Kurz und bündig: C ist im Grunde schon eine Untermenge von C++, aber bei weitem nicht die interessanteste Untermenge. Sie bietet nur einen sehr begrenzten Einblick in neue Programmierparadigmen. C++ hingegen definiert ein paar sehr interessante neue Paradigmen, die darüber hinaus eine Verallgemeinerung all dessen sind, was C zu bieten hat (z.B. Iteratoren, die eine Verallgemeinerung von Zeigern sind).

Um es noch einmal zu wiederholen: wenn die Wahl zwischen C und C++ besteht, wählen Sie C++.

2voto

Alan Mullett Punkte 1086

Nachdem ich mich durch die Sprachen hochgearbeitet habe, zuerst C auf Unix, dann C++ mit MFC und dann C# (beginnend mit 1.0), denke ich, dass es ein bisschen wie Latein lernen ist, wenn man zu früheren Inkarnationen der Sprache zurückgeht. Oh, wahrscheinlich habe ich da gerade etwas von Paul Graham geklaut, aber ich würde dem zustimmen.

C ist sehr gut, wenn man eine minimale Objektcodegröße haben muss, sehr gut für eingebettete Sachen, wo es einen Schritt weiter ist als die Assemblersprache. Ich denke da an Dinge wie einen Microchip PIC usw., wo man vielleicht nur 1K Wort Programmplatz hat.

C++ ist sehr gut geeignet, wenn man größere Objekte haben kann, aber trotzdem in der Lage sein muss, direkt auf das Metall zu hämmern - also Dinge wie Gerätetreiber, Netzwerkstapel usw. usw. Die Art von Klebeprogramm, das unter allem sitzt.

Ein Betriebssystem könnte in einem dieser beiden Bereiche landen - oder eher in einer Mischung aus beiden, je nach Programmierer, Alter des Codes, den benötigten Schnittstellen und der Schneehöhe draußen (nur noch ein Durchlauf, dann schreibe ich die Methode!)

C# eignet sich sehr gut für Anwendungen auf höherer Ebene, bei denen der Schwerpunkt auf der Benutzerschicht liegt. Sie können webbasiert, clientbasiert oder eine Mischung aus beidem sein - das ist eigentlich egal. Das Schöne an der .net-Familie ist, dass es für diese wichtige Schicht eine umfangreiche Bibliothek gibt, die laufend weiterentwickelt wird.

Da die Computer immer leistungsfähiger werden, überwiegen die Kosten für den Entwickler die Kosten für den Prozessor oder den Speicher.

Verwenden Sie C#, ignorieren Sie C und C++. Wenn Sie mit C# zufrieden sind, werden Sie keine Notwendigkeit mehr haben, in einer niedrigeren Sprache zu programmieren, um die Geschwindigkeit zu erhöhen.

2voto

Hans Løken Punkte 406

Ich stimme zwar zu, dass es "nützlich" ist, C zu kennen, aber für die meisten Programmierer ist es sicherlich nicht mehr notwendig. Für mich besteht die Hauptfunktion von C heutzutage darin, dass es mir ein Verständnis dafür vermittelt, wie die zugrunde liegende Hardware die Leistung und das Verhalten von Programmen beeinflusst, aber das war's dann auch schon. Ich habe es in den letzten 9 Jahren nicht mehr bei der Entwicklungsarbeit verwendet.

Was den Einstieg in die objektorientierte Entwicklung angeht, so bin ich der Meinung, dass sowohl C# als auch C++ Ihnen eine solide Grundlage bieten, aber C++ ist weitaus flexibler (und schwieriger richtig zu verwenden), während C# konsistenter und der richtige Weg ist, wenn Sie in die .NET-Entwicklung einsteigen wollen. Ich würde daher empfehlen, C# und eine der "neuen" .NET-Präsentationstechnologien wie Windows Presentation Foundation oder Silverlight zu lernen. Alternativ können Sie auch zuerst Windows Forms lernen, aber da fehlt es ein bisschen an Präsentation.

Der einzige Fall, in dem ich C empfehlen würde, ist, wenn Sie sich mit ziemlich einfachen Dingen wie Gerätetreibern, eingebetteten Controllern oder ähnlichem beschäftigen, aber in den meisten dieser Fälle können Sie immer noch C++ verwenden.

2voto

Ray Hidayat Punkte 15627

Wieder eine Stimme für C# und gegen C. Sicherlich ist C aus technischer Sicht interessant und wird Ihnen alle Details beibringen, aber die Wahrheit ist, dass Sie nicht alle Details kennen müssen, um eine Anwendung zu erstellen. Wenn Ihr Ziel darin besteht, etwas zum Laufen zu bringen, und das scheint der Fall zu sein, dann ist C# das Mittel der Wahl. C# ist die höchste Stufe der drei, was bedeutet, dass man weniger Zeit mit der Sprache zu kämpfen hat und mehr Zeit, um etwas zum Laufen zu bringen.

Für mich klingt es so, als würden die meisten Leute empfehlen, C zu lernen, damit Sie später bessere C#-Programme erstellen können. Warum warten, gehen Sie direkt für C # und lernen es. Ich denke, C++ ist eine absolut hervorragende Sprache und eines Tages sollten Sie es lernen, aber es gibt keinen Grund, warum Sie nicht eine Qualität C# Sprache machen können, wenn Sie nie C oder C++ gelernt haben - viele Menschen tun das jeden Tag!

1voto

bruceatk Punkte 5098

C# ist ein guter Startpunkt. Sie können es kostenlos erhalten und Sie können einige lustige Grafiken mit XNA Studio (auch kostenlos) tun.

Ich würde C++ nur lernen, wenn Sie einen besonderen Grund dafür haben.

Wenn Sie sich mit Windows-Programmierung beschäftigen, würde ich Ihnen empfehlen, die ersten Kapitel eines der folgenden Bücher zu lesen Petzolds Programmierfenster Bücher. Es vermittelt Ihnen ein grundlegendes Verständnis von C und der Funktionsweise von Windows auf Bare-Metal-Ebene. Sie brauchen nicht wirklich C zu lernen. Charles Petzold nimmt Sie an die Hand und bringt Sie in einem grundlegenden C-Windows-Programm zum Laufen.

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