Wednesday, December 24, 2008

Programming in Indic languages

I wonder why no one programs in an Indian language. Why isn't software localized to a greater extent in India? Do you have to know English to be a programmer?(Check this out) After all the masses do not speak English in India. Its only the middle and upper classes that do. People in China use entirely localised versions of operating systems, programming tools and other applications. Why aren't the people in India doing that? Have you ever seen an Indic keyboard? I mean a keyboard with Hindi characters(devnagari script or wotever!) In a country with only around 65% literacy(most of the 65% can probably only sign their name, forget reading/writing in English!) most of which read/write/speak in their native languages, software systems in the native languages would have a tremendous impact on people.

I googled "Programming in hindi" and stumbled across the Hindawi Programming System(http://hindawi.in/en_US/index.php) This is a project which aims to develop Indian language versions of C,C++,Lex and DOS. Currently they support three languages-Hindi, Gujarati and Bengali. Their version of Indic C is called Shaili Guru. But the surprising part is that Hindawi's website is available in only one language- English! I have no idea how successful this project is.

Another instance of Indianisation of software is the Bharat Open Source System(BOSS)-an initiative by the Indian government to develop a localised version of Linux with support for Indian languages. Its developed by CDAC. Again, I have no idea if people are actually using it.

I think the reason programming in English is preferred because English is still a favoured language in India. Unless you speak English, you cannot get a white-collar job. That seems odd in a country with 18 official languages and hundreds of dialects and not so official ones. I guess english serves as the common mode of interaction between speakers of different languages. You can manage with hindi in most of northern india, but once you come south your only hope of getting to people is english!

7 comments:

Sheru said...

the code is what makes u a coder man... makes u the literate.. and posting in an Indian language...why the revolution..?
why learn how to write wit the left hand hen u can write with your right?

lappet! said...

i'm not talking about a revolution man...imagine a guy from a village who is studied all his life in a hindi medium school and doesn't know a word of english. if he has to program, he needs to learn english first. its about bringing power to the masses. A village panchayat is not gonna conduct its sessions in english.

LVS said...

perhaps, Indic keyboards are the first step towards Indic programming languages.

let me try,

सामान्य परिवर्तनहीन शून्य मुख्य(श्रृंखला परिमाणों[]) {

}

that's public static void main (String args[]) for you :P

~LVS

radhika said...

I believe such key boards do exist...there are lots of rural programmes run by NGOs who teach computer literacy, mainly vocational, to connect the rural masses to the mainstream & i think they use hindi language key boards. Or maybe they just use a conversion software ? -not too sure.

Srivats said...

I was thinking along these lines but under a diff context (cultural genocide) - the reason you and I for example converse in english is because
a. the british made sure they made english mandatory in all schools, hence supplanting the mother tongue as the first language.

b. There are too many regional languages in india to decide on any one as the common mode of communication - when hindi was made the official indian language, almost all southern states went on strike, etc etc etc - but no one did that when the british stuffed english down everyones throats.

And this happened in every british colony around the world. Also, the worlds most powerful nation today, the USA, uses english. hence, anyone in a supported economy (african states, puerto rico, caribbean, south america, mexico, erstwhile soviet states) learn english even if their first language is spanish or anything else. So, english rules the roost.

Several leading programmers have indicated that sanskrit is most suited in terms of grammatical protocols to be a programming language. (wiki noam chomsky and his take on sansrit, for eg.)

I think widespread use of a programming language based on a devanagiri script is gonna take a while to penetrate even the indian market - as other comments mention, keyboards first, languages later.

Nice blog, btw, keep em coming, all the best...

lappet! said...

@everyone!- thnx a lot for ur comments!
@LVS- as i told u, love ur blog!
@radhika-i've never heard of hindi keyboards re...
@Srivats-thnx for dropping by!

sudharsh said...

Writing code in any other language than English is EPIC. The problem is, the programming languages are much more formal and strict in the way you express it. (The ordering of individual tokens matter..eg, gcc would shout if the statement does not end with a ';')..

So, you can get away with a one-one mapping of English -> [your_fav_language]...So in essence, have an intermediary parser that would translate the tokens into some other language. Also, note that English has been used for standard notations for a loong loooong time (Such a no-brainer).

I am not entirely sure about this though. Distributing code would be a major headache, and not to mention most compilers AFAIK take in only standard ASCII text (not unicode).

If you consider programming *for* indic languages, thats completely different. Google for, Indlinux project. :)