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.
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'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.
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
ardens can't even survive a 1ms on twitter because of that joke 💀💀💀💀💀💀 (very bad joke, I DON'T regret making this) edit: haha I'm not saying "mom I'm famous".. hol up, this is metahumor, but saying this is metahumor makes it more METAHUMOR, this is a loop.. THIS SENTENCE HAS INFINITE RANK OF METAHUMOR :O Also for this comment to have this many replies and likes, it means Arden's video is very popular. Good job Arden's!
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
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
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
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.
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'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"
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
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.
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.
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 TH-cam 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!
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 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.
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.
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!
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.
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.
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
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
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.
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)).
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 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.
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: 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.
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!!!!!!!
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
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'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
Scratch preceds Blockly by several years, decades even. Scratch was first a desktop app made in Smalltalk, and later was remade in javascript for the web.
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.
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
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
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.
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!
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.
Great video! I enjoyed the editing. Although, I was a bit thrown off by the girl joke. I want to challenge your thoughts on that and figure out why that joke is funny? Is it funny because... - there is a stereotype for girls to "trained" / "programmable" to do what you want? - you're quoting some guy who traffics girls and he says outrageous things which are funny to quote? I'd encourage yourself to ask why it is funny to you. For me it is a similar style of joke as "haha, black people like fried chicken and watermelon" "Haha, cops need donuts" "Haha, girls are things we can train to do when men want"
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!
@@imghostless 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
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'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.
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
ardens can't even survive a 1ms on twitter because of that joke 💀💀💀💀💀💀 (very bad joke, I DON'T regret making this)
edit: haha I'm not saying "mom I'm famous".. hol up, this is metahumor, but saying this is metahumor makes it more METAHUMOR, this is a loop.. THIS SENTENCE HAS INFINITE RANK OF METAHUMOR :O
Also for this comment to have this many replies and likes, it means Arden's video is very popular. Good job Arden's!
😂, valid
Which joke?
@@K.Parth_Singh the “women are programmable” joke
You can't survive on Twitter with any joke, that's the toxicity level of Twitter illustrated
@@anthonythemortal6444 true
I've tried node red in the past and honestly i loved it.
Glad it got on this list.
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
0:47 tpot moment
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
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
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 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
Great video! I haven't heard of most of these languages.
In 2060 we will have sphere, literally just tony starks programing language
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.
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'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"
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
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.
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?
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 TH-cam 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!
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 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.
he forgot unreal blueprints
(get a life)
@@Clenner0((agreed))
@@gec101(((I did not get it)))
@@Clenner0
Have one yourself!
....unity bolts?
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.
I used Kodu Game Lab, Scratch and Blockly when I learned to code :) Nice video, this is really informative and interesting! :)
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!
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.
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.
That video is pure gold😮
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
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
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.
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.
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.
Actually, Scratch 3 utilizes Blockly, it's why it looks so similar
Wow you unlocked a memory I didn't know I had with kodu game lab
For some reason my school teaches in scratch through whole primary school.
0:46 omg that's 2 from tpot
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.
amazing and very informative video! as always
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++.
Ayy big ups for shouting out my favorite, max msp
We can't decide how textual languages should look like.
Instant subscribe for consistency with the title
PLC ladder programma is another example of a visual programming language that is used by many software engineers in industrial automation
Finally been waiting so long for a new vid
I was waiting for Labview
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 😅
Very Informative Video 😊
thanks to the 1d 2d 3d idea
that's a good point to tackle
Now you should try DRAKON - visual programming language which is used to launch rockets.
A blend of both is the real thing! MPS from Jetbrains allow to design and implement such languages!
Thank you so much for talking about Kodu, i used it a long time ago but totally forgot its name
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.
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!!!!!!!
Griffpatch ain't happy after this
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
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'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
Well actually, scratch was made USING blockly
Scratch preceds Blockly by several years, decades even.
Scratch was first a desktop app made in Smalltalk, and later was remade in javascript for the web.
@@AlejandroGarcia_elviejo in scratch 3 it's made using blockly
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
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
0:47 TPOT two jumpscare
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
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
"and two" WHEN YA BAKE A CA-
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
0:47 IS THAT AN TPOT REFERENCE!?
This video actually brings back some childhood memories. Scratch ftw
Bro, use that cube program in AR and let everyone see it. Now, u're Tony Stark
I really thought you were going to mix some sick beats to make your program *say* "Hello World" in Pure data lol.
That Salem bit at the beginning captures how it feels to try and find wth the error with my code is sometimes 😂
Scratch is based on blockly, it's literally the same but with custom textures... Blockly is really a library for creating scratch-like VPLs
I think you would have fun on the DiamondFire Minecraft server
the only pngtuber I would want to watch everyday. good videos m8!
Wife: Are you learning Kung Fu?
Me: No Babe, I'm doing hello world in "Cube".
I love you brother!thank you so much
oh god, the nostalgia rushing down my veins in Kodu, i used to play that all the time in CS class
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.
0:47 omll two from ttpoot!!1!1!1!!1!1!1!1!1
3:44 " write code from SCRATCH "
me : You son of a gun
hi im your female audience. ok
hi im your male audience. ok
@@totrp is that a euphemism (please say no)
@@ariabk what
@@totrp anyways whats your opinion on stalin
@@ariabk Hes my uncle
Kodu ! I used to play on school computers back in 2014, It changed a lot !
When he said "it was just a joke" the advertisement of Nestle Pure Life played 😂
Imma do this rn
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!
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.
2:33 thank you...
as a woman watching this
that joke was really funny
omg thank you for being so cool about it ♡
Great video! I enjoyed the editing.
Although, I was a bit thrown off by the girl joke. I want to challenge your thoughts on that and figure out why that joke is funny?
Is it funny because...
- there is a stereotype for girls to "trained" / "programmable" to do what you want?
- you're quoting some guy who traffics girls and he says outrageous things which are funny to quote?
I'd encourage yourself to ask why it is funny to you.
For me it is a similar style of joke as "haha, black people like fried chicken and watermelon"
"Haha, cops need donuts"
"Haha, girls are things we can train to do when men want"
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 😂
As a scratch dev, the worst thing about it is sound.