VisualBasic weiter lernen oder umsteigen?
Hallo :)
Ich bin bei Visual Basic mittlerweile soweit das ich diverse Spiele wie (Hangman, vier gewinnt und Schiffe versenken ) leicht hin kriege. Die Gewinnprpfung und alles klappt auch.
Jetzt ist meine Frage auf welche Programmiersprache ich mit den Kentnissen umsteigen kann? Ich hab halt bisschen Angst das ich mit visual Basic irgendwann limitiert bin.
Welche Ideen habt ihr?
Lg
3 Antworten
Du schreibst zwar, dass dir einfache Minispiele zu entwickeln, keine Probleme mehr bereitet, doch dies kann man mit unterschiedlichen Paradigmen umsetzen. Daher würde ich zuerst fragen, inwiefern du mit der OOP bereits vertraut bist?
Zudem gibt es viele weitere klassische Themen, die es sich erst einmal anzuschauen lohnt: Design Patterns, Server-Client-Architekturen, Serialisierung, intelligente Projektverwaltung, Code-Formatierung, Code-Testing, Threads und event-based Operationen, component-based architectures, Konzeptionierung und Umsetzung von GUI-Anwendungen (Windows Forms, WPF), usw.
Des Weiteren schadet es doch nicht, erst einmal weitere Praxiserfahrung zu sammeln. Die Sprache wird dich so schnell nicht an ein Limit bringen, dazu gibt es noch zu viel zu entdecken und auszuprobieren.
Jetzt ist meine Frage auf welche Programmiersprache ich mit den Kentnissen umsteigen kann?
Nach wie vor auf jede. Ziemlich einfach sollte ein Umstieg auf Object Pascal (Delphi Language) sein, Python dürfte sich ebenso anbieten oder C#, da die Sprache das gleiche Fundament (.NET) verwendet.
Am ehesten würden dich wohl die beiden letztgenannten Sprachen bringen, sie haben jeweils einen weiten Anwendungsrahmen. Den hat VB durch das .NET-Framework allerdings auch!
Ich habe nur Angst das es in der Praxis später kaum eingesetzt wird. (...)
Zuallererst einmal hängt das vom Betrieb und dem Anwendungsbereich ab. Im Zusammenhang mit Finanzkalkulationen und dergleichen wird VB in der Praxis zur Kommunikation und Erweiterung von Office-Produkten genutzt. Ein weiterer Sektor könnte die Entwicklung von maschinellen Algorithmen sein in der Industrie sein, doch das ist jetzt nur eine Vermutung.
(...) nur wenn man dann der einzige im Betrieb ist dann wäre das ja auch nicht so gut. (...)
Nein, es wäre spitze - unter Voraussetzung, dass der Betrieb diese Kompetenz brauchen sollte.
Ansonsten - who cares? Wenn du eine Programmiersprache kannst, ist der Umstieg auf eine andere meist nicht so schwer, vor allem, wenn beide Sprachen in ihrer Syntax und Semantik näher miteinander verwandt sind (z.B. Java und C#). Ja - jede Sprache kann nochmal einige Eigenheiten mit sich bringen, doch die lernst du in der Regel eh vor allem durch jahrelange Praxis. Im Vordergrund steht zuerst einmal das grundlegende Verständnis von strukturellen Konzepten und die Fähigkeit, Probleme erkennen, analysieren und zerlegen zu können.
Also es geht eher darum was am weitesten verbreitete ist :)
Am meisten verbreitet sind JavaScript, Java, C, C++, Python und C#. Vielleicht zählt man noch PHP dazu, doch wenn du dich in der Webentwicklung probieren willst, dann nutze lieber das ASP.NET-Framework zusammen mit VB. 😋
Von den oben genannten Sprachen sind Java, C oder Python am einfachsten zu lernen. C# ist aufgrund von .NET extrem mächtig und hat zudem durch die letzten Versionen an Syntactic sugar ziemlich zugelegt, die Liste an Keywords ist nicht klein. C++ und JS sind die schwierigsten / komplexesten in der Auflistung, sofern man sie wirklich lernen möchte.
Fazit:
Bleibe erst einmal bei VB und schau, dass du mit dieser Sprache mehr Praxiserfahrung sammeln kannst sowie neue Themen angehst, die dir womöglich noch eher unbekannt sind. Eine Liste an halb gelernten Programmiersprachen jedenfalls bringt dir nicht viel.
Ich würde dir empfehlen Javascript zu lernen. Denn ich finde bei der Programmierung ist es besonders wichtig möglichst schnell an Ergebnisse zu kommen und dass ist bei JavaScript wohl am meisten der Fall.
Ein weiterer Pluspunkt wäre dass du deine dort geschriebene Programme überall veröffentlichen kannst, im App Store, im Browser als Webseite oder sogar als Desktop Programm.
Ich sehe in Javascript die Zukunft der Programmierung wobei mir da viele widersprechen würden.
Für mich überzeugt die Philosophie in der Javascript Community dass man versucht so weit wie möglich alles und jedem auf genau eine Methode zu reduzieren die man dann lediglich an der gewünschten Stelle aufrufen muss.
Sei es eine Datenbank Abfrage mit Datenauswertung oder dass senden einer Email mithilfe eines Emaildienstes, du brauchst nur eine Methode aufrufen und die entsprechenden Optionen übergeben.
Da wo man in anderen Sprachen erst nochmal die Optionen mithilfe einer extra Optionsklasse deklarieren musst, Sie dann innerhalb von 10 Zeilen definieren muss (weil man jede einzustellende Option einzeln zuweisen muss) und diese dann schlussendlich in der entsprechende Methode übergibt, kannst du all diese Optionen in JS einfach beim aufrufen der Methode definieren und musst nur auf die richtige Benennung achten.
Solche Sachen erschnellen an jeder Ecke die Entwicklung und bringt einen einfach andauernd schneller voran.
Andere würden dann doch eher davon abraten mit JS anzufangen weil es mit dynamischen Typen arbeitet jedoch finde ich ist dies eine der größten Stärken.
Falls du damit anfangen willst rate ich dir folgende Stichpunkte zu erlernen:
- NodeJS
- ES6
- JSDoc
Dann wenn du clientseitig mit dem Browser arbeitest empfehle ich folgende Tools:
- Webpack
- React
Im Englischen gibt es nur the, im Deutschen jedoch der, die und das.
So gibt es in Javascript nur let, in statisch typisierten Sprachen aber string, int, long, float und noch alle Klassen etc..
"let" ist ähnlich wie in C# "var". Dem Kompiler ist es egal was auf der rechten Seite der Zuweisung steht, er schaut nämlich erst bei Laufzeit welcher Typ dort vorliegt und weißt diesen Typen der Variabel zu.
Dass hat einerseits zufolge dass man sich weniger Gedanken machen muss welchen Typ man nimmt, andererseits können Anfänger die nie mit statischen Typen gearbeitet haben schnell fehlerhaften Code schreiben weil Sie nicht genau vorhersehen können was bei Laufzeit passieren wird.
Für mich aber, jemand der mit C# angefangen hat und dem Typisierung eine Selbstverständlichkeit ist, ist Javascript eine pure Erleichterung.
Also mir würden da ein Paar Fälle einfallen wo es zu trifft:
- Nummer sind Nummer. Nie wieder nachdenken ob an jeglicher Stelle ein float oder vielleicht doch eher ein double passen würde. Meistens verarbeitet man eine Nummer ganz ohne nachzudenken und wenn man mal nur die Ganze Zahl anzeigen soll dann schneidet man in der Veranschaulichung eben die Nachkommastellen ab. Erst wenn man Mathebibliotheken schreibt sollte man echt vorsichtig damit umgehen (Nicht dass die Vorsicht nicht auch in Anderen Fällen vorhanden sein sollte).
- Arrays sind Arrays. Wie oft kommt es vor dass man ein Array für ausreichend hält, später aber dann doch zur Liste umsteigen muss weil man die Dynamik dann doch gut gebrauchen könnte.
- Generell fällt es weg drüber nachzudenken welche Informationen man gekoppelt in Klassen verpacken sollte da Sie "zueinandergehören". Meistens schreibt man das Klassenmodell erst nach dem dritten Refaktoring dann doch in einer wahrlich effektiven Art und Weise. Dass ganze fällt bei JS weg. Meistens ist es nämlich so dass die Funktionelle Art ein Programm zu schreiben sehr vorteilhaftig sein kann.
Und da würden mir bestimmt noch viele Situationen einfallen aber da müsste ich erst ein mal meinen morgentlichen Kaffee trinken..
So leid mir auch tut, es zu sagen (da ich persönlich Visual Basic nicht leiden kann), aber mit Visual Basic bist Du nicht limitiert. Da Visual Basic heute auf derselben Runtime basiert, wie alle .NET Sprachen, hast Du auch dasselbe Framework zur Verfügung.
Du kannst beispielsweise nach C# umsteigen. Die dortige Syntax ist für VB-Umsteiger erstmal gewöhnungsbedürftig, ist aber ein guter Einstieg, um später andere Sprachen wie Java, Swift, C++ oder ähnliches zu lernen.
Da aber alle Sprachen im Wesentlichen auf WHILE und somit auf GOTO-Sprachen zurückzuführen sind, sind auch alle Sprachen gleich mächtig. Die Frage ist heute eher: Was bietet das Framework?
Vielen Dank für deine Antwort :).
Ich will für die Zukunft einfach gut gewappnet sein. Und das ist meiner Meinung nach die Programmiersprache mit der heute am häufigsten gearbeitet wird.
Da gibt es diverse lustige Statistiken und Top-10s zu (z.B. Tiobe-Index). Alle widersprechen sich. Daher ist es immer gut, wenn man a) einige Sprachen kann und b) schnell lernt.
Wie würdet ihr das ganze dann angehen? Ich würde weiterhin trotzdem in VB programmieren und mir nebenbei die Kenntnisse in einer anderen Sprache aneignen. Gibt es da die Non plus ultra Bücher zu die man besitzen sollte oder um den Einstieg zu erleichtern oder reicht das internet?
Kann ich nur unterstützen.
(Bis darauf, dass ich persönlich nichts gegen Visual Basic habe. Aber es gibt kaum etwas, das in C# geht und in VB nicht oder umgekehrt. Was mich allerdings ziemlich stört, ist, dass Visual Studio bei VB wesentlich schneller reagiert als bei C# und dass es die automatischen Zeileneinzüge und Leerzeichen bei C# nicht so richtig hinkriegt, während es bei VB damit keinerlei Probleme hat. Und das haben die Leute bei Microsoft bis heute nicht auf die Reihe gekriegt.)
In C# beispielsweise unsafe Pointer. Ich muss halt - sorry - bei Visual Basic immer an Kindersprache denken und daran, wie ich vor Jahrzehnten meine ersten Versuche in GW-BASIC gemacht habe... :-)
Danke schonmal für deine Antwort!
Also mir gefällt VB wirklich gut. Ich habe nur Angst das es in der Praxis später kaum eingesetzt wird. Ich meine man kann bestimmt damit auch alles programmieren nur wenn man dann der einzige im Betrieb ist dann wäre das ja auch nicht so gut. Also es geht eher darum was am weitesten verbreitete ist :)
Da scheiden sich wirklich die Geister. Ich persönlich arbeite in einer Firma, die nahezu ausschließlich kundenspezifische Industriesoftware in C# programmiert.
Viele programmieren aber auch in Java. Oder in C++. Wenn es für Apple sein soll sogar in Objective C oder Swift.
Daher: Mit C# bist Du für viele Dinge gewappnet. Durchgängige Objektorientierung mit einer C-ähnlichen Syntax, was für Java, C++ und Swift sehr von Vorteil ist.
Wichtig ist, dass Du die Grundkonzepte objektorientierter Programmierung verstehst. Der Rest ist nur Syntax - also wie man's aufschreibt.
Mit dynamischen Typen meinst du vermutlich dass sich Befehle mit der Zeit ändern? Bzw zusammengefasst werden? Oder irre ich mich hier?