زبان های برنامه نویسی Functional (بخش آخر)
4- Elm
یکی از زبانهای جدیدترِ این لیست است، elm یکی از زبانهای برنامه نویسیِ functional است که توسط Evan Czaplicki در سال 2012 طراحی شده است. این زبان در بین طراحان و توسعه دهندگان وب بخصوص برای ساخت واسط کاربری محبوب است. برخلاف دیگر زبانهای برنامه نویسیِ این مقاله، elm از Type checking استاتیک استفاده میکند. این موضوع کمک میکند تا وقفهِ زمان اجرا نداشته باشیم و در عوض در زمان کامپایل، error ها را گرفته و نشان میدهد. این بدان معنیست که برای کاربران error کمتری نمایش داده خواهد شد که امتیاز بزرگی است. کامپایلرِ زبان برنامه نویسی elm کدهای HTML، CSS و جاوااسکریپت را شناسایی میکند. به همان طریقی که در بخش دوم بیان شد و شما میتوانستید با استفاده از زبان clojure برنامههایی بنویسید که روی جاوا اجرا شوند، میتوانید اپلیکیشن هایی با استفاده از کتابخانههای جاوااسکریپت در elm بنویسید. یکی از تفاوتهای بزرگ elm و زبانهای برنامه نویسیِ دیگری که در اینجا اشاره شد، عدم وجود توابع عمومیِ filter()، map() و توابع مشابه است. در عوض این توابع را میتوان با انواع دادهای مانند List.map یا Dict.map تعریف کرد.
5- Haskell
این زبان یکی دیگر از زبانهای خالصِ برنامه نویسیِ functional است که Type Checking استاتیک دارد. برخلاف زبان مورد قبل، haskell مدت بیشتری از زمان اختراعش میگذرد. اولین ورژن از این زبان برنامه نویسی در سال 1990 طراحی شد. آخرین استاندارد این زبان، haskell 2010 است، در حالی که ورژن بعدی برای سال 2020 برنامه ریزی شده است. همانگونه که قبلاً هم اشاره کردیم، طبیعتِ خالصِ برنامه نویسی functional زبانِ Haskell به این معنیست که در طراحی این زبان برنامه نویسی، توابع نباید اثرات جانبی داشته باشند. به همین علت، این زبان برنامه نویسی برای حل مسائل جهان واقع مناسب است، برخلاف آنچه که در دانشگاهها در مورد ریشههای زبان برنامه نویسیِ functional گفته میشود. علی رغم نبود محبوبیت اصلی برای این زبان، haskell در برخی از پروژههایی که استفاده گستردهای دارند به کار گرفته شده است. مدیریت پنجره Xmonad، تمام و کمال به زبان Haskell نوشته شده است. Pandoc که انواع مختلف نشانه گذاریها به فرمتهای دیگر و از فرمتهای دیگر به هم تبدیل میکند از این زبان برنامه نویسی استفاده کرده است. توابع استاندارد ()map()، filter()، reduce و دیگر توابع higher-order هم در این زبان وجود دارند که به شما اجازه میدهند مفاهیم جاوااسکریپت یا پایتون را در haskell داشته باشید. اگر میخواهید در مورد زبان haskell بیشتر یاد بگیرید، مقاله Learn You a Haskell for Great Good نقطه شروع مناسبی است.
آیا تازه وارد برنامه نویسی شدهاید؟
برخی از اصطلاحات و زبانهای برنامهنویسی، اگر برنامهنویس فصلی نباشید ممکن است ترسناک به نظر برسند. این موضوع خوبی است چراکه دانستنِ اینکه چه چیزی نمیدانید از اولین قدمها برای تبدیل به یادگیرنده بهتر شدن، است. برخی از زبانهای بالا برای افراد تازهکار بهتر از بقیه هستند.