Close

Graphical Programming Language HackChat Transcript

A event log for Graphical Programming Language Hack Chat

Love blocks and graphics? Hate coding in words? New to coding? We'll be discussing graphical programming in this chat!

shaynaShayna 08/18/2017 at 18:020 Comments

Shulie Tornel Okay, let's get started!

Shulie Tornel @Boian Mitov Can you start us off with a short bio about yourself

Shulie Tornel and what you do and have created? :)

Boian Mitov Sure...

Boian Mitov I got hooked on electronics, when I was about 14 or so

Boian Mitov It was back in Bulgaria where I was born

Bossman I have some questions on visual programming in general

Boian Mitov My father was mathematician, but he was also hooked on electronics, and used to do some cool projects at home

Boian Mitov This got my attention, and I asked him to teach me

Boian Mitov As a typical mathematician, he refused, and instead gave me a bunch of books to reed :-D

Bossman more questions relating to your outlook and opinion as to what role you think visual programming will play in development: can it be used to augment learning of tradtional programming or will 'replace' traditional programming roles and put engineers into more complicated roles, etc.

Shulie Tornel @Bossman Please add it to this sheet: https://docs.google.com/spreadsheets/d/1L54ps__sTScIQqamefYh95n4K9Ldz0UBSbx4_miYEq0/edit#gid=0

Boian Mitov I guess the idea was, if I survive through them I will never give up...

Bossman What are your thoughts?

Boian Mitov Well... it took the 3th book or so before I really found something interesting. It was a book called "Electonics- the modern hobby" ( Kind of resonates nowadays too :-D )

Boian Mitov And this is how I got hooked

Boian Mitov but lets go to the question

Boian Mitov For the last 200 years, since the Charles Babbage mechanical computer, and Ada Lovelace, the computing hardware has made some considerable advances....

Boian Mitov However we still program computers the same way as she did 200 years ago...

Boian Mitov The modern computer architectures are quite different than the early days and traditional programming approaches do not map well in programming GPUs with thousands of micropores, and even less so when programming FPGA for computing unless we burn a virtual CPU in the FPGA, effectively negating its advantages

Boian Mitov The problem is that traditional computer languages with few exceptions are designed for sequential execution. This is fine for a single CPU core, but completely inadequate for a parallel system, GPU, FPGA or a computing cluster

Boian Mitov To be able to utilize this type of modern computing platform, we need to change the way we describe the problem and teh solution

Boian Mitov instead of describing it as a sequence of operations, we should describe it as a flow of data, and processing performed on that data, and let the computer distribute the task of the execution, the way a compiler converts high level code to assembly

Boian Mitov Added bonus to this approach is that it is quite easy to visualize

Boian Mitov In addition it is much more intuitive. Lets think of a large organization versus a single person

Boian Mitov A single person will write a list of things he/she needs to do to achieve something

Boian Mitov when you have a large organization however this approach does not work any more

Boian Mitov instead the organization creates a product/document etc. flow, and describes what each unit in the organization will perform over the product.

Bossman Fantastic explanation. As someone that uses visual programming on other projects (web apps, mobile, etc.), the question many of us have is "what are we learning?" / "what skills are we really developing here that can be put to use at an organization outside of this project"

Boian Mitov So now we have the 2 approaches. The sequence programming and the dataflow programming

Boian Mitov @Bossman Thank you! :-)

Boian Mitov @Bossman The short answer is that we learn "the future of programming" ;-)

Shulie Tornel We have another question

Boian Mitov Make no mistake. The switch to dataflow and graphical programming is no less of a conceptual and productivity switch as the one from Assembler to C or from C to C++ and object oriented programming

Shulie Tornel from Nate Byrnes: I've been thinking about and using graphical means of SW development for a while now. One problem I keep butting my head against is how to balance text content from graphical. My goal is to reduce the needed text input to as close to zero as possible. What has your experience been with this issue?

Boian Mitov Personally I am on a mission to eliminate text coding :-D

Lawrence Kincheloe What about functional programming as to how it relates to visual programming languages?

Boian Mitov To add to both questions... I remember 22+ years ago, I had argument with people that we should develop in C++ not Assembler

Boian Mitov Nowadays very few people will try to convince you that you should use Assembler as your main programming language

Boian Mitov I am sure in 20 years, few people will be using the argument that we should use sequential programming, or text based programming ;-)

Boian Mitov The sad story is that couple of years ago I watched an old presentation by one of the original PARC researchers

Boian Mitov He was making the case for graphical programming, and his arguments were solid

Boian Mitov It is sad that here we are so many years later, and we are just starting to use it... It goes without saying... everything in modern computing starts with PARC...

Boian Mitov If you watch computer history, you will notice that PARC discovered virtually everything, and then the ones that came after it simply took the concepts and created products on them...

AB Nice to see you Boian. Almost 10 years ago I purchased your VideoLab software for Delphi and we exchanged some emails back in the day. I am glad to see your newer project here.

Boian Mitov Apple took the GUI

Boian Mitov Thank you @AB :-)

Boian Mitov 3Com took the networking

AB I am also appalled by the fact we still use text editors to code.

Boian Mitov C++ etc. took the object oriented programming

Boian Mitov And Microsoft and Apple took document linking and embedding

Boian Mitov Apple took the mouse...

Boian Mitov Now it is time to bring to life their graphical programming concepts... they are long overdue... ;-)

Boian Mitov Yes... it is strange that we still use text editors to program... especially impractical in the age of touchscreen mobile devices :-D

Nate Byrnes Sorry if I am asking a newb question, but, how is the discussion supposed to happen with the questions on the google sheet? Will there be a dialogue in this forum? Are questions intended to be discussed by all participants? Sorry, as I said, newb to hackaday....

Boian Mitov You can type questions in the sheet

AB It makes much sense to do graphical programming for embedded platforms. The graphical display is visually very close to the hardware, eliminating abstraction levels in our brains.

Shulie Tornel Hi Nate, I have been posting the questions on here for Boian

Shulie Tornel He just answered your question if you scroll up a little

Shulie Tornel and there will be a transcript, at the end. :)

Shulie Tornel @Boian Mitov , next @Bossman has another question: As someone that uses visual programming on other projects (web apps, mobile, etc.), the question many of us have is "what are we learning?" / "what skills are we really developing here that can be put to use at an organization outside of this project"

Boian Mitov There is another aspect to it... In general anything that can be presented in HW can be presented in SW. Translating HW concept to SW is easy, the opposite is not. There is no straight way of taking sequential algorithm, and converting it to HW execution

Boian Mitov @Shulie Tornel I think I covered this question :-)

Shulie Tornel Jose asks: There are several learning platforms that use visual programming today, as today's projects are mostly created in a text based programming language, do you think it is a good approach for a person to start with a visual programming tool or should we start directly with a text based one? What are the skills these starting tools should encourage?

SimonAllen Is this webinar just text based without audio or video?

Shulie Tornel @SimonAllen chat based, yes!

Boian Mitov personally I believe that text based and sequential programming are obsolete, and in the future will serve the same role as Assembler programming serves today

Boian Mitov There will always be some occasional need to write in Assembler, so there will probably always be need for those languages in some case

Boian Mitov but they represent severely limited method of programming (limited in terms of productivity and easy of describing problems not what you can do with them), the same way as Assembler is very limited in describing higher level concepts

Boian Mitov To me the traditional programming languages are simply lower level languages, and limited to sequential single CPU execution

Boian Mitov But back on the HW vs SW topic

Boian Mitov As I said it is easy to take HW concept and do in SW, not easy the other way around

Boian Mitov Data Flow diagram however translates directly into both

Boian Mitov It also translates directly in parallel and distributed computing

Boian Mitov So if you write code in C++ as example, it will compile just fine for CPU, but you can't use it on GPU, and on FPGA you can use it only if you burn a virtual CPU losing the advantages of the FPGA altogether

mayank shukla Am i right if i say LabView or matlab simulink is very much like graphical programming?

Boian Mitov and it usually will not work on multicomputer cluster

Boian Mitov yes, LabView, and simulink are exactly this type of solutions

Boian Mitov Visuino is designed the same way

Boian Mitov There is another aspect of this. Sequential programming in microcontrollers presents its own set of issues

Boian Mitov There you have actual hardware that you need to control. If you control as example one stepper motor with Arduino

Boian Mitov that's fine... make a step... delay... make a step... delay

Boian Mitov but what if you have 2-3 stepper motors that you need to control simultaneously... ?

Boian Mitov you can't just delay on one motor, because at the same time you have to control the other etc....

Boian Mitov This is where data flow programming and Visuino make really shine

Boian Mitov in Visuino you just need to add 2 stepper motor components and you are done

Shulie Tornel Okay, here's another question by Bossman: I recall other visual IDEs like Labview about a decade ago in Uni, why didn't that take off? How you feel the landscape of programming has changed since then? Why is there such an emegence of dataflow/graphical langauges these days?

Charlie Lindahl Our group (nonprofit teaching to underprivileged areas in Houston) taught Scratch for free in a library in South Houston. We used the version that has hooks into Arduino. The kids LOVED it and really took off.

Charlie Lindahl And there is no queseiton they "got it". I don't think they would have been nearly as excited if we only had done text-based stuff.

Boian Mitov In my opinion there are many reasons shy LabView did not take over

Boian Mitov 1. LabView was developed specifically for NI equipment, and as a very proprietary quite closed framework

mayank shukla Is there any other pro that graphical programming provides other than making it more intutive & graphical (hence easy to understand)

Boian Mitov 2. LabView actually is only very partially dataflow. It uses a lot of sequential concepts like loops etc. completely negating the advantages of dataflow

Charlie Lindahl By the way, WRT dataflow languages & concepts go look at BI (Business Intelligence) tools. For example Pentaho (see http://community.pentaho.com/projects/data-integration/ ).

Boian Mitov In some sense LabView is its own enemy in terms of success... when it introduced the deep concepts of sequential execution it cut its own branch

Charlie Lindahl And on Labview: I used it when I was at a Robotics Institute at UT Arlington in Texas. Besides the dataflow back end it allowed you to build instrumentation UIs in minutes.

mayank shukla probably it's just a feeling...because humans resist the change...but graphical programming gives the feeling that "there is some detail that I am missing". Though I can be completely wrong.

Boian Mitov 3. The LabView NI people had patent on any Graphical Programming.... and they worked to shut competition through it until it expired few years ago...

Boian Mitov NI is one of the main reasons graphical programming did not take off earlier.

Boian Mitov As example the graphical core used in Visuino was developed by me about 15 years ago. I did not make it public out of fear that NI will be going after me the way they went after Mathlab

josejorge Didn't know about the patent thing...

Boian Mitov I released the first version of my graphical environment about a year after their patent expired ;-)

Boian Mitov http://www.openwirestudio.com (Mitov Software - OpenWire Studio)

Boian Mitov OpenWire Studio is still mainly a technology demonstrator. You can develop Video, Audio processing, DSP, Computer Vision, AI and a bunch of other stuff in it

Boian Mitov but it mainly serves to test and experiment with my Data Flow ideas

Boian Mitov Visuino is a spinoff from the OpenWire Studio with much more specific purpose - to make it easy to Arduino users - Artists, Makers, Kids to program their Arduino boards and other microcontrollers...

Shulie Tornel Another question from Bossman: Are there peformance tradeoffs to using programming at scale? Is this intended for rapid prototyping or can it be safely used in production development? (speed, concureny, etc.)

Boian Mitov In the future I may do more spinoffs from OpenWire Studio in other areas.

Boian Mitov Graphical programming when properly implemented leads to significantly higher performance with very few exceptions

Boian Mitov The reason is that the system can optimize parallel execution whenever needed

Boian Mitov The later versions of Visuino also automatically remove unused and unneeded code from the underlying libraries when some features are not needed

Boian Mitov and I am am further enhancing this

Boian Mitov Finally, by focusing on the big picture, you can optimize the high level design better, leading to improved performance

Charlie Lindahl So what you're doing is similar to (or identical) to compiler optimizations?

Boian Mitov "local optimizations" have less effect on performance than "global optimizations"

Charlie Lindahl ah. OK.

Boian Mitov Compiler can optimize only what the compiler knows about your intentions... ;-)

Shulie Tornel "Why isn't there a decent 3D visual programming language that is based on lamda functional programming concepts "

Boian Mitov When you present it with C++ code it assumes that whatever you wrote, it must be executed as you wrote it

Charlie Lindahl Not necessarily. Loop optimization in compilers goes back decades ...

Boian Mitov When presenting dataflow, you tell the computer what you want to be done, and leave it full freedom to decide on the best approach ;-)

Charlie Lindahl Agreed on letting the computer decide (for the most part).

Boian Mitov It is the same as if you tell someone:

Boian Mitov 
1. you go straight 10 steps

2. turn left

3. go straight 3 steps

4. turn right....

Boian Mitov vs.

Boian Mitov Yo go from point A to point B

Shulie Tornel "What do you consider the most advanced tools for visual programming today? I mean, current environment are completely based on text programming (diff tools, source control, text editors...), any comparable visual versions of these?"

Boian Mitov the first is how you program sequentially, the second is dataflow programming

Boian Mitov in the second case the "compiler" can optimize much better ;-)

Charlie Lindahl gottit. But the same argument could be made for OOP and "functional programming" as well (not specific only to dataflow languages). As a LISPer I am all about polymorphism :-)

Shulie Tornel We have three more questions on the sheet, and then last call for questions! :)

Shulie Tornel Charlie: "Do you have an opinion about SNAP? I am deploying it in small classrooms; it is very useful to have a totally browser-based visual programming language/environment available (SNAP is Berkeley interpretation of SCRATCH, see http://snap.berkeley.edu/)."

Boian Mitov On the best tools question... I am biassed. For Arduino, ESP6266, ESP32, Teensy, chipKIT etc. I believe that Visuino is the best choice....

Charlie Lindahl Thanks for your work on OpenWire. I only discovered it last week, am glad you did this talk. I will be experimenting with it next week. Gotta scoot now though.

Charlie Lindahl thanks for running the chat.

Boian Mitov for everything else there are solutions, and I hope there will be more...

Boian Mitov and I hope some of those "more" solutions will be from me... ;-)

Boian Mitov Scratch is no different than traditional text based programming. It is sequential, and has exactly the same problems and limitations. Difficult to implement anything more complex than controlling single sensor/actuator, and time consuming

Boian Mitov I don't see any advantages of Scratch over writing direct C/C++ sketch... it is practically the same

Boian Mitov I see some unanswered questions in the spreadsheet ?

Boian Mitov Do you post them @Shulie Tornel ?

Bossman well here is mine (1/2 of the questions): let's say that Visuino becomes succesful and eventually aquired by a large comany. If that large company decides to shutdown Visuino (as is often the case...Parse, etc.). What happens to everyone that invested time to learn Visuino? How will we translate our skills to another language/platform or update our hardware?

Boian Mitov @Bossman A larger company attempted to take over the IP few years ago. I refused to sell... I plan to refuse the next offer too... ;-)

Bossman thanks for the answer, but just as a word of prgamaticism

Bossman what happens if it gets shutdown?

Boian Mitov I do not develop this in order to get rich. This is the reason I priced it as low as I could, I I tried to go even lower, but processing fees... :-(

Bossman will the source code be opensourced, our are we sH@ out of luck

Bossman (just as a word of pragmaticism)

Boian Mitov 1. If it gets shut down... I will plan to make it open source

Shulie Tornel Question from @morganrallen

Shulie Tornel "What are recommendations for someone who wants to implement a visual programming language in their software? In the past, Blockly appeared to be the only option, but it was very difficult to embed in my own software."

Bossman Awesome

Boian Mitov 2. The Arduino libraries that it uses for the code generation are already Open Source

Boian Mitov in general I try to open source as much stuff as I can without going bust :-D

Boian Mitov I also make the SDK available for free

Bossman you have to take of yourself, I don't think anyone would complain if you had monetization strategies in place, as long as its transparent

Boian Mitov and the SDK sources are available by simply signing NDA at present :-)

Bossman excellent, thank you for answering that question

Boian Mitov The fight is mainly to change the programming mindset. Even if Visuino one day dies... hopefully it would have paved the way for the future of programming

Boian Mitov @Bossman You are Welcome! :-)

Bossman I agree, it is almost like the wild west.....quite a number of visual IDE available

Bossman if they shutdown

Bossman there is no central platform to fallback on

Bossman I suppose the dataflow logic is universal

Boian Mitov @Bossman We are still exploring completely new concepts

Boian Mitov Visuino as example introduces a large number of completely new concepts not available in other environments. A lot of R&D and experimenting goes into it

Boian Mitov I am sure some of those will be copied over time... ;-)

Bossman super interesting, do you feel that the 'logic' one learns in visuino is translatable into other IDEs as well?

Boian Mitov 100%

Bossman its kind of an ambigious skillset at the moment

Boian Mitov not only that. It teaches you high level design concepts ;-)

Shulie Tornel Any last questions for @Boian Mitov ?

Bossman any suggestions on parrallel learning that we might do while using Visuino, to better ourselves as 'developers' of the future?

Boian Mitov Look into GPU, FPGA programming and Cluster/Distributed network programming....

Boian Mitov and keep thinking... ;-)

Boian Mitov Look into VHDL Verilog... ;-)

Boian Mitov This is a fast evolving field, and it is just the beginning.... ;-)

Boian Mitov I am already exploring the possibilities to program both Arduinos and FPGAs with Visuino and to move designs between the 2 ;-)

Shulie Tornel That's all the time we have for this HackChat! Thank you so much, @Boian Mitov!

Shulie Tornel You are more than welcome to stay and continue answering any questions anyone may have

Shulie Tornel or just to hang out :)

Brian McEvoy Thank you, @Boian Mitov

Boian Mitov Thank you @Shulie Tornel !

Discussions