Okay, let's get started!
@Boian Mitov Can you start us off with a short bio about yourself
and what you do and have created? :)
I got hooked on electronics, when I was about 14 or so
It was back in Bulgaria where I was born
I have some questions on visual programming in general
My father was mathematician, but he was also hooked on electronics, and used to do some cool projects at home
This got my attention, and I asked him to teach me
As a typical mathematician, he refused, and instead gave me a bunch of books to reed :-D
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.
@Bossman Please add it to this sheet: https://docs.google.com/spreadsheets/d/1L54ps__sTScIQqamefYh95n4K9Ldz0UBSbx4_miYEq0/edit#gid=0
I guess the idea was, if I survive through them I will never give up...
What are your thoughts?
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 )
And this is how I got hooked
but lets go to the question
For the last 200 years, since the Charles Babbage mechanical computer, and Ada Lovelace, the computing hardware has made some considerable advances....
However we still program computers the same way as she did 200 years ago...
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
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
To be able to utilize this type of modern computing platform, we need to change the way we describe the problem and teh solution
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
Added bonus to this approach is that it is quite easy to visualize
In addition it is much more intuitive. Lets think of a large organization versus a single person
A single person will write a list of things he/she needs to do to achieve something
when you have a large organization however this approach does not work any more
instead the organization creates a product/document etc. flow, and describes what each unit in the organization will perform over the product.
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"
So now we have the 2 approaches. The sequence programming and the dataflow programming
@Bossman Thank you! :-)
@Bossman The short answer is that we learn "the future of programming" ;-)
We have another question
Make no mistake. The switch to dataflow and graphical...Read more »