Friday, January 7, 2011

How to stop your Microwave clock from Blinking

By: Alon Cohen

Whenever I hear about a new programming language I cringe. Essentially programming languages are all the same… a group of commands in an allegedly human readable language that tells your computer or device how to respond to inputs like keys keyboard, voice, numbers, mouse and so on.

So why do we have so many programming languages? Well every so often, a computer science professor decides that all that was done so far could be done in a simpler way; for those of you who believe that, I suggest trying to program in “Scheme”. Too often, a software company from the north-west decides that the best way to sell new development tools would be to create a new sharper language. Or a company in California, decides that in order to make it harder for developers to move code from other platforms it is better to come up with their own version of objective C.

Generally speaking, all those "new" languages, in my mind, just slows down development of good code (as programmers are always new to the language) and it prevents the industry from building on existing foundations. Yet it sure does help few companies to strive.

Contrary to the above, sometimes a good idea appears. This time, I would not call it a programming language but more like a programming interface. It is not an entirely new concept and it was even used for programming of Lego Devices and even homegrown interactive telephony systems.

However, this new concept from a Rutgers Professor makes me optimistic and also proud as my two boys, Gal Cohen who directly works on this project as a Junior at Rutgers, and Roy Cohen a Sophomore in High School who helps the team with ongoing advice about the Arduino and Xbee communications.

So why am I optimistic? Well for once, I can see this saving significant amount of my time trying to convince the kids to program the “smart” phones to do X & Y (for instance try activating conditional call forwarding on iPhone). It will also save me time helping less technically oriented friends, to deal with devices from answering machine (yes some people still use those) to wireless printers.

Plus, I can clearly see how the user interface for call handling rules (which I use every day) could become a part of that Scratch world, helping customers define, in a simpler way than available today, the different actions that will take place when a call comes in.