ہیک (پروگرامنگ زبان)

ہیک  ایک پروگرامنگ زبان ہے جو ہپ ہاپ ورچول مشین (HipHop Virtual Machine) کے لیے تیار کی گئی ہے۔ اس زبان کو فیس بک نے تیار کرکے آزاد مصدر رکھا ہے اور بی ایس ڈی اجازت نامہ کے تحت جاری کیا ہے۔

ہیک کو پی ایچ پی کا نیا ورژن کہا جاسکتا ہے، لیکن ہیک زبان پروگرامرز کو ڈائنامک اور سٹیٹک دونوں قسم کی ٹائپنگ کی سہولت فراہم کرتی ہے، جسے گریجول ٹائپنگ (gradual typing) کہا جاتا ہے۔ ہیک کا ٹائپ سسٹم ان تمام اقسام کی سہولت فراہم کرتا ہے جن کے ذریعہ فنکشن آرگیومنٹس (function arguments)، فنکشن کی ریٹرن ویلیوز (function return values) اور کلاس پراپرٹیز (class properties) کو مختص کیا جاتا ہے، البتہ مقامی متغیرات کے اقسام کو مختص (specify) نہیں کیا جاسکتا۔

تاریخ 
ہیک زبان 20 مارچ، 2014ء کو متعارف کرائی گئی۔ اس نئی پروگرامنگ زبان کے باضابطہ عمومی اعلان سے قبل فیس بک نے خود اپنی ویب سائٹ پر اس کے کوڈ کو استعمال کیا اور بڑے پیمانے پر اس کی جانچ پڑتال کی۔

خصوصیات 
ہیک زبان پی ایچ پی کی طرح ہی کام کرتی ہے، پی ایچ پی ویب پر عمومی مقاصد کے لیے انتہائی زیادہ مستعمل سکرپٹنگ زبان ہے جو بالخصوص ویب ڈویلپمنٹ کے لیے انتہائی مناسب ہے اور ایچ ٹی ایم ایل میں ضم بھی ہوجاتی ہے۔ پی ایچ پی کی اکثر سکرپٹس ہیک زبان میں بھی درست کام کرتی ہیں، تاہم پی ایچ پی کے کم استعمال ہونے والی خصوصیات کو ہیک معاونت فراہم نہیں کرتی۔

زبان کی نحو 
ہیک سکرپٹ کا بنیادی خاکہ معمولی تبدیلیوں کے ساتھ پی ایچ پی سکرپٹ کی طرح ہی ہوتا ہے۔ ہیک فائل کا آغاز <?hh سے ہوتا ہے، جبکہ پی ایچ پی سکرپٹ کا آغاز <?php سے ہوتا ہے۔

<?hh
echo 'Hello World';

درج بالا سکرپٹ چلنے کے بعد براؤزر میں ذیل کے نتائج دکھائے گی:

Hello World

یہاں ایک انتہائی ضروری بات یاد رکھنے کی ہے کہ پی ایچ پی کی طرح ہیک زبان میں ہیک اور ایچ ٹی ایم ایل کوڈ کو ضم نہیں کیا جاسکتا۔ عموما پی ایچ پی اور ایچ ٹی ایم ایل کو ایک ہی فائل میں اس طرح ضم کیا جاتا ہے:

<html>
 <head>
 <title>PHP Test</title>
 </head>
 <body>
 <!-- hh and html do not mix -->
 <?php echo '<p>Hello World</p>'; ?> 
 </body>
</html>

اس طرز کی کوڈنگ کو ہیک معاونت فراہم نہیں کرتی۔

فنکشنز 
ہیک زبان ان تمام اقسام کی سہولت فراہم کرتی ہے جن کے ذریعہ فنکشن آرگیومنٹس (function arguments) اور فنکشن کی ریٹرن ویلیوز (function return values) کو مختص کیا جاتا ہے۔ ہیک میں متعدد اقسام کے فنکشنز ذیل میں ملاحظہ کریں:

<?hh
// Hack functions are annotated with types.
function negate(bool $x): bool {
 return !$x;
}

مزید دیکھیے 
 کے پی ایچ پی
 پیروٹ ورچول مشین
 پراجیکٹ زیرو

حوالہ جات

بیرونی روابط 
 
 Official tutorial
 Hack language reference
 Facebook Q&A: Hack brings static typing to PHP world
 Full presentation on "Hack Dev Day"

2014ء کے سافٹ ویئر
اسکرپٹنگ زبانیں
پروگرامنگ زبانیں
پی ایچ پی سافٹ ویئر
فیس بک
ڈائنامکلی تحریر شدہ پروگرامنگ زبانیں
ویکی ڈیٹا سے مطابقت رکھنے والی مختصر تفصیل