Last month we talked about the programming communities in Zimbabwe. After doing that article, it left me wondering which programming languages are used the most by developers in Zimbabwe. So I created a google form survey and then shared it on different tech related groups, Facebook, Twitter etc.
As the survey went on, the engagement of the participants was really great as they helped us make the survey better suited for them. For example before you could only select one language as your top language but then we realized that sometimes people use more than one language when building something.
Therefore we added the option to select more than one programming language and then we compiled the results to see which languages were selected the most. In total, 211 people participated in the survey.
As you can see in the chart below, the top 3 programming languages according to this survey are 1. PHP with 85 people choosing it. It is followed by Java with 78 and then JavaScript sits comfortably at number 3 with 75.
If you can’t see the interactive chart, here is an image of the top programming languages in Zimbabwe.
[visualizer id=”1877607″]
When the survey was running, I could would often go back to the form and view the results. For me, I was sure PHP would be top because locally, web development is pretty solid and most developers use PHP for both the server side programming and the front-end for dynamic sites powered by WordPress. The language is also well established in that industry so it made sense.
However, personally, I was cheering for JavaScript to come top as it has proven itself as a powerful language in the past few years that saw it’s uptake increasing and people creating different framework for the language. It didn’t really disappoint coming in at number 3. The thing that’s more interesting is how close Java was at being chosen less compared to JavaScript.
Java and JavaScript are totally unrelated and I wouldn’t dare to say to an all time Java programmer that the new kid on the block is now better. Java has many applications that range from web stuff, Android applications and system development. It is much more versatile and harder to master than JavaScript because JavaScript is a whole lot more beginner friendly and forgiving.
As I mentioned early, with the rise of popularity of JavaScript, it has gone from being a scripting language for client side development to a language that can run on servers, build mobile and web applications etc. This isn’t about which programming language is best as that differs with what you are trying to achieve but I thought some bit of information about each language would help reveal why it might have been voted by so many.
The followup question in the survey was what the developer was using the language for. This was in an effort to figure out if they are using it for work related purposes hence they really have little choice to use another one or if they were doing most of the development in that language working on hobby projects because they like it.
If you can’t see the interactive chart, here is an image of where the top programming languages in Zimbabwe are used at.
[visualizer id=”1877687″]
The chart shows that the participants use the programming language for full-time work in a company, freelance work and also hobby projects. It good to see that the number of people who use it for all 3 of those are equal to those that use the language for just hobby projects as it shows that some people do develop with new interesting languages outside of their work.
Now some languages didn’t get so many votes for example Swift and Objective-C maybe because they are mostly used in developing iOS mobile applications and you can only do that on a macbook so the entry barrier is a bit high. Well for me it is.
Other programming languages like Python and C# decent votes as they are used in areas like web development, game development, machine learning, data science and other areas relative to the language. Locally, Python has started to become more popular as a beginner language as coding communities like ZimboPy and PyCon are actively engaging people interested in code through that language.
Now this survey doesn’t speak for everyone in Zimbabwe but we did our best to get more people engaging so don’t think that if a certain language isn’t here, it is dead. That’s certainly not true as we can see that some really low level languages that are close to writing ones and zeros which machines understand are still being used in legacy code bases e.g PASCAL or COBOL.
10 comments
I expected PHP to come out tops. PHP, Java, C# and VB have long dominated the scene in Zim. I’m surprised though that C and C++ are big in Zim. Kotlin was also another surprise, then I realised how much Jetbrains is matketing the language. JS and Python came as no surprise, they are easy languages to pick up and are becoming ever popular world over.
Yeah I didn’t see Kotlin coming too, I knew it existed but didn’t think many people used it locally. Probably that people who know Java are picking up Kotlin easily because it’s used for android app development and is integrated with Java IDEs.
I’m pretty sure you meant COBOL in your last paragraph.
Programming is becoming ubiquitous but the robustness of code, in some cases, is very questionable especially on the mobile platform. My take is that both design and testing is not done or not thoroughly done. Maybe this is due to the issue of one person doing design, coding and testing. Error-handling is so evidently poor even for “commercial” apps for banks and mobile operators, I’m actually amazed that some of these “spaghetti code” apps have made it to the app stores at all. Examples – undefined exceptions, abending without displaying any message, failure to handle unexpected input etc. To all my colleagues in the sw engineering field, please thoroughly test your code, or give it to others to test. This is one of the basics of cutting robust, graceful code. Languages like Java, Python, C++ etc, when used with OOAD, in mind provide one with the requisite discipline which seems to be in short supply. Perhaps it could also be an indication that most folks rush to cut code on the basis of a very poor (or absent) design – a sure signal of poor, hard-to-maintain, non-scalable and unpredictable-behaviour code etc. Just my two cents worth….
Thanks for that, I fixed it. Interesting points you pointed out there. The quality does need to be improved.
They say the best code is no code at all, but we cant live in such a world now can we :-). As a fellow sw engineer I have seen some shocking code in production environments but either because it works as the client wants or the business processes have adpated to the system that shocking code will be left in the system. Exception handling can be done but you cannot catch them all (well maybe you can but you know what I mean :-)). Sometimes there is no right or wrong way to code quality checks.
As a wannabe entrepreneur you are right that one person (me) can be all 3 – designer, developer and tester-but how do you balance ‘getting product to market’ with coding for all possibilities, time to perfect as well as the potential startup cost you would need to get all 3 done ‘properly’. You can code forever, get all the code reviews possible only to still get issues because of a user device. Sometimes perhaps cutting code is whats needed to prove concept and then improve from there
But yes well need to improve somehow.
@TechZim while I appreciate that you are ‘Zim’ biased would have been interesting to know how many of your Zim ‘diasporian’ visitors could have contributed to the survey to get a view of the larger zim sw community. Maybe you shouldnt have restrictions on some of these things. Just a thought
Thanks for this dimension. Balancing production issues, time to market, costs etc is a vital ingredient in shaping the final product and there are no easy answers to this dilemma. What I have experienced is that with an effective Project Manager and a generous but firm Sponsor a workable balancing act can be achieved. But again the conundrum will grow if you are a start-up and you happen to be the PM & Sponsor as well….you will be spreading yourself very thinly across about 5 domains – no easy feat!!
PHP was a sure winner, no surprises.
We’ve got WordPress on once side and ease of use, availability of cheaper hosting options and a massive support community behind it.
I’m guessing Java is promoted by Android mostly. For web it may have uses but getting it set up is a nightmare. My host, Hostgator doesn’t even provide support for it. You are on your own and good luck.
Kotlin is no surprise either. The moment Google said Kotlin, Android newbies went crazy over it.
The mysteries lie in C++ and C. They’ve got solid numbers but I’m wondering where are they being used? I don’t see low level work in Zimbabwe. So far as I know I’m the only person I’ve met who dables in Kernel coding and graphics programming.
C/C++ guys please stand up and show yourselves. We need to form our own Pycon-esque community.
Lovely piece btw.
You will be surprised. PABX programming mostly uses native C code and Unix, there are a couple of guys around dabbling in this. POS devices use proprietary terminal control language (TCL – Verifone legacy) and Visual C++ (Ingenico & Hypercom), not sure what the other vendors use. When you scale up the ladder for Host Systems (server side payment systems referred to as Device-handlers or switches), you’re talking heavy duty C++ (or Java if compilation turnaround is not an issue). Such systems tend to be intimidating due to their fault-tolerance ruggedness and non-stop STIP availability as well as scalability. I don’t know how many FI’s are still on this but Founders, Beverley, CBZ & CABS used to…back in the days when secure and resilient systems were the norm. Supermarket POS systems tend to use also a variety of rugged code languages where novices might fear to tread.
if u use php ,javascript ,jquery and html unogadzira mukaka we website
Mukaka wewebsite. #ffffff