Fourtek IT Solutions Pvt Ltd.

Fourtek IT Solutions Pvt Ltd.
We Win Clients

Monday, April 20, 2015

The One - Lua

Bonjour, Tout le monde !!


Today, I am gonna talk about one of those few languages which were invented outside the USA/ UK academies and industries so that by itself makes Lua all the more special. As one of these few exotic ones and still one of the rarest ones that have successfully managed to stay around.


Who doesn’t like the underdog, the dark horse ?


I know, I do !!


Lua, born and brought up in the land of carnivals, Brazil. Lua has that simplicity and the x-factor, which makes it almost an irresistible to a beginner. But the language is not at all limited to purely academic circles, on the contrary it is used extensively in industry.
Which industry, you ask ?
Well, the one that we basically grew up with and which gave us all countless hours of fun and sometimes a nice scolding =) . The Gaming Industry.
World of Warcraft, Mafia, Fable , Crysis, Multiple Star Wars games, Sim City. In short you name it and chances are that Lua has been used in there !!


In fact, the small size, interoperability with Cpp and the ease of use made Lua one of the all time favourites for Game Programmers to code and glue different parts together using Lua scripting.




Now, with the advent of powerful portable devices such as our smartphones Lua has evolved to tackle a new domain altogether. It is being used extensively in app development as well as for quick prototyping.


Most noticeable features of Lua are as follows


> Easy of Lua is such that, the syntax is quite free to the extent that there are even alternate braces that can be used and which would not result in an error.


> There is basically just one data-structure so if you are having trouble figuring out which Data Structure to use for a particular purpose, then Lua is for you.


> It's fast and it's an interpreted language.


> Due to its small size it is used as an embedded language so as to extend the capabilities of the current system.


I assure you, of all the languages we have discussed so far, this is the easiest one to learn.
# The official manual of the language is only 100 pages long and the definitive book in the field is about 300 pages long.


And that's it !!


That's all you need to play with Lua.


Hey, two links that are immensely useful for the





Till then,
Himanshu Sharma
Signing Off=)






Wednesday, April 8, 2015

Google’s havin’ a good Go !!

Hi folks=)

Thinking that the title seems obvious enough ?

Well, after all who can argue with this fact. Google is having a great time all around be it the internet, the mobile devices, surfing the software wave or just even coming up with innovative solutions for our various needs. Google is re-questioning and re-inventing the most fundamental of traditional wisdom.

But today, we are more concerned with the programming language that Google [ actually it’s by someone even More Legendary than google !! ] has come up with. It’s not the first one by any means and I don’t suppose it would be the last one either.

The language is called Go

More legendary than Google ?

Well, I can definitely back that claim up; remember C language and the entire revolution it kick-started ?

It was created by two guys Ken Thompson and Dennis Ritchie. Sadly Dennis Ritchie passed on a few years ago but Men Thompson is alive and still rocking. He is curre fly working in Google and the language Go is principally his team's brain-child !!

Here are two more people who have contributed in the design of Go, Robert Griesemer and  Rob Pike

The language itself is designed with all the lessons learned and with the same sort of visionary enthusiasm with which C was created. The major points that Men Thomson had in mind was to come up with a language ( trust me, it is much more than just syntax ) which would be a bridge between the internet machiney and how it's gears ( servers ) can be integrated even further.

The language also embodies a new approach towards parallel computing as it treats parallel processora as being an intrinsic part of its design rather than implementing it as an add-on feature.

Oh yeah, another important feature of the language is that it's takes along the line of static languages but it does a good job in implementing lessons from many different paradigms to give the language a firm and functional foundation.

If you are learning a language, investing your time in programming so that the skills you acquire would be useful in future then, folks, Go is definitely to be taken seriously !!

BTW you should check out the following resources





So, with this post we have covered quite a lot many languages already but I think it has become a bit of a monotone so the remaining language JavaScript, HTML/CSS, R and SQL we’ll cover after some time.

I think it’s important to keep exploring new things and to share as much as I can, with the next post onwards we are gonna talk about different topics and seek to sail on uncharted waters !!

Till then,
Himanshu=)

Stay Awesome !!

Wednesday, April 1, 2015

The LISP lore !!

So, finally I get to introduce the one of the most ingenious programming languages in the programming universe and I assure you, this language has a life of it’s own. If there ever was a language that was designed to evolve and adapt with time, it’s LISP.

What’s the oldest programming language that’s reasonably in use still, you wonder ?

Two contenders are there for that title namely, FORTRAN ( Formula Translation) and LISP ( List Processing ) !!

Though, as you might have guessed I am definitely pro-LISP and as far as FORTRAN is concerned the language has an almost beastly strength to convert Mathematical/ Algorithmic procedures to computer programs, hence the name !

The reason that old languages still stick around is because of two reasons

> Either the task accomplished in the first place was so sophisticated and sufficiently similar to what we would do now, that we don’t bother to change it at all. So, instead we grow various connections ports/ establish various bridges with the existing code and connect it with the language that we have chosen for our purpose.

> The languages, over the years have matured and have been modified so as to “modernize” them as much as possible, though it is not feasible to change the language so much so that it hardly resembles the original implementation in the first place. So, a few domain-specific languages still exist but they operate from the “shadows”. Few prominent examples of these would be C/Cpp and FORTRAN, both of whom were highly used in Scientific Domains, where the bread and butter of the programming language is the ability to process numbers and speed.

Why didn’t I include Lisp in there ?

For a simple reason that, it’s almost as versatile as C/CPP if not more, though to make an OS, one should still focus upon a purely System Language but for our purpose of discovering the joys of programming LISP would do just fine.

You remember I mentioned LISP in my posts about HASKELL and JULIA. You see, LISP is the grand-daddy of the entire programming philosophy that these languages inherit and seek to implement in their own unique styles.

Functional programming paradigm helps the programmer evolve and become a better problem solver !!

Though there is a trade off with these languages as they tend to be slow, JULIA being an outstanding exception to this age-old tradition.

The most intriguing point in the programming language is that it is often called “ A Programmable Programming Language” and with good reason.

Plus, LISP is the only language that completely implements ALL the requirements of being an Object-Oriented Language ( more on this in later posts ).

Surely, you must have seen so many science fiction movies in which the robots eventually learn to think for themselves. Who doesn’t find this possible future outlandish and at the same time have high hopes for this to be accomplished.

Rightly so, the human mind is the Greatest Computer In The Entire Universe. Can you too recall how many times you have spoken something to the Speech-to-Text converter device only to find that it doesn’t quite understand the speech if it is only a wee bit different. It hardly guesses our moods, our anxiety level from our tonal patterns and yet we do it on a daily basis.

Actually, the 26 letter of the English language are combined together to have about 158,000 sound combinations !!

Don’t believe me ??

O.O like challenges=)

Tell me which of the following words seems quite foreign (non- English) to your years
> Skint
> Sbint

I am pretty sure that you have guessed the latter without even giving it much thought. But how ?

How indeed !! That’s the mystery of the Human Brain and we barely understand the organ, rather than our vast database of information about the organ !!

So, it’s quite reasonable to say that computers are never really gonna beat us until we really understand what makes us….us !!

Where does LISP come in, you ask ?

Well, it comes in at a point where we want to make programs which behave in a reasonably intelligent way. It’s not without reason that the language has been the favourite of the Artificial Researches for decades at a stretch.

And if you really look it up on the internet you will still find some strange LISPer trying to save the world ( hopefully without a Cape;) ) on his own, driven by his beliefs and convictions.

Ah, yes !! RIchard Stallman is one of these un-caped heroes. BTW have you chosen your text editor yet ?

Well, you should choose something that is extensible, fast as hell and can be quite economical (keystrokes-wise) so as to get the task done with as little effort as possible.

There are many new ones which have  come out recently like Github’s Atom and LightTable and then there are the classic and mature ones like
> Emacs
> Vim

No, we are not even gonna attempt to recommend any one. But make sure you do take a look at them. You see, text editors much like programming languages should be a representation of one’s individuality and they reflect one’s personality. Choose the one’s that “feel” right.

On an end-note I have attached various links down below. Do take a look at these websites, there are a lot of hidden wealth in there.








Till next time,
This is Himanshu Sharma

Signing off=)

Wednesday, March 25, 2015

The Big D, ahoy !!

Hallo Leute =)

So, here we are, trying to figure out the languages of the future and which makes for an essential addition to our skill set.

Have you decided yet ?

Or maybe the decision still hangs in between the dilemma of “this language or that language”.

Perhaps this anecdote from my personal experience might help. If you are supposed to make a choice because of an urgent need to learn a particular programming language than that in itself rules out our options of getting acquainted with different programming languages. If the need dictates HTML, you certainly won’t get away with learning R !!

However, if you are trying to learn a programming language purely out of you sheer interest in the world of programming languages than there are many, many options so the choice of the language would really depend upon the “Feel” of the language along with the fact “ How well does it accomplish your need “. I personally like the “minimalistic” approach, I choose a language that “appeals” to me rather than someone’s notion of which programming language is “more useful”.

And building up on the previous posts I would like to introduce the D language to you. By now you have met with Python, Julia from one end of the spectrum and from the other end of the spectrum you have met the C and CPP languages.

Today, I am gonna talk about a language that attempts ( and a good one at that !! ) to upgrade or in more audacious terms to succeed the legacy of these two programming heavy-weights.

And the name is, of course, D. Sort of a cliché, don’t you think ?
But honestly, I think it suits quite well, given the audacious aims that the entire D-community has.

So, like C/CPP languages, D is also a Compiled-language. In fact it would be so familiar to anyone who is used to C/CPP syntax that you would feel right at home from the very beginning. The Major differences being in the fact that the programming community as a whole has learned a lot in the last decades and some ideas have been discarded while others proved to be quite useful. Hence, the D language.

D language attempts to filter out the redundant features of the C-legacy while still holding on to it’s most appealing features like

> Speed
> Clarity of Syntax
> It’s comfort level with the low level tasks
> It’s adaptability
> As well as the portability of the language.

While at the same time it whole-heartedly embraces the advances that have been made in the field of computers during the course of the last decade.

> Parallel Processing
> The Internet Revolution
> The portable-device Revolution


And, I dare say, the language is already something of a Wunderkind in the block. While the language has been designed by two people Walter Bright, Andrei Alexandrescu.

The former with the experience of creating the Digital Mars’ C/CPP compiler and the latter with the zest and zeal of the new-age language designers. Actually, they do have a good story to tell about and not to mention, they have implemented many new ideas of their own in the language design.

Ah, Yes !

Andrei Alexandrescu is the reason why Facebook has started to replace it’s code with the D language. Plus, the D-conferences are attracting more and more people every day.

If you too are one of those who would much rather learn a language that’s gonna be revelant in the future rather than the “most relevant one, right now” then here’s a good language for you.

Don’t forget to check out the following links.






Next stop, The LISP =)

Till then,
Take Care People,

Himanshu Sharma, signing off.

Monday, March 16, 2015

JULIA

Bonjour;)

Hey, finally we get to talk about the language that is gonna be all over the place in future or at the very least, the one with the most promising potential. Let me introduce you to JULIA !!

For an overview let’s go through the checklist.

  • An Interpreted language                 :-                   Check
  • Fast                                                   :-                   Check
  • Functional programming               :-                   Check
  • Liberal License                                :-                   Check
  • Platform Portable                           :-                    Check
  • Multi-purpose                                 :-                    Check
  • Gen-Future                                      :-                    Check                   

See, you get the best of everything.
>> Like Python, it’s amazingly simple to learn. In fact, give the fact that so many amazing things have been done with Python and on top of that Julia and Python can be operated together makes it all the more appealing to the vast and vibrant Python community.


>> Worried about speed ?
Don’t be !! Julia is designed using the giant leaps that the compiler design technologies have taken over the past years and more over it tries to enact the most important lessons that have been learned with decades of experience in Programming Language Design.


Julia’s almost as fast as the legendary C language and the fact that it’s as simple as Python to learn is just mouth-watering, to be honest.

You might ask, what’s the need for another language when we have Python ?
Hey, this is something that I have talked about in the previous posts so you are gonna have to look them up. Though there is another reason, like natural languages, programming languages evolve too. Some for domains and some for general purpose use. Julia, aims to cover both niche.

And the entire Python project started way back towards the end of the last millenium. Julia, is a new born !! It took it’s first steps after nearly 2 years of “incubation” and was launched in 2012 and then made available to the whole wide world.

As far as the future of this wonderful language is concerned I would, without any reservations whatsoever, would definitely bet on it. JULIA is the way of the future.

>> Now, what does "metaprogramming" mean ?

Well. Basically means it can generate it's own code. Say you want to make 5 functions which different only in the number of arguments that they take in. You can do it with a single line of code !!


Another exciting thing about Julia is that the insanely vibrant python community and the iconic lisp community are almost ecstatic about the language as it is an intriguing hybrid of these two awesome languages.

And yes, it was developed in MIT and again, by students !!

It aims to replace MATLAB, r and is completely free. Already into production and research. Covers the spectrum. I really believe that this is the long awaited wunderkind of the programming languages.


And why is it that I stress so much upon the language being free or not.

Well it’s because of the freedom that the original author gives a user to modify the language or even redesign it to suit one’s own purposes. You see, Apple recently released Swift Language and it does not have a liberal license. So, it’s more like an everyday consumer’s product which says “ No warranty if the seal is broken” plus you are gonna have to look out for a legal suit.

As far as the libraries of Julia are concerned, all I can say is that we create libraries so that the effort that’s put in while fulfilling one task would be available for others to make use of too. Much like how the Real-World library systems work.

Hey, I am gonna get down on the next stop soon so before leaving off I would like you to check out this link.  .THE JULIA LANGUAGE


Some really really cool and awesome people are involved in the language so, if you decide on getting to know Julia better, you just might fall in love with it.

This is Himanshu,

Till next time folks=)

Tuesday, February 17, 2015

Being Functional ( and Awesome !! )

Hi Haskellers)

Oh, no that doesn’t mean anything bad just that the language that we are gonna talk about today is Haskell. So dear Haskeller, this is one language that I have been so excited about, okay all right, Haskell and Julia.

But in this one I am gonna focus only upon Haskell so Julia’s gonna have to wait till next post. But don’t worry, Haskell is definitely gonna keep you busy till the next time.

So, are you rebel ??
Are you one of those who can’t help but do things differently !!

Then, Haskell is just the right language for you.  What sets Haskell apart from all the languages that we have talked about so far ?

I am glad you asked.

Haskell is officially defined as being a pure and lazy functional language.
Quite a strange choice of words to define a language, don’t you think. See, let’s talk about Haskell being pure functional language first and then move on to it being a lazy one as well.

The plus point with going functional is that it mirrors the real world languages to quite an extent.
Now that you have some experience coding in languages like :- C and Python, in real life would you ever say something like ( 2 plus 4 minus 6) ?
Or are you more likely to say ( add 2 and 4, then subtract 6) !!

Obviously the second one. And btw the answer would be 0 due to the BODMAS priority rule.  
The above example makes it quite clear that we program in a different way than how we think.

So, this is exactly the point at which the functional languages come in. They just mirror our normal thinking pattern to a greater extent and help us be natural. But the caveat being that it takes this line of thought to it’s logical conclusion.

No, there is nothing sinister with this “logical conclusion” but it only indicates that the language makes you think things differently and people who program in these functional languages are more attuned to creative thinking rather than bogged down by the “conventions” of the language.

However, functional languages are the one’s which are used extensively in Artificial Intelligence and it’s not for nothing that the most famous one LISP is said to be a “Programmable Programming Language” !!

To achieve this level of modelling power the usual debt is paid i.e. the speed trade off. And I am more than happy to tell you that the next language that we are gonna discuss i.e. Julia is here to challenge these notions. But more about Julia in later post.

Now for the Lazy part. Well, it basically means that an evaluation is “delayed” till the last moment when the computer is  certain that it is “really” gonna have to execute that code. See, how well does it represent the real world=)


And for the people who are suspicious of recommendations by committees ( and rightly so ! ) this one is certainly an exception for during the AI winter i.e. when the research in the field of Artificial Intelligence made relatively fewer advances and the focus of the “industry” turned to more not-productive , not-clever but rather the quantity of code rather than the quality of code the functional languages lost their charm for the “industry-people”.

At that time people who believed in this programming paradigm got together and decided to come up with a functional language which takes the entire paradigm to the next level. Thus was Haskell born.

In retrospect the design recommended by the committee turned out to be like the anticipation of the Gold-rush of the new millenia viz the languages which work well and can be integrated seamlessly with the new CPU with multiple processors once the limit for the maximum efficiency for a single processor had been reached !!

Thus began the project of coming up with the language that adds up the best qualities of the functional languages and which proves adaptable to the future.

Haskell, was born !!

Hey, there are these two resources that I think you should really check out if you want to explore the language on your own, if you ask me, it’s definitely worth it.


Trust me, read this amazing book and explore the world of Haskell.



Next Stop -> Julia

TIll next time, Folks

Himanshu Sharma.