Total Pageviews

Sunday, January 16, 2011

Art movies and Programming

I was reading weekly suppliment of Local news paper Vijay Karnataka. Article by N. Manu Chakravarthy about Art Cinema.

I want to first quote few lines of translation from this article. "Its about duo of Girish Kasaravalli and Ramchandra. These two have made some artistic kannada movies. Starting from Ghata Shraddha to last one Gulabi Talkies. While Girish Kasaravalli did the concept, script creation and direction, Ramchandra did the camera work. Thier creative abilities complemented each other.

Kannda literature's various stages, dimensions and critique traditions were very closely known by Girish. While Ramachndra always gave appropriate symobilm or icons for manifestation of Girish's ideology with his camera work.  This did touch audience and helped them experience and internalize the message.

The point that really caught my attention is about their work. It said " This is the way technique and ideology should unite. This symbolizes the creativity of director and cameraman".

Well let me swicth gears. From psycology point of view programming is one of the abstract and complex task that humans do among many. In my view writing programs is no different than making a beautiful art movie.  Lets see how ?  A movie is one of medium to convery the thought process.

A Successful movie making has four primary ingriedients. Director with concept, symbols to execute concept like actors, places etc and camerma man who can capture this expression. Success of it depends on final component the audience.

Now lets come to programming. We have problem. A solution with sound philopshy behind it. Programming language as symbol to depict the solution. Programmer using the programming language to express it. Who is the audience its programmer itself over period of time or worse another programmer who takes over the code. Note that its possible in the programming world that director, camera man and audience can be same programmer.

A successful program is not only the one that does what it is suppose to do and does not do what it is not suppose to do but  also the one that can weather the enhacements and fixes yet remain young and beautiful. Like a brand new one.

I want to tackle one tough question here with this article. I have seen many times, mainly from young programmers. They always ask well this programming construct and putting this piece of code in some other module will also do the job. Then why not do it ? At times its difficult to answer.

Yes it will work but specific program construct usage and specific place to put the code is like work of camera man who is giving the expression to ideology. Unless this is done right, it wont be the true unification of "technique and ideology". When its not, it wont reach out the audience. Unless it reaches out it, it wont remain new and young. It might even die.

To close, I would like to quote  Abelson & Sussman, Structure and Interpretation of Computer Programs
""Programs must be written for people to read, and only incidentally for machines to execute."