A Nerd’s Tale

A place where I can shout

Languages are just tools, you idiot

Note: Don’t take the title onto your ego

For sake of clarity, I would like to make some terms used in the post clear, it may mean something other to you but for the simplicity of the post, I would be using them in a particular way:

  • Scripts are interpreted, subsequently scripting languages, though the term will also include languages like JavaScript, for which we need to feed the source code to the machine every time we want to execute the program.

  • Programs are compiled, so it should be clear by now which are programming languages, those languages for which we don’t need to feed the source code to the machine every time to execute the program.

Picking up from the title, languages are just tools and while you may use a chainsaw to slice the delicious mango, using a knife makes much more sense. So every language has its uses, a set of pros and a set of cons. It is very irritating to see people using a language which was meant for something other than what they were using for and then complaining. You may do stupid things for learning stuff, but that should be it, don’t go forward with it.

Let’s take one language at a time and see, are we being idiots nowadays? Anyway,

  • Assembly: Perfect to start with, a language for people who know what they are doing and is not be messed around with. Better say a fool-less language. Although plans are going on to ruin its sanctity with WebAssembly, let’s see how many people will can adopt it.
  • C: People say C is hard, but I fear not, it is far easier than thought, but well most of the people who fear C are actually corrupted by the higher level scripting languages. Again just like Assembly this feature made this an almost fool-less language.
  • C++: A somewhat general purpose programming language, has been abused to some extent, now lives in shadows but does power most of the processor heavy things in the current world.
  • Java: Suffers a similar fate as C++ but is in a little bit better position nowadays thanks to Android, earlier was abused a lot, but as the newer kids got some shinier toys, it was left alone.
  • Golang: One of the new and promising languages, better say one of my favorites. But I fear it cannot protect itself like the former ones. Everyday whenever I see someone using Golang for writing GUIs, the fear gets +1-ed. It was made for writing things like backend, a range of systems software and not for Data Science or GUI.
  • Python: One of the most popular languages, the most abused one also. It was developed as a general-purpose scripting language and unfortunately, cause the language was so easy to learn, people started stretching it to its limits only to complain later that python is slow. I mean, who told you to write a multi-threaded GUI in Python?
  • JavaScript: You know what, I told that Python is most abused, I take that back. JavaScript was not developed as a general-purpose scripting language but as something which could be used add interactivity to the web pages and see where are we now, hush electron. Even NodeJS devs, sometimes repent why they have done this. And the best part is, every day thousands of new people learn to abuse it in a different way.
  • PHP: A language which was not meant to be a language by its author, it was designed as a template engine for C, which due to love(?) of community grew up to become a language. See how ironic it is that it suffers criticism from the same community which gave it a new meaning.

At the end of the day, there are some things which a language does best and a set of tasks which it doesn’t excel in. And in my honest opinion,

  • C++: Resource critical stuff like GUI for Embedded System, programs which are CPU intensive.
  • Java: Android development, GUI programs for common folks using laptops and desktops.
  • Golang: Backends for websites, containers, various system level applications.
  • JavaScript: Frontends for websites.
  • Python: Can replace shell scripts, Mathematics.

The list includes only 5 languages, why? Cause these are the languages which fall inside the intersection of the sets, languages I have worked with, languages which have or will be abused. But that’s my opinion, you can have a different one.

And I beg to you, please don’t make Golang the next JavaScript