Skip to main content

3 Dimensions of a Programming Language

- I believe there are 3 broad areas for mastering any programming language :
1. Language Internals
2. Programming Constructs offerred
3. Standard library written already in that particular language.

And these 3 categories are in order of priority to hone mastery in a given programming language. Priorities are always decided based on goals. So, here the premise for setting this priority is having said to have mastered such programming languge we should be able to read a large code corpus with ease and understand what the programmer who originally wrote this code intended to do with it.

Why Language Internals take a first priority ?
- Because we as a software enginners write a tool chain and compilers only to solve existing issues faced in some other programming language. When assembly was just making computer do its job it was difficult for a programmer to express his algorithms in faster way hence came languages like B,C, Fortran and BASIC. After some time into building this things code grew so large such that we needed new way of expressing solutions then came object oriented based languges like c++. When we saw paralled growth in Windows, Linux and MAC operating system we wished for portability along with object oriented programming hence came java and c# offering JVM and CLR abstracing differences seen at OS level.
 - Seeing all these it makes sense to ask first to a programming languge.. Hey What made you to be invented ?
- Jokes apart. When we know programming language internals we can easily reason other programmers choices when we read their code. We can reason why things fail, be cautious when we make design choices.

Why to know about programming contructs offerred by a language, language documentation is readily available ?
- So, why to know many words when dictionary is already available. Ahh ! for the same reason. To be able to communicate fluently in any languge , to be able to put in your true expression in words vocabulary is important. Better vocabulary leads to better language fluency.
- BTW, did you know that there is "else" for a "for loop" in python while same is not offerred by other mainstream languges like java,c++, c#, scala to name a few.


Standard libraries along with a programming languages are huge, Is it a great idea to memories instead of just referring the documentation ?
- This is a last priority. Every thing that is written in standard libraries as  a programmer we can write it from scrach but using them make life easy for us. Hence its good to know them as we strongly belive in DRY principle ( Don't Repeat Yourself ).

- With this principles at helm.. Lets begin our journey of a true programming languge Polygot.
- Programming language template should help further the cause !!

Comments

Popular posts from this blog

ASCII to Decimal conversion

#include "msp430.h"                     ; #define controlled include file         NAME    main                    ; module name         PUBLIC  main                    ; make the main label vissible                                         ; outside this module         ORG     0FFFEh         DC16    init                    ; set reset vector to 'init' label         RSEG    CSTACK                  ; pre-declaration of segment         RSEG    CODE      ...

Event Sourcing with CQRS.

  The way event sourcing works with CQRS is to have  part of the application that models updates as writes to an event log or Kafka topic . This is paired with an event handler that subscribes to the Kafka topic, transforms the event (as required) and writes the materialized view to a read store.

Create One-Click Shutdown and Reboot Shortcuts

First, create a shortcut on your desktop by right-clicking on the desktop, choosing New, and then choosing Shortcut. The Create Shortcut Wizard appears. In the box asking for the location of the shortcut, type shutdown. After you create the shortcut, double-clicking on it will shut down your PC. But you can do much more with a shutdown shortcut than merely shut down your PC. You can add any combination of several switches to do extra duty, like this: shutdown -r -t 01 -c "Rebooting your PC" Double-clicking on that shortcut will reboot your PC after a one-second delay and display the message "Rebooting your PC." The shutdown command includes a variety of switches you can use to customize it. Table 1-3 lists all of them and describes their use. I use this technique to create two shutdown shortcuts on my desktop—one for turning off my PC, and one for rebooting. Here are the ones I use: shutdown -s -t 03 -c "Bye Bye m8!" shutdown -r -t 03 -c ...