Karachi   ->   Sweden   ->   Karachi, again   ->   Dubai   ->   Bahrain   ->   Karachi, once more   ->   London and Leeds

Monday, September 17, 2007

Graphical Programming Environments?

It's quite impressive to build up a graphical environment in order to avoid programming to hook up already created components. Back in 1994, some guys took the idea quite a bit further and created Klik & Play -- a game development environment where you can create games without any programming. But there are people who despise the idea; they far more prefer domain specific programming languages for the same task. I think I belong to the later genre.

Over the years, I have learned the negative side of connecting blocks of software without writing a single line of code. And I have learned it the hard way. Software development has come a long way since it early days. Tools like diff and merge and version control systems like cvs and subversion are your friends. They solve some very elementary but extremely important software development problems. Whenever people write tools which allow you to "graphically connect blocks of code" they forget about the above mentioned impressive tools. Without a way to diff, merge and version your "code" your graphical development environment could result in lots and lots of unanticipated manual work.

Taking the concept a bit further, some people hate the idea of learning any programming at all without going into the details of computer science. Learning to program without learning lambda calculus could be considered a sin. What do you think? Is it necessary to know Loop Invariant before thinking of writing your new binary search, which has very good chances of being broken?