لطفا جاواسکریپت مرورگر خود را فعال سازید!

نحوه فعال سازی در کروم
  1. ابتدا باید اینکارو بگنید
  2. بعدش اونکارو
نحوه فعال سازی در فایرفاکس
  1. ابتدا باید اینکارو بگنید
  2. بعدش اونکارو
Nim: یک زبان برنامه‌نویسی جدید که بهترین‌های Python، Go و Rust را یک‌جا جمع کرده است!

Nim: یک زبان برنامه‌نویسی جدید که بهترین‌های Python، Go و Rust را یک‌جا جمع کرده است!

هرچه جلوتر می‌رویم، زبان‌های برنامه‌نویسی جدیدتری خلق می‌شوند که گاها غیرطبیعی هم به نظر می‌رسند، اما تا به حال فکر کرده‌اید که چه انگیزه‌ای پشت ‌آن‌ها است و چه چیزی باعث خلق زبان‌های برنامه‌نویسی جدید می‌شود؟ طبیعتاً علاوه‌ بر قابلیت زبان‌های دیگر، ویژگی‌های جدیدی هم معرفی می‌کنند و همین دلیل باعث می‌شود هرکدام از این زبان‌ها نیازهای مختلفی را برطرف کنند. این‌بار هم یک زبان برنامه‌نویسی جدید تحت عنوان «نمرود» به بازار عرضه شده است که توسعه‌دهندگان آن ادعا می‌کنند بهترین‌های زبان‌هایی همچون پایتون، راست و گو را یک‌جا جمع نموده‌اند؛ برای آشنایی با این زبان برنامه‌نویسی جدید، با سکان آکادمی همراه باشید.

زبان‌های برنامه‌نویسی جدیدتر مثل سوئیفت و گو با کار کردن بر روی نقاط ضعف زبان‌های قدیمی‌تر و رفع آن‌ها موفق به جذب توسعه‌دهندگان زیادی شده‌ اند! اما در این مقاله قصد داریم یک زبان برنامه‌نویسی جدید که نام عجیبی هم دارد را به شما معرفی کنیم، این زبان جدید Nimrod (نمرود) نام دارد!

Nim نسبتاً نوظهور از سال ۲۰۰۸ تا به امروز پیوسته در حال توسعه بوده است و شاید بهتر باشد بدانید که جدیدترین نسخهٔ این زبان ۰.۱۶.۰ است که ۸ ژانویه ۲۰۱۷ برابر با ۲۲ دی‌ ماه ۱۳۹۵ منتشر شده است. اگر کمی در زمینهٔ برنامه‌نویسی با زبان Python اطلاعات داشته باشید، احتمالاً سینتکس زبان برنامه‌نویسی نمرود شما را به یاد پایتون خواهد انداخت؛ علت آن‌ هم این است که زبان Nim هم مانند پایتون از سیستم کدنویسی بلاک‌بندی شده استفاده می‌کند (استفاده از Tab به جای پرانتز)، و این در حالی است که اشتراکات دیگری هم در سینتکس‌ این دو زبان می‌توانید پیدا کنید. نمونه سورس کد زبان برنامه‌نویسی نمرود:


# compute average line length
var
  sum = 0
  count = 0

for line in stdin.lines:
  sum += line.len
  count += 1

echo("Average line length: ",
  if count > 0: sum / count else: 0)

این زبان دقیقاً همانند زبان‌های Go و Rust، از Strong Types (حساس به نوع متغیر) استفاده می‌کند. نیم یک زبان برنامه نویسی شئ‌گرا است، با وجود این، ساختار این زبان طوری است که وراثت از درجهٔ اهمیت بالایی در آن برخوردار است. Nim که با نام رسمی Nimrod (نمرود) شناخته شده است، خودش را به عنوان یک زبان برنامه‌نویسی دستوری و اصطلاحا Statically Typed معرفی کرده است که بدون کارایی در زمان اجرا، کدها نهایت قدرت را به برنامه‌نویس می‌دهد! اما این جمله به چه معنا است؟ به عبارت دیگر، زبان برنامه‌نویسی Nim تمرکز خود را بر روی مکانیسم‌های مختلفی گذاشته است که بیشتر به کامپایل کردن کدها مربوط می‌شود؛ یک مدل از بازیافت حافظه (نوعی مدیریت حافظهٔ خودکار) و سامانهٔ Soft Real-Time که بر روی Thread Local Heaps پشتیبانی می‌شود. همچنین Nim تمرکز خود را بر روی TLH و پیغام‌هایی که بین رشته‌ها عبور می‌کنند گذاشته است به طوری که هرکدام از آن‌ها دارای یک بازیافت حافظه اختصاصی هستند. 

اگر بنچمارک برای‌تان خیلی مهم است، باید بدانید که نمرود قابل مقایسه با زبان سی است! کامپایلر این زبان به‌طور خودکار کدهای زبان سی را تولید می‌کند. زبان نیم با کمک کامپایلرهای مختلف سمت سرور، می‌تواند جاوااسکریپت، آبجکتیو‌سی، سی‌پلاس‌پلاس را هم به عنوان ورودی دریافت کند. لایبرری و کامپایلر Nim دارای لایسنس MIT است. این زبان همچنین امکان استفاده از هر لایسنسی را برای برنامه‌ٔهایی که با استفاده از Nim می‌نویسید را به شما می‌دهد.

آیا با این توصیفات، می‌توانیم انتظار پیشرفت و رشد چشمگیر این زبان را در سال‌های آتی داشته باشیم؟ نظرات خود را در مورد Nimrod با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید! 

منبع