Von wenig C++ und etwas mehr VBA zu C# oder VB.Net

Hallo!

Ich möchte entweder C# oder VB.Net lernen. Ich hab damals ganz wenig C++ programmmiert und hab wesentlich mehr Ahnung von VBA.
Hab keine Zeit, beide Sprachen zu lernen, deswegen will ich mich auf eine von beiden voll konzentrieren (bin ja kein Diplom-Informatiker, der Sprachen wechselt wie Unterhosen :wink:. Und ich will dementsprechend auch in vielen Jahren noch was davon haben.

Meine Programmierziele:

  • Eigene Anwendungen (kleine „Helferlein“) zur Auswertung von Daten (Versuchsfiles lesen und - wenn das geht - in Excel-Diagrammen oder sonst wie grafisch darstellen).
  • Evtl. Daten online von einer Schnittstelle auslesen und mit Algorithmen auswerten.
  • Evtl. Funktionen von Matlab nutzen (wenn sowas geht).
  • Auch mal was fürs Internet.
  • Evtl. sonstige kleine Dinge für den Heimgebrauch.

Warum kein C++?

  • Dauert mir zu lange, um damit etwas zu erstellen.
  • Ich möchte das .net Framework nutzen.

Hab mal folgende Vor/Nachteile überlegt bzw. gegoogelt:

C#:

  • Ähnlich zu Java (auch C++ ??). Da Java wohl eine der häufigsten Sprachen ist (die ich aber nicht unbedingt lernen will), kann es ja sein, dass ich in ein paar Jahren genötigt bin, doch Java zu lernen, weil die Sprache einfach Überhand nimmt, oder? Und das ginge einfacher, wenn man von C# kommt, stimmt’s? Zudem könnte es ja sein, dass ich die Programmierziele (oben) nicht mit C# erreichen kann, weils nur für Java die und die Bibliothek kostenlos gibt.
  • Die Informatiker in meiner Firma arbeiten mit Java. Die könnten mich evtl. mehr bei C# unterstützen, falls ich Hilfe brauche.
  • Anscheinend gibts eine größere Community.

VB.Net:

  • Ich mach einiges mit Excel, teils auch VBA. Die Syntax - das ist meine subjektive Meinung - ist für mich WESENTLICH einfacher und angenehmer zu lesen. Hab auch bissl Angst, dass ich bei C# daran scheitern würde (wegen der ganzen } } } } }).
    (Wie gesagt, C++ ist bei mir kaum noch vorhanden)
    Von daher würd ich mich eigentlich für VB.Net entscheiden.
  • Bessere MSDN-Hilfe (???)

Beide:

  • Beide können (zumindest in naher Zukunft) genau gleich viel.

Also: Was wär die beste Entscheidung? Überwiegen die Vorteile von C#, sodass ich besser VB.Net vergessen sollte? Welche Sprache hat mehr Zukunft? Steigen derzeit mehr Leute von VB.Net auf C# um oder umgekehrt (wichtig zu wissen wegen der Community)? Danke fürs lesen dieser Zeilen und der hilfreichen Antworten.

Laut dem Tiobe-Index 1 ist (Visual) Basic eine Stufe vor C#. Allerdings steigt C# auf, während (Visual) Basic fällt. Desweiteren ist zu beachten, dass Tiobe keinen Unterschied zwischen VBA, VB und VB.NET macht. Allerdings sind die drei enorm verschieden.
Die Unterstützung von C+± und Java-Programmierern bei C# ist sicherlich um ein vielfaches höher als bei VB.NET, schon deshalb, weil die Schlüsselwörter fast gleich sind. Deine VBA-Kentnisse werden dir C# nichts bringen, aber bei VB.NET auch nur syntaxmäßig.
Java wird .NET nicht verdängen, Microsoft fördert es stark und kümmert sich darum, immer mehr „Anhänger“ zu finden. Ich bin auch von Java zu C# gewechselt. Wenn du für Windows entwickelst, dann bietet .NET eindeutig mehr konkrete Features und auch mehr Potenzial als Java. Ein Wechsel wäre auch bei einem OS-Wechsel nicht nötig, es gibt ja Mono und #develop.
Die Community ist momentan für C# größer, das kann sich aber jederzeit ändern.
Ich finde die VB-Syntax umständlich ("}" ist schneller als „End Function“) und bevorzuge die C-Style-Syntax. Außerdem überlässt die C#-IDE (C# Express) den Programmierer mehr. Anfangs mag man sich überfordert fühlen, aber das legt sich. Als ich einem Freund bei VB.NET helfen sollte, habe ich in VB Express vergeblich nach ein paar Funktionen gesucht, die bei C# Express dabei sind. Das ist ägerlich, wenn man weiß, dass .NET und die C#-IDE es unterstützen, aber die VB.NET-IDE nicht.
Es ist eigentlich egal welche Sprache du wählst, der Lernaufwand wird bei beiden gleich sein. Es kann sein, du lernst VB.NET und in zwei Jahren sollst du auf Java/C++/C# umsteigen. Es kann aber auch umgekehrt sein.

Grüße, JasonDelife.

Hallo und Danke für die Antwort.

Als ich einem Freund bei VB.NET helfen sollte, habe ich in VB
Express vergeblich nach ein paar Funktionen gesucht, die bei
C# Express dabei sind. Das ist ägerlich, wenn man weiß, dass
.NET und die C#-IDE es unterstützen, aber die VB.NET-IDE
nicht.

Was für Funktionen sind das (im Groben)? Beziehst Du Dich auf VS 2008? Hab kürzlich gelesen (find den Link nicht mehr), dass schon in VS 2010 C# und VB.Net vom Funktionsumfang kaum noch zu unterscheiden sind.

Die Community ist momentan für C# größer, das kann sich aber
jederzeit ändern.

Weiß man, wie die Verhältnisse sind? Der Tiobe Index scheint sich ja zu einem nicht unwesentlichen Teil aus Google-Recherchen zusammenzusetzen. Ich kann nur schlecht einschätzen, ob man damit richtige Ergebnisse erzielt. Gibt es keine Tendenzen abzusehen, weil ja anscheinend immer mehr Programmierer von „alten“ Sprachen zu den .Net-Sprachen wechseln. (C+±ler wohl eher zu C#, aber VB-ler zu VB-Net). Und wie sieht’s mit Neueinsteigern aus? Was lernt man heute an Unis: VB.Net oder eher C#?

Es kann sein, du
lernst VB.NET und in zwei Jahren sollst du auf Java/C++/C#
umsteigen. Es kann aber auch umgekehrt sein.

Das macht’s nicht gerade leichter :wink:

Mal so gefragt: Stehen den oben genannten Programmierzielen mit VB.Net etwas entgegen? Oder komm ich in 5 Monaten an den Punkt, wo ich Daten von einer Schnittstelle auslesen will und die Bib dafür gibts nur in Java?

Was für Funktionen sind das (im Groben)? Beziehst Du Dich auf
VS 2008? Hab kürzlich gelesen (find den Link nicht mehr), dass
schon in VS 2010 C# und VB.Net vom Funktionsumfang kaum noch
zu unterscheiden sind.

Ja, ich beziehe mich auf VS 2008. Bei der VB-IDE gibt es alles vorgefertig (z. B. einen Splash-Screen). Das ist nützlich, aber der Zugriff auf den autom. generierten Source wird verwehrt. Man muss im Ordner suchen und mit dem Editor rumwerken, wenn man autom. generierten Code ändern will. Zu .NET 4.0 / VS 2010: Ja, dort gibt es in der Tat kaum noch Unterschiede.

Weiß man, wie die Verhältnisse sind? Der Tiobe Index scheint
sich ja zu einem nicht unwesentlichen Teil aus
Google-Recherchen zusammenzusetzen. Ich kann nur schlecht
einschätzen, ob man damit richtige Ergebnisse erzielt. Gibt es
keine Tendenzen abzusehen, weil ja anscheinend immer mehr
Programmierer von „alten“ Sprachen zu den .Net-Sprachen
wechseln. (C+±ler wohl eher zu C#, aber VB-ler zu VB-Net).
Und wie sieht’s mit Neueinsteigern aus? Was lernt man heute an
Unis: VB.Net oder eher C#?

Es gibt in sowas leider kaum / keine Umfragen. Insofern ist es schwer. Ich kenne einen, der Informatik studiert. Dort machen sie C#, Java und ein wenig C++. Aber einer von tausenden ist nich sehr aussagekräftig.

Mal so gefragt: Stehen den oben genannten Programmierzielen
mit VB.Net etwas entgegen? Oder komm ich in 5 Monaten an den
Punkt, wo ich Daten von einer Schnittstelle auslesen will und
die Bib dafür gibts nur in Java?

Die genannten Ziele sind mit allen .NET-Sprachen zu erreichen. Sofern du nur unter Windows programmierst, wirst du für .NET schneller eine kostenlose Bibliothek finden. Bei Java sind besonders OS-spezifische Bibliotheken schwer zu bekommen, da Java ja als Crossplatform-Sprache designed ist.

Ich hoffe, ich konnte helfen.
Grüße, JasonDelife.