Every time a VPL (Visual Programming Language) has gone against a TPL (text programming language) , VPL not only has come out a winner it has massacred its opponent.
There are 3 areas that I am aware of that VPLs have appeared a) modular audio synthesis b) 3d graphics c) game programming
(a) has been the first with origins back to 1995 , there are like a ton of programming apis for building modular synthesizers , there even programming languages that specialize in this that have existed for decades now like CSOUND and Supercolider but Reaktor and Max/MSP have literally mopolised the market. Reaktor itself has been such a massive success that made Native Instrument as the dominant company on audio software.
(b) 3d graphics is no secret that is probably the richest software industry with the generation of the well knows CGI for films and games its a goldmine for developers and has been dominated by VPLs. You are not aware of this most likely because we never refer to them as VPL but rather as procedural material, textures, animation etc. Not using a VPL for todays standards is considered insane even if you try to do it via a very lovable language like Python. Text languages like POV RAY that specialize in 3d graphics have died a miserable death. 3d is where TPLs go to die and are used strictly for generating the software alone and thats about it.
(c) computer games there VPLs are something new but Unreal has definitely changed that with Blueprints. Probably the best and most powerful VPL. If you have played any kind of AAA game chances are that the game you played uses Unreal which in turn makes heavy usage of Blueprints and C++ code. The rule of thumb among Unreal developers is "Do it with Blueprint and if you cannot avoid it do it with C++". Unity has smelled the roses and has implement its own VPL as well very similar to Blueprints.
So if VPLs are so amazing why we do not see more of them ? They are actually very hard to make. If an implementation of lisp , a basic one, needs a few hundreds lines of code a VPL needs thousands and that imposes a high barrier for language designers. Hence why we have thousands of TPL and only a handful of VPLs.
The majority of them are crappy obviously because that is how quality works , you have to have high quantity for high quality.
But a high quality VPL will kick high quality TPL ass any day and this is why VPLs are massively more popular than TPLs for the same task.
One that does not work as well as it looks and it depends on drag and drop is a crappy VPL . Yes a crappy VPL will suck, not as much as a crappy TPL (see C++ , Javascript etc) but it will suck none the less.
you can also read my quora answer here for more details why VPLs dominate so easily and why they will replace TPLs in the not so distant future to a very large extend
You're cherrypicking examples and ignoring counter examples. Yes VPL's in specific niche areas have been useful and largely beaten there competitors. But I know of no general purpose VPL that had succeeded in beating a text only competitor. Text is superior for general purpose languages because it sits in the sweet spot for information density vs ease of use.
Yes and Yes. VPLs are indeed specific purpose and its because of information density.
Contrary to what you may believe a VPL is not the evolution of TPL , its actually the evolution of GUI. Reaktor for example is an evolution of VSTs , synthesiser and audio effect plugins that are GUIs. VPLs in 3d are an evolution of the gui properties for material , textures etc (they are not even referred to as VPL). Even in Unreal even though Blueprint has replaced Unrealscript , its an extension of the editor GUI.
VPLs are successful specifically because the information density is so large that a linear GUI is not enough.
The success of TPL is legacy, its just has a lot of libraries. Mainly because its easier to make and has been around a lot longer.
However to be sincere here when we talk about TPLs we also cherrypick , we do not think of Assembly, Pascal, Cobol and Fortran but rather C/C++ , Java, C#, ruby, Python and Javascript. The truth is that 99.9% of TPLs have failed to gain approval of not just the users but also the coders too.
But I am not denying the fact that a TPL will target mostly pro coders than users and that VPL will target mostly users than coders. They are just different kinds of beasts making the comparison more than challenging.
Thanks, very informative. If you implement a visual language, you also have to implement the means to input your code, i.e. you have to implement not just a language, but also an IDE.
The other thing to note is that hardware had influenced programming languages, which in turn have influenced hardware, in the direction of SISD on CPUs and later SIMD on GPUs. But textual languages are poorly suited, and visual languages well-suited, for representing dataflow. In the 1970s and 1980s, there was active research on dataflow hardware as well as work on (mostly textual) dataflow languages. Now, CPU speeds are no longer improving exponentially as they were in the past, so dataflow should be re-examined.
I've been working on my own visual dataflow language (http://web.onetel.com/~hibou/fmj/FMJ.html). I haven't updated the pages for some time, but big changes are under way.
I don't agree with parent but they are contributing to the conversation.
If you disagree why don't you provide some counter-points instead.
Here, let me start.
> Every time a VPL (Visual Programming Language) has gone against a TPL (text programming language) , VPL not only has come out a winner it has massacred its opponent.
That's an unsubstantiated claim. Point to some sources please.
> There are 3 areas that I am aware of that VPLs have appeared a) modular audio synthesis b) 3d graphics c) game programming
These are not the only ones [1], and VPL first appeared earlier than 1995. For example, the first version of LabView was released in 1986 [2] and certainly LabView was not the first one either.
> 3d is where TPLs go to die and are used strictly for generating the software alone and thats about it.
Even if this is true in the case of VFX (which I don't know that it is but I don't know that it's not either), it certainly is not true in video game development, which is very much an area of 3d graphics.
> computer games there VPLs are something new but Unreal has definitely changed that with Blueprints
Blueprints is awesome but you could not TODAY make an arbitrary game implemented using ONLY blueprints and have the amount of control and freedom you have if you use Unreal or another game engine with C++ or another TPL. Thus falls your initial claim, which (quoted above also) was
> Every time a VPL (Visual Programming Language) has gone against a TPL (text programming language) , VPL not only has come out a winner it has massacred its opponent.
And I bet that others can point to a wide range of areas where an existing VPL will come up short.
Some people love LabView. I certainly don't. Some prefer it and for them it's a thousand times better than using a TPL but for me 99% of the time I would go with a TPL over LabView.
I did not downvote the parent , mainly because I rarely downvote posts, must be a facebook habbit :D
"That's an unsubstantiated claim. Point to some sources please."
Reaktor and Max/MSP vs CSOUND and Supercollider , Blender python vs Material/Texture/Animation/Compositor Nodes, Blueprints vs Unrealscripts are all examples I mentioned already. Why they are not enough ?
"These are not the only ones [1], and VPL first appeared earlier than 1995. For example, the first version of LabView was released in 1986 [2] and certainly LabView was not the first one either."
This is why I said "that I am aware of" I am not an expert on all things just a few areas.
"Even if this is true in the case of VFX (which I don't know that it is but I don't know that it's not either), it certainly is not true in video game development, which is very much an area of 3d graphics."
I already mentioned Unreal and Blueprints. But yes what I meant was on the fact of actually a VPL competing with a TPL. Obviously when no VPL exists you have no competition. In the case of 3d apps efforts have been placed into using scripting languages but the users have picked VPLs instead as much easier to use and learn.
"Blueprints is awesome but you could not TODAY make an arbitrary game implemented using ONLY blueprints and have the amount of control and freedom you have if you use Unreal or another game engine with C++ or another TPL. Thus falls your initial claim, which (quoted above also) was"
What you say its true but its not because VPL is inferior its because its not fully supported. Unreal started as a C++ game engine so of course the support will be more extensive than for Blueprints . Blueprint have been around for few years and its already growing faster than the C++ api. It was only lately that Epic added the ability to compile a Blueprint to C++ code. C++ API also make it easy to wrap any C++ code and expose it to Blueprints. So if you want to make your entire game in Blueprint its not possible but also easy.
"Some people love LabView. I certainly don't. Some prefer it and for them it's a thousand times better than using a TPL but for me 99% of the time I would go with a TPL over LabView."
VPLs are made for users not coders, its their ease of use / idiot proof mentality that have made them succesful. So yes if you are a coder in most cases you will prefer and should prefer a TPL , especially a popular one.
But again I repeat in the vast majority of case you will be extremely lucky to find a VPL to even consider moving to. VPLs are extremely rare.
If Blueprints have really become the default in Unreal, why are they so barely talked about? Searching for "unreal blueprints" on Google returns less than two full pages. Do you work in the industry?
Welcome to the failures of Google search engine. Google is great but not so great when you try to make the search a bit smarter.
I am about to "work" in the industry I have a Blender plugin and Unreal editor plugin in the works , none of the use a VPL by the way because simply what I am trying to do is too technical for VPLs that target users and not coders. But of course I will be offering VPL support because users love VPLs.
I never said Blueprints are the default in Unreal , C++ is still king. However if you want proof , you can take a visit at the official Youtube channel of Unreal by Epic and see for yourself the rise of Blueprints. Most tutorials nowdays for making games with Unreal target Blueprints.
Well, you said the rule of thumb was to use Blueprints unless you can't avoid C++, that implies a default.
I do agree that Google's not evidence of anything, I just use it as a first approximation when I have no better sources. That said, the marketing channel of a company trying to push its tech doesn't really satisfy me either.
If that is what you mean by default then yes Blueprints are generally preferred because they are accessible both by Artists and experienced developers. C++ is generally preferred for performance reasons because Blueprints being an interpreted language is around 10 times slower ( these are estimates by Epic the creator of Unreal).
Of course how much Blueprints will be used will depend on the game. There are games made entirely with Blueprints.
Also Epic recommends the use of Blueprints as first choice again because of ease of use. They have invested a great deal to it after all. It even has a debugger with break points , watching values and visualization of execution flow.
If I go to the last page of a Google search for unreal blueprints it says that it showed me 120 results. 12 pages.
If I go to the last page of a Google search for C++, it says that it showed me 180 results. 18 pages.
It used to be that Google would tell you an approximation of how many matches they actually had in total for a search of their index but they no longer do anywhere that I am aware of. If there were only two pages of results I might have agreed but when there are 12 pages it will show to me I don't think there is any useful conclusion to be made about the actual total amount of sites that contain these keywords.
However, there is another site that still gives us an approximate count of results. YouTube.
Searching for C++ on YouTube I am told that there are "about 1,010,000 results".
Searching for Unreal Blueprints on YouTube I am told that there are "about 57,800 results".
Searching for UDK Blueprints on YouTube gives "about 18,600 results".
There will be some amount of overlap between the latter two.
I don't know how many of those videos matched only blueprints and was included though.
But let's do another couple of searches.
UDK C++ on YouTube gives "about 11,000 results".
Unreal C++ on YouTube gives "about 60,900 results".
Well, it seems that the words UDK and Unreal are significant when searching on YouTube, since otherwise both of those searches should have given about a million results like the search for just C++ alone did.
So comparing "Unreal C++" and "Unreal Blueprints" on YouTube actually gives a surprisingly high amount of results about blueprints compared to C++ for Unreal, certainly a lot higher than I would have expected. I would have expected at least 25 times as many for C++ but it seems to be almost the same amount of videos for each of those.
Of course one might wonder if even though the words Unreal and UDK might have matched correctly, did the words blueprints and C++? Or do the results include a lot of videos that are about neither blueprints nor C++?
Additionally some amount of videos will have both these words but will not be about the Unreal Development Kit. Instead one video might be something like "Unreal! Secret blueprints confirming conspiracy theory so-and-so confirmed!" You get the idea.
in 3d and Audio the data is anything BUT constant. You will have to be more specific than that because I do not understand what you mean. Anything can be turned off and on.
I meant the input and output of nodes. The main thing a VST oriented VPL does is manipulating audio samples so the graph is easier to use and reason about than a generic VPL (domain specific VPL seem to thrive, I wouldn't say the same thing for generic VPLs)
No that would have been very limited. It's very important to turn on and off execution flow and of course branch it. That applies both in graphics and in sound. Why you got that impression ?
Audio VPLs are far more powerful than what you describe.
Two materials combined to one over a 3d surface where instead of mixing in certain areas you can have one or the other depending on a texture transparency acting as a mask. Or a gradient color customized to act as a bit mask with one and off values in the colors of black and white. Non continuous data in sound can be midi or any form of modulation source like a square wave that can also act as a bit and tons of other methods.
Ok so theses VPL have 2 primitives : 2D texture (a bit mask is a 2D texture) and 3D object / sound samples and MIDI stream.
Can you generate an image from sound samples ? Can you create 3D objects particles from MIDI stream ?
I use blender, Blender has multiple VPLs that each specialize in one area. Texture, Material and Compositor. Blender VPLs are fully upgradable with Python code that allows the creation of new nodes . This allowed developers to create new VPLs using animation and modeling nodes. So even though Blender VPLs are not meant to be used as generic languages however there is already the API in place to allow this essentially exposing the entire Python scripting interface as nodes.
Reaktor I do not know if it supports 3d physics particles , but you could do what you ask for from blender. Blender supports midi for controlling animation.
Blueprints on the other hand are a generic VPL and can do anything you describe. It's also the best choice because Unreal excels at real time graphics.
There are 3 areas that I am aware of that VPLs have appeared a) modular audio synthesis b) 3d graphics c) game programming
(a) has been the first with origins back to 1995 , there are like a ton of programming apis for building modular synthesizers , there even programming languages that specialize in this that have existed for decades now like CSOUND and Supercolider but Reaktor and Max/MSP have literally mopolised the market. Reaktor itself has been such a massive success that made Native Instrument as the dominant company on audio software.
(b) 3d graphics is no secret that is probably the richest software industry with the generation of the well knows CGI for films and games its a goldmine for developers and has been dominated by VPLs. You are not aware of this most likely because we never refer to them as VPL but rather as procedural material, textures, animation etc. Not using a VPL for todays standards is considered insane even if you try to do it via a very lovable language like Python. Text languages like POV RAY that specialize in 3d graphics have died a miserable death. 3d is where TPLs go to die and are used strictly for generating the software alone and thats about it.
(c) computer games there VPLs are something new but Unreal has definitely changed that with Blueprints. Probably the best and most powerful VPL. If you have played any kind of AAA game chances are that the game you played uses Unreal which in turn makes heavy usage of Blueprints and C++ code. The rule of thumb among Unreal developers is "Do it with Blueprint and if you cannot avoid it do it with C++". Unity has smelled the roses and has implement its own VPL as well very similar to Blueprints.
So if VPLs are so amazing why we do not see more of them ? They are actually very hard to make. If an implementation of lisp , a basic one, needs a few hundreds lines of code a VPL needs thousands and that imposes a high barrier for language designers. Hence why we have thousands of TPL and only a handful of VPLs.
The majority of them are crappy obviously because that is how quality works , you have to have high quantity for high quality.
But a high quality VPL will kick high quality TPL ass any day and this is why VPLs are massively more popular than TPLs for the same task.
One that does not work as well as it looks and it depends on drag and drop is a crappy VPL . Yes a crappy VPL will suck, not as much as a crappy TPL (see C++ , Javascript etc) but it will suck none the less.
you can also read my quora answer here for more details why VPLs dominate so easily and why they will replace TPLs in the not so distant future to a very large extend
https://www.quora.com/Why-did-graphical-programming-language...