Peter Bucher - Mein Experiment, meine Spielereien, meine Welt...   ·   Stefan Falz   ·   Jürgen Gutsch   ·   Golo Roden   ·   ASP.NET Zone   ·   Microsoft ASP.NET
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

C# oder VB: Welche Sprache soll ich lernen?

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Roden? Ja, Bucher! angekündigt, jeweils zum ersten eines jeden Monats einen Kommentar zu einem vorab gemeinsam gewählten Thema verfassen zu wollen. Bisher sind in dieser Reihe folgende Kommentare erschienen:

Heute, am 1. Juli 2009, ist es nun wieder so weit, und unser Thema für diesen Monat lautet:

C# oder VB: Welche Sprache soll ich lernen?

So wohl Golo wie auch ich haben uns unabhängig voneinander im Vorfeld unsere Gedanken gemacht, wie wir diesem Thema gegenüberstehen. Außerdem nimmt diesen Monat auch Christian Wenz an unserem Streitgespräch teil.

Golos und Christians Kommentare finden sich zeitgleich in den entsprechenden Blogs, folgend nun mein Kommentar zu diesem Thema:

Also gleich vorneweg, es geht hier nicht um eine Glaubensfrage und auch nicht um “C# vs VB.NET” das bei einer Google Suche knapp 7 Millionen Treffer ergibt und von denen die meisten in einem Glaubenskrieg ausarten.

Ich werde zwar auch C# vs VB.NET ansprechen, jedoch neutral und nüchtern verglichen sowie auf den Titel dieses Streitgespräches bezogen.

Zuerst meine Erfahrungen zu diesem Thema:

Ich habe den Einstieg in die Programmierung mit VBScript (Classic ASP) und ein wenig Javascript gefunden.
Es gab zu dieser Zeit auch die Möglichkeit JScript zu benutzen, um Classic ASP zu entwickeln, jedoch gab es viel weniger Beispielcode dazu im Netz und mir kam die Syntax für einen Anfänger nicht wirklich natürlich und intuitiv vor.

Später machte ich dann neben Visual Basic 6 auch Versuche in PHP (Ja, Jevoha Stefan ;-)).
Desto mehr ich Erfahrungen sammelte und auch mit Sprachen die C ähnliche Syntax aufwiesen, herumexperimentierte, desto mehr wandte sich meine Einstellung das diese Art von Syntax doch nicht so unnatürlich und unintuitiv wirkt.

Im gleichen Zug fand ich dann auch, das die kompaktere Art der Syntax den Code eleganter machte und auch auf das wesentliche reduzierte.

Das waren meine Gründe das ich bei meinem Start in die .NET Welt gleich mit C# losgelegt habe.
Am Anfang war das natürlich eine ziemliche Umstellung und vorallem der Switch, wieder mal VBScript zu schreiben und zurück auf C# komisch.

Bei meinem ersten Arbeitsgeber musste ich dann erzwungenermassen VB.NET entwickeln, weil die bestehende Software darauf basierte.
Am Anfang habe ich mir natürlich ein wenig schwer getan, jedoch sass die andere Syntax innerhalb von zwei Wochen schon sehr gut. Das ist natürlich auch meinen Erfahrungen mit VBScript zu verdanken, sodass die Elemente und Konventionen doch nicht so fremd waren.

Mit der Zeit fand ich richtig Gefallen an VB.NET. Wichtig und zugleich interessant war für mich zu dieser Zeit (Da ich immer noch C# präferierte), dass ich privat immer mit C# gearbeitet habe.

Schlussendlich bin ich froh das ich "erzwungenermassen” mit VB.NET arbeiten musste und dabei auch C# nicht aus den Augen verloren habe. Der Horizont wird erweitert und wenn irgendwo mal was in VB.NET steht, versteht man auch was damit gemeint ist.

Auch wegen meiner Erfahrungen denke ich, das es für komplette Anfänger leichter ist mit VB.NET einzusteigen, da die Sprache am Anfang natürlicher und intuitiver erscheint. Nicht ohne Grund, denn der Ursprung von VB.NET wurde genau für diesen Zweck entwickelt, eine einsteigerfreundliche Sprache zu sein.

Nun, das war jetzt meine Situation und meine Einschätzung. Was kann den generell dazu gesagt werden?

Wenn jemand schon Erfahrungen in einer anderen Sprache hat, die auf dem BASIC-Dialekt basiert, wird er es beim Umstieg mit VB.NET sicher bequemer haben.

Schlussendlich ist es (fast) eine reine Geschmacksfrage, was jemand bevorzugt oder auch was ihm besser liegt.

Da VB.NET und C# bis auf das Aussehen der Syntax im Hintergrund genau dasselbe Paket haben und im Moment bis auf ein paar Featureungleichheiten das gleiche leisten, kommt es in den allermeisten Fällen auch nicht darauf an welches Feature jetzt von der zu lernenden Sprache unterstützt wird.

Folgend finden sich noch zwei Verleichsauflistungen von C# und VB.NET:

Ich bin jetzt mal ganz böse und möchte behaupten das es gar nicht so schlecht ist, wenn zuerst – also in der Anfangszeit - mit einer untypisierten und nicht objektorientierten Sprache geübt wird.
So kann man sich ohne grosse Hindernisse und Dinge die Zeit und Wissen benötigen um sie zu verstehen, mit den grundlegenden Dingen der Programmierung beschäftigen, strukturiert. Wenn dies möglichst modular gelernt wird, ist dann auch der Umstieg auf eine objektorientierte Sprache – die ja auch die Konzepte der Strukturen beinhaltet – einfacher und nicht so überladen.

Bei vielen Integrationen wie die von Tools in Visual Studio (bspw. ReSharper) oder der Unterstützung von VB.NET auf Mono hinkt VB.NET hinterher. Dasselbe gilt auch für die Unterstützung der Sprache in anderen IDEs.
Auch ist es so, das die meisten grossen und bekannten Open Source Projekte meistens in C# geschrieben sind.
Und wissentlich ist die Einsicht in fremden Quellcode für das Lernen unabginglich und sehr zu empfehlen.

An verschiedenen Quellen habe ich gelesen, das C# Entwickler auf dem Arbeitsmarkt besser bezahlt werden und das mehr Stellen vorhanden sind, wo C# gefordert wird.
Wieviel da wirklich dran ist, kann ich nur gefühlsmässig einschätzen und würde da zustimmen. Es gibt sicherlich irgendwo noch Statistiken dazu.

C# hat auch den Vorteil, das der Umstieg zu anderen Sprachen die C ähnliche Syntax benutzt, wie bspw. Java, leichter fällt.

Wie sieht es nun mit der Weiterentwicklung und dem Support für VB.NET und C# in der Zukunft aus?

Microsoft will in nächster Zukunft eine Featuregleichheit von C# und VB.NET erreichen, sodass sich die Sprachen featuremässig ebenwürdig sind. Das finde ich eine gute Entwicklung und stärkt die Position von VB.NET als Nummer zwei der Sprachen für das .NET Framework.

Fazit:

Um direkt auf die Titelfrage zu antworten, würde ich sagen: Lernt beide Sprachen, nein, lernt so viele Sprachen wie möglich. Allerdings fokusiert euch auf eine, damit ihr dort sehr gut werdet / bleibt.

Wenn es darum geht mit welcher Sprache man anfangen soll, bleibt es schlussendlich dem Geschmack überlassen.
Im jetzigen Stand haben beide Kontrahenten jeweils Features die der andere nicht hat, jedoch sind diese in den meisten Fällen zu vernachlässigen. Das heisst, alle wichtigen Merkmale und Funktionen ist bei beiden vorhanden.
Und das reicht für den Einstieg mehr als aus.

Wichtiger finde ich, das einem späteren Umstieg eigentlicht nichts im Wege steht und das sich die Geschmäcker mit der Zeit auch ändern können.

Veröffentlicht Samstag, 1. August 2009 09:37 von Peter Bucher
Abgelegt unter: , , ,

Kommentare

# C# oder VB: Welche Sprache soll ich lernen?

C# oder VB: Welche Sprache soll ich lernen?

Montag, 3. August 2009 19:12 by goloroden.de

# re: C# oder VB: Welche Sprache soll ich lernen?

VB.NET ist näher an der natürlich Sprache dran als C#. So verwundert es nicht, dass sich C#-Profis recht schnell in VB.NET zurechtfinden. Andersherum  ist es jedoch wesentlich schwerer. Die C#-Syntax ist wohl effizienter und auch eleganter, lässt sich aber lange nicht so leicht lesen wie VB. Sie ist "wissenschaftlicher".

Ich als VB'ler hab für mich diverse C#-Projekte gestartet, um der Sprache näher zu kommen, weil es leider so ist, dass 75% des .NET.-Code in C# vorliegt und man es sich quasi nicht leisten kann C# zu ignorieren.

Es gibt aber nichts, was in C# besser geht als in VB. Eben nur etwas anders. Professionelle Sprachen sind beide.

Ich finde es toll, das MS die beiden Sprachen "glatt" ziehen will. Das führt vielleicht zu mehr Ausgewogenheit und zu weniger schiefen Blicken ('Wie, Du programmierst in'ner Kindersprache...').

Montag, 3. August 2009 23:19 by kristof

# re: C# oder VB: Welche Sprache soll ich lernen?

Schön geschrieben, gefällt mir :-)

Dienstag, 4. August 2009 08:54 by Jürgen Gutsch

# C# oder VB: Welche Sprache soll ich lernen?

Am 13. Oktober 2008 haben Peter Bucher und Golo Roden unter dem Titel "Noch Fragen, Bucher? Ja, Roden!" angek�ndigt, jeweils zum ersten eines jeden Monats einen Kommentar zu einem vorab gemeinsam gew�hlten Thema verfassen zu wollen. Heute, am 1. August

Mittwoch, 5. August 2009 09:42 by Hauser & Wenz :: Blog

# re: C# oder VB: Welche Sprache soll ich lernen?

VB soll eine Kindersprache sein? Hallo? Englisch ist eine Weltsprache!

Wieso ist ein übersichtlicher gut lesbarer Code schlechter (Kindischer)?

Wieso soll ich mit dem Computer nicht englisch sprechen? Wieso mit "wissenschaftlichen" Hieroglyphen?

Was ist daran schlecht, dass Einsteiger mit VB schneller zu Recht kommen? Ist ja logisch, man spricht die Weltsprache Englisch mit dem Computer.

Damit man einen geeigneten Programmierer findet, also keine Einsteiger, muss dieser einfach ein (Microsoft) Zertifikat besitzen oder langjährige Erfahrung, fertig.

„Nicht ohne Grund, denn der Ursprung von VB.NET wurde genau für diesen Zweck entwickelt, eine einsteigerfreundliche Sprache zu sein.“

Nicht nur einsteigerfreundlich (wieso dieser negative Touch?), sondern eine der natürlichen menschlichen Sprache nahe, effiziente, übersichtliche Sprache ist. Das ist doch perfekt?!

Auch ich habe mich mal mit C# auseinander gesetzt, als ich aber wieder mit dem Semikolon (Fehlermeldungen) konfrontiert wurde, wie früher bei Pascal, hat’s mir wieder abgelöscht. Auch das Case-Sensitive, die Verschachtelung der Klammern mühsam, da es ja die gleichen Klammern für verschiedene Befehle gibt.

Würde das VS die Klammern  in c# nicht automatisch ausrichten, würde selbst der Programmierer bei langem Code ein Chaos bekommen, wie früher.

Mir bekannte Programmierer die VB und C# beherrschen, programmieren privat in VB, wenn sie es denn unter vier Augen zugeben, sich also outen. Selbst Microsoft (ich finde leider den Artikel nicht mehr, verdammt) schrieb in einem Artikel, dass vb.net effizienter für das Programmieren ist. Eben, weil es übersichtlicher ist.

Viele Java, Delphi, Pascal und C Programmierer sind auf MS-Visual Studio bzw. C# umgestiegen, und das sind nicht gerade wenige, da diese Programmierumgebung sehr effizient und angenehm ist und die Nachfrage durch die Kunden steigt (asp.net). Deshalb gibt es in vielen Firmen diesen Drang zu C#.

Natürlich wird von diesen C#-Leuten in den Firmen, zu unrecht, das Klischee über Basic weiter Aufrechterhalten, um ihre eigene Pfründe zu sichern.

Der ewige Kampf von Pascal und Basic ;-)

Die Frage ob VB.net oder C# angewendet wird, ist nur ein politischer Entscheid, sonst nix.

Jeder neutrale, parteillose oder beide Sprachen beherrschende Mensch würde anhand der Fakten VB.net einsetzen. VB.net ist die Sprache der Zukunft, denn man spricht englisch.

Donnerstag, 13. August 2009 11:50 by Fritz Müller

# re: C# oder VB: Welche Sprache soll ich lernen?

@Fritz Müller: Dem politischen Entscheid kann ich nicht zustimmen - wie Peter bereits geschrieben hat bin ich auch der Meinung, dass es grundsätzlich eine Geschmacksfrage ist.

Was der Vergleich mit Englisch soll, entzieht sich aber meiner Logik.

Freitag, 14. August 2009 14:52 by Miro Grenda

# re: C# oder VB: Welche Sprache soll ich lernen?

@ Fritz Müller:

1. Würde Visual Studio nicht auch bei VB gewisse Einrückungen automatisch vornehmen, würde VB ebenfalls unübersichtlich aussehen. Als Beispiel guck Dir mal GW-BASIC-Code von vor 20 Jahren an ;-)

2. Interessant finde ich folgende zwei Sätze:

"Die Frage ob VB.net oder C# angewendet wird, ist nur ein politischer Entscheid, sonst nix."

- und -

"Jeder neutrale, parteillose oder beide Sprachen beherrschende Mensch würde anhand der Fakten VB.net einsetzen."

Was denn nun? Ist es nur eine politische Entscheidung, oder gibt es doch Fakten? Da widersprichst Du Dir ziemlich selbst (oder ich habe irgendetwas an Deiner Argumentation grundlegend falsch verstanden).

Was Du offen lässt: An Hand welcher Fakten würde man als neutraler Mensch denn VB einsetzen?

Die Gegenargumente aus http://www.des-eisbaeren-blog.de/post/2009/08/01/C-oder-VB-Welche-Sprache-soll-ich-lernen.aspx wie

- On Error Goto

- Optionale Parameter

- Abwärtskompatibilität zu VB6 zu Lasten von Performance

scheinen Dich ja noch nicht überzeugt zu haben ;-).

Von daher - welche Argumente (mal abgesehen von der Tatsache, dass VB näher an Englisch liegt, was ich jetzt nicht unbedingt als den einen entscheidenden Vorteil sehen würde) fallen Dir denn da konkret ein?

Sonntag, 16. August 2009 21:00 by Golo Roden

# re: C# oder VB: Welche Sprache soll ich lernen?

Eigentlich ist es müssig, darauf zu antworten, da du Fragen lieferst, die entweder polemisch oder schon im vorherigen Kommentar beantwortet wurden.

>1. Würde Visual Studio nicht auch bei VB gewisse Einrückungen automatisch vornehmen, würde VB ebenfalls unübersichtlich aussehen. Als Beispiel guck Dir mal GW-BASIC-Code von vor 20 Jahren an ;-)

Wir sprechen von Heute! Und, ob ein Abschnitt mit „}“ oder „next“ oder „end if“ usw. endet, ist ein riesiger Unterschied und viel übersichtlicher, mit oder ohne automatische Einrückung. Willst du das nicht einsehen?

>2. Interessant finde ich folgende zwei Sätze:

>>"Die Frage ob VB.net oder C# angewendet wird, ist nur ein politischer Entscheid, sonst nix." - und - "Jeder neutrale, parteillose oder beide Sprachen beherrschende Mensch würde anhand der Fakten VB.net einsetzen."

>Was denn nun? Ist es nur eine politische Entscheidung, oder gibt es doch Fakten? Da widersprichst Du Dir ziemlich selbst (oder ich habe irgendetwas an Deiner Argumentation grundlegend falsch verstanden).

In einer Firma wird es schnell zur Politik, ob z.B. Linux oder Windows, Novell, Vmware oder VPC undundund eingesetzt wird. Das gleiche gilt bei den Programmiersprachen. So finde ich das bei meinen Kunden vor. Es kommt darauf an, wer gerade der Chef ist. Plötzlich wird von PHP auf ASP.net gewechselt, koste was es wolle, habs erlebt! Wenn jemand beide Sprachen beherrscht, bevorzugt dieser vb.net, so ist es in meinem Entwickler-Kollegenkreis.

>Was Du offen lässt: An Hand welcher Fakten würde man als neutraler Mensch denn VB einsetzen?

Ich habs doch im vorherigen Kommentar geschrieben, man. Übersichtlichkeit, englisch usw.

>Die Gegenargumente aus http://www.des-eisbaeren-blog.de/post/2009/08/01/C-oder-VB-Welche-Sprache-soll-ich-lernen.aspx wie

- On Error Goto - Optionale Parameter - Abwärtskompatibilität zu VB6 zu Lasten von Performance scheinen Dich ja noch nicht überzeugt zu haben ;-).

Hää? Wieso gräbst du solchen alten Schrott hervor? Oder bindest du etwa die Microsoft.VisualBasic.dll ein? Was soll diese dämliche Frage(Polemik)???

Auch ist in diesem Artikel von diesem Link folgendes zu finden:

“Werde ich nach meiner persönlichen Empfehlung gefragt, so rate ich fast durchwegs immer zu C# – jedoch bin ich auf Grund von Projekten wie guide to C# auch nicht unbelastet. zudem fehlt mir die Erfahrung in Visual Basic.”

“… zudem fehlt mir die Erfahrung in Visual Basic “

Wie soll dieser Herr denn neutral berichten?

Wieso muss eine Sprache “Akademisch” sein, wieso sind Hieroglyphen besser???? Hallo?? Wieso ist Übersichtlichkeit, Englisch, Effizienz schlechter? Bleibt in eurem Elfenbeinturm… in dieser Zeit rase ich von Kunde zu Kunde… ;-)

>Von daher - welche Argumente (mal abgesehen von der Tatsache, dass VB näher an Englisch liegt, was ich jetzt nicht unbedingt als den einen entscheidenden Vorteil sehen würde) fallen Dir denn da konkret ein?

Es hat keinen Wert mit Leuten wie dir über so was zu diskutieren, da einfach blockiert wird, auch wenn es vor Augen liegt. Dass du nicht mal den Vorteil englisch als Entscheiden ansehen willst, sagt mir alles. Das sind die ewigen sinnlosen Streitgespräche die kein Ende haben.

Es erinnert mich an eine IT-Abteilung, die Oracle noch mit Kommandozeilen bearbeiteten, obwohl DB-Studio existierte. Sie wollten nix davon wissen. Die haben mir 6 Monate Zeit gegeben, um meine Applikation auf Oracle zu portieren. In zwei Wochen lief das Ding. Danach haben die sich plötzlich für GUI’s interessiert, da der Firmenboss stutzig wurde.

Also, jedem das seine, dass war ja der Grund von Microsoft, beide SprachRichtungen (Basic, Pascal bzw. C) weiter laufen zu lassen.

PS: ich benutze typisierte Dataset’s, ist das auch nur für Anfänger, zuwenig Akademisch? Auch nicht fertige Tools wie Devexpress? Darf ich nicht den Automat benutzen und mich nur auf den Kundenspezifischen Teil konzentrieren, soll ich immer wieder das Rad neu erfinden?

Donnerstag, 27. August 2009 12:29 by Fritz Müller

# re: C# oder VB: Welche Sprache soll ich lernen?

Hallo Fritz

> Es hat keinen Wert mit Leuten wie dir über so was zu diskutieren, da einfach blockiert wird...

Genau das gleiche könnte Golo von dir sagen.

Wegen den Erfahrungen, sieht es bei mir anders aus. Ich habe über ein Jahr damit gearbeitet und vorher mit VBScript.

Mein Beitrag ist "extra" ein wenig neutral ausgefallen.

Jedoch bevorzuge ich auch C# und stimme auch Golo in seinen Punkten bei.

Ich denke alles weitere würde zu nichts führen, da es irgendwie auch um eine Glaubensfrage geht.

Das Thema war übrigens nicht C# vs. VB.NET, sondern "Welche Sprache soll ich lernen", vorallem bezogen auf Anfänger oder halt Umsteiger.

Grüsse Peter

Freitag, 28. August 2009 12:21 by Peter Bucher

# re: C# oder VB: Welche Sprache soll ich lernen?

Hallo Fritz,

da Du mir Polemik und Ignoranz vorwirfst, und Du Dich zudem auf den Standpunkt zurückziehst, dass eine Diskussion mit mir eh keinen Sinn hätte, werde ich auf Deine Fragen nicht weiter eingehen.

Abgesehen davon möchte ich Dir noch zwei Dinge mit auf den Weg geben:

1. Wenn man dem Gegenüber Verhaltensweisen wie Polemik oder Ignoranz vorwirft, schadet es nicht, selbst eine gewisse Sachlichkeit an den Tag zu legen - sonst fällt es schwer, Dich ernst zu nehmen.

2. Du gehst die ganze Zeit von Dir und Deinen Bekannten aus: Wenn es für Euch ein so gravierender Vorteil ist, dass Visual Basic im Wesentlichen englische Wörter nutzt - bitte. Nur verlang bitte nicht, dass das auch solche Leute so sehen, die ein bisschen mehr abstrahieren können als Ihr es macht oder gewohnt seid.

In diesem Sinne,

Golo

Freitag, 28. August 2009 12:24 by Golo Roden

# Alles var – oder nicht?

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Golo? Ja, Bucher! angekündigt,

Dienstag, 1. September 2009 09:47 by Peter Bucher

# Wieviel Sinn machen Unittests?

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Golo? Ja, Bucher! angekündigt,

Montag, 2. November 2009 09:43 by Peter Bucher

# Reflection – Fluch oder Segen?

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Roden? Ja, Bucher! angekündigt,

Dienstag, 1. Dezember 2009 21:03 by Peter Bucher

# this oder kein this

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Roden? Ja, Bucher! angekündigt,

Dienstag, 16. Februar 2010 21:30 by Peter Bucher

# Felder vs Eigenschaften

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Roden? Ja, Bucher! angekündigt,

Sonntag, 14. März 2010 16:53 by Peter Bucher

# Abstraktion

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Roden? Ja, Bucher! angekündigt,

Freitag, 9. April 2010 13:22 by Peter Bucher
Anonyme Kommentare sind nicht zugelassen