زبان برنامه نویسی Hack

زبان برنامه نویسی Hack چیست؟

فهرست مطالب

Hack یک زبان برنامه نویسی است که برای HHVM توسعه یافته و به صورت کامل با PHP سازگار است. این زبان برنامه نویسی پیوسته در تلاش است تا توسعه سریع را با نظم و امنیت تایپ ایستا (Static Typing) ترکیب کند و ویژگی‌های مدرن دیگری که در زبان‌های برنامه نویسی جدید می‌بینیم، ارائه دهد. از زبان برنامه نویسی Hack به صورت گسترده در فیس بوک استفاده می‌شود و یک تجربه کاربری فوق العاده را رقم زده است. بیایید تا با این زبان برنامه نویسی بیشتر آشنا شویم.

داستان شکل گیری زبان برنامه نویسی Hack

برنامه نویسان PHP روزانه با چالش‌هایی مواجه هستند که گاهی پیچیده یا زمان‌برند. به عنوان مثال، فراخوانی یک متد روی یک شیء خالی (null) می‌تواند باعث ایجاد خطایی شود که تنها در زمان اجرا مشاهده می‌شود. یا مثلا استفاده از یک API پیچیده ممکن است حتی با درک مفهومی از آن، زمان زیادی برای یافتن نام دقیق متدها در مستندات صرف کند.

در مقیاس فیس بوک، جایی که هزاران مهندس روزانه دوبار کد جدید منتشر می‌کنند، چنین کندی‌هایی می‌تواند مشکلات جدی ایجاد کند. پیش از توسعه Hack، این شرکت از زبانی ساده با بازخورد سریع استفاده می‌کرد. اما نیاز به ابزاری بود که بتواند خطاهای رایج را پیش از اجرا تشخیص، سرعت توسعه را حفظ و سرمایه‌گذاری روی PHP را نیز محافظت کند. امکاناتی مانند تحلیل بهتر کد و تکمیل خودکار (auto-complete) می‌توانست بهره وری توسعه دهندگان را افزایش دهد.

به طور سنتی، زبان‌های دینامیک سرعت توسعه بالایی دارند اما قابلیت شناسایی زودهنگام خطا و تحلیل سریع کد، به ویژه در پروژه‌های بزرگ، محدود است. در مقابل، زبان‌های استاتیک امنیت بیشتری ارائه می‌دهند اما سرعت تکرار (iteration) را کاهش می‌دهند.

Hack با هدف یافتن نقطه تعادل بین این دو نوع زبان توسعه داده شد و ترکیبی از بهترین ویژگی‌های زبان‌های دینامیک و استاتیک را ارائه می‌دهد. به طوری که می‌تواند برای پروژه‌های کوچک تا بزرگ ارزشمند باشد.

زبان Hack بر بستر HHVM (HipHop Virtual Machine) اجرا می‌شود. HHVM یک کامپایلر JIT (Just-In-Time) است؛ بدین معنا که کد Hack در زمان اجرا به کد ماشین کامپایل شده و سپس اجرا می‌شود. بنابراین Hack را می‌توان زبانی کامپایلری با رویکرد JIT دانست، نه صرفا تفسیری مانند PHP سنتی.

معرفی زبان Hack

Hack زبانی است که از PHP ساخته شده و بسیاری از فایل‌های PHP را بدون تغییر پشتیبانی می‌کند. مهم‌ترین ویژگی آن تایپ ایستا تدریجی است. به این معنا که می‌توان بخشی از کد را با تایپ مشخص نوشت و بخش دیگر را پویا نگه داشت. این یعنی توسعه سریع PHP با ایمنی و قابلیت تشخیص خطاهای زودهنگام ترکیب شده است.

Hack امکانات مفیدی مثل موارد زیر دارد:

  • Generics و Nullable Types برای مدیریت بهتر داده‌ها
  • Collections به جای آرایه‌های معمولی با توابع آماده مثل map و filter
  • Lambda Expressions برای نوشتن کد کوتاه و خوانا
  • بررسی نوع در زمان اجرا برای افزایش ایمنی و بهینه سازی

همه این‌ها بدون تغییر حس و تجربه PHP و با هدف افزایش بهره وری توسعه دهندگان طراحی شده‌اند.

به عبارتی Hack یعنی ترکیب سرعت PHP با امنیت و نظم زبان‌های تایپ شده، مناسب برای پروژه‌های کوچک و بزرگ.

توسعه سریع با زبان برنامه نویسی Hack

توسعه دهندگان PHP معمولا بین کد و مرورگر به سرعت جا به جا می‌شوند و تغییرات را لحظه‌ای تست می‌کنند. بررسی نوع سنتی می‌تواند این چرخه سریع را کند کند، اما زبان برنامه نویسی Hack با یک نوع چکر محلی این مشکل را حل کرده است. این سرور همواره فایل‌ها را در حافظه نگه می‌دارد و به محض تغییر، خودش را به روز می‌کند. نتیجه؟ بررسی نوع در کمتر از 200 میلی ثانیه انجام می‌شود و به ندرت بیشتر از یک ثانیه طول می‌کشد، بدون اینکه سرعت توسعه کاهش یابد.

آیا مهاجرت کردن به زبان برنامه نویسی Hack درست است؟

مزایای تایپ ایستا و قابلیت Refactor در Hack وقتی بیشتر دیده می‌شود که بیشتر کد به آن تبدیل شود. اما لازم نیست همه فایل‌ها یک باره تغییر کنند؛ زبان برنامه نویسی Hack به گونه‌ای طراحی شده که می‌تواند به صورت تدریجی با فایل‌های PHP موجود هم زیستی کند. می‌توان برای یک تابع تایپ مشخص اضافه کرد و تابع دیگر را همچنان پویا نگه داشت. اگر تایپی مشخص نشده باشد، Type Checker آن را دینامیک در نظر می‌گیرد.

در فیس بوک، مهندسان به قدری از زبان برنامه نویسی Hack راضی بودند که بیشتر کدهای خود را داوطلبانه تبدیل کردند. همچنین ابزارهای اتوماتیک برای کمک به فرایند تغییر کد ساخته شد و این ابزارها به صورت متن باز منتشر شده‌اند.

چرا زبان برنامه نویسی Hack؟

تیم Hack اعلام کرده است که علاوه بر انتشار زبان Hack، ابزارهای تبدیل خودکار کد را نیز به صورت متن باز در اختیار جامعه توسعه دهندگان قرار داده است. آن‌ها این اقدام را تنها گام نخست می‌دانند و بر این باورند که زبان Hack به طور مداوم تکامل خواهد یافت تا فرآیند توسعه برای مهندسان فیس بوک و دیگر برنامه نویسان جهان ساده‌تر و کارآمدتر شود.

زبان Hack محدود به پروژه‌های عظیم نیست؛ حتی در پروژه‌های کوچک هم ویژگی‌هایی مانند تایپ ایستا، خطاهای شفاف و بازخورد سریع به توسعه دهندگان کمک می‌کند تا تجربه‌ای بهتر و مطمئن‌تر داشته باشند.

و در نهایت

Hack زبانی است که توسط فیس بوک و بر بستر HHVM ساخته شد و در سال 2014 معرفی گردید. این زبان در واقع یک دیالکت PHP است که به شکل متن باز و تحت مجوز MIT منتشر شده است. مهم‌ترین ویژگی این زبان استفاده از تایپ ایستای تدریجی (Gradual Typing) است؛ یعنی برنامه نویس می‌تواند هم از تایپ پویا و هم از تایپ ایستا در یک پروژه استفاده کند. نوع داده‌ها برای پارامترها، مقادیر بازگشتی توابع و ویژگی‌های کلاس قابل تعریف است، اما متغیرهای محلی همیشه به صورت خودکار استنتاج می‌شوند.

Hack به طور کامل با PHP سازگار طراحی شده و بسیاری از کدهای PHP بدون تغییر در آن قابل اجرا هستند، هرچند برخی قابلیت‌های کمتر استفاده‌شده PHP در Hack حذف شده‌اند. علاوه بر این، زبان Hack امکانات پیشرفته‌ای مثل Type Hints برای انواع پایه (int و string) و حالت Strict برای بررسی سخت گیرانه تایپ‌ها ارائه می‌دهد.

سوالات متداول

Hack یک زبان متن باز است که توسط فیس بوک و بر بستر HHVM توسعه داده شد. این زبان ترکیبی از سرعت توسعه PHP و ایمنی تایپ ایستا را ارائه می‌دهد.

خیر، اگرچه این زبان ابتدا در فیس بوک توسعه یافت، اما به صورت متن باز در دسترس همه برنامه نویسان جهان قرار دارد و می‌تواند در پروژه‌های متنوع استفاده شود.

زبان Hack عمدتا در زیرساخت فیس بوک و سرویس‌های وابسته مانند Messenger و اینستاگرام استفاده می‌شود و در گذشته نیز شرکت‌هایی چون Slack، Wikia و Etsy به صورت محدود از آن بهره گرفته‌اند.

منابع

  • https://engineering.fb.com/2014/03/20/developer-tools/hack-a-new-programming-language-for-hhvm/

به این مقاله امتیاز دهید!

میانگین امتیاز 0 / 5. تعداد رأی ها : 0

هنوز هیچ رأیی داده نشده. اولین نفر باشید!

اشتراک گذاری در تلگرام اشتراک گذاری در لینکدین اشتراک گذاری در ایکس کپی کردن لینک پست

و در ادامه بخوانید

اولین دیدگاه را اضافه کنید.

    برچسب ها

    برنامه نویسی