the cde tlks Understanding the language of code as it speaks
The Journey of Code
The Journey of Code

Do you know who Ada Lovelace is??  Or maybe why the year 1843 could be called as the trigger point of the programming evolution we have all been talking about??? Well brace yourself for a journey as she is someone who sowed the seed of programming or at least gave it a thought which has travelled so far today making it the bread and butter of so many of our lives..

Well, I will stop making it that dramatic and start putting my words to the actual matter in hands..

Today, there are a lot of non code movements happening, frameworks and various abstraction layers created to make it easy for the developers to execute their designs. This makes it easy to forget the times where it literally started with human sized machines brought in just to execute a simple Hello World.


Well we have come far though….

FROM

b8    21 0a 00 00   #moving "!\n" into eax

a3    0c 10 00 06   #moving eax into first memory location

b8    6f 72 6c 64   #moving "orld" into eax

a3    08 10 00 06   #moving eax into next memory location

b8    6f 2c 20 57   #moving "o, W" into eax

a3    04 10 00 06   #moving eax into next memory location

b8    48 65 6c 6c   #moving "Hell" into eax

a3    00 10 00 06   #moving eax into next memory location

b9    00 10 00 06   #moving pointer to start of memory location into ecx

ba    10 00 00 00   #moving string size into edx

bb    01 00 00 00   #moving "stdout" number to ebx

b8    04 00 00 00   #moving "print out" syscall number to eax

cd    80            #calling the linux kernel to execute our print to stdout

b8    01 00 00 00   #moving "sys_exit" call number to eax

cd    80            #executing it via linux sys_call


TO

   printf("hello, world\n");

TO       

say Hello, World!

The simple “Hello World!” has survived well throughout the years!!

Well credit where it is due, it was Charles Babbage who actually put forward the “difference machine” which has spurred a so-called programming evolution if we can call it so!

To classify it in a very abstract manner, programming languages are classified into 

Low level programming language

High level programming language


Low level programming language can be explained further like where the language talks with the hardware in its native language.

High level language is more like having a translator in between to speak with the native hardware. A layer of abstraction serving the purpose for the same.

There are trade offs in each of the classification given the ease of programming vs the performance when the program executes.

The classification seems to be oversimplified though because to understand the actual complexities and the upward and downward spiral the journey has taken we need to delve further into the same.

After Charles Babbage brought the “difference maker” and Ada Lovelace thought probably like “Hey we can do more with this”, there was a line of languages which came up from a viewpoint of solving problems one after another. 

Various programming paradigms like

  • Procedural Programming
  • Object Oriented Programming
  • Functional Programming
  • Structured Programming 

  • and many more have come up throughout the years.


Well I can put along a list of the programming languages like a song for which Sheldon would have been proud of [ref- Big Bang Theory].

Jokes apart we have a long list of the programming languages that have come up, from Plankalkül (Plan Calculus) to Assembly Language to Fortran, Pascal, C, C++, JAVA, C#, Go.. I am damn sure that I have missed a notable many.

Along the way we have solved a lot of problems, running simple maths to programming electrical appliances to making the code portable..

We have learnt to store data in database structures well yeah SQL [SEQUEL] is another one of notable things to have come up, if we want to explore that it would require probably another whole book to cover all the things up..

There is another concept of NO SQL which will probably add to the confusion if you are relatively new to the programming world… 

There have been upgrades or optimizations done to the languages mentioned earlier to adapt the problem scenarios and situations that have come up all the way!!

Be it multi-threading, portability, faster execution or many more.. 

Frameworks have been built and more and more of the abstraction layers have been put forward albeit with the usual trade offs mentioned earlier.


We have always come up with a new language to speak, the inherent way or feelings to express things have always been the same. Enough of personification it feels now!

We have come so far that now we are fearing the machines will eventually overpower us makes us slaves [coughs in AI] 😀

No one knows how far the journey is still there to be made and how many surprises or potential blessings we have all the way.

One thing is for sure we have to keep on upgrading the ways we learn and adapt to the same.


Well that’s it for now, until next time…. remember the code talks!!!


Powered by Froala Editor