Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

11

23.02.2013, 00:21

Da hast du vielleicht das richtige Gedacht und es falsch ausgesprochen. Selbiges tust du hier aber noch mal, weshalb das richtig gestellt werden sollte. Nicht nur für dich, sondern auch für andere die mitlesen.
Bei Visual Basic baut zum Beispiel schon mal nichts auf WPF auf. VB.Net ist eine von Microsofts Sprachen. Da gehören noch andere zu wie zum Beispiel C#. Die Sprache selbst steht erst mal für sich. .Net ist hier nur ein Framework welches dir zur Verfügung steht. Wichtig ist aber, C# ist nicht das selbe wie .Net und .Net gehört nicht mal zu C#. Das wäre so als wenn du SFML zu C++ zählen würdest. Diese Aussage ist zwar nicht 100% korrekt, da es hier noch ein paar Unterschiede gibt, aber festzuhalten ist, dass .Net mit der Sprache C# nichts zu tun hat und SFML mit der Sprache C++ nicht. Als Endnutzer zumindest. Worin die ganzen Dinge geschrieben sind ist hier erst mal uninteressant.
Es ist richtig, dass es die beiden Unterscheidungen bei Projekttypen gibt. Du kannst eine Windows Forms Anwendung erstellen, oder eine WPF Anwendung. WPF Anwendungen sind aber in keinster Weise komplizierter als Windows Forms Anwendungen. Setz dich mal genauer mit den beiden Dingen auseinander und dir wird schnell auffallen, dass du in WPF einiges leisten kannst und dafür viel viel weniger tun musst, als es bei einer Windows Forms Anwendung nötig wäre. Windows Forms sind mittlerweile einfach veraltet und wurden von Microsoft durch WPF ersetzt. Dabei spielt natürlich ein mal der Faktor rein, dass man damit mehr anstellen kann. Zum einen hat man den Vorteil, dass alles mit DirectX gerendert wird. Du kannst deinem Button also im Prinzip einfach einen HLSL Shader mitgeben, der das ganze noch ein bisschen verändert. Das ist mit Windows Forms so natürlich nicht möglich. Mehr Möglichkeiten und mehr Funktionsumfang sieht zwar erst mal danach aus, dass es komplexer ist, wenn du dich damit aber mal genau beschäftigst, siehst du recht schnell viele Vorteile von WPF. Was den Designer angeht. Bei einem Windows Forms Projekt gibt dir Visual Studio einen Designer mit. Das ist im Prinzip ja einfach eine Ansicht, in welcher du deine Oberfläche gestalten kannst. Wenn du nun aber ein WPF Projekt erstellst, so siehst du auch einen Designer. Zusätzlich dazu gibt es weitere Tools, mit welchen man die Oberfläche noch etwas schöner gestalten kann. Du hast also die Designer und deinen Code um Buttons, Textboxen und andere Dinge der Oberfläche zu erstellen und anzuordnen (und was halt alles so dazu gehört). Das ist im Prinzip ja bei WPF und Windows Forms gleich. Zusätzlich dazu hast du nun xaml welches eine Beschreibungssprache ist. Du kannst zusätzlich dazu die Sachen mit xaml schreiben und dadurch einige schöne Dinge erledigen, vereinfachen und zusammenfassen. Diese Sachen könntest du genauso gut im Code, kannst es dir hier in xaml aber etwas einfacher machen. Und du hälst den eigentlichen Code schlank. Das sind schon riesen Vorteile. Das Ding ist, du musst dich einfach mal ein wenig mehr damit auseinander setzen.
Was die Ähnlichkeit von Sprachen angeht. Viele Sprachen sehen auf den ersten Blick gleich aus. Das ist auch ganz normal so. Viele Sprachen verfolgen irgendwo das selbe Ziel und machen das oft auch auf vergleichbare Wege. Zusätzlich kommt hinzu, wenn du eine Sprache entwirfst, kannst du diese natürlich völlig anders aussehen lassen. Du kannst die Variablentypen völlig anders benennen als es andere Sprachen machen. Nur wie sinnvoll ist das für einen Entwickler. Musst du eine neue Sprache lernen, hast du einen Vorteil dadurch, dass sie erst mal fast genau so aussieht wie andere Sprachen auch. Hinzu kommt, dass man als Sprachentwickler das nehmen kann, was bei anderen schon funktioniert hat. Halt das Rad nicht komplett neu erfinden.
Als Tipp an dich m3xx und auch an die vielen anderen. Versuch dich so auszudrücken, dass sowas nicht passiert. Wenn du dir nicht sicher bist, schreib es lieber 2 mal mehr dazu als ein mal zu wenig. Ich weiß im Prinzip was du meinst und denke du hast bis auf ein paar wenige Dinge die ich schon oben genannt habe auch das richtige im Kopf. Aber in einem Forum lesen auch andere mit. Die sehen deine Aussagen und fassen das erst mal als gegeben auf. Du schreibst C# ist ein Mix aus VB und C++ und zig andere Leute denken so ist es nun mal. Nun diese Aussage kommt von dir ja nur aus Unwissen. Deswegen ist es wichtig zu versuchen sinnvolle Formulierungen zu verwenden. Schreib beim nächsten mal sowas wie "Für mich sieht es ein wenig so aus, als wenn C# ein Mix aus VB und C++ ist". Dann schreibt man einen fixen Kommentar in welchem man erklärt dass das nicht so ist und die Sache ist gegessen. Ich muss hier auch nicht lange darauf rumreiten. Wichtig ist einfach. Versuch Dinge wie die eigene Meinung, eigene Sehensweisen und eigene Empfindungen sehr deutlich zu machen. So verwirrst du niemanden und verbreitest auch nicht aus versehen falsches Wissen. Mir passiert sowas sicherlich auch oft genug, aber deswegen denke ich ist es sinnvoll drauf hinzuweisen.
Zum Threadersteller. Sicher kannst du dir Qt angucken. Ich bin mir aber sicher dass du das nur aus Faulheit machst, weil du nicht erst C# lernen willst, wenn es nicht unbedingt sein muss. Das ist auch völlig ok und ich kenn das selbst noch;) Du musst dich dafür auch gar nicht rechtfertigen. Dir wurden hier einige Hinweise und Tipps gegeben und was du im Endeffekt damit anstellst bleibt dir überlassen. Das ist auch wichtig und vor allem richtig so. Ich gebe dir nur noch mal den Hinweis mit auf den Weg, wenn du nichts besseres kennst weißt du gar nicht was du verpasst und dass es eigentlich viel einfach ginge. Qt wird dir vermutlich erst mal super gefallen. Das hat war bei mir früher auch so. Irgendwann kommst du vielleicht zu dem Punkt wo du einfach mal in C# reinschaust. Vermutlich wirds dir erst etwas komisch vorkommen aber du wirst dich sicherlich schnell damit anfreunden. Manchmal sehen gewisse Schritte einfach viel viel größer aus als sie eigentlich sind. Und als Entwickler sollte man keine Angst davor haben neues zu sehen und zu lernen.
So nun aber genug;) In diesem Sinne, viel Erfolg.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

23.02.2013, 07:49

@BC: btw wie können C# und VB nix gemeinsam haben wenn sie beide auf dem selben Framework basieren? :D Und das macht ja einiges aus. Und auf den kurzen Blicken, sah mir das recht ähnlich zu VB und C++ aus.

Die Sprachen haben nichts gemeinsam. Eine Sprache ist von ihrem Framework unabhängig. Deshalb ist C# auch kein Mix aus VB und C++. Das ist schlicht Unfug.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

23.02.2013, 09:15

Genaugenommen müsste man sowieso erstmal zwischen Visual Basic (VB) und VB.NET unterscheiden, denn das sind eigentlich zwei grundverschiedene Sprachen, die noch wesentlich weniger gemeinsam haben, als VB.NET und C#. Visual Basic war im Prinzip das, was vor .NET kam (aus diesen Zeiten stammt übrigens die Bezeichnung "Form", um die es hier auch schon ging) und damals eine der populärsten Programmiersprachen überhaupt. VB.NET ist imo kaum was anderes als eine alternative Syntax für C# und wurde wohl nur geschaffen, um den zahlreichen Visual Basic Programmierern das damals brandneue .NET Framework, welches das Visual Basic Ökosystem ablösen sollte, schmackhaft zu machen. Oh und ich kann mir kaum eine Sprache vorstellen, die weniger mit .NET, C#, VB.NET oder VB zu tun hätte, als C++... ;)

Auch wenn ich zu VB eine Beziehung sentimentaler Natur hab, da es meine erste Programmiersprache war, würde ich heute niemandem empfehlen, mit VB.NET programmieren zu lernen.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »dot« (23.02.2013, 09:23)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

23.02.2013, 09:56

Oh und ich kann mir kaum eine Sprache vorstellen, die weniger mit .NET, C#, VB.NET oder VB zu tun hätte, als C++... ;)
Nicht? Also wenn ich da so an Prolog oder Haskell denke... ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

23.02.2013, 10:18

Oh und ich kann mir kaum eine Sprache vorstellen, die weniger mit .NET, C#, VB.NET oder VB zu tun hätte, als C++... ;)
Nicht? Also wenn ich da so an Prolog oder Haskell denke... ;)

C# und VB.NET haben zumindest Garbage Colletion und LINQ... ;)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »dot« (23.02.2013, 10:33)


Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

16

23.02.2013, 13:17

Oh und ich kann mir kaum eine Sprache vorstellen, die weniger mit .NET, C#, VB.NET oder VB zu tun hätte, als C++... ;)
Nicht? Also wenn ich da so an Prolog oder Haskell denke... ;)

C# und VB.NET haben zumindest Garbage Colletion und LINQ... ;)

Garbage Collection und LINQ sind Teil der Laufzeitumgebung (.NET) bzw. des Frameworks (.NET), nicht aber der Sprachen, oder nicht?

und um noch eine Sprache in den Raum zu werfen, die einige Unterschiede zu den bisher genannten (abgesehen von Prolog und Haskell vielleicht):
man hat Magic Member, mit denen die Operatoren überladen, die möglichen Membervariablen einer Klasse eingeschränkt, der Konstruktor und eingebaute Funktionen (bspw. str()) definiert werden können
keine implizite Umwandlung in Strings bei Konkatenierungen (100 + " %" würde einen Fehler Verursachen und müsste str(100) + " %" sein)
die Sichtbarkeit wird nicht durch Schlüsselwörter bestimmt und ist eher eine Art Konvention, was bedeutet, dass sie auch ignoriert werden kann
auch Objekte können aufgerufen werden (wenn die Methode __call__ implementiert ist)
in Python 3.x liefert die Division mit / immer Fließkommazahlen und // liefert abgebrochene Ganzzahlen (es hängt also nicht von den Operanden ab)
Blöcke werden durch die Einrückungstiefe definiert (allerdings kann man nicht beliebig neue Codeblöcke beginnen)
Schleifen und Bedingungen benötigen keine Klammern
es gibt keine for-Schleife (das Schlüsselwort for wird für foreach-Schleifen verwendet9
etc. ...

(mal ganz abgesehen von esoterischen Programmiersprachen, die aber großteils nicht ernst zu nehmen sind)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

23.02.2013, 18:04

Nun, wenn die Sprache C# keine Garbage Collection vorsehen würde, wie kann man dann ein mit "new" erzeugtes Objekt löschen? ;) Es muss also schon ein Sprach-Feature sein, denn es gibt kein Feature zur manuellen Speicher-Verwaltung.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige