Wegen GUI-Programmierung zu C# wechseln?
-
[quote="asc"]
µngbd schrieb:
IEine Schule kann nicht noch Extrakurse anbieten, damit erst einmal die gesamten Grundkenntnisse vorhanden sind. Und sie verlässt sich verständlicherweise lieber auf die eher zutreffende Variante (was auch heute noch in 90% der Fälle im Clientbereich Windows sein wird).
Inzwischen haben weder Linux noch MacOS viel Unterschied mit Windows. Ich bin mir sicher fast niemand würde den Unterschied merken, wenn auf allen Schulen nur noch Linux mit Gnome oder KDE laufen würde. Man müsste aber Microsoft den Rücken kehren (also OpenOffice.org anstatt MS Office und Java, C++, Python oder was anderes anstatt C# lehren), was aufgrund der marktbeherrschenden Stellung wohl nicht einfach ist.
-
asc schrieb:
Viel schlimmer finde ich die Ansicht von einigen Lehrern, das die Auswahl und Positionierung von Bildern und Buttons als wichtig in einer Aufgabe hervorgehoben werden - das hat nicht viel mit dem Erlernen der Programmiergrundlagen zu tun.
So schlimm find ich das eigentlich nicht, wenn der auch Wert auf Usability legt (solang auch ordentliches Programmieren beigebracht wird)
-
asc schrieb:
Grundsätzlich sollte die Sprache erst einmal gänzlich egal sein wenn es um Programmierung geht. Wobei ich dir insoweit recht gebe, das es sinnvoller wäre in der Schule auf etwas einzugehen das man recht einfach auf jeden PC zum laufen bekommt (und WPF setzt schon gewisse Voraussetzungen an das System), wie z.B. C++, Java und Co.
C# und Java sind einfacher zu lernen als C++
-
sc schrieb:
C# und Java sind einfacher zu lernen als C++
Das stimmt, aber grade bei C++ finde ich lernt man sehr viel da man sich hier auch mit dem Speichermanagment, etc. beschäftigen muß. Im Endeffekt ist das aber jedem selbst seine Entscheidung bzw. die des Arbeitgebers.
-
DEvent schrieb:
Inzwischen haben weder Linux noch MacOS viel Unterschied mit Windows.
Wenn du ein laufendes System vorfindest, UND die Benutzer mit der Programmauswahl klar kommen, ja. Diese zwei Bedingungen sind aber in der Regel (gerade bei Jüngeren) nicht gegeben. Und ich hatte bislang fast nie das Glück das ein 0815 PC sofort mit Linux in allen Bereichen klar kommt (zumindest deutlich seltener als mit Windows) - und ja, ich weiß das Linux, gerade wenn man reinen Officebereich betrachtet, durchaus mit Windows vergleichbar ist.
Und was MacOS angeht: Wenn du viel Geld hast, trifft deine Aussage (Software die sowohl auf Windows als auch MacOS verfügbar ist, ist nur selten Preislich identisch - und sehr häufig gilt dies zum Nachteil von MacOS). Ich habe MacOS aktiv im Einsatz, bevor eine Frage kommt...
-
sc schrieb:
C# und Java sind einfacher zu lernen als C++
Dem habe ich auch niemals wiedersprochen. Wobei man anderseits bei C++ auch eher mal zeigen kann was hinter den Kolissen passiert. Nur war im Beispiel WPF kontra C++, und dort ist das Problem das die WPF massiv höhere Anforderungen als ein C++ Compiler erfordert.
-
@Samyboy,
Ich persönlich habe vor etwas mehr als einem Jahr mit der C# Programmierung angefangen. Ich habe nach einer Sprache gesucht, welche gut für Business Anwendungen ist. GUIs können deutlich angenehmer mit C# erstellt werden und die Datenanbindung ist meistens deutlich leichter (bzw. eigentlich ist das .Net zu verdanken). Also falls du auf Windows entwickeln willst, dann kann ich C# nur empfehlen. Es ist auch wirklich relativ schnell als C++ Programmierer erlernt.Ich persönlich bin nun inzwischen soweit, dass ich ein Projekt plane, welches intern auf C++ setzt, eine C Schnittstelle anbietet, welche dann über P/Invoke in ein C# Programm eingebunden wird, damit das GUI per WPF gemacht werden kann. Wobei der endgültige Entscheid dazu noch nicht gemacht wurde.
P/Invoke ist, denke ich, auch noch einer der grossen Vorteile von C# .Net.
Grüssli
-
hö? Das müsste doch auch einfach so funktionieren? WPF und Managed C++. Oder gefällt dir das nicht
-
PRIEST schrieb:
WPF und Managed C++
Besser: WPF und C#
-
Managed C++ ist doch eine Missgeburt, Bäh.
-
PRIEST schrieb:
hö? Das müsste doch auch einfach so funktionieren? WPF und Managed C++. Oder gefällt dir das nicht
1. Was ich bisher von C++/CLI (Managed C++ ist veraltet) gesehen habe, gefällt mir nicht wirklich.
2. Die Programmlogik wird später dann wahrscheinlich auch mit GUIs auf Linux und MacOSX ausgestattet. Daher möchte ich gerne ein standardisiertes ABI, damit ich ohne Probleme aus anderen Programmiersprachen die Logik einbinden kann.
3. Ich überlege mir sogar, die ganze Programmlogik in C zu schreiben. In erster Linie wird es nämlich eine Datenbankanbindung sein und die Datenlogik wird dann von der Datenbank gemacht. Das ist einer der Bereiche, welcher noch erst in der Grobplanung vorliegtGrüssli
-
CSL schrieb:
Managed C++ ist doch eine Missgeburt, Bäh.
-
Dravere schrieb:
Ich persönlich bin nun inzwischen soweit, dass ich ein Projekt plane, welches intern auf C++ setzt, eine C Schnittstelle anbietet, welche dann über P/Invoke in ein C# Programm eingebunden wird, damit das GUI per WPF gemacht werden kann. Wobei der endgültige Entscheid dazu noch nicht gemacht wurde.
Mir kommt das sehr wüsst vor. Wenn würde ich dann an deiner Stelle auf PInvoke und die C-Schnittstelle verzichten und auf C++/CLI setzen (was weitgehend C++ kompatibel ist, aber wenigstens auch eine saubere .Net Schnittstelle liefern kann).
Dravere schrieb:
P/Invoke ist, denke ich, auch noch einer der grossen Vorteile von C# .Net.
Genau das P/Invoke sehe ich persönlich als krank an. Ist aber wohl auch Geschmackssache (Ich würde persönlich beim .Net Framework auch eher komplett auf C# setzen).
-
PRIEST schrieb:
hö? Das müsste doch auch einfach so funktionieren? WPF und Managed C++. Oder gefällt dir das nicht
WPF lässt sich nur sehr mühsam mit C++/CLI (und vermutlich Managed C++) verwenden, und auch nur wenn man gewisse Abstriche macht. Zumal der WPF Designer (Auch wenn er ohnehin nicht sehr gut ist) auch nur C# und VB.Net unterstützt.
-
asc schrieb:
Mir kommt das sehr wüsst vor. Wenn würde ich dann an deiner Stelle auf PInvoke und die C-Schnittstelle verzichten und auf C++/CLI setzen (was weitgehend C++ kompatibel ist, aber wenigstens auch eine saubere .Net Schnittstelle liefern kann).
Naja, ob C++/CLI auch noch mit dem neuen C++ Standard kompatibel sein wird? Mir ist dieses C++/CLI Zeug irgendwie ein zu grosses Gefrickel. Hat meiner Meinung nach viel zu viele Unbekannte. P/Invoke hat vielleicht eine lästige Syntax, aber dagegen helfen enstprechende Codegeneratoren. Ansonsten sehe ich keine Nachteile von P/Invoke.
Zudem will ich die C Schnittstelle, weil ich eben eine standardisierte Schnittstelle möchte. So bin ich völlig frei, in welcher Sprache ich später die Anbindung machen möchte: Java, Python, C, Objective-C oder sonst irgendwas.Aber naja, das Projekt ist ja erst noch in der groben Planung und in diesem Thread geht es um anderes
Grüssli
-
Danke für alle die geantwortet haben!
Ich konnte echt was aus diesem Thread mitnehmen
-
Also man kann auch sehr gut in C++ GUIs entwickeln, gibt sogar einige Plattformübergreifende Lösungen wie Qt, GTKmm oder wxWidgets.
Gibt also keinen Grund hierfür C# zu verwenden, wenn man sich nicht mit .net und der Sprache selbst beschäftigen will.
-
phlox81 schrieb:
Gibt also keinen Grund hierfür C# zu verwenden, wenn man sich nicht mit .net und der Sprache selbst beschäftigen will.
Es gibt keinen Grund C++ zu verwenden wenn man sich nicht mit der Sprache selbst beschäftigen will.
-
C# forever schrieb:
phlox81 schrieb:
Gibt also keinen Grund hierfür C# zu verwenden, wenn man sich nicht mit .net und der Sprache selbst beschäftigen will.
Es gibt keinen Grund C++ zu verwenden wenn man sich nicht mit der Sprache selbst beschäftigen will.
Der Threadersteller hat ja gerade betont das er bereits C++ kann.
-
asc schrieb:
DEvent schrieb:
Inzwischen haben weder Linux noch MacOS viel Unterschied mit Windows.
Wenn du ein laufendes System vorfindest, UND die Benutzer mit der Programmauswahl klar kommen, ja. Diese zwei Bedingungen sind aber in der Regel (gerade bei Jüngeren) nicht gegeben. Und ich hatte bislang fast nie das Glück das ein 0815 PC sofort mit Linux in allen Bereichen klar kommt (zumindest deutlich seltener als mit Windows) - und ja, ich weiß das Linux, gerade wenn man reinen Officebereich betrachtet, durchaus mit Windows vergleichbar ist.
Und was MacOS angeht: Wenn du viel Geld hast, trifft deine Aussage (Software die sowohl auf Windows als auch MacOS verfügbar ist, ist nur selten Preislich identisch - und sehr häufig gilt dies zum Nachteil von MacOS). Ich habe MacOS aktiv im Einsatz, bevor eine Frage kommt...
In einer Schule sollten die Schüler in der Regel ein funktionierendes System vorfinden, denke ich. Der Aufbau einer IT-Infrastruktur gilt auch nicht unbedingt als schwerer mit Linux. Und Schulung: "Um die Entwicklungsumgebung zu starten, klicken sie bitte auf "Anwendungen->Entwicklung->IDE" und wenn sie fertig sind, speichern sie ihre Arbeit unter "/home/USERNAME/" ab." Man, das hört sich aber nach mächtigen zusätzlichen Schulungsaufwand an.
Es geht auch nicht um das Betriebssystem, sondern um Programmierwerkzeuge, durch die man nicht auf eine Plattform oder ein System gezwungen wird. Es ist doch egal, ob in der Schule Windows läuft und ich zu Hause Linux installiert habe, oder umgekehrt. Es geht darum, möglichst vielen Schülern ohne großen Aufwand zu ermöglichen, ihre Arbeit zu erledigen. Und da ist es am Besten, man kann auch zu Hause das nutzen, was man bereits hat und muss sich nur die entsprechende Software besorgen. Wenn es geht einfach und kostenlos.
Grafische Anwendungen kann man definitiv auch ohne Technologien mit "Lock-in" schreiben. So gut wie jedes ausgereifte Toolkit hat auch einen vernünftigen GUI-Designer und Exportmöglichkeiten zu diversen Programmiersprachen.