Visuelle oder textuelle Programmiersprachen?
-
Was ist das?
Ich denke programmiersprachen wie Blueprints in Unreal oder dem Programm Scratch, wo einfach Bausteine zusammengestöpselt werden, und dann ergiebt das ein Programm.
Ich denke es liegt auf der Hand wieso. Sie sind dafür ausgelegt, dass sie auch von Menschen ohne Programmiererfahrungen verwendet werden können. Denn wenn ich Bausteine habe die ich zusammensetzten muss und mir wird gleich angezeigt weche zusammenpassen und welche nicht, dann kann nicht viel schiefgehen. Bei normalem Code hingegen, baut man viele Fehler ein die oft auch nicht gleich ersichtlich sind. Außerdem weiß ich bei Bausteinen was ich habe und kann mich danach orientieren. Bei texttuellen Sprachen muss man zuerst einmal wissen was es überhaupt für Befehle gibt.
Ich persönlich finde das visuelle Programmiersprachen nicht das gelbe vom Ei sind, denn da muss man nichts können für, und das kann jeder Dahergelaufene machen. "Echtes" Programmieren hingegen erfordert durchhaltevermögen, Spaß am lernen der Sprache, je nach Projekt auch Können und natürlich auch einen gewissen IQ.
-
Visuelle Programmiersprachen sind meistens relativ wenig "mächtig", sehr konkret (wenig abstrakt) und auch relativ überschaubar was die Anzahl der verfügbaren Sprachkonstrukte angeht. Das verringert die Zahl und Komplexität der Dinge die man kennen/verstanden haben muss damit man sie einsetzen kann. Und das macht sie einfacher.
Gleichzeitig machen die selben Eingeschaften es aber auch mühsamer damit grössere Programme zu schreiben.
D.h. zum Anfangen sind solche Sprachen ersmal gut geeignet, aber sobald man mehr machen will sollte man die Zeit investieren etwas komplexeres aber auch mächtigeres zu lernen.
-
Ist das überhaupt ein Begriff? Ich kann mir natürlich was drunter vorstellen, aber geläufig ist mir das nicht.
-
@Benedikt sagte in Visuelle oder textuelle Programmiersprachen?:
Ich persönlich finde das visuelle Programmiersprachen nicht das gelbe vom Ei sind, denn da muss man nichts können für, und das kann jeder Dahergelaufene machen. "Echtes" Programmieren hingegen erfordert durchhaltevermögen, Spaß am lernen der Sprache, je nach Projekt auch Können und natürlich auch einen gewissen IQ.
Hä?
Also wenn man in Scratch ein Schachprogramm schreibt, dann ist das was was jeder kann und bäh, aber wenn mans in C/C++/Java/... macht dann ist es gutti?
Also ne das ist doch nur Quatsch.Ein Werkzeug das so einfach wie Scratch ist, aber gleichzeitig auch so mächtig/übersichtlich/praxistauglich wie C++/C#/Python/Erlang/Go/Haskell/... wäre natürlich der absolute Wahnsinn! Ich vermute bloss dass das leider nicht möglich ist, da ich glaube dass selbst im Set aller optimal "ausbalancierten" und durchdachten Programmiersprache jeder Schritt in Richtung "mächtiger" auch ein Schritt in Richtung "komplexer" (und damit schwerer zu erlernen) ist.
-
@hustbaer sagte in Visuelle oder textuelle Programmiersprachen?:
Ein Werkzeug das so einfach wie Scratch ist, aber gleichzeitig auch so mächtig/übersichtlich/praxistauglich wie C++/C#/Python/Erlang/Go/Haskell/... wäre natürlich der absolute Wahnsinn! Ich vermute bloss dass das leider nicht möglich ist, da ich glaube dass selbst im Set aller optimal "ausbalancierten" und durchdachten Programmiersprache jeder Schritt in Richtung "mächtiger" auch ein Schritt in Richtung "komplexer" (und damit schwerer zu erlernen) ist.
Ich denke das ist nicht so. Eine Sprache kann unglaublich einfach sein und trotzdem unglaublich Schwierig darin sein zu programmieren. Beispielsweise die Programmiersprache lambda. Insofern eine Programmiersprache Turing Vollständig ist, kann man sowieso damit alles berechenbare Programmieren.
Wenn eine Visuelle Programmiersprache Turing Vollständig ist, ist mit ihr alles umsetzbar was man auch mit anderen Sprachen lösen könnte.
-
@Mechanics
Klarhttps://en.wikipedia.org/wiki/Scratch_(programming_language)
https://en.wikipedia.org/wiki/Snap!_(programming_language)
S7 Graph/S7 HiGraph
Bzw. ganz allgemein https://en.wikipedia.org/wiki/Visual_programming_language
-
@pmqtt Du denkst was ist nicht wie? Ich rede ja gerade davon dass einfach aufgebaute Sprache umständlich zu verwenden sind, und dass es toll wäre (aber unrealistisch ist), wenn man "einfach aufgebaut und zu erlernen" mit "einfach und effizient in der Anwendung" kombinieren könnte. Lies meinen Beitrag vielleicht nochmal, ich denke nicht dass er sehr schwer verständlich formuliert ist.
Davon abgesehen: Was soll "die Programmiersprache Lambda" sein?
-
@hustbaer Sorry du hast recht, ich wollte dich gerade glaub ich falsch verstehen.
Die Programmiersprache lambda ist die Umsetzung des Lambda Kalküls in eine Syntax. Ich kenne z.B eine Umsetzung in t.Lambda im Buch von Achim Clausing Amazon Link.
-
Lambda-Kalkül ist mir natürlich ein Begriff. Aber eben keine Programmiersprache die einfach nur "Lambda" heisst. Merke: "t.Lambda" != "Lambda"
Ansonsten kann man natürlich noch überlegen wie man "einfach" und "mächtig" in meinem Beitrag verstehen möchte. Dinge wie Lambda-Kalkül sind relativ einfach aufgebaut und gleichzeitig recht "mächtig" in dem Sinn dass man mit relativ wenig Zeilen relativ viel machen kann. Eine solche Kombination gäbe es dann also sehrwohl. So hab ich das aber eben nicht gemeint, auch wenn es vielleicht nicht 100% klar formuliert war. Ich meine nicht nur einfach aufgebaut sondern auch einfach zu lernen. Und mächtig in der Anwendung in dem Sinn dass man schnell und effizient damit arbeiten kann und idealerweise nicht all zu viel Code braucht.
Und das geht halt IMO einfach nicht zusammen. Leider.
-
Ich denke, wir sollten den Begriff der "Ausdrucksstärke" mit in die Diskussion werfen. Also mit wie wenigen Programm man wie viel Effekt erzielt. Es ist etwas anderes, ob eine Sprache nicht für komplexe Abläufe geeignet ist, weil sie ausdrucksschwach ist (d.h. dafür sehr viel Code benötigt), als eine Sprache, in der es schwierig ist, komplexe Abläufe darzustellen, weil man in der Sprache die Komplexität nicht hinreichend abbilden kann (z.B. könne die Ausdrücke zu unflexibel sein, oder Programme schwer zu strukturieren sein). Visuelle Programmiersprachen fallen da eher in letzteres.
-
@alfafan99 sagte in Visuelle oder textuelle Programmiersprachen?:
Warum sind visuelle Programmiersprachen einfacher als textuelle?
Warum kann man mit visuellen Programmiersprache nicht das gleiche Spektrum an Möglichkeiten abdecken, wie mit textuellen Programmiersprachen?
-
@hustbaer sagte in Visuelle oder textuelle Programmiersprachen?:
Lambda-Kalkül ist mir natürlich ein Begriff. Aber eben keine Programmiersprache die einfach nur "Lambda" heisst. Merke: "t.Lambda" != "Lambda"
Ansonsten kann man natürlich noch überlegen wie man "einfach" und "mächtig" in meinem Beitrag verstehen möchte. Dinge wie Lambda-Kalkül sind relativ einfach aufgebaut und gleichzeitig recht "mächtig" in dem Sinn dass man mit relativ wenig Zeilen relativ viel machen kann. Eine solche Kombination gäbe es dann also sehrwohl. So hab ich das aber eben nicht gemeint, auch wenn es vielleicht nicht 100% klar formuliert war. Ich meine nicht nur einfach aufgebaut sondern auch einfach zu lernen. Und mächtig in der Anwendung in dem Sinn dass man schnell und effizient damit arbeiten kann und idealerweise nicht all zu viel Code braucht.
Und das geht halt IMO einfach nicht zusammen. Leider.
Du hast dich klar ausgedrückt, ich habe nur selektiv gelesen und wollte dich nur so verstehen. Ist keine Absicht gewesen, sondern einfach nur Menschlich vor allem am Abend.
Und Ja natürlich aus du recht t.lambda ist nicht Lambda.Ausdrucksstärke krankt glaube ich auch daran, dass es schwer zu definieren ist. Für einige kann es die Anwesenheit von Regeln sein und für andere deren Abwesenheit. Wiederandere mögen Ausdrucksstärke definieren als die Möglichkeit sich möglichst kurz zu halten.
-
Ist nicht in allen Kontexten "blöckchen zusammenklicken" einfacher als selber machen?
Ich würde überdies verrückt werden wenn ich immer so arbeiten müsste.Meiner Ansicht nach haben Scratch und Konsorten nur in Schulen vllt was zu suchen. Oder vielleicht in Sachen für Kinder oder Spielen (zb Minecraft Mods).
-
Ich glaube visuelle "Programmierumgebungen" sind oft gut wenn man mit Baumstrukturen arbeitet. Audio-Effekte/Synthesizer kann man schön über diverse Filter/Bausteine zusammenklicken. Ich hab sowas auch schonmal für Shader gesehen (nicht in Spielen sondern in 3D Programmen ala Max/Maya). Keine Ahnung ob das aktuell "üblich" ist oder eher eine kurzlebige Randerscheinung war.
Allgemein denke ich mir: wenn's recht "special purpose" ist, und wenn man eher mit baumartigen Strukturen/Data-Flows zu tun hat, dann ist grafisch zusammenklicken schon nett. Je mehr "general-purpose" und je komplexer es wird, sehe ich grafisch zusammenklicken aktuell aber eher als problematisch/Bremse.
-
@hustbaer sagte in Visuelle oder textuelle Programmiersprachen?:
Ich hab sowas auch schonmal für Shader gesehen...
Allgemein denke ich mir: wenn's recht "special purpose" ist, und wenn man eher mit baumartigen Strukturen/Data-Flows zu tun hat, dann ist grafisch zusammenklicken schon nettDie Erfahrung habe ich auch gemacht. Beim 'normalen' programmieren extrem nervig, bei Shadern oder Vfx-Graphen genial. Vorallem wenn jeder Knoten direkt auch sein Resultat anzeigt. Super hilfreich und keine Spielerei.
-
Bei dem Thema fällt mir wieder das "werkkzeug" von Farbrausch ein. Auch ein geniales Teil