?

Log in

No account? Create an account

Sun, Jun. 10th, 2012, 02:23 pm
Visual Programming

http://msdn.microsoft.com/en-us/magazine/jj133828.aspx

Whenever I read articles like this it makes me wonder why other companies don't advertise the solutions they have that fit into this same niche. One of the VBs -- 5 maybe? -- is what I really learned to program on. Although it may be a toy language and IDE, the presentation was straightforward and easy to use. If I wanted this button to do something I double clicked on it. If I wanted that code to change something in another button all of the info for that other button and its values I could change were discoverable in the pane on the right.

During a class in high school on VB6 one of the less skilled programmers completely outsmarted me on a problem because he understood the visual system better than I did. We had to do this adventure game and I was trying to figure out how to store these massive arrays of text in a manner that didn't look horrible in the code. The other guy finished the project in about twenty minutes. I finally asked him to show me what he had done.

He dropped in a tabbed notebook into a dialog window, named each of the tabs after the chapters in the adventure, and then created labels from top to bottom wit the text he was looking for. I spent forty-five minutes trying to build some complicated data structure with arrays and he just used the obvious visual tools to build his structure in a hidden window.

It didn't even seem weird to him. He'd just noticed while using the IDE that the "tab order" number always went up by one when he created a new "thing" and if he reordered them with one button the numbers would shuffle to be top to bottom. He didn't have any idea what tab order was, but he knew exactly how to reference a number that grows in order.

This guy was an exceptionally weak programmer, but I gave him massive props for this. He really understood the system. Although his answer didn't have that grand structured computer science feel I think this was a hack that was much better than the formal answer.

This simple example starts me down one of two paths:

1] Why don't other companies that provide visual environments like this focus more fully on selling those?

2] How am I going to introduce my son to programming?

Let's start with the second one first. I just need to go hunting for something that has that simple feel to it. Something that's visual and works more like a puzzle or game than a text editor. At the same time, I want something that has that powerful text editor behind it somewher. When he gets old enough to really want to explore I want there to be something for him to explore. I don't want to rip out this interesting and intuitive environment and toss him into the text based slug fest that most programming is.

I think that the only way for me to find this solution is to focus my hobby programming around environments that I think are kid friendly. If it seems straightforward and pretty, but gives me access to the power I want, then I'll have found it.

On to the second, it seems that there may be room for me to try a minor side business on this similar to what JetBrains is doing it. Why don't I take Mozilla or Chrome and just rebrand them as an Internet IDE? It would take some work, but they're both very close to visual programming environments. What about Netbeans, or Qt's tool? What about Squeak or whatever that corporate Smalltalk VM is?

The next step is going to be to start reexamining these tools that are out there. Before I dive too far into that I'll need to make a framework for evaluating it. My draft of that framework is something like this:

Try to implement two programs. The first is a simple dice roller for GURPS. It's a system with a fixed number of dice and a lot of rules that have simple variation. The second would be a simple avatar creator where I can put clothes on a doll of some sort.

Evaluating them will be mostly about how far I could go without needing a text editor. I want to see how many of the relationships I can create and build without even needing to know how to type, but especially not with complicated typing. I also need to see how easy it is to pack up and share with others. Your kids needs a virtual refrigerator to show these things off.

Consider this the kick off. As time comes up I'll go out hunting and report back. Please leave any suggestions about where you think I should look or particular tools you think I should evaluate.