When I talk about how I got into computer science with a kid or parent, I never fail to mention Scratch. The thing got me to where I am today. It doesn't teach you complexity, memory usage, or complex algorithms, but it lets you have fun long enough to trick you into understanding that a computer is only as smart as you make it.
I personally think visual languages help easily get people into the idea of programming without driving them away due to the idea that programming is "hard" visual styles look simpler, and feel simpler to the end user. However as someone who work purely in text based languages, I prefer not using visual languages unless it is to aid others in learning the idea of how to write code. And even then, I will often teach them a simple language like, Python, rather than Java, C++, C or C#.
To be fair it would be useful to use visual aids in programming more. A lot of very complex code gets quite simple with proper visual help (which might help untangle that mess too)
When I was in elementary school we did scratch programming and it made me never want to code. Fast forward 12 years and I'm junior in college studying computer science because I had to take a python course for my accounting major.
There actually is a visual programming language which you program in VR. It's called Logix and it's the native programming language in NeosVR. Just about anything can be written in it. It's mainly used for scripting avatars, environments, and tools. It is placed in 3d space, but many people use boards which the Logix nodes snap to in order to keep them organized
I feel like Blockly is extremely useful because it can also teach you how to write in said language. You place the blocks and it makes the code for you, you can read over the code it made to get an understanding of how the language is written, and once you're ready, you can eventually write in that code by yourself.
I'm an admin of a large programming server and it's really interesting to see the kinds of people who slag off VPLs. Beginners love them because they're easy, experts love them because we recognise that understanding how programming works is more important than learning a language, but those who are a couple steps off from beginner hate them because they're seen as things for babies. Every professional that I know who knows about Scratch (in particular), loves it because it's just such a good introduction to thinking like a programmer. I think VPLs haven't taken off because of the stigma that they're for babies, and people can be very vocal about their opinions and want others to think that they're bad and that it's not real programming. VPLs also have the issue of that they benefit from being simple and that means that they end up needing to be limited. You can't just add in every single thing a programming language can do because now you've just got something that is really cluttered because you've got what is essentially a programming language but boxes, lines, and they aren't necessarily in straight lines. They're more limited to very specific use cases and need to be designed around the function. I'm currently in the planning steps for a VPL of my own for a service I'm making and with what I need it to do I'm unable to build off the experience of others and I need to reinvent the wheel. There's so much more work that has to be done for a VPL than if you were to just make a library for developers to use, you're shifting the effort from the user onto yourself.
There is a really common visual language that should have at least gotten a honorable mention (or maybe a dishonorable mention since any program written in it becomes spaghetti code), LabVIEW. It’s is used to control lab equipment (such as oscilloscopes and lock-in amplifiers) and is designed to look similar to electronic circuit diagrams, yet it incorporates things like for and while loops.
IMO there a 2 Languages missing: LabVIEW (wich i use a lot for different purposes from showing Text on an old FLUKE Oscilloscope to Audio Measurement) and VVVV. VVVV is quite similiar to PureData but more usable and versatile as well as visually more appealing, atleast in my Opinion.
@@TheExileFox MultiSIM Blue is a SPICE Circuit simulation while LabVIEW is a graphical dataflow programming language. While their might be some overlaps there are definitely situations where you can use LabView but can't use MultiSIM Blue and vice versa. I can definitely say that many of my experamentalist colleagues (as phycisist) use LabVIEW and not MultiSIM Blue to control their lab equipment.
LabVIEW is great for gathering, processing, and visualizing information. If you're doing test, measurement, and/or control of things in the real world, use it by all means. The problem is that it's proprietary and a little cult-ish. I started out my career in LabVIEW, and would use it again for the right application, but I tend to work mostly in text-based languages now.
I got a visual programming concept called Triangle, where triangles are the building blocks of the program. In Triangle, the entire program is situated in a triangle where you can begin to program. Step 1: Design and Description of Blocks in Triangle Pretty much every block in Triangle splits the input triangle (the triangle where the block is) into 4 smaller triangles in some sort of Sierpinski Triangle style which are each used to do something (either convey what the block is or make space for a smaller input triangle) or do absolutely nothing and be considered part of the one that conveys what the block is. Return: The "return" block has a blue right arrow that is used to convey it on the top triangle, and a dark blue letter S that denotes a string in that input triangle on the centre triangle. It puts it onto the console. Mathematical Operations (Add, Subtract, Multiply, Divide, Exponentiate, Square Root, Cube Root, Logarithm, Natural Logarithm): The mathematical operation blocks have their respective symbol in blue that is used to convey the operation it represents on the top square, and their operands are represented by dark blue letters N that denote numbers on the left and right triangles (for single operand functions, their operands are at the centre triangles). They do their corresponding operations where the left triangles are the first operands and the right triangles are the second operands (for single operand functions, the centre triangles are their only operands). Concatenation: The "concatenation" block is similar to the multiple operand mathematical operation blocks, but the operation performed is concatenation and the operands are now strings. Repetition: The "repetition" block is similar to the multiple operation mathematical operation blocks, but the operation performed is repetition and the operands are now a program and a number. Condition: The "condition" block has a blue letter I to represent the block in the top triangle, the boolean is a dark blue letter B in the centre triangle. If the boolean is true, the left triangle (a dark blue letter T) is executed, and if the boolean is false, the right triangle (a dark blue letter F) is executed. Variable Declaration: The "variable declaration" block has a blue VD for Variable Declaration on the top triangle, the name is a string, a dark blue S and the value is a number, string or boolean, a dark blue P for Parameter in the right. Variable Usage: The "variable usage" block has a blue VU for Variable Usage on the top triangle, and a dark blue S for String in the centre. Step 2: Moving and Scrolling When you put too many blocks, it may be time to zoom in to the program. So how do you do that in Triangle? Moving: You can drag with the mouse, or use the arrow keys on the keyboard to move across your program. Zooming: You can use the scroll wheel, or use the O and P keys to zoom in and out, respectively. Step 3: Libraries and Servers Time to look outside the program. Here are how libraries and servers in Triangle work. Creation: To create a library, you have to create a superprogram that is a Triangle program specifically meant to create libraries. Uploading: You can double click the program to upload the program onto any library you are allowed to upload projects to. As for servers, your projects will be given an ID after uploading. Servers have ID's that may appear on your project's ID. Style: You may see a hexagonal pattern when in the library/server's page. Accessing: You can see project ID's while hovering over them. If you see the ID of the project you want to access, click on it and you can run the program and view it's console. Reporting: You can report bugs or violations of TOS to the creator of either the project or the Triangle website, but neither I, nor the creator of the Triangle website, can guarantee a fix to bugs in or deletion of any project. Now for the full reveal: the "Hello World" program written in such a programming language, converted to plain text: T: -> C: S ; "Hello, World!" T = Top L = Left C = Centre R = Right
I absolutely love visual coding. I make worlds/game for VRChat, and they have Udon which is a block based language with “noodles” to connect the blocks. Udon being visual is the only reason I’m able to actually make games and stuff, because I find it much harder to understand text coding than blocks connected with lines
For creating an FSM (Finite State Machine) for a game, it's incredibly helpful to have visuals. For example setting up animation states visually, and how they interact/transition to one another works wonders visually. Despite how helpful visuals can be, most programmers including myself prefer text based. It's just far more efficient, and straight forward EDIT: Should mention that I meant to say Visuals can be used alongside Text
Nice video! I've been researching the history of VPLs for a few years now and here's some interesting info I've found: * The brother of Ivan Sutherland, William Sutherland, also developed a system very similar to Sketchpad, but specifically for programming with flowcharts, in 1966. This was on the same computer as Sketchpad, the MIT TX-2. There's a demo video of it on RUclips called "Programming with On-Line Graphics". * Scratch was actually inspired by another block-based programming language, LogoBlocks, developed at MIT in 1995 to control Lego robots, which were eventually sold as the first Lego robotics kit, the RCX, in 1998. The programming language you use to control the RCX is very similar to LogoBlocks!
personally I prefer to use a 4 dimensional programming language. It introduces the dimension of time where in you simply take a nap and wait for someone else to write the code you need. LOL
Blueprint from ue5 it has even complex systems like structs classes events and a interface to cpp. If you use those two in conjunction you have the possibility to write really logical code but it’s hard to getting into both at the same level
I personally think visual programming languages are very helpful depending on what you're trying to do, and I think going forward we're going to see more people who first learned via visual languages, or even crazier, people who exclusively use visual languages. I know the developer of a game called Project Feline said he's doing all the coding in Unreal Engine's visual code editor tool and it's gotten a decent ways there in terms of development
Am I the only one who thinks visual programming is harder than text based languages? There's just so much clutter and so much stuff being thrown into your face at the same time unlike text based languages
I have plenty of experience using Scratch. Actually, I recently made my GMTK-GameJam game in Scratch. It went fairly well, I got a place a bit behind 2300, which I find to be perfectly acceptable. You highlighted the two dimensional nature of Visual Languages, which is one of the reasons I procrastinate learning to make games in an actual engine and not Scratch of all places, though I must admit that it has its upsides programming in Scratch: You can make a functioning prototype in a few minutes. Sure, when you then try to flesh your idea out, you will quickly come to the point where it gets harder and everything requires ages to do, because well … you need to do everything from scratch. This is the only thing I am really missing in Scratch: The tools of a game engine. Scratch isn’t a game engine currently, but I hope that someday, it can be used as one.
I was thinking ladder logic would get an honourable mention at least. (Used for programming PLC's. At least that is what i have used it for) it is designed to be read like a circut diagram and therefore quick to learn.
There's literally a "Gallery of Programmer Interfaces" slide deck by Jonathan Edwards worth checking out because of all the wacky programming opportunities we missed out on!
You should have had "ladder logic" as an honorable mention because it is actually widely used in factories, processing plants and etc. It is an industry-standard visual programming language for "PLC" devices. (specialized computers, in a nutshell)
@@TevelDrinkwater Sure, but that one is closer to Raptor which was already mentioned. FBD is nice for small things but for larger, I personally prefer ladder. On Siemens, the FBD layout uses a ton of vertical space and there is nothing you can do about it.
I worked with Greenfoot in school and i must say: It was really fun! The Java inclusion was quite intuitive. It crashed like every two minutes, but like every good computer science student, spamming "Ctrl-S" is my best friend.
I've never been a big fan of VPLs but with the way AI and the industry is going, I feel that VPLs that can compile or be edited/structured with Programming Languages would be very interesting and productive, I feel that it would secure more jobs and keep the industry "stable"
honestly a sort of 3d programming language I could see maybe working, specifically an APL style one because you could have wayyy more types of combinators with inputs coming in from more than just the left or right
Imagine a 1600s peasant child walks in on you expanding a blue hologram in vr with cyber gloves and they ask what you're doing and you're like "I'm committing some i32 vector refactorings to git" they'd think you're a wizard
Companies have been trying to push various VPLs for one reason or another for a long time. It works for many things that are premade for the languages to work with, but as soon as you might want to do something very specific with your code, you'll have to type it out the old fashion way anyway. For real world use, even student developers can type out code way faster than they could click and drag things around. For large projects, it just gets tedious.
Someone made a sort-of VPL inside roblox, though it’s entirely different from any programming language, and instead is 3D, where you can wire things like AND blocks, Randomizers, etc. You can make simple things, ranging from a keypad door to an entire PC. I even think you can run javascript in there. Printing ‘Hello World’ is either figuring out how the hell to make a message with text tiles, or just placing a sign saying ‘Hello World’. The game is called Build Logic.
Personally, as someone who uses scratch from time to time, VPLs are a very useful tool, as without them I would never be able to program anything. Programming isn't a big interest for me, but being able to experiment and have fun with it wouldn't be possible without scratch, so shoutout to VPLs
an honorable mention is Turtle which has also been shown in this video; which is used to make the character in Scratch move around. If you see anything that says North, South, East, West that is an implementation of Turtle.
The game Plasma inspired me to go down the visual programming language rabbit hole I'm in. It's kinda like Blender's nodes where you connect things with lines, and I really liked how separate parts of programs could be understood to be distinct because of the visual separation.
I think 2d and 3d languages will be more popular when the hardware works that way too. Right now, no matter your interface, everything is linear text at the end of the day, so all visual languages are just abstraction away from the function of the physical hardware.
I enjoy and understand text based programming, but honestly as a programmer with dyslexia visual tools come in very handy sometimes. I also find visual tools helpful for prototyping and grasping the logic of my program before implementing the code. It helps me figure out and catch logical errors earlier in the process.
I often hear the use of visual programming being helpful for artists. I assume it's mainly because of how intuitive it is to use and doesn't require you to learn something completely new.
I had no idea Kodu Game Lab existed, but its coding interface reminds me a TON of Project Spark from back in the day. I remember using that a lot all that time ago..
I am not sure, but I think Labview might be one of most advanced visual programming language. Also there is a lot of visual programming languages for making games (and yeah, it is specific use case, but creating music as mentioned in video is too) I think other reasons that visual programming languages might be not as widely used as text based, is because these are sometimes not free or not open source. And I think that when it comes to programming language, that is very important. (For example labview have free version aviable for everyone, but it is a little limited (but limited only in more advanced stuff like ready to use drivers for specific devices as far as I know) and if I am not wrong: restricted to noncommercial work (and labview is not open source)).
You missed Vee which is similar to LabView mentioned in a lot of these comments. Also, I'd add Ladder Logic to the list, which is still commonly used to program PLCs. It's a completely different paradigm to everything else shown.
There's a shape based coding tool that I can convert to normal programming language?! This is the best day of my life, maybe I can actually make the things I want to!!!! Thank you!!!!!!!
just imagine a vr physics game that has these 3d code blocks that you connect together and code your objects, say i had a motor and i wanted it so when i push a button it spins at 500 rpm and when i let go it goes to 0 rpm just imagine how fun it would be
Hah. Thank you for tackling this in another great video! One correction on Pure Data: Miller Puckette first wrote Max, then moved on to Pure Data. Then later a version of Max integrated parts of Pd to form Max/MSP (which takes the name from: Miller Smith Puckette - MSP). It's still developing as a language and there are many extensions (called "externals") also for video, 3D, networking, all kinds of human input methods, microcontroller i/o, alternative GUI projects, and even ways to run Pd patches inside a DAW or transpile them into C/C++.
Fun Fact: Visual programming is widely used in industrial automation. PLCs are often programmed in FBS (Function Block Diagram), relatively comparable to Raptor. Most of the time, even for bigger systems, you mainly focus on if-then statements. So using languages, even relatively easy languages like python, would be a bit overkill. I for myself use IL (Instruction List) most of the time for non-production projects and even that is a walk in the park compared to programming like you would think of. Here are another 5 cents of mine: If you're thinking about learning to code and/or electronics, but you have absolutely no base knowledge, you could try to start with Scratch to learn the base logic. Maybe even try to learn a bit about Redstone in Minecraft since it gives you basic knowledge about Logic. Even if it's more like an electronic circuit, the logic remains similar to programming. After all, you're trying to tell electrons to flow in a specific direction either way. Then I'd highly reccomend getting your hands on a PLC. A basic one, like the Siemens LOGO! costs around 215€. There you can dive deeper into the logic behind your code, respectively, your logic-blocks. After that, python seems like a good and easy start. I'm currently in the learning stage and making huge progress. Cheers!
I'd have to agree with the Arduino for hobbyists. Maybe Siemens is better, but in my experience most PLC (and DCS) manufacturers have proprietary programming environments. Configuration on older equipment can be an adventure.
Fun fact: Scratch is built off blockly. Other fun fact: By using something like turbowarp packager you can turn a scratch project into a an html file which you can make into apps for pc, Android, IOs(maybe idk about IOs), and Linux. For example in Android studio you can display an html file.
If those devs of the 3d one are watching, you can represent pointers and functions with portals, both reveal data a distance away from the pointer/function/portal so the understanding should be instinctual. For the input/output of functions the user just needs to have something like a conveyor belt for the data, for example the data can go in on the left side of one side of a portal and come out on the right side of the same side after looping through the function's internals.
in my computer programming class, we started out using Kodu (the main focus of the class is Java). Because I had already been coding in Scratch for a few years, it was a bit boring for me personally, but i can see how it could be very useful to someone who is completely new to programming.
I used to spend hours messing around with the Lego Mindstorms program creator (which is kinda like a specialized version of scratch) honestly I think I was pretty good for like a 14 year old. Unfortunately it never went further than that, and I haven’t touched programming since
that weird you didn't talk about the big 2 simulink and labview there are industry standard and real functional in many usine and many engineering university studied
05:34 *IMO* loops should be: __ | | _O __| |_ make a selection: then loop: O Fits better with the selection diagram. I get that this isn't the case in Raptor tho!
I'm currently writing my own visual programming language. Actually, I've been working on it for virtually 20 years. Essentially, it's node-based, but does so in a consistent and extremely expandable way that doesn't result in the node-spew of other systems. Case in point, all of the offerings presented in this video are deceptively simple in that "Hello World" only requires no more than 3 constructs/objects/nodes. However, try to do anything more complex than that; you'll quickly see why visual programming has failed to gain traction. My language combats this problem. In fact, it's a good deal more than just a programming language: it's fundamentally an operating system, one designed specifically for visual/creative people like me. I'm currently using it to develop CAD tools (I've been a CG software developer for 3 decades) so I can export models to STL for 3D printing. I'll send you a private note when we're ready to show the first version. I'll hook you up with a sneak peek 😉 SUBSCRIBED
i want to make a prototype of that 3d language. ctrl(or another similar key) whilst moving mouse to rotate the cube, and the entire program is inside it. mouse to zoom in and out (edit: middle click to pan maybe?). i'll keep this on my mind :D edit2: okay so i was thinking on how functions would work and maybe it could be like a cube that you can expand (edit3: like youre just in the program and if you want to look at a function you could "enter" the function to reveal the code inside, from the main level the cube would just be a thing with inputs and outputs and a name, maybe a hoverable description?) ?? like it opens up to a whole different like level type deal. I am totally gonna make this edit4: maybe i should make a pico8 prototype in 2d just to see how cool it would be, maybe id use something else other than p8 because itd be a bit restricting for something like this even in 2d
I used Kodular a couple of times to create apps that I use now almost every day. I'm a musician and I know nothing about programming, but it was not only useful, but also (mostly) fun experience. So, from the point of view of non-programmer VPLs can be quite useful!
Another one that didn't make the list is visual basic where you can put things on a interface and put code Into them so part visual, part text based. It's quite easy actually
I had changed a variable name in my code, and before it was a single letter (x, as in x coordinate), I spent too long trying to actually find where the last variable was used.. so I gave up and decided just to run the code and find it through the stacktrace (: Found it.
When I talk about how I got into computer science with a kid or parent, I never fail to mention Scratch. The thing got me to where I am today. It doesn't teach you complexity, memory usage, or complex algorithms, but it lets you have fun long enough to trick you into understanding that a computer is only as smart as you make it.
I got into programming as a kid with c#
Same
I got into programming by learning Python and, um, QBASIC. Look up that last one yourself.
1:40 Kodu Game Lab (1)
3:13 Scratch (2)
4:01 Blockly (3)
5:01 Raptor (4)
5:57 Greenfoot (5)
7:08 Pure Data (6)
(7:20 Max/MSP)
8:51 Node Red (7)
10:18 Snap, Pencilcode, Kitten Editor
10:24 Pygmalion (8)
11:04 Sketchpad (9)
11:54 Cube (10)
He didn't use gml visual!
He didn't mention the sequel to kodu game lab, Microsoft spark. L video
what about the one at 0:25?
@@Shintarobrl nobody responded 😔
@@Gaguiceiro He also missed DRAKON but that is rocket science anyway
I personally think visual languages help easily get people into the idea of programming without driving them away due to the idea that programming is "hard" visual styles look simpler, and feel simpler to the end user.
However as someone who work purely in text based languages, I prefer not using visual languages unless it is to aid others in learning the idea of how to write code. And even then, I will often teach them a simple language like, Python, rather than Java, C++, C or C#.
good take
To be fair it would be useful to use visual aids in programming more. A lot of very complex code gets quite simple with proper visual help (which might help untangle that mess too)
scheme better
@@felixdaniel9472milkmariobros yes
When I was in elementary school we did scratch programming and it made me never want to code.
Fast forward 12 years and I'm junior in college studying computer science because I had to take a python course for my accounting major.
There actually is a visual programming language which you program in VR. It's called Logix and it's the native programming language in NeosVR. Just about anything can be written in it. It's mainly used for scripting avatars, environments, and tools. It is placed in 3d space, but many people use boards which the Logix nodes snap to in order to keep them organized
I just looked it up & that's so cool! I wish I knew of it, I would've definitely added it to the list. Thanks for sharing
There’s also circuits in recroom
@@Ardens.you should make a video for it. I’d love to see a whole demonstration from you!
@@GhostlessYT also, udon graph!
Soo blender node?
I feel like Blockly is extremely useful because it can also teach you how to write in said language. You place the blocks and it makes the code for you, you can read over the code it made to get an understanding of how the language is written, and once you're ready, you can eventually write in that code by yourself.
That’s why I started with scratch
It’s so simple that I could understand from start
Man the programming in VR looks BANGER
That idk, but imagine doing cad on it with the help of an ai, i'll live to see that.
As a programmer and a vr player I hope that will never happen xD
@@goosybs lol
I'm an admin of a large programming server and it's really interesting to see the kinds of people who slag off VPLs. Beginners love them because they're easy, experts love them because we recognise that understanding how programming works is more important than learning a language, but those who are a couple steps off from beginner hate them because they're seen as things for babies. Every professional that I know who knows about Scratch (in particular), loves it because it's just such a good introduction to thinking like a programmer.
I think VPLs haven't taken off because of the stigma that they're for babies, and people can be very vocal about their opinions and want others to think that they're bad and that it's not real programming.
VPLs also have the issue of that they benefit from being simple and that means that they end up needing to be limited. You can't just add in every single thing a programming language can do because now you've just got something that is really cluttered because you've got what is essentially a programming language but boxes, lines, and they aren't necessarily in straight lines. They're more limited to very specific use cases and need to be designed around the function.
I'm currently in the planning steps for a VPL of my own for a service I'm making and with what I need it to do I'm unable to build off the experience of others and I need to reinvent the wheel. There's so much more work that has to be done for a VPL than if you were to just make a library for developers to use, you're shifting the effort from the user onto yourself.
There is a really common visual language that should have at least gotten a honorable mention (or maybe a dishonorable mention since any program written in it becomes spaghetti code), LabVIEW. It’s is used to control lab equipment (such as oscilloscopes and lock-in amplifiers) and is designed to look similar to electronic circuit diagrams, yet it incorporates things like for and while loops.
IMO there a 2 Languages missing: LabVIEW (wich i use a lot for different purposes from showing Text on an old FLUKE Oscilloscope to Audio Measurement) and VVVV. VVVV is quite similiar to PureData but more usable and versatile as well as visually more appealing, atleast in my Opinion.
LabVIEW was bigger before Multisim Blue arrived.
"Ladder Logic" on the other hand is still staying strong.
@@TheExileFox MultiSIM Blue is a SPICE Circuit simulation while LabVIEW is a graphical dataflow programming language. While their might be some overlaps there are definitely situations where you can use LabView but can't use MultiSIM Blue and vice versa. I can definitely say that many of my experamentalist colleagues (as phycisist) use LabVIEW and not MultiSIM Blue to control their lab equipment.
LabVIEW is great for gathering, processing, and visualizing information. If you're doing test, measurement, and/or control of things in the real world, use it by all means. The problem is that it's proprietary and a little cult-ish. I started out my career in LabVIEW, and would use it again for the right application, but I tend to work mostly in text-based languages now.
I got a visual programming concept called Triangle, where triangles are the building blocks of the program. In Triangle, the entire program is situated in a triangle where you can begin to program.
Step 1: Design and Description of Blocks in Triangle
Pretty much every block in Triangle splits the input triangle (the triangle where the block is) into 4 smaller triangles in some sort of Sierpinski Triangle style which are each used to do something (either convey what the block is or make space for a smaller input triangle) or do absolutely nothing and be considered part of the one that conveys what the block is.
Return: The "return" block has a blue right arrow that is used to convey it on the top triangle, and a dark blue letter S that denotes a string in that input triangle on the centre triangle. It puts it onto the console.
Mathematical Operations (Add, Subtract, Multiply, Divide, Exponentiate, Square Root, Cube Root, Logarithm, Natural Logarithm): The mathematical operation blocks have their respective symbol in blue that is used to convey the operation it represents on the top square, and their operands are represented by dark blue letters N that denote numbers on the left and right triangles (for single operand functions, their operands are at the centre triangles). They do their corresponding operations where the left triangles are the first operands and the right triangles are the second operands (for single operand functions, the centre triangles are their only operands).
Concatenation: The "concatenation" block is similar to the multiple operand mathematical operation blocks, but the operation performed is concatenation and the operands are now strings.
Repetition: The "repetition" block is similar to the multiple operation mathematical operation blocks, but the operation performed is repetition and the operands are now a program and a number.
Condition: The "condition" block has a blue letter I to represent the block in the top triangle, the boolean is a dark blue letter B in the centre triangle. If the boolean is true, the left triangle (a dark blue letter T) is executed, and if the boolean is false, the right triangle (a dark blue letter F) is executed.
Variable Declaration: The "variable declaration" block has a blue VD for Variable Declaration on the top triangle, the name is a string, a dark blue S and the value is a number, string or boolean, a dark blue P for Parameter in the right.
Variable Usage: The "variable usage" block has a blue VU for Variable Usage on the top triangle, and a dark blue S for String in the centre.
Step 2: Moving and Scrolling
When you put too many blocks, it may be time to zoom in to the program. So how do you do that in Triangle?
Moving: You can drag with the mouse, or use the arrow keys on the keyboard to move across your program.
Zooming: You can use the scroll wheel, or use the O and P keys to zoom in and out, respectively.
Step 3: Libraries and Servers
Time to look outside the program. Here are how libraries and servers in Triangle work.
Creation: To create a library, you have to create a superprogram that is a Triangle program specifically meant to create libraries.
Uploading: You can double click the program to upload the program onto any library you are allowed to upload projects to. As for servers, your projects will be given an ID after uploading. Servers have ID's that may appear on your project's ID.
Style: You may see a hexagonal pattern when in the library/server's page.
Accessing: You can see project ID's while hovering over them. If you see the ID of the project you want to access, click on it and you can run the program and view it's console.
Reporting: You can report bugs or violations of TOS to the creator of either the project or the Triangle website, but neither I, nor the creator of the Triangle website, can guarantee a fix to bugs in or deletion of any project.
Now for the full reveal: the "Hello World" program written in such a programming language, converted to plain text:
T: ->
C: S ; "Hello, World!"
T = Top
L = Left
C = Centre
R = Right
Nice job dude =)
I absolutely love visual coding. I make worlds/game for VRChat, and they have Udon which is a block based language with “noodles” to connect the blocks. Udon being visual is the only reason I’m able to actually make games and stuff, because I find it much harder to understand text coding than blocks connected with lines
12:50 Theres also the Logix in NeosVR! The nodes are 2D, but are objects in 3D space.
Also, do the circuits in LBP count?
Hi
I've tried node red in the past and honestly i loved it.
Glad it got on this list.
In 2060 we will have sphere, literally just tony starks programing language
0:47 tpot moment
For creating an FSM (Finite State Machine) for a game, it's incredibly helpful to have visuals. For example setting up animation states visually, and how they interact/transition to one another works wonders visually.
Despite how helpful visuals can be, most programmers including myself prefer text based. It's just far more efficient, and straight forward
EDIT:
Should mention that I meant to say Visuals can be used alongside Text
What’s up fellow coders
Nothin much what abt u
How you doin' fellow coders
Man I love C++
Ah ya know. Just the norm. Like making a c program that draws a penis and crashes ur pc
@@guy- pointers
Great video! I haven't heard of most of these languages.
next we're going to see a 4d visual programming language called Hypercube
not gonna lie, that name is fire 🔥
That would be dope
@@Ardens. fr
And then a 5d one
Nice video! I've been researching the history of VPLs for a few years now and here's some interesting info I've found:
* The brother of Ivan Sutherland, William Sutherland, also developed a system very similar to Sketchpad, but specifically for programming with flowcharts, in 1966. This was on the same computer as Sketchpad, the MIT TX-2. There's a demo video of it on RUclips called "Programming with On-Line Graphics".
* Scratch was actually inspired by another block-based programming language, LogoBlocks, developed at MIT in 1995 to control Lego robots, which were eventually sold as the first Lego robotics kit, the RCX, in 1998. The programming language you use to control the RCX is very similar to LogoBlocks!
personally I prefer to use a 4 dimensional programming language. It introduces the dimension of time where in you simply take a nap and wait for someone else to write the code you need. LOL
Great you figured out AI
I used Kodu Game Lab, Scratch and Blockly when I learned to code :) Nice video, this is really informative and interesting! :)
Blueprint from ue5 it has even complex systems like structs classes events and a interface to cpp. If you use those two in conjunction you have the possibility to write really logical code but it’s hard to getting into both at the same level
I personally think visual programming languages are very helpful depending on what you're trying to do, and I think going forward we're going to see more people who first learned via visual languages, or even crazier, people who exclusively use visual languages. I know the developer of a game called Project Feline said he's doing all the coding in Unreal Engine's visual code editor tool and it's gotten a decent ways there in terms of development
Am I the only one who thinks visual programming is harder than text based languages? There's just so much clutter and so much stuff being thrown into your face at the same time unlike text based languages
No, cos if you were then we'd actually be using them on an industrial scale. And we're not (yet). You're good
I find it harder too.
I have plenty of experience using Scratch. Actually, I recently made my GMTK-GameJam game in Scratch. It went fairly well, I got a place a bit behind 2300, which I find to be perfectly acceptable.
You highlighted the two dimensional nature of Visual Languages, which is one of the reasons I procrastinate learning to make games in an actual engine and not Scratch of all places, though I must admit that it has its upsides programming in Scratch: You can make a functioning prototype in a few minutes.
Sure, when you then try to flesh your idea out, you will quickly come to the point where it gets harder and everything requires ages to do, because well … you need to do everything from scratch.
This is the only thing I am really missing in Scratch: The tools of a game engine.
Scratch isn’t a game engine currently, but I hope that someday, it can be used as one.
I was thinking ladder logic would get an honourable mention at least. (Used for programming PLC's. At least that is what i have used it for) it is designed to be read like a circut diagram and therefore quick to learn.
There's literally a "Gallery of Programmer Interfaces" slide deck by Jonathan Edwards worth checking out because of all the wacky programming opportunities we missed out on!
You should have had "ladder logic" as an honorable mention because it is actually widely used in factories, processing plants and etc. It is an industry-standard visual programming language for "PLC" devices. (specialized computers, in a nutshell)
I was thinking of Function Block Diagrams, as used in DCS systems.
@@TevelDrinkwater Sure, but that one is closer to Raptor which was already mentioned. FBD is nice for small things but for larger, I personally prefer ladder. On Siemens, the FBD layout uses a ton of vertical space and there is nothing you can do about it.
I worked with Greenfoot in school and i must say: It was really fun!
The Java inclusion was quite intuitive. It crashed like every two minutes, but like every good computer science student, spamming "Ctrl-S" is my best friend.
I've never been a big fan of VPLs but with the way AI and the industry is going, I feel that VPLs that can compile or be edited/structured with Programming Languages would be very interesting and productive, I feel that it would secure more jobs and keep the industry "stable"
honestly a sort of 3d programming language I could see maybe working, specifically an APL style one because you could have wayyy more types of combinators with inputs coming in from more than just the left or right
That video is pure gold😮
amazing and very informative video! as always
Imagine a 1600s peasant child walks in on you expanding a blue hologram in vr with cyber gloves and they ask what you're doing and you're like "I'm committing some i32 vector refactorings to git" they'd think you're a wizard
Companies have been trying to push various VPLs for one reason or another for a long time. It works for many things that are premade for the languages to work with, but as soon as you might want to do something very specific with your code, you'll have to type it out the old fashion way anyway. For real world use, even student developers can type out code way faster than they could click and drag things around. For large projects, it just gets tedious.
When he said "it was just a joke" the advertisement of Nestle Pure Life played 😂
Someone made a sort-of VPL inside roblox, though it’s entirely different from any programming language, and instead is 3D, where you can wire things like AND blocks, Randomizers, etc. You can make simple things, ranging from a keypad door to an entire PC. I even think you can run javascript in there. Printing ‘Hello World’ is either figuring out how the hell to make a message with text tiles, or just placing a sign saying ‘Hello World’. The game is called Build Logic.
What?? I've never seen it roblox studio
Bro, use that cube program in AR and let everyone see it. Now, u're Tony Stark
For some reason my school teaches in scratch through whole primary school.
Personally, as someone who uses scratch from time to time, VPLs are a very useful tool, as without them I would never be able to program anything. Programming isn't a big interest for me, but being able to experiment and have fun with it wouldn't be possible without scratch, so shoutout to VPLs
an honorable mention is Turtle which has also been shown in this video; which is used to make the character in Scratch move around.
If you see anything that says North, South, East, West that is an implementation of Turtle.
The game Plasma inspired me to go down the visual programming language rabbit hole I'm in. It's kinda like Blender's nodes where you connect things with lines, and I really liked how separate parts of programs could be understood to be distinct because of the visual separation.
he forgot unreal blueprints
(get a life)
@@Clenner0((agreed))
@@gec101(((I did not get it)))
@@Clenner0
Have one yourself!
....unity bolts?
What was the very first one you showcased? Like the one in intro at 0:23
I think 2d and 3d languages will be more popular when the hardware works that way too. Right now, no matter your interface, everything is linear text at the end of the day, so all visual languages are just abstraction away from the function of the physical hardware.
Very Informative Video 😊
I enjoy and understand text based programming, but honestly as a programmer with dyslexia visual tools come in very handy sometimes. I also find visual tools helpful for prototyping and grasping the logic of my program before implementing the code. It helps me figure out and catch logical errors earlier in the process.
Thank you so much for talking about Kodu, i used it a long time ago but totally forgot its name
13:34 thats just rec room, its like scratch but 3d and on VR, you code using blocks in a 3d space and people use it to make crazy things
I often hear the use of visual programming being helpful for artists. I assume it's mainly because of how intuitive it is to use and doesn't require you to learn something completely new.
I always thought visual programming was too tedious for logic programming but its amazing for making shaders
Con artists?
We can't decide how textual languages should look like.
Instant subscribe for consistency with the title
0:47 IS THAT AN TPOT REFERENCE!?
Can i have the link for Cube Visual Programming language? Which programming language can apply in the physical world?
0:46 omg that's 2 from tpot
Finally been waiting so long for a new vid
I had no idea Kodu Game Lab existed, but its coding interface reminds me a TON of Project Spark from back in the day. I remember using that a lot all that time ago..
That Salem bit at the beginning captures how it feels to try and find wth the error with my code is sometimes 😂
Wow you unlocked a memory I didn't know I had with kodu game lab
I am not sure, but I think Labview might be one of most advanced visual programming language.
Also there is a lot of visual programming languages for making games (and yeah, it is specific use case, but creating music as mentioned in video is too)
I think other reasons that visual programming languages might be not as widely used as text based, is because these are sometimes not free or not open source. And I think that when it comes to programming language, that is very important. (For example labview have free version aviable for everyone, but it is a little limited (but limited only in more advanced stuff like ready to use drivers for specific devices as far as I know) and if I am not wrong: restricted to noncommercial work (and labview is not open source)).
Was going to ask where was LabView and Simulink (VPL extension for matlab)? (I could mention HPVee, but I think that is mostly abandonware now.)
Nevermind havin stuff that runs in other hardware.
1:00 bro once i almost ran a code first try but i accidentally added brackets somewhere they dont belong and got a syntax error
Ayy big ups for shouting out my favorite, max msp
Now you should try DRAKON - visual programming language which is used to launch rockets.
OMG! just thought you didn't posted in a while & just wanted to check that you are alive or not... Happy to trust my guts 😅
PLC ladder programma is another example of a visual programming language that is used by many software engineers in industrial automation
2:30 We Woman all know that man after 16 are hard or even impossible to train, cause their base programming has no feature to add extra code.
The problem might be that you don't have the permissions, try Run as administrator or check for updates
I really thought you were going to mix some sick beats to make your program *say* "Hello World" in Pure data lol.
3:44 " write code from SCRATCH "
me : You son of a gun
You missed Vee which is similar to LabView mentioned in a lot of these comments.
Also, I'd add Ladder Logic to the list, which is still commonly used to program PLCs. It's a completely different paradigm to everything else shown.
Wife: Are you learning Kung Fu?
Me: No Babe, I'm doing hello world in "Cube".
There's a shape based coding tool that I can convert to normal programming language?! This is the best day of my life, maybe I can actually make the things I want to!!!! Thank you!!!!!!!
just imagine a vr physics game that has these 3d code blocks that you connect together and code your objects, say i had a motor and i wanted it so when i push a button it spins at 500 rpm and when i let go it goes to 0 rpm just imagine how fun it would be
Hah. Thank you for tackling this in another great video!
One correction on Pure Data: Miller Puckette first wrote Max, then moved on to Pure Data. Then later a version of Max integrated parts of Pd to form Max/MSP (which takes the name from: Miller Smith Puckette - MSP).
It's still developing as a language and there are many extensions (called "externals") also for video, 3D, networking, all kinds of human input methods, microcontroller i/o, alternative GUI projects, and even ways to run Pd patches inside a DAW or transpile them into C/C++.
Griffpatch ain't happy after this
Fun Fact:
Visual programming is widely used in industrial automation. PLCs are often programmed in FBS (Function Block Diagram), relatively comparable to Raptor.
Most of the time, even for bigger systems, you mainly focus on if-then statements. So using languages, even relatively easy languages like python, would be a bit overkill.
I for myself use IL (Instruction List) most of the time for non-production projects and even that is a walk in the park compared to programming like you would think of.
Here are another 5 cents of mine:
If you're thinking about learning to code and/or electronics, but you have absolutely no base knowledge, you could try to start with Scratch to learn the base logic. Maybe even try to learn a bit about Redstone in Minecraft since it gives you basic knowledge about Logic. Even if it's more like an electronic circuit, the logic remains similar to programming. After all, you're trying to tell electrons to flow in a specific direction either way.
Then I'd highly reccomend getting your hands on a PLC. A basic one, like the Siemens LOGO! costs around 215€. There you can dive deeper into the logic behind your code, respectively, your logic-blocks.
After that, python seems like a good and easy start. I'm currently in the learning stage and making huge progress.
Cheers!
There is simulators for logo, no need to buy the hardware. Heck, today you can buy an arduino and get help from the ai to learn.
I'd have to agree with the Arduino for hobbyists. Maybe Siemens is better, but in my experience most PLC (and DCS) manufacturers have proprietary programming environments. Configuration on older equipment can be an adventure.
Fun fact: Scratch is built off blockly. Other fun fact: By using something like turbowarp packager you can turn a scratch project into a an html file which you can make into apps for pc, Android, IOs(maybe idk about IOs), and Linux. For example in Android studio you can display an html file.
If those devs of the 3d one are watching, you can represent pointers and functions with portals, both reveal data a distance away from the pointer/function/portal so the understanding should be instinctual. For the input/output of functions the user just needs to have something like a conveyor belt for the data, for example the data can go in on the left side of one side of a portal and come out on the right side of the same side after looping through the function's internals.
That's goddamn slow.
@@fss1704 it's a 3d representation, of course it's slower than proper code like C
Cube programming reminds me of those insane people building a computer in minecraft
I wonder if there is a vpl that allows you to build your own blocks and write into them how they should write the code including variable
in my computer programming class, we started out using Kodu (the main focus of the class is Java). Because I had already been coding in Scratch for a few years, it was a bit boring for me personally, but i can see how it could be very useful to someone who is completely new to programming.
0:47 Hey Two!
When you bake a cake
Decorate and take it to
The players who are safe
That's how you know it's Cake at Stake!
Cake at Stake!
THE POWER OF TWOOOOOOOO
Omg i remember making the most complicating pieces of code in scratch that no one could understand and now i have completely forgotten how to use it 😂
4:30 wow i didint know google made a way to make text code from scratch blocks
I used to spend hours messing around with the Lego Mindstorms program creator (which is kinda like a specialized version of scratch) honestly I think I was pretty good for like a 14 year old. Unfortunately it never went further than that, and I haven’t touched programming since
"and two" WHEN YA BAKE A CA-
1:42 gosh the last time I heard of and used it was primary school, I didn’t realise it was still a thing
that weird you didn't talk about the big 2 simulink and labview there are industry standard and real functional in many usine and many engineering university studied
05:34 *IMO* loops should be:
__
| |
_O __|
|_
make a selection:
then loop: O
Fits better with the selection diagram. I get that this isn't the case in Raptor tho!
what about the one at 0:25? i find it the most interesting of all of them, anyone have the name, please?
4:44 I remember watching this guy before but I forgot his youtube channel's name
7:41 osc??? reference???
I'm currently writing my own visual programming language. Actually, I've been working on it for virtually 20 years. Essentially, it's node-based, but does so in a consistent and extremely expandable way that doesn't result in the node-spew of other systems.
Case in point, all of the offerings presented in this video are deceptively simple in that "Hello World" only requires no more than 3 constructs/objects/nodes. However, try to do anything more complex than that; you'll quickly see why visual programming has failed to gain traction. My language combats this problem. In fact, it's a good deal more than just a programming language: it's fundamentally an operating system, one designed specifically for visual/creative people like me. I'm currently using it to develop CAD tools (I've been a CG software developer for 3 decades) so I can export models to STL for 3D printing.
I'll send you a private note when we're ready to show the first version. I'll hook you up with a sneak peek 😉
SUBSCRIBED
i want to make a prototype of that 3d language. ctrl(or another similar key) whilst moving mouse to rotate the cube, and the entire program is inside it. mouse to zoom in and out (edit: middle click to pan maybe?). i'll keep this on my mind :D
edit2: okay so i was thinking on how functions would work and maybe it could be like a cube that you can expand (edit3: like youre just in the program and if you want to look at a function you could "enter" the function to reveal the code inside, from the main level the cube would just be a thing with inputs and outputs and a name, maybe a hoverable description?) ?? like it opens up to a whole different like level type deal. I am totally gonna make this
edit4: maybe i should make a pico8 prototype in 2d just to see how cool it would be, maybe id use something else other than p8 because itd be a bit restricting for something like this even in 2d
but first i should learn either opengl+c++ or unity more thoroughly if i were to ever take it on.
A blend of both is the real thing! MPS from Jetbrains allow to design and implement such languages!
oh god, the nostalgia rushing down my veins in Kodu, i used to play that all the time in CS class
thanks to the 1d 2d 3d idea
that's a good point to tackle
I used Kodular a couple of times to create apps that I use now almost every day. I'm a musician and I know nothing about programming, but it was not only useful, but also (mostly) fun experience. So, from the point of view of non-programmer VPLs can be quite useful!
Another one that didn't make the list is visual basic where you can put things on a interface and put code Into them so part visual, part text based. It's quite easy actually
I had changed a variable name in my code, and before it was a single letter (x, as in x coordinate), I spent too long trying to actually find where the last variable was used.. so I gave up and decided just to run the code and find it through the stacktrace (:
Found it.
12:11 You see, you need a 3d environment to farm a large range of resources. Without 3d placement how would people build flying machines in Minecraft?