Communication Through Code

Programmers’ language.

Programs are meant to be read by humans and only incidentally for computers to execute.

– Donald Knuth

We write code not just for the computer; also, for communicating with fellow programmers and ourselves in the future.

The code becomes central to communication.

Programmers spend most of their time reading code than writing it. Simplicity and Implicity play a significant role in understanding code.

Simplicity = Conciseness of Code

Simplicity is all about keeping the code concise so that it is easy to manage. It is removing unnecessary clutters by leveraging the programming language features or abstracting code or anything that helps in reducing numbers of lines.

In action

Both sides of codes are computationally equivalent, but the right-sided ones are perceived better.

Code Example is taken from Oracle Tutorials

Linting tools assist in maintaining the code style in check. It may enforce some useless rules which may disturb the beauty of code.

Remember, tools are not perfect; No doubt they assist in avoiding some problems, but enforcing robotic style-guide may not always be suitable. These should not enslave us!

Do not sacrifice simplicity for the sake of a tool!

Related Content

  • Python is the first choice for data scientists and physicists because it allows us to do more with less.
  • The usage of lambda (in Python, Java, JavaScript, C#) makes function code clean and maybe expressive subjectively.
  • Humans are bad at keeping short-term memory. It is effortful activity. It is helpful to keep the unit of code within view of the viewport.

When code cross boundaries of the viewport, then you have to scroll it up or down to have one view of the code in your mind.

Code to be understood = code in the view + code out of sight (cognitive load)

The key is to keep the unit of code short and manageable.

Implicity = Expressiveness of Code

Implicity is related to the expressiveness of code subjected to the problem for which code is being written. In other words, how easy it is to perceive the intent of the code. Implicity leverages programming skills of naming variables, comments, and maybe more.

In action

Both the left and right sides are computationally equivalent. However, it is easy to perceive the right-sided code. Just doing the naming right has drastically improved the code understandability and reduce the guesswork. Isn’t it?

Implicity helps avoid problems like: it is possible that you come across your code after a long time and not understand it.

Related Content

Code Obfuscators tools work by renaming, reformatting, optimizing the input code without affecting the functionality. These tools make resultant code looks ugly, making it hard and painful to be perceived by humans.

In other words, they make the code to lose Implicity.

  • Uglify for JavaScript
  • ProGuard for Java
  • BitBoost for Python

Closing Notes

Both Simplicity and Implicity help in reducing the efforts of maintaining code. There may be time; code conciseness (Simplicity) hinder the perception of code; it is always better to choose Implicity over Simplicity. One can be on the right track by developing the design thinking so-called Developer Empathy. It is walking in the shoes of your clients: future code readers.

Additional Reading

--

--

--

Software Design and Engineering Series | More at https://themightyprogrammer.dev

Recommended from Medium

MMR — — Let Computing Power Trade like Playing

Programming Languages On My List/ What I Plan On Learning In The Future

Background Removal using Python

Deploying nodejs api from Bitbucket to Codeship, going through Mina and finishing in DigitalOcean

My first CLI Project was a Covid-19 API Code

How To: Setup A PostgreSQL DB Instance with Shopify Data

Web Scraping using Python

600 Words: Misconceptions about Programming — Part II

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Puneet Sapra

Puneet Sapra

Software Design Enthusiast. https://themightyprogrammer.dev

More from Medium

YData-Quality

How To Rescue Software Projects And Why They Fail

Do you perform reviews?

Documentation