24 November, 2016
It’s my turn now. Yesss.. I am excited, not because I am writing a blog but because I am going to relive the enthusiasm of SETU 2016 for the second time! A very nice thought of our SETU’17 core team to have a flashback of our last year’s speeches in form of blogs. This is really going to be very useful for many of our fresh talents getting ready to articulate a whole new era of IT industry. Kudos to Team- SETU’17!
If I come to the topic of my speech i.e. Language- A Soul of programming, then you will surely get agree with the name of it in the first shot. But to your surprise, I myself is not at all in agreement with the statement. Yes, languages do play a major role but our dependence on any single language can be a disaster for our career growth. Thus I will narrate how Languages came into the world and how we can grow in seven colours with our independence from a horse view towards a single language.
Let’s begin with a detailed description of Inception and History of Programming Language.
Programming language is something which is a bread and butter to many youths in today’s era. The fundamental of computer programming is to analyse the problem and evaluate the solution with a specific language used as a tool. If we analyse the history of programming, in ancient period programming was considered to be a set of algebraic calculations, algorithms and geometric assessment of a task which can be automated with given set of instruction. If we dig into the past, most of the historian believes that the first ever Programming language was introduced by a great mathematician Ms Ada Lovelace who had written an article wherein she appended a program for her friend Mr Charles Babbage to run his mechanical engine in the year 1842-1843. Later to this, there were few inventions into it but none were as successful as it should be. Then the fire was ignited again with an invention at the University of Manchester when Alick Glennie developed Autocode which could automatically convert language into the machine code. It was around 1952 when the first code and compiler was introduced and was considered to be the first high-level programming language. Then there were series of work done in developing and enhancing the world of computer languages, few of the notable contributions are as stated below:
It may seem surprising but the best of the concepts of languages were introduced during the 1960s and 70s. It was a flowering era in the world of programming languages.
Well, here have you noticed something? The list? Isn’t it quite long?
Longer than the one we saw for the history of programming Language? Yes, there you are!
This is what I want to convey by describing the history and the current scenario. In the earlier period, languages were less and its predecessor was not that early as in the current century. Also nowadays some of the languages get extinct so fast because of new technologies that one needs to remain updated every day. If we don’t catch the hold of updated languages then we will become an outdated programmer as every day there are hundreds of programmer who steps into this field and are extremely updated. We can understand this concept with an example of our routine layman’s language like English, Gujarati, Hindi etc. Like we can say today to stay into the market one need to be well versed in the English language and also the trend in slangs of the language. Even though you are very good at something but cannot communicate in the language which is known to all and which is adopted at large by everybody across state, country and world then you can never prove yourself.
Majority of the academic culture in the country guides their students to choose any one Language and get best hands on it. But it is wrong. One can never survive if (s)he relies upon a specific language instead one should understand his/her area and range of capability in developing the program, for example, one can be really good at understanding the production of the product then (s)he can get expertise in that specific area. During our placement being a panel member I have observed students who have a belief that (s)he cannot work in different languages. They just mention about their expertise languages like Java or PHP and do not appear further as they are not well versed with languages like python.
To know the scenario about which language is popular currently is quite difficult. There are some languages which occupy more resources but on the other hand gives the result which is worth it. Also, some of the languages do not use much of your resources but the result out it may not be the best. It may not be compatible everywhere. Thus taking into the mind all these aspects a programmer uses the language to develop the matter. It may vary from programmer to programmer.
To have a picture about the popularity of programming language there are various sites like http://pypl.github.io/PYPL.html which undertakes various aspects to know the popularity of programming languages. Most of us are always interested in knowing the popularity so that if we find a shift in its popularity we come to know that now it’s time to move on to some different language. Examining the popularity involves analysing the aspects like; frequency of language search in search engines like Google, Google Blogs, MSN, Yahoo!, Baidu, Wikipedia and YouTube, Vacancies posted on job portals for specific language, frequency of posts about the languages on forums like quora, StackOverflow, Reddit etc.
Let's see the ranks in popularity and its shift in the current and last years:
Just analyse the table and you will understand how frequently the rankings get changed and thus dependency on one single language can ruin your career just in the shift of one rank.
Below is the list of winners of the Language of the year award announced by different bodies:
This may help us to know which is the most liked language and where we can focus more to beat the competition.
Replacement of Programming Languages
As stated above the shift in languages is very common nowadays. Also by eradicating minor drawbacks and enhancing the ongoing languages there are few languages which are replacing the older one and the older one may get extinct in near future(Everything gets changed except the Change!). So be ready and get updates. See to it you don’t remain unemployed just because the language in which you are not expert and don’t know the bit about it has overtaken the one you are expert in. Below are some of the languages and their current replacements:
- Go, an open-source programming language Introduced by Google, will be the replacement of C & C++ very soon !
- Hack is a programming language for the HipHop Virtual Machine (HHVM), created by Facebook as a dialect of PHP. Will be the replacement of PHP very soon !
- Swift, multi-paradigm compiled programming language created for iOS, OS X, watchOS, tvOS and Linux development by Apple Inc. Will be the replacement of C in iOS very soon!
Most of these replacing language are already in use and have taken up the almost whole pie of older language with its extraordinary features.
Let us see the programming language in accordance with Set Theory (one of my favourites during schooldays):
Intersection of Languages
Well, there may be enormous numbers of programming languages available but there are some content which is absolutely common in each and every programming language like in our day-to-day languages whether it is Gujarati, Hindi, English, Marathi or even French, there exists noun, verb, proverb, adjectives, articles etc. See the intersection of the languages which one should imprint in their mind to make it easy to learn any damn language:
- Syntax is a writing pattern of any code thus the pattern may change but it needs to have a syntax to fulfil coding.
- Keywords is a word that is reserved for a program because the word has a special meaning. Thus each and every code consist of a keyword which becomes a reserved name for it.
- Built-in Types are those characters which are predefined and are used in every language as per the requirements. These includes integer, character, string etc.
- Constants is a value that never changes which can be any number. It is applicable in every kind of programming languages.
- Operator is a symbol that tells the compiler or interpreter to perform specific mathematical, relational or logical operation and produce a final result.
- Variables scalar is a storage location paired with an associated symbolic name (an identifier), which contains some known or unknown quantity of information referred to as a value.
Other then above-stated points, Loop/break statements, built-in-libraries, error-handling are also some of the common points which are available in all the languages.
Differentiation of Languages
As we know in Set Theory, the differentiation of sets are those points which are present in one set but not in other. Thus if we see the programming language the every language seeks an output, Only difference is the technique and tools used to form a code. Thus see the below table and try to understand the differentiation concept of different language:
Thus if we look at the above example we can see that there are just a minor difference of pattern and style of writing the code. Therefore one should never afraid of any language in spite one should think logically and try to understand the pattern of different language.
Determination of Languages
In any programming language, the determination is to give the accurate output. Be it any language or any pattern the core of everything remains in the output.
See the above table and evaluate, any language used will give the SAME result just the difference is of writing code.
Points to be considered instead of Language
One should never decide their career based on a single language but should keep the below points on priority to flourish their career graph;
- Good knowledge of Functional Area
- Good hands on practice of Tools / Framework
- Hold on Problem Solving technique
- Intersection of Language
So the blog is now on the verge of its end. I hope you have understood the drawbacks of depending on the single language. Understand the fact and get your hand on every language that are invented. Don’t only depend on the academical curriculum. Make a healthy use of your gadgets. Well “ You Can only survive if fire burning within you is brighter than the one burning around you!”
Stay Updated! Stay a Lifelong Programmer! Coming Soon with my another topic of SETU 2016!