Nimmt C# bzw. Visual Studio einem nicht bereits zuviel Arbeit ab?

Jack159

Lieutenant
Registriert
Dez. 2011
Beiträge
766
Ich habe vor kurzem angefangen mir C# anzuschauen (mithilfe des "Head First C#" Buch).
Direkt im 1. Kapitel wird klar, wie stark man sich die GUI zusammenklicken kann und das der ganze GUI-Code generiert wird.
Es wirkt eher wie ein Zusammenklicken und generieren lassen, anstatt alles selber zu programmieren.
Ich dachte erst, dass dies nur bei der GUI so wäre, aber selbst Datenbanken kann man sich derartig zusammenklicken.

Bisher habe ich nur in Java programmiert und dachte immer Java wäre ja schon bestimmt sehr einfach und bequem im Gegensatz zu C++. Aber C# legt da eine derartige Schippe drauf, dass es mir schon fast zuviel ist...

Mir ist klar, dass man die eigentlichen Probleme weiterhin selber programmieren muss, aber bis hierhin finde ich das schon zuviel von "Zusammenklicken und generieren lassen". Überall wird etwas generiert von der IDE oder irgendwelche neuen Dateien erstellt mit kryptischen Endungen. Dazu eben Windows-Only. Ich fühle mich da etwas gefangen...
Könnte man in C# eine GUI-Anwendung überhaupt nur mit Notepad + Konsole erstellen?

Brauche ich mir C# garnicht weiter anzuschauen weil es so weitergeht, oder ist das nur der anfängliche Umstieg?
 
Naja, das Visual Studio unterstützt schon sehr gut. Allerdings ist das aus meiner Sicht auch kein Fehler.
Letztendlich geht es ja darum für dein Problem eine optimale Lösung zu finden. Wenn du dich drauf fokussieren kannst ist das doch gut, oder möchtest du für jeden Button, den du auf eine Oberfläche ziehst 20 x den gleichen Code eintippen? (Kannst du übrigens auch machen)
Wenn du wirklich dann tiefer in die Programmierung einsteigst, bleibt bei C# noch genügend übrig, was unter "richtigem" Programmieren verstanden wird. Blätter in dem Buch doch mal etwas weiter und schaue was dort in den Kapiteln so behandelt wird.

Was natürlich stimmt, ist die Ausrichtung von C# auf Microsoft Technologie. Da musst du halt entschieden, was du machen möchtest.
 
Einige Teile von C# sind mit Mono auch auf MacOS und Linux vefügbar.

Natürlich kann man auch C# noch mit einem einfachen Texteditor programmieren. Bei professioneller Softwareentwicklung wird aber generell relativ viel Code aus Modellen generiert. Gerade Klassen, Konstruktoren, Getter-/Setter usw. lassen sind sich wunderbar generieren.
 
Jack159 schrieb:
Könnte man in C# eine GUI-Anwendung überhaupt nur mit Notepad + Konsole erstellen?

Ja, das geht. Man muss die Hilfen des Visual Studios nicht in Anspruch nehmen. Allerdings verleítet einen VS natürlich dazu das alles zu verwenden. Je nach "Anspruch" ist das gut oder schlecht. Wer als Anfänger die Hintergründe verstehen will sieht so einige relevante Dinge nicht. Wer sich aber schon auskennt muss sich nicht mehr um den "Kleinkram" kümmern sondern kann sich auf die eigentlich wichtigen Aspekte konzentrieren.
 
Also das gebotene musst du nicht zwingend nutzen und kannst dir auch deine Gui selbest zusammenprogrammieren. MSVS unterstützt dich nur in vielerlei hinsicht.

Jack159 schrieb:
Könnte man in C# eine GUI-Anwendung überhaupt nur mit Notepad + Konsole erstellen?

Geht mit sicherheit, wenn du ohne Intellisense programmieren willst und kannst kannst du das so machen. Allerdings möchte ich auch keine großen Projekte darin verwalten. MSVS ist halt auch nur eine IDE, wie bei Java Eclipse oÄ.

Jack159 schrieb:
Brauche ich mir C# garnicht weiter anzuschauen weil es so weitergeht, oder ist das nur der anfängliche Umstieg?

Die Frage ist was deine Intension war dir dieses Buch (also ein C# Buch) zu kaufen und anzufangen es zu lernen.
 
Zuletzt bearbeitet:
Wenn es nicht ultra-krass-dynamisch sein soll, wo man sich sowieso die Arbeit machen muss, um einzelne Buttons o.ä. zu generieren und zu positionieren, sondern meist statisch abläuft - wozu sich die Arbeit machen? Jede moderne IDE sollte es einem abnehmen können.
Die Code-Generierung unter Delphi funktioniert wunderbar und ich will es nicht mehr missen.
 
Alles was computerunterstützt generiert werden kann, ist dort halt verfügbar.
Den richtigen Code musst du sowieso selber schreiben. Du musst halt nicht Stunden an Arbeit ins Interface verschwenden, bleibt dir dadurch mehr Zeit fürs Wichtige.
Ich mach gerade auf der Uni Java und privat programmiere ich mit C#.
 
Richtig. Ich verstehe auch nicht was dein Ziel ist. Wenn du verstehen willst wie es "wirklich" funktioniert hast du das falsche Buch. Ansonsten kommst du ja nur schneller voran?!
 
Nimmt C# bzw. Visual Studio einem nicht bereits zuviel Arbeit ab?
Willst du dich mit der Sprache selbst rumschlagen oder deine Arbeit verrichten? Es ist doch gerade Aufgabe der IDE, so viel wie möglich abzunehmen, sodass man sich auf den Code bzw. die Implementation konzentrieren kann.
 
ist es eigentlich nicht der sinn von höheren sprachen(und entwicklungsumgebungen) den entwickler möglichst viel arbeit abzunehmen/zu vereinfachen um das problem schnell/einfacher zu lösen?
 
Jack159 schrieb:
Aber C# legt da eine derartige Schippe drauf, dass es mir schon fast zuviel ist...

Was genau hat das jetzt mit C# zu tun? Es gibt auch für Java Tools, die GUIs oder Datenbanken, ja ganze Applikationen generieren. Spricht eher für eine Programmiersprache, dass ein guter Toolsupport verfügbar ist, auch wenn man im Einzelfall natürlich zusehen muss, was man davon nutzt.


Jack159 schrieb:
Könnte man in C# eine GUI-Anwendung überhaupt nur mit Notepad + Konsole erstellen?

Natürlich!

Jack159 schrieb:
Brauche ich mir C# garnicht weiter anzuschauen weil es so weitergeht, oder ist das nur der anfängliche Umstieg?

C# ist um einiges mächtiger als Java, von daher könntest Du einiges lernen. Aber wie gesagt, die Sprache C# ist das eine. Tools das andere. Wenn Du mit VisualStudio nicht klar kommst, gibt es auch andere IDEs (oder Editoren).
 
Wenn es dir nicht gefällt und du (anfangs) mehr lernen willst, nimm dir einfach einen Editor deiner Wahl und programmiere alles damit. Keiner zwingt dich VS für C# zu verwenden. Bei jedem ernsthaften Projekt wirst du dich über jede Unterstützung freuen, aber das heißt nicht, dass es dir aufgezwungen wird - du kannst auch alles von Hand Programmieren.
 
Ich habe noch GUIs selbst erstellt ohne IDE, auf AMIGA OS und auch in der Win32 API mit gnu c und einfachen Editoren. Ein GUI zu entwickeln nahm früher mal ca. 90 % der Entwicklungszeit in Anspruch. Das war mühsam, nervtötend und ab einem gewissen Punkt mehr als Fleissarbeit.

Dauernd musste man wegen dem GUI compilieren und schauen, ob das optisch auch jetzt endlich alles am richtigen Platz auf dem Bildschirm ist. Das einmal gemacht zu haben, halte ich bei Anfängern für sinnvoll. VS kann ohne das einmal gemacht zu haben schon irgendwie zu undurchsichtig wirken, weil man sich fragen könnte, wie die ganzen GUI Elemente denn überhaupt entstehen.

Wer ein GUI einmal zu Fuss gestrickt hat, wird sowas wie VS nicht mehr missen wollen.
 
Zuletzt bearbeitet:
DigitalIllusion schrieb:
Ich habe noch GUIs selbst erstellt ohne IDE, auf AMIGA OS und auch in der Win32 API mit gnu c und einfachen Editoren. Ein GUI zu entwickeln nahm früher mal ca. 90 % der Entwicklungszeit in Anspruch. Das war mühsam, nervtötend und ab einem gewissen Punkt mehr als Fleissarbeit.

Dauernd musste man wegen dem GUI compilieren und schauen, ob das optisch auch jetzt endlich alles am richtigen Platz auf dem Bildschirm ist. Das einmal gemacht zu haben, halte ich bei Anfängern für sinnvoll. VS kann ohne das einmal gemacht zu haben schon irgendwie zu undurchsichtig wirken, weil man sich fragen könnte, wie die ganzen GUI Elemente denn überhaupt entstehen.

Wer ein GUI einmal zu Fuss gestrickt hat, wird sowas wie VS nicht mehr missen wollen.

Das ist genau der Punkt. Es ist auf jeden Fall sinnvoll, einmal (mehr oder weniger) verstanden zu haben, wie die GUIs bzw. die entsprechenden APIs funktionieren und damit experimentiert zu haben. Aber wenn Du dann anfängst größere Projekte zu entwickeln, ist es nur noch wichtig, dass die GUI funktioniert - nicht wie jedes einzelne Element im Detail konfiguriert werden muss.

Wenn Du von Java kommst, dann solltest Du ja wissen, wieviel Zeit eine komplexere Oberfläche frisst, wenn man sie komplett per Hand programmiern möchte.

Es ist auf jeden Fall sinnvoll die Vorgänge zu verstehen, aber nicht, sie immer wieder manuell zu implementieren.
 
DigitalIllusion schrieb:
Dauernd musste man wegen dem GUI compilieren und schauen, ob das optisch auch jetzt endlich alles am richtigen Platz auf dem Bildschirm ist.

Auch, wenn ich zustimme, dass die Entwicklung einer GUI mit C oder C++ ohne MFC unnötig mühsam ist und man froh über jede Unterstützung sein sollte, gab es unter Windows von so ziemlich Anfang an Resourcenskripte, die es dem Entwickler erspart haben, sein Projekt für GUI-Änderungen neu kompilieren zu müssen. Aber auch damals konnte man es sich natürlich, wenn man wollte unnötig noch schwerer machen.
 
soares schrieb:
C# ist um einiges mächtiger als Java, von daher könntest Du einiges lernen.

Wenn man im Sprachkontext von Mächtigkeit redet, dann meint man in der Regel die Menge an Problemen, die mit der jeweiligen Sprache entscheidbar sind. C# und Java sind exakt gleich mächtig, selbst wenn man Java alle Schleifen-Konstrukte wegnehmen würde. Du hast völlig recht wenn du sagst, dass C# einige Dinge stärker abstrahiert, aber das ist alles syntaktischer Zucker.
 
carom schrieb:
Wenn man im Sprachkontext von Mächtigkeit redet, dann meint man in der Regel die Menge an Problemen, die mit der jeweiligen Sprache entscheidbar sind. C# und Java sind exakt gleich mächtig, selbst wenn man Java alle Schleifen-Konstrukte wegnehmen würde. Du hast völlig recht wenn du sagst, dass C# einige Dinge stärker abstrahiert, aber das ist alles syntaktischer Zucker.

Wenn man diese Definition von mächtig verwendet, sind dann nicht nahezu alle gebräuchlichen Sprachen gleich mächtig? Für mich bedeutet "mächtig" schon mehr, als nur die Menge der mit der Sprache lösbaren Probleme, nämlich auch und ganz besonders, wie elegant und aufwandsarm die Probleme zu lösen sind.
 
antred schrieb:
Wenn man diese Definition von mächtig verwendet, sind dann nicht nahezu alle gebräuchlichen Sprachen gleich mächtig?

Unter diesem Gesichtspunkt (theoretische Informatik) ist dem tatsächlich so, ja.

antred schrieb:
Für mich bedeutet "mächtig" schon mehr, als nur die Menge der mit der Sprache lösbaren Probleme, nämlich auch und ganz besonders, wie elegant und aufwandsarm die Probleme zu lösen sind.

Ich weiß was du meinst, ich weiß nur nicht, ob "Mächtigkeit" hier der richtige Begriff ist. Dann wären Sprachen wie Scala oder Clojure wirklich sehr mächtige Sprachen, hardwarenahe Dinge wie C++ oder eine Assemblersprache hingegen absolut nicht mächtig. Ein technischer Informatiker wiederum wird dir jedoch sagen, dass er diese Sprachen als die mächtigsten überhaupt ansieht. Wer hat nun recht? :)
 
carom schrieb:
Ich weiß was du meinst, ich weiß nur nicht, ob "Mächtigkeit" hier der richtige Begriff ist. Dann wären Sprachen wie Scala oder Clojure wirklich sehr mächtige Sprachen, hardwarenahe Dinge wie C++ oder eine Assemblersprache hingegen absolut nicht mächtig. Ein technischer Informatiker wiederum wird dir jedoch sagen, dass er diese Sprachen als die mächtigsten überhaupt ansieht. Wer hat nun recht? :)

Im Zweifelsfall immer die Seite, die meine Meinung teilt. ;)
 

Ähnliche Themen

Antworten
4
Aufrufe
1.255
Green Mamba
G
Zurück
Oben