“Sabona Zimbabwe”. Sound Familiar? Maybe not, but it is strikingly similar to the popular “Hello World” program used to teach programming to beginners. That’s because “Sabona Zimbabwe” is the Ndebele equivalent. Novice developers are taught basics of code in the “Ndexcode” which they use to create the “Sabona Zimbabwe” program.
Ndexcode is a Ndebele programming language that is taking code to the people. It is making code easily accessible to those who don’t speak English as their primary language. It is common to teach programming in English in Zimbabwe
Enter Ndexcode, as a breath of fresh air. Teaching young people how to write lines of code in their native Ndebele language. Venture Nation (VN) caught up with Van Lee Chigwanda, the creator of Ndexcode, and he shared with us the journey of the language.
VN: What is Ndexcode?
VL: Ndexcode is a Ndebele based programming language. Think of how we use keywords like Integer, String, Double, Boolean in most languages. Well, in Ndexcode we have Inani, Amabala, Inombolo, and Qiniso or Manga respectively. There are several more but the gist of it is you can write computer code without using English keywords at all.
VN: How does it work?
VL: It is a bit different from traditional programming languages. There is no dedicated integrated development environment (IDE) software you can use to write your code with aid. I am working on a plugin that you can use with other IDEs. It would be very difficult to create a whole IDE on my own. You download the pre-built binary (which is the computer programme that recognises Ndexcode) and you use any text editor such as Notepad to write your code. There are examples and tutorials you can follow to get going with basics. You can then run your code via the command line and if there are errors, you will be told where they are in your code.
2. What led you to build Ndexcode
I thought of how hard it is to introduce younger people to programming, and how we use Scratch. I decided to try and create one in Ndebele and see how it went. It surprisingly worked out.
3. Who can use it?
I created Ndexcode with younger school going pupils in mind, think primary school to O level. The idea was to teach them basic coding skills either for appreciation, or to move on and advance into more complex languages. It is available on Github for free. You can download a pre-built version and follow the tutorials. The whole process is quite simple and you only need basic computer knowledge like how to create files, type and use the command line.
The creation of Ndexcode comes at a time when there have been numerous efforts to get young people aware if the industry from an early age. Initiatives like Zim Code, Sprout Coding, SheCodes, Technovation have been working tirelessly to equip young with coding skills. Most of these classes are conducted in English and they teach English based programming languages.
Tackling uncharted waters
Whilst teaching code to children is not uncommon in Zimbabwe, teaching it in vernacular certainly is. In 2017, Tapiwanashe Matangira, created Khodi 123, a graphical user interface, which uses Shona language to generate code. Khodi 123 received recognition as the first of it’s kind in Zimbabwe and promises to achieve new and amazing things. Similarly, Ndexcode is seemingly pioneering the Ndebele programming space.
VN. What do you think has prevented people from developing a purely Ndebele programming language?
VL: So when I decided to create Ndexcode, it was part of a challenge I took up as a lot of people said it was not doable. I think the other challenge for most programmers may be time spent versus return. I made Ndexcode in my free time, and made it open source and anyone is free to use it; but the whole process took a lot of time. I am still making improvements and investing more time in it.
VN: Is it really only in Ndebele?
VL: Ndexcode is coded on top of C++; just like Java and C# for example. So, yes, Ndexcode is built on top of C++ and is in Ndebele. There are still a few parts I need help with to find better Ndebele equivalents. It’s not that they are not doable, but my Ndebele is not that good and I can only find Zulu equivalents online.
But yes, you can write computer code using all Ndebele, from basic examples to more complex stuff that has Structures, Functions, Tuples, Arrays. If you want to get serious, you can even transpile (convert) Ndexcode to C++. It can convert your Ndebele code into C++ that can be run faster on computers.
VN: What are the use cases of the language?
When I made Ndexcode, it was only for academic purposes. I did it to learn how to create a programming language, hoping to one day use the language I created to teach coding basics in Ndebele. As I spent more time working on it, I started going deeper and adding more complex features. The lack of a dedicated IDE will be a deciding factor in how far it can go. That is part of the next major step, to create a plugin for other IDEs that can be used to help you as you code in Ndexcode.
Ndexcode is available both as a pre-compiled application on Github. It is usable and anyone can download it and play around with it. Tutorials available on Youtube for anyone interested in Ndexcode and how it works.
Currently, Van Lee is using Ndexcode to teach young people in his living area how to write code. He hopes to see the language taught in classrooms someday. To introduce computer programming to students who can decide if they wish to pursue a deeper career in the field.