OpenCalc Project: Idea and Motivation
September 15th, 2016. Packed IISc’s J.N Tata Auditorium. MODS’s keynote speaker for the day, Scott Davis gave a motivational speech on how to learn different languages. He has been writing computer software for more than two decades now. From C to Java, Android to Swift, Scott has seen it all. One of the key things, he learned coming down all the way was a practice based learning cycle or a mantra:
Learn. Deploy
This two word mantra is very important. The first part of the mantra is quite straightforward. When you don’t know something, You research. You learn more and more about it. As simple it is. However, the real excitement is when you use it to make something. “The act of making a computer do something, on your command is always fun and satisfying”. Whilst you are learning a new programming language, the easiest thing is to print “Hello, World”. Being at this level, call it Zero; is incredible. Moments from knowing nothing about the language to writing this smallest piece of meaningful program, is one of an achievement in itself. The Hello World program has travelled ages of programming timeline. Still prevalent with various other derivatives. (Derivatives: Why not. It is just a collection of characters. Can be anything.!)
Hello, World
Moving on. Jumping across the “Hello, World” barrier, you have come all the way to topics like functions or even further to; loops, control flows, etc etc etc. To take in everything you learned so far, deep into the cerebral cortex you could write code snippets to master all the tricks. Recommended. Even Scott does. But let’s be smart. Let’s be quick. Let’s be Po from Kung Fu Panda. He learned much more while defeating Tai Lung* than he learned at his training. Anyways, How do we master them like Po mastered Kung Fu? (Believe me, Programming is way ….way simpler than Kung Fu; Stupid Analogy :p). To answer that, You need to look within.
Try asking yourself:
- Why not make something that incorporates everything that you have learned so far?
- Why not write a program that uses every other concept, you just learned into action?.
Let’s get our hands dirty folks. Real dirty. Let’s make a Calculator.
A Calculator? Seriously!!?
Yes. A Calculator. As simple as it sounds. Yes. Again. Making a calculator is one of easiest programming tasks you could ever build with a beginner level of programming experience. Give it a moment to digest. Done? Now let’s talk business. You could take another couple of moments to brainstorming how to build one?, What needs to be done?, What functions can you add on it? Should I add a UI on to it? (You can build one at Console level as well; adding a GUI is interesting isn’t it ? It would look like a real calc).
As Scott says (remember him, we kinda left him behind). Okay, as Scott says, “Making calculator will help you go through almost all the concepts that come along ways learning a programming language. Functions, loops, control flows, OOP implementations, Classes, Objects, Graphical Layouts, packages like standard Math, et al).
Even with that clear, One might wonder -“Fine. Okay I will make a Calculator but dude, what the hell is OpenCalc Project”
Well, in a sentence. “It will help you build a simple calculator in the language of your choice” What more? Okay. In another sentence, “It is a repository of well documented calculators written by experts in different programming languages”.
How can I use it?
The OpenCalc can be used it as a template, a blueprint for your implementation. It will help you understand best coding practices, you need to use for being a better programmer. You can use the richness of documented sections to understand how and when to use the same in your future build projects. It would help you learn better ethics of coding with smarter practices in the easiest way possible; Building your first software, A simple Calculator. Assuming that you have limited to exposure to Git/GitHub (btw… it’s important), the OpenCalc team is readying up a website which would ease the process, host up other general information and future projects.
The actual development goes around the repository, available on Github which is one of most popular version control hosting website. You can fork or star it to remain updated with it.
Check out the screenshot of the initial Readme file of the project:

Stay tuned folks. Next Article will be project specifics and about ways in which you could be a part of it.
– Ashish Krishnan,
Project Lead
OpenCalc Project – http://github.com/ashishkrishnan/openCalc.git
*
Extras
- Tai Lung – A ferocious Kung Fu leopard – kinda thingy from the movie Kung Fu Panda (Released 2008)
- MODS – Mobile Developer Summit 2016 – Salt March Media
- IISc – India’s Premier Research Institute
- J.N Tata – Founder of IISc, Chairman of Tata Group, Visionary