آشنایی با تفاوت های Erlang و Haskell

مقدمه

سلام به همه پی وی لرنی های عزیز!
هاسکل Haskell یک زبان برنامه نویسی برای رایانه است.
ارلانگ Erlang مشابه هاسکل است که یک زبان برنامه نویسی کاربردی محسوب می شود که دارای یک محیط زمان اجرا است
ارلانگ پشتیبانی کاملی از استحکام ، همزمانی و توزیع دارد.
در این مقاله قرار است به آشنایی با تفاوت های Erlang و Haskell بپردازیم.

آشنایی با تفاوت های Erlang و Haskell

بیایید پیش از پرداختن به تفاوت های اساسی هاسکل و ارلانگ کمی با هر یک از آن ها بیشتر آشنا شویم.

هاسکل Haskell چیست؟

هاسکل یک زبان کاملاً استاتیک است که ماهیتی مادولار دارد و از آن استفاده چند منظوره می شود.
هاسکل به نام Haskell Brooks Curry نام گذاری شده است که کارهای او در ریاضیات نتیجه وضعیت امروز زبانهای کاربردی است.
هاسکل به عنوان یک زبان برنامه نویسی کاربردی به خصوص برای پردازش لیست و محاسبات نمادین ساخته شده است.
برنامه نویسی کاربردی شبیه به توابع در ریاضیات است ، از این رو می تواند اضافه و ضرب و غیره شود.
هاسکل به عنوان یک زبان کاربردی، به رایانه به جای گفتن “what to do“ و “how to do” می گوید “what it is”.
سایر زبانهای متعارف هاسکل به زبان استاتیک تایپ شده است و در آن توسعه دهنده دیگر لازم نیست که به mention کردن types ها برای همه متغیر های اعلام شده بپردازد.
از طرفی مادولار بودن هاسکل سبب مقرون به صرفه بودن آن شده است.

ارلانگ Erlang چیست؟

زبان ارلانگ  پشتیبانی کاملی از robustness و  robustness و distribution دارد.
در ارتباط با زبان های کاربردی دیگر، ارلانگ به جای اجرای expressions، در جایی که از توابع با استفاده از عبارات برای نتیجه گیری مقادیر اساسی استفاده می شود، در ارزیابی expressions را نیز نیز مورد هدف قرار می دهد.
ارلان گیک زبان منبع باز است.
این زبان به دلیل قابلیت ایجاد برنامه های قوی و کار بر روی رایانه های توزیع شده در یک شبکه، توسط برنامه نویسان بسیاری مورد استفاده قرار می گیرد.

مقایسه کلی

در ادامه  آشنایی با تفاوت های Erlang و Haskell جدولی ارائه شده است که بارزترین تفاوت های Erlang و Haskell را ارائه کرده است.

فاکتورهای کلیدیErlangHaskell
زبان کاربردی تایپ شده
ارلانگ یک زبان برنامه نویسی تایپ شده پویا است. این بدان معنی است که متغیر نوع خود را در زمان اجرا دریافت می کند.هاسکل یک زبان برنامه نویسی استاتیک است به این معنی که فرم متغیر در زمان تدوین شناخته شده می شود.
سینتکس
یادگیری سینتکس Typical آسان نیستیک سنینتکس Brief دارد که یادگیری آن آسان است.
سهولت یادگیری
یادگیری آسان در مقایسه با هاسکلیادگیری دشوار
موارد استفاده
راه حل های مبتنی بر real-timeمشکلات ریاضی محور
طراحی سیستم توزیع شده
از آنجا که از ویژگی های شگفت انگیزی مانند fault tolerance و  concurrency و غیره برخوردار است می توان آن را برای طراحی سیستم های توزیع شده استفاده کرد.برای طراحی سیستم های توزیع شده توصیه نمی شود.
رویکرد
کاملاً کاربردیرویکرد سنتی.
امکانات
Erlang دارای همزمانی، تحمل در برابر خطا، تایپ پویا قوی، تطبیق الگو، ارزیابی eager، مناسب برای مدیریت سیستم های توزیع شده و همچنین کار بر روی برنامه های real-time است.امکانات هاسکل شامل consist of lambda expressions، list comprehension، lazy evaluation، type classes, pattern matching و typed polymorphism است.
ارتباط بین موضوعات
ارلانگ فقط از یک مدل ارتباطی یعنی مدل ارسال پیام پشتیبانی می کند.در هاسکل ، ارتباط بین موضوعات از بسیاری جهات مانند Mvar ، انتقال پیام و غیره امکان پذیر است.
کارایی
Beam VM در ارلانگ از نظر پایداری بسیار مناسب است.کامپایلر GHC در هاسکل به در انجام کار و همچنین اجرای کامپایلر، عملکرد کمتری نسبت به ماشین مجازی Erlang دارد.

کلام آخر

در ایم مقاله به آشنایی با تفاوت های Erlang و Haskell پرداختیم.
ارلانگ و هاسکل ، هردو جوانب مثبت و منفی خود را دارند.
هاسکل صرفاً کاربردی، سنتی، تایپ شده از لحاظ آماری و ریاضی محور است و دارای سینتکس مختصری است.
ارلانگ به دلیل ویژگیهای خاصی مانند fault tolerance و  concurrency و غیره بر هاسکل برتری دارد و البته ویژگی های آن مناسب سیستم های توزیع شده است.

امیدوارم این مقاله برای شما مفید بوده باشد.
با پی وی لرن همراه باشید.

به اشتراک بگذارید