Sunday, 30 June 2013

The Rising Software Abstraction

When the first computers were started to be used they were very different from what we see today. Even going back to rather "modern" age of Assembly Language the programmers had to feed each machine instruction to the computer using programs commonly hundreds of thousands of lines in size.



Then came the C language that changed the way programs were written. It brought real abstraction to the programming paradigm and its usage was spread like wildfire in the world.

But the abstraction used by programming languages of today have another objective behind them. The fact that today we can create very advanced software without knowing the system internals is indeed more grim than it sounds. The programmers that came before us knew the machine they worked on. They were aware of every byte-word-doubleword they fed into the assembler and the result of the instructions too. Today frameworks like Java and .NET bury and hide all these intricacies deep inside the byte code generated by them. This byte code is again translated to machine code that the machine could understand and execute.

Now, the problem is that we are turning into an idiot generation that 'knows how to make sandwich from bread but can't bake the bread itself' as a friend would say. Hence, the ideal thing is to learn about the internal structure and working of the system to a good extent while still using high-level languages like Python, C#, Java, etc.

Every programmer should learn using Assembly Language and try making small programs in it to grasp the concepts. It is not just details-- it's a legacy our ancestors left for us.

0 comments:

Post a Comment

All Articles © Asit. No Copying. Powered by Blogger.
 
Copyright © . The Tech Veda - Posts · Comments
Markup Powered by Bluefish Editor 2.2