Warum benutzt ihr VB?

Es gibt 42 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Ich hätte mal eine Aufgabe für deine "ach-so-tollen" C++-Skills:
    Mach eine generische Klasse, die zwei Werte hält: eine Liste von einer generischen Klasse, die gleich noch definiert wird und einem Wert für den generischen Typen.
    Die andere generische Klasse soll ein Dictionary<string, anderegenerischeklasse> enthalten und die einzige Möglichkeit, auf Parameter innerhalb der Klasse zuzugreifen ist ein Indexer. Dieser Indexer soll: einen Baum nach unten verfolgen, einen Wert aus dem eigenen Dictionary zurückgeben und entsprechend auch setzen können. Sollte null übergeben werden, soll der letzte Pfad gelöscht werden.

    Damit du weißt, dass es in .NET bestens funktioniert:
    C#

    C-Quellcode

    1. /*
    2. This source code may not be used without permission of the author!
    3. Please contact him if you want the permission to use or modify it!
    4. */
    5. public class Settings<T> {
    6. private Dictionary<string, SettingsItem<T>> settings;
    7. public Settings() {
    8. settings = new Dictionary<string, SettingsItem<T>>();
    9. }
    10. public SettingsItem<T> this[string name] {
    11. get {
    12. return this[name.Split(Path.PathSeparator)];
    13. }
    14. set {
    15. this[name.Split(Path.PathSeparator)] = value;
    16. }
    17. }
    18. public SettingsItem<T> this[params string[] name] {
    19. get {
    20. Queue<string> queue = new Queue<string>(name);
    21. string item = queue.Dequeue();
    22. if (!settings.ContainsKey(item))
    23. throw new KeyNotFoundException();
    24. if (queue.Count > 0)
    25. return this[item].Setting[queue.ToArray()];
    26. else
    27. return this[item];
    28. }
    29. set {
    30. Queue<string> queue = new Queue<string>(name);
    31. string item = queue.Dequeue();
    32. if (settings.ContainsKey(item)) {
    33. if (queue.Count > 0)
    34. this[item].Setting[queue.ToArray()] = value;
    35. else {
    36. if (value == null)
    37. settings.Remove(item);
    38. else
    39. settings[item] = value;
    40. }
    41. } else
    42. if (queue.Count > 0)
    43. settings.Add(item, new SettingsItem<T>(new Settings<T>()));
    44. else
    45. if (value != null)
    46. settings.Add(item, value);
    47. }
    48. }
    49. public bool ContainsKey(string name) {
    50. return ContainsKey(name.Split(Path.PathSeparator));
    51. }
    52. public bool ContainsKey(params string[] name) {
    53. Queue<string> queue = new Queue<string>(name);
    54. string item = queue.Dequeue();
    55. if (!settings.ContainsKey(item))
    56. return false;
    57. if (queue.Count > 0)
    58. return settings[item].Setting.ContainsKey(queue.ToArray());
    59. else
    60. return true;
    61. }
    62. }
    63. public class SettingsItem<T> {
    64. public Settings<T> Setting {
    65. get;
    66. set;
    67. }
    68. public T Value {
    69. get;
    70. set;
    71. }
    72. public SettingsItem(Settings<T> setting) {
    73. this.Setting = setting;
    74. }
    75. public SettingsItem(T value) {
    76. this.Value = value;
    77. }
    78. }

    Also: mach es mir in C++ nach! Wenn du das geschafft hast, mach mit Lambda-Ausdrücken weiter:

    C-Quellcode

    1. return Populate(input, count, count).Where(item => item.Count() == count).Where(item => item.Sum() == sum).Select(item => item.OrderBy(order => order)).Distinct<IEnumerable<int>>(comparer);

    Davlog schrieb:

    Es wird auch noch oft in der Raumfahrtechnik benutzt...
    Leute ihr habs gehört. Raumfahrttechnik! Löscht das Forum, deinstalliert Visual Studio, schreddert eure Codes. Markus soll nen neues Asm Forum aufmachen, denn Asm ist die Zukunft.


    Davlog schrieb:

    Aber möchtest du Proggen lernen ohne wirklich zu verstehen wie der Computer funktioniert?
    Du kannst mit Hochsprachen mehr als wunderbar programmieren ohne zu wissen wie man mit nem x86 asm nen Register lädt. Und jetzt kommt der Grund(aufpassen :!:) : Du musst keine Register selber laden!
    In manchen Situationen mag es hilfreich sein, doch weshalb sollte jemand der eine Business-Applikation welche von mir aus Werkzeugkosten erfasst, in eine Datenbank einspeist und darauf Reports generiert, erstellt wissen wie ein x86 asm funktioniert? Richtig: Gar nicht! Viel wichtiger ist es, dass er weiß wie eine Datenbank funktioniert, wie man mit Sperrsituationen umgeht etc.

    Davlog schrieb:

    Hättest du mal C++ ausprobiert, wüsstest du das es genauso viel Comfort bieten kann für viele Dinge wie man mit .NET hat.
    Glaub mir ich habe mehr als lange genug mit C++ befasst. Ich programmiere zwar nicht oft damit doch hin und wieder verwende auch ich C++(z.B. aktuell gerade im Showroom Scroll++). Und ich weiß sehr gut welchen Komfort es bietet. Und Tatsache ist, dass es noch gar nicht so lange her ist, dass es noch kein C++11 gab und davor gab es noch nicht mal die Möglichkeit Threads zu erstellen. Natürlich mit zusätzlichen Bibliotheken oder gleich die zugehörigen APIs(da brauchst du dann aber wesentlich mehr als 2 Makros). Und wenn du mir erzählen möchtest, dass C++ nur annähernd so viele Möglichkeiten was z.B. Multithreading bietet, dann liegst du einfach falsch. Und zum Abschluss. Nenne mir mal nen paar Dinge die von mir aus C# nicht kann, was aber C++ kann.

    Es geht hier darum warum ihr VB einer anderen Sprache bevorzugt oder warum ihr es überhaupt benutzt.

    Weil du mit C++ für das dort oben mehr als 1 Zeile braucht. 8o 8o

    Btw.
    Java lässt sich sehr verständlich lesen, genauso wie C++ wenn man die Syntax kennt und mindestens 1 Jahr damit zugange war. Da ist VB auch nicht gerade leserlicher und verständlicher.

    Hauptsache du führst oben Python an.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „thefiloe“ ()

    Toll ich bin selber oft in Sachen C++ tätig, du hast die Standard Library, die auch sehr gut ist nur für alles andere darf man sich mit absolut nicht OO WinAPI rumschlagen o. irgendeinen Wrapper dafür nehmen. Qt kann imo kein Stückchen mit WPF mithalten. Bevor du irgendwelche Dinge von dir gibst solltest du es auch mal probiert haben. Sprachen wie C/C++ erlauben es zwar Assembler mit einfließen zu lassen .Net jedoch machts einfach überflüssig. Alles was du in C++ machen kannst, kannste auch in VB, abgesehen von Systeminternen aber dafür ists ja garnicht da. VB kann ausserdem was was Andere nicht können, es ist Platformunabhängig. Man kann das Programm schön so kompillieren, dass es auf x64 Systemen mit 64Bit läuft und auf x86 mit 32Bit bei nativen Sprachen musst du für jeden Prozessor extra kompillieren. Bei Assembler darfste das Programm für jeden Prozessor neu schreiben super :thumbup:
    Generell treffe ich nun die Aussage:

    Welche Kunden haben "schon" Linux, Mac oder Unix am laufen?
    Alle "unserer" Kunden haben Windows im Einsatz, eben weil es sich über all die Jahre hindurch durchgesetzt hat.
    Für einen Office Bereich brauche ich definitiv kein Mac, Linux ebenfalls nicht- welche Sekretärin ist schon in der Lage so etwas zu bedienen?
    Die meisten sind nicht in der Lage eine einfache Anwendung zu bedienen.

    VB ermöglicht einen auch einen "schnellen" einblick in die Sprache. Grob gilt: "Kannst du englisch (und man muss es mittl. nicht können), kannst du so ziemlich schnell deine Ziele erreichen in VB.
    Ist zumindest meine Meinung. Beispiel:
    "Oh gott wie kopiere ich denn eine Datei?" --> Google an und "MSDN COPY FILE" eingeben.

    Ich bin froh das es VB gibt. So kann man, nach kurzem einblick in verschiedene Materien ein "angenehmes" Ziel in kurzer Zeit realisieren.



    VB ist verdammt angenehm-
    es räumt in der Regel für uns auf. Ich brauch keine verdammten Adressen hier und da abrufen/aufrufen/freigeben/ was weiß ich. Ernsthaft, diese ganze C++ malloc, calloc sch... hat mich so genervt in der berufsschule...
    @theofile
    das mit der Raumfahrttechnik war nur ein Beispiel dafür das es immer noch gebraucht wird. Wollte nicht gleich deine VB-Welt zerstören mit 'ner low level sprache ;)

    Mit C# bin ich nicht so tief vertraut wie mit C++ (obwohl ich da selbstverständlich immer noch täglich dazu lerne). Frag mal jemanden der C# und C++ kann und nicht parteiisch ist.

    @Gonger96
    wo kann Qt nicht mithalten? Lasse mich gerne eines besseren belehren ;)
    C#.NET ist im Grunde das selbe wie VB.NET. (Nur besser :D)
    Basiert ja beides auf .NET. Für den einen ist die Syntax besser als für den anderen... Ich progge überwiegend in VB, aber C# ist auch nicht schlecht. Damit kannste auf jeden Fall mehr.
    C++ ist aber ne große Nummer. Wenn du das kannst, dann C# erst recht.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Naja, hat mir viel Spaß gemacht mit euch. In einigen Punkten habt ihr mich überzeugt VB zu wählen.
    Hoffe ihr wart nicht ganz so sauer das ich euch script-kiddies genannt habe :P tut mir leid falls es so sein sollte

    ich werde mal die Aufgaben die ihr mir hier gestellt habt ausprobieren und euch die Ergebnisse mitteilen um euch mal zu zeigen wie super C++ wirklich ist ;)
    Falls hier noch andere Meinungen / Ergänzungen kommen, werde ich die die nächsten Tage mal lesen und was dazu schreiben. Wäre wirklich gespannt.

    Schönen Abend noch Vbler :)
    Heilige Scheiße. Dich muss man bei der NASA nehmen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    Schonmal WPF ausprobiert ?
    Du kannst schön 2D &3Db Grafiken rendert (intern via DX), alles ist grafisch schön und vorallem perfekt zum resizen da es vektorbasiert ist. Fallse mal iwelche Steurelemente in Anderen hosten möchtest gehts in Sekunden. Du hast eine strikte Trennung zwischen GUI (XAML) und Codebehind. Kannst mal eben Daten binden hast nicht son gefriemel mit Events (was C++ auch nicht hat, also kein hauseigenes Eventhandling). Ich hab noch net oft mit WPF gearbeitet ich denk Andere können dir noch viel mehr nennen.

    Trade schrieb:

    C#.NET ist im Grunde das selbe wie VB.NET. (Nur besser :D)

    Besser ist eine subjektive Einschätzung in dem Fall. Mächtiger trifft's eher und das auch nur geringfügig. (und es heißt C#, nicht C#.Net)
    C# und C++ sind sehr verschieden - insbesondere ist auch das Vokabular zum großen Teil anders - und du musst dich mit einer Menge Libraries für C rumschlagen und somit hast du den großen Vorteil von C# mMn nicht.

    Lowlevel-Sprachen sind dazu da, lowlevel-Sachen zu machen. Sicher, man kann auch C- und C++-Programme damit ausführen und auch .Net, aber wenn man das wirklich macht, sollte man sich darüber Gedanken machen, ob es in diesem Kontext tatsächlich Sinn macht. Assembler bspw. ist heutzutage eher für konkrete low-level Sachen oder für Performance-Sachen (auch nicht mehr unbedingt) da. Der JITC könnte prinzipiell übrigens mit extrem hochgradiger Optimierung Programme auf die lokale Plattform zugeschnitten kompilieren (macht er aber afaik nicht, wär' auch vom Aufwand her kaum machbar).

    Dass C++ "super" ist, streitet hoffentlich keiner ab (und ohne C++ wäre .Net auch nicht so weit, nur mal so).

    btw. ich bin sauer, weil ich skript-kiddy genannt wurde.

    Gruß
    ~blaze~
    @Confuzi Us
    ja, das siehst nur du so. Ohne C++ gäbe es kein .NET wie heutzutage :P

    @~blaze~
    C#.NET ist genauso korrekt, es sagt nur keiner.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wieso nicht? Mit C++ hast du die volle Power. Das mag vielleicht für kleine Programme überflüssig sein, aber die großen benutzen sicherlich auch C++ (nicht nur, auch Python etc.)
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Auch Assembler bringt heutzutage nicht schnellere Programme bzw. Algorithmen. Compiler können Programmcode sehr effiktiv verbesssern. Ob C#, VB.Net C++, Java o. was Andres ist letztendlich immernoch abhängig von dem was man damit erreichen will und vom Entwickler selber. Alles hat seine Vor- und Nachteile, aber eine moderne Hochsprache als Scriptkiddy-Sprache abzustempeln ist nicht korrekt.

    Trade schrieb:

    Dich muss man bei der NASA nehmen.

    Ich würde ihn nicht mal als Hausmeister anstellen.

    @Davlog: Wenn du so vorlaut bist, dann zeig doch mal dein bestes her, was du in C++ bisher erstellt hast. Wenn die Sprache so toll ist, müsste uns das Resultat ja richtig aus den Socken hauen, meinst du nicht auch?

    Davlog schrieb:

    Habe Qt benutzt. Das ist sehr mächtig und kann sicher mit WPF mithalten.
    Alleine diese Aussage zeigt bereist, dass du keine Ahnung von der Sprache hast, über die du gerade herziehst. Du hast wahrscheinlich selbst nur das "ScriptKiddy-Zeug" kennen gelernt, von den wirklich mächtigen Teilen der Sprache kennst du nichts. Es gibt soweit ich weiß keine einzige GUI-API, die auch nur annähernd so mächtig wäre wie WPF. Volles Hardwarerendering, Vektorgrafiken, DPI-Unabhängigkeit, einfache Wiederverwendbarkeit von einzelnen Elementen, fortgeschrittenstes Databinding, um nur ein paar Aspekte zu nennen.
    Um sowas mit C++ umzusetzen müsstest du wahrscheinlich ein paar Hunderttausend Codezeilen schreiben, und das wären nicht gerade einfache Codezeilen.