معرفی زبان برنامه‌نویسی Crystal

معرفی زبان برنامه‌نویسی Crystal

Crystal یک زبان برنامه‌نویسی جدید است که سینتکس آن تا حد بسیار زیادی از زبان برنامه‌نویسی Ruby الهام گرفته شده است. لذا اگر از دولوپرهای روبی هستید، خیلی سریع کدنویسی با این زبان را یاد خواهید گرفت.

یکی از چیزهایی که مد نظر توسعه‌دهندگان زبان برنامه‌نویسی Crystal بوده است، تمرکز روی راندمان دولوپر، امنیت برنامه و افزایش سرعت است. این زبان کاملاً OOP (شیئ‌گرا) است و کدهایی که دولوپرها با استفاده از زبان برنامه‌نویسی Crystal می‌نویسند به زبان ماشین (همان ۰ و ۱) تبدیل شده و با توجه به اینکه بسیاری از کارها در زمان کامپایل شدن صورت می‌گیرد، سرعت برنامه‌های نوشته شده با این زبان بالا خواهد بود و همین سرعت بالا، زبان برنامه‌نویسی کریستال را به گزینهٔ خوبی برای برنامه‌نویسی مبدل می‌سازد (به طور کلی منظور از کامپایل شدن، تبدیل کدها به زبان قابل فهم توسط سیستم است). به عنوان نمونه کد Hello World در زبان برنامه‌نویسی کریستال خواهیم داشت:

puts "Hello world!"

این زبان به هیچ وجه روی یک VM (ماشین مجازی) اجرا نمی‌شود بلکه اصطلاحاً از چیزی تحت عنوان LLVM برای اجرای آن استفاده می‌گردد. علاوه بر این، امکانی نیز در این زبان برنامه‌نویسی برای دولوپرها فراهم شده تا بتوانند اسکریپت‌های نوشته شده به زبان C را نیز با این زبان ادغام کنند و شاید یکی از دلایلی که چنین قابلیتی در زبان کریستال فراهم شده، سرعت بالای زبان برنامه‌نویسی C در اجرای کدها است.

کریستال یک زبان اصطلاحاً Statically Typed است و از همین روی، جلوی بسیاری از ارورها در حین کامپایل برنامه‌ گرفته خواهد شد (همچنین در حین کامپایل، کلیهٔ رفرنس‌ها به مقادیر Null هم مشخص خواهند شد). نکتهٔ دیگری که در مورد دیتاتایپ‌های این زبان وجود دارد این است که هرگز نیازی به مشخص‌سازی تایپ (نوع) داده‌ها در این زبان نیست چرا که این کار به صورت خودکار انجام می‌شود:

def shout(x)
  # Notice that both Int32 and String respond_to `to_s`
  x.to_s.upcase
end

foo = ENV["FOO"]? || 10

typeof(foo) # => (Int32 | String)
typeof(shout(foo)) # => String

همچنین این زبان امکان کدنویسی Concurrent (هم‌زمان) را هم به دولوپرها می‌دهد که این مهم از طریق قابلیتی تحت عنوان Fiber فراهم شده است.