Skip to main content

Hack : A Look at Programming Language By Facebook

As every PHP developer should be aware of the Programming Language developed by Facebook : Hack.
It is basically based on PHP, you can say PHP but a strongly / statically typed language like Java.(i.e. a language which have fixed datatype).

Let me give you a simple example.
In normal PHP ,we have functions like

function addOne($num1){
     return ($num1+1);

But in hack this code will be changed to

 function addOne(int $num1) : int{
     return ($num1+1);

You must have notice the major difference. Inside function parameters, in HACK, we have mentioned int as datatype and int as return type.
This is one of major difference between PHP and Hack.

But this is not the only reason, Why Hack actually evolves??
Basically, We have an advantage in PHP that it need not to be compiled(unlike java), just make changes in file and reload the browser. Languages like Java are slow in sense that they first need to be compiled, then they can be run, but they are easier to manage if the code structure is vast because of Strongly typed as errors can be detected at compile-time.

So Hack does both of the thing at once, It is a statically typed / strongly typed language and is fast that it need not to be compiled after making changes. Just change the code and run the browser,

Hack basically runs on HHVM(Hip-Hop Virtual Machine).

And no one can say anything about the performance of Hack, as world's largest social media site(Facebook) is running on it.

And the biggest advantage of using Hack is it lets coders use both dynamic typing and static typing. This is what’s called gradual typing

As a programmer, you must be wondering what are the differences between Hack and PHP?
I am not going in detail in this blog but i will give some idea about this.

a) First of all, PHP code starts <?php while Hack code starts with <?hh.
b) PHP code ends with ?> while Hack code don't have ending tags.
c) Hack,as I have already mentioned adds datatype to your variables.
d)  Hack introduces new collection types (Vector, Set and Map)

Consider this example,
function demo(): int {

  $v = Vector {10, 11, 12};

  $sum = 0;
  foreach ($vector as $value) {
    $sum = $sum + $value;

  return $sum;

Basically more datatypes are added and using Vectors are efficient as compared to arrays.

e) Generics concept have been added(Consider same as in Java).
f) Concept of shapes, XHP(for xml or html building)
g) You cannot embed hack code with html(i.e. a page cannot have hack and html code).

 That's all for this blog. Very soon I will posting another blog for Installation of Hack and some practical examples on Hack. 

 If any reader have any suggestion, please comment. Thanks :)

You can also check our Microservices post

Introduction to Microservices


  1. Thanks for Sharing , As a PHP Developer I am more interested to know about HACK language , Awaiting for new posts


Post a Comment

Popular posts from this blog

Login with Google Account using PHP / Javascript using OAuth2.0

Login with Google Account using PHP with code
This post have Complete Code for Login / Sign-in  with google Account  using PHP / Javascript with oAuth2.0

Basically today we have seen almost every website needs you to register yourself before you can post or take part in any discussions to the website. But it become a tedious task to register and login to many different sites. Solution is to provide the users the option to Login with existing Google / Facebook account as almost everyone have Facebook and Google account..

In this post, I am going to explain how to integrate the Google Login / Sign in  for your website.

For this,  First you need to create your Client ID, Client Secret and your developer API key.

For this go to

Click on the button Create Project. A new window will open up. Please select Create Project / or select already created Project.

It will then ask for about type of Project. Please select Web-browser. Then it …

What is MonGoDB??

Share on Google Plus Now a Days, we are hearing a lot about MongoDB.

So, in this post I will try to briefly introduce to MongoDB.

MonGoDB is "Non-Relational, JSON, Document Store".

Explaining in detail,

Non-Relational, --> The DB we use most like SQl, Oracle are Relational DBs(RDBMS). They do have the fixed schemas, lots of tables. So Non-relational in nothing like that.

JSON : (JavaScript Object Notation) : It is basically a document with information in the form of key value pair.

for example,


thats it. 
A simple JSON document where name and address are key
and "lorem" and "ipsum" are corresponding values.

So, MongoDB is the Non Relational database which stores information using DOCUMENT and that document is a JSON document.

MongoDB stores collections of documents.
(Consider the above exxample as collection  "Person"  with a document)(will elaborate it later more)

Need of MongoDB:
The Databases we use…

TCP Chat Server in Node.js

d.Hello all.

Today in this post, I am going to explain about how to use a "net" module in node.js and build a basic chat server.(i.e a TCP chat server)

For this, you need to use either telnet / netcat(nc).(I have tried it on netcat, simply google "netcat download")
(Dont worry about the script for now, i will upload it, just go through the tutorial to understand the concept)

So, lets begin,

first of all to use node "net" module , we need to import it in out script.

var net = require("net")

This will import the net module. Now moving ahead, we need to create a server. This is done by createServer  function(on simply Server function).

var server = net.createServer()

createServer has a callback whenever a client connects to a server.

var server = net.createServer(function(socket){


The code inside the createServer() function is callback(Hope you have know about the callbacks / event driven programming). This gets called whenever, a client gets c…