انجمن انفورماتیک ایران انجمن انفورماتیک ایران انجمن انفورماتیک ایران
گزارش کامپیوتر شماره 256 مهر و آبان 1400 منتشر شد. يکشنبه  ١٣/٠١/١٤٠٢ ساعت ٠٨:٠٣
 

10 زبان برنامه‌نویسی نوپدید

ترجمۀ: ابراهیم نقیب‌زاده مشایخ
پست الکترونیکی:mashayekh@isi.org.ir

 


 

با وجودی که هنوز زبان‌هایی چون جاوا، C و C++ طرفداران زیادی دارند و اغلب برنامه‌ها به این‌گونه زبان‌ها نوشته می‌شوند امّا زبان‌های برنامه‌نویسی تازه‌ای نیز از راه رسیده‌اند که طرفداران خاص خود را پیدا کرده‌اند.
در زیر، 10 زبان برنامه‌نویسی تازه که بازار نسبتاً داغی پیدا کرده‌اند معرفی شده‌اند:

  1. Ceylon 1.0.0
  2. شباهت با: جاوا (امّا نسخه‌ای از جاوا نیست)
    حق امتیاز: Apache v2
    معرفی کلّی: یک روز تولیدکنندگان نرم‌افزار در شرکت ردهت دور هم جمع شدند و گفتند «چه خوب می‌شد اگر جاوا این کار را نمی‌کرد و فقط آن کار را می‌کرد.» پس از چند جلسه از این دست، زبان سیلان زاده شد. این زبان بر روی JVM (ماشین مجازی جاوا) و Node.js اجرا می‌شود امّا بسیاری از نکات منفی جاوا را کنار گذاشته است. به جای XML از قواعد نحوی توصیفی شبیه JSON برای داده‌های با ساختار درختی استفاده می‌کند، دارای نوع‌بندی ایستا و یک سیستم پودمانی است و از برخی ساختارهایی که در جاوا وجود ندارند مانند دنباله ، اشتراک و اجتماع پشتیبانی می‌کند.

  3. Clojure 1.6
  4. شباهت با: لیسپ
    حق امتیاز: مجوّز عمومی اکلیپس 0/1
    معرفی کلّی: این زبان را می‌توان به صورت زبان لیسپ برای JVM در نظر گرفت، یعنی بر روی JVM اجرا می‌شود و دستیابی کامل به چارچوب‌ها و روال‌های کتابخانه‌ای جاوا دارد. پدیدآورندگان این زبان آن را به عنوان ابزاری برای برنامه‌نویسی تابعی که همچنین برای همروندی نیز طراحی شده، تبلیغ می‌کنند، به عبارت دیگر، زبانی است که برای سیستم‌های چندهسته‌ای و کاربردهای کاملاً توزیع شده، بسیار مناسب است. برنامه‌نویسانی که دارای پیش زمینۀ ریاضی یا علوم باشند از این زبان خیلی خوششان خواهد آمد. اما اکنون که بُن‌انگارۀ برنامه‌نویسی تابعی در حال سربرافراشتن است، باید نگاه دقیق‌تری، فراتر از علوم محاسباتی، به این زبان انداخت.

  5. 3.3.3Egison
  6. شباهت با: لیسپ
    حق امتیاز: ام‌آی‌تی
    معرفی کلّی: اگیسان یک زبان تابعی است که هدفش انجام تطابق الگو در محدودۀ وسیعی از نوع‌های داده‌ها ست. ساتوشی اِگی، پدیدآورندۀ اگیسان، ادعا می‌کند که تطابق الگو در زبان‌های برنامه‌نویسی موجود تنها هنگامی که داده‌ها در شکلی ساختیافته مانند لیست ذخیره شده باشند، پشتیبانی می‌شود. زبان اگیسان به این منظور طراحی شده است که اجازه دهد تا تطابق الگوها به شیوه‌های مختلف براساس نوع‌های داده‌ها (مثلاً لیست‌ها در مقابل مجموعه‌ها) نشان داده شوند، الگوهای غیرخطی مانند وقوع یا رویداد چندگانۀ یک متغیر در یک الگو در نظر گرفته شود، و توابعی ایجاد کرد که هم الگوها را بگیرند و هم بازگردانند.

  7.  2.2Groovy
  8. شباهت با: جاوا
    حق امتیاز: 2.0 Apache License
    معرفی کلّی: زبان گرووی را می‌توان «جاوا پلاس» نامید زیرا اساساً توسعۀ نحوی جاواست که بر روی JVM اجرا می‌شود و می‌تواند از رده‌های کتابخانه‌ای جاوا استفاده کند. امّا گرووی پر است از امکانات و ویژگی‌هایی که به طور ذاتی در جاوا یافت نمی‌شود: عمدتاً نوع‌بندی ایستا و پویا، پشتیبانی از عبارت منظم و نیز عملگر «?» برای بررسی اشیاء تهی بدون نیاز به استفاده از چندین عبارت با قواعد نحوی پیچیده. برخی از وبگاه‌های معروف مانند LinkedIn و Wired از گرووی استفاده کرده‌اند و IDEهای (محیط یکپارچه تولید) معروف مانند اکلیپس و IntelliJ از آن پشتیبانی می‌کنند.

  9.  1.0Hack
  10. شباهت با: پی‌اچ‌پی
    حق امتیاز: PHP/Zend license
    معرفی کلّی: فیسبوک که پیش از این با HHVM گونۀ خاص خود از پی‌اچ‌پی را ساخته بود اینک یک گام جلوتر گذاشته و زبان هک را پدید آورده است. این زبان با حفظ سهولت استفاده و چرخۀ تولید سریع پی‌اچ‌پی، نوع‌بندی اشیاء ایستا و عبارت‌های لاندا را به آن افزوده و به منظور امنیت و دوام بیشتر به زبان OCaml نوشته شده است. بیشتر کدهای پی‌اچ‌پی موجود در زبان هک اجرا می‌شوند و به لحاظ نظری، مهاجرت از پی‌اچ‌پی به هک را آسانتر می‌کنند، امّا در حال حاضر، خارج از محیط فیسبوک، به سختی می‌توان انتظار داشت که هک جای پی‌اچ‌پی را بگیرد.

  11. Jeeves
  12. شباهت با: ML ، امّا مستقیماً به زبان اسکالا و پایتون پیاده‌سازی شده است.
    حق امتیاز: ام‌آی‌تی
    معرفی کلّی: جیوز پدید آمده است تا به برنامه‌نویسان در یک چیز کمک کند: تقویت سیاست‌های محرمانگی برای چگونگی انتقال داده‌ها درون یک کاربرد. این سیاست‌ها به ایجاد و مدیریت جریان داده‌ها مستقل از خود برنامه، کمک می‌کند. با توجه به اهمیتی که امنیت داده‌ها در برنامه‌نویسی یافته است زبان‌هایی مانند جیوز احتمالاً در آینده توجه بیشتری را به خود جلب خواهند کرد.

  13. Julia 0.2.1
  14. شباهت با: پایتون
    حق امتیاز: ام‌آی‌تی
    معرفی کلّی: زبان جولیا برای رایانش علمی و فنی و اجرای عملیات بسیار زیاد ریاضی در مدّت زمان کوتاه طراحی شده است. این زبان به کمک یک مترجم بر پایۀ LLVM به زبان ماشین ترجمه می‌شود وبر اساس برخی هم‌سنجی‌ها از متلب ، متمتیکا و R که آن‌ها نیز برای کارهای علمی و ریاضی پدید آمده‌اند، با اختلاف زیادی بهتر عمل می‌کند. جولیا از یک کلان تابع شبه لیسپ برای توسعۀ کارکرد زبان پشتیبانی می‌کند. این زبان می‌تواند به طور اختیاری از کتابخانه‌های علمی و ریاضی زبان پایتون نیز استفاده کند.

  15. Nimrod 0.9.2
  16. شباهت با: پایتون، پاسکال
    حق امتیاز: ام‌آی‌تی
    معرفی کلّی: این زبان در صفحۀ آغازه‌اش چنین توصیف شده است: «یک زبان برنامه‌نویسی امری با نوع دادۀ ایستا که بدون هیچگونه تأثیری بر کارایی زمان اجرا، تلاش می‌کند حداکثر قدرت را در اختیار برنامه‌نویس قرار دهد.» این زبان به زبان C (و یا در صورت تمایل به C++ و Objective-C ) ترجمه می‌شود و به ماشین مجازی نیاز ندارد. پدیدآورندۀ آن هدفش این بوده که از این زبان برای برنامه‌نویسی سیستم استفاده شود زیرا می‌تواند مستقیماً به سخت‌افزار دسترسی داشته باشد و دارای اشاره‌گرهایی برای مدیریت دستی حافظه می‌باشد.

  17. OCaml 4.01
  18. شباهت با: زبان ML برای اثبات قضایا و تا حدودی لیسپ
    حق امتیاز: مجوّز عمومی Q
    معرفی کلّی: اغلب زبان‌های برنامه‌نویسی عموماً در یکی از این سه رده قرار می‌گیرند: تابعی (لیسپ)، امری (C ) یا شیءگرا (جاوا). زبان OCaml همۀ این چیزها را دارد و برخی از پروژه‌های اخیر آن، موج‌آفرین بوده‌اند مانند زبان هک (پدید آمده توسط فیسبوک که قبلاً ذکر شد) و سیستم عامل Xen . طراحی نوع دادۀ ایستای آن ممکن است به نسبت زبان‌هایی که قابلیت نوع‌بندی پویا دارند ضعیف‌تر باشد امّا یک نشانه برای پی‌بردن به اهمیت و ارزش آن این است که چگونه زبان‌های دیگری که در حال شکوفایی هستند از آن استفاده کرده‌اند: برای نمونه، F# مایکروسافت.

  19. Racket 6.0
  20. شباهت با: لیسپ، اسکیم
    حق امتیاز: LGPL
    معرفی کلّی: این زبان، گونه‌ای از زبان اسکیم است که آن نیز خود گونه‌ای از زبان لیسپ می‌باشد. زبان رکت به این منظور طراحی شده است که از آن برای تولید زبان‌های دیگر استفاده شود امّا خودش نیز به قدر کافی ساده و قابل فهم است که بتواند برای برنامه‌نویسی کاربردی سنتی مورد استفاده قرار گیرد.

مرجع
*10 Hot Programming Languages That Are on the Rise, Serdar Yegulalp, InfoWorld April 17, 2014.