Programming languages can be hard to grasp for non-English speakers. Step forward, Bato: A Ruby port for Filipinos
Project hopes to bring dev skills to developing nation
A Filipino developer is hoping his handmade Ruby port will help bring coding skills to some of the Philippines's poorest communities.
Joel Bryan Juliano says he built Bato as a way for speakers of Tagalog – the most widely-spoken language in the nation – to be able to learn the basics of programming without also having to be fluent in English. Today's coding languages tend to be built around English grammar, which is a problem for people without a grasp on English.
A software engineer with Altus Digital Capital by day, Juliano told The Register he developed Bato as an educational tool for skilling up family members, and quickly saw how it could be used to show the basics of programming without language barriers.
"It was my nephew's friends who I first taught in Bato, because they were not good with English," Juliano explained.
"I taught them what happens in a program, and they easily picked it up, and created a simple tick-tock program in Bato."
Now, the man who said he first learned to use MS-DOS on his dad's Tandy 1100 laptop in 1990 is hoping his language port can help introduce more Filipinos to software development and IT jobs.
Tech jobs are particularly attractive in the Philippines, a developing country where skilled workers often have to travel abroad and send money home. Its overseas workers accounted for nearly $27bn of its $305bn GDP in 2016.
Unfortunately, says Juliano, many of the tech-related jobs available in the country are in call centers where long hours and poor working conditions are the norm.
"I remember I sent an email back in 2004 to [Ubuntu CEO] Mark Shuttleworth asking for work," Juliano said. "I was afraid that the only employment opportunity for me would be in the call center industry."
Fortunately, Juliano said, he was able to land a job in IT and escape having to work in a support desk center. Now he wants to help others, particularly those from poor backgrounds and rural communities where English is far less common.
The idea, he said, is to use Bato to help teach the basics of coding and get young people interested in learning more about careers in IT and software development.
One of the big hurdles Juliano encountered when choosing a language to port was structure. Because so many programming environments are based on English, the structure of sentences and expressions can be difficult for non-speakers to pick up even when the words themselves are translated.
Eventually, he settled on Ruby, a language with a structure that mirrors that of Tagalog. Here's a sample of Bato code – a "Hello World" implementation, admittedly a little convoluted in order to demonstrate an if-else-end control flow:
kapag 1 > 0 iprint "Kumusta mundo!" kung_hindi iprint "Mayroong sira" wakas
"Tagalog is an expressive language where there are many words that can express a single thought, meaning or thing," Juliano explained. "In the same way, Ruby is as expressive as Tagalog, Focusing on Ruby with Tagalog syntax feels more natural to Filipinos."
Now, Juliano has released Bato on GitHub with an interactive console that allows netizens to try out code directly from the browser. Eventually, he wants to expand Bato from a GitHub project to a fully fledged educational platform that will include textbooks and low-cost notebooks.
"I'd like to provide a way for Filipinos to learn to code, and work on the IT industry, and save them from the abusive call center companies," Juliano said. "Most people in the poorer communities are aspiring to be call-center agents. I'd like to intercept and provide an alternative." ®