Saturday, March 08, 2008

Programming in local language

A professor at medical college requested me to write a small image processing application. He wanted to analyze any image and identify various color concentration and different ratios. I pitched in a java code that would read the bmp file and go thru pixel colors, count the rgb values etc.

Since the apps is a home-made, free-lanced small utility, I had lots of flexibility in scribbling to my heart's content. While doing so, I wanted to have convenient names for the classes and variables. I started using Indian words in coining class names.

I had to handle each color element and count their occurrences, manipulate the colors etc. The holder for such activities was named Varna which is color in Samskritam. The opposite color fetching function is from this class.
All colors from the image was extracted into a big double dimensional array. The huge volume of such colors prompted me to label it as VarnaSagar, ocean of colors.
A portion of image was handled at a time. So, I had to have some container which fetched colors from the VarnaSagar and processed them. The name for such small container is VarnaKalasam, pot of colors.
Even the screens were not spared. Image displaying modules and panels were termed Chitram, means a picture. The controls that open up the image is called by Darshan .. something to show up or see.



Would you like to guess the utility name? It is ChitraDeepam. Deepam is shine or light or glow. In our context, ChitraDeepam is a tool that illuminates more info about any chitram or image.


It was a nice experience to go thru in writing this utility. Using familiar names or related words made a lot of difference. It improved the way we conceptualize the problem domain. It also shows how powerful over native languages play even at a computer language level.

I remember few concepts I couldn't understand mainly because of the name. For eg, facet is one such topic. I never took time to understand the meaning of this word. Due to that I couldn't fully understand the topic, thou I attempted reading it couple of times. If I had known the meaning of the word, probably I might have been able to understand faster.

Anyway, here is the screen shot of the tool I wrote.

No comments: