http://www.ictnews.ir/
http://ictnews.ir
آرشیوی
زبان‌هایی برای برنامه‌نویسی (قسمت دوم)
زبان‌هایی برای برنامه‌نویسی (قسمت دوم)

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

در ادامه دیگر زبان‌های برنامه‌نویسی را معرفی می‌کنیم.
زبان برنامه‌نویسی Lua
نام این زبان به‌معنای ماه (Moon) است و یک زبان سبک‌وزن (Light Weight) چندپارادایمی است که از ابتدا برای اسکریپت‌نویسی خلق شده بود. این زبان توسط روبرتو لروسالیمسکی (Roberto Lerusalimsky) در سال ۱۹۹۳ و با استفاده از زبان C در دانشگاه MIT توسعه داده شد. زبانی که از C++، SNOBOL، Scheme و Modula الهام گرفته شده است. برخی از ویژگی‌های این زبان مانند Dynamic Strong Dock Typing، داشتن ساختار برنامه‌نویسی شی‌‌گرا، رویه‌ای و دستوری و ... باعث شده است تا Lua زبان اسکریپت‌نویسی تابعی خوش‌آینده‌ای به‌نظر برسد، به‌خصوص اینکه یک API ساده زبان C را نیز برای توسعه‌دهندگان فراهم می‌آورد.
زبان برنامه‌نویسی Haskell
تب زبان‌های تابعی بعد از انتشار زبان Miranda در سال ۱۹۸۵ یکدفعه اوج گرفت و علاقه به داشتن یک زبان از پایه تابعی به‌سرعت همه‌گیر شد. در سال ۱۹۹۰ سایمون پیتون جونز (Simon Peyton Jones)‌ و لنارت آگوستسون (Lennart Augestsson) و همکاران‌شان با الهام از زبان‌های Cofer، LISP، Scheme و ML زبان برنامه‌نویسی Haskell را با هدف داشتن یک زبان برنامه‌نویسی همه‌منظوره تابعی با ویژگی‌هایی نظیر non-Strict Semantics و Strong Static Types طراحی کردند. این زبان که ایده اولیه آن در کنفرانس زبان‌های برنامه‌نویسی تابعی و معماری کامپیوتر در دانشگاه پورتلند اورگون مطرح شده بود، نام خود را از اسم دانشمند و فیلسوف اهل منطق هسکل کوری (Haskell Curry) دریافت کرده است، به‌دلیل ویژگی‌های نامتعارف بسیار زیادی که در هنگام توسعه آن پیاده‌سازی شده بودند امروزه به‌عنوان پدر بسیاری از زبان‌های تابعی دیگر شمرده می‌شود.
زبان برنامه‌نویسی Rust
Rust، زبانی بسیار جوان است. در حقیقت هنوز به‌طور کامل در نسخه نهایی منتشر نشده است. تنها همین دو سه ماه پیش در سال ۲۰۱۴ بود که نسخه پایدار آن با کد Nightly منتشر شده است. اما بنیاد موزیلا پشت طراحی آن قرار دارد و با قابلیت‌هایی که نسخه‌های اولیه آن ارایه کرده‌اند، آینده روشنی را برای آن می‌توان انتظار داشت. این زبان با هدف ساختن زبانی همه‌منظوره و چندپارادایمی که کامپایل‌شونده باشد و خروجی آن از قابلیت‌های امنیت و همروندی بالایی برخوردار باشد، توسط بنیاد تحقیقاتی موزیلا توسعه داده می‌شود. اما تاریخچه Rust کمی طولانی‌تر از چند ماه گذشته است. Rust برای اولین بار در سال ۲۰۱۰ و به‌عنوان یک پروژه شخصی توسط گریدون هوآر (Graydon Hoare) متولد شد و همان سال از کامپایلری که به زبان Ocaml نوشته شده بود به کامپایلری که خودش هم با Rust نوشته شده بود، انتقال يافت. اولین انتشار نسخه آلفای آن در ۲۰۱۲ منتشر شد و آخرین نسخه قبل از انتشار نسخه نهایی شماره یک، در اکتبر ۲۰۱۴ بود. زبان با مجوزهای MIT و Apache و با دریافت بازخوردهایی از توسعه‌دهندگان پراکنده در سراسر جهان که در اجتماع کاربری آن فعالیت می‌کنند، پیشرفت می‌کند. در واقع مانند بسیاری از زبان‌های برنامه‌نویسی از آزمایشگاه‌های تحقیقاتی بیرون نیامده است.
زبان برنامه‌نویسی Go
واقعیت این است که C اگرچه قدرتمند، اما پیر است. کامپایلرهای متنوع موجود، قابلیت حمل کدهای زبان را کاهش داده‌اند و معماری کامپیوترهایی که C برای آنها طراحی شده بود به‌شدت تغییر کرده است. حالا دوران کامپیوترهایی با پردازشگرهای چندهسته‌ای است که انتظار می‌رود تعداد این هسته‌های پردازشی بر اساس قانون مور در سال‌های آتی به شکل تصاعدی افزایش هم پيدا كند. اکنون دنیای کامپیوترهای با آدرس‌دهی ۶۴ را شاهد هستیم و به‌زودی به دوران سیستم‌های ۱۲۸ بیتی وارد خواهیم شد. دنیای جدید کامپیوترها زبانی مانند C می‌خواهد که بر دنیای برنامه‌نویسی سیستمی پادشاهی کند و یک نگاه منصفانه به همه تلاش‌های گذشته برای ساختن جانشین‌های زبان C و تماشای شکست آن تلاش‌ها به‌خوبی گویای این مساله است که C به‌راحتی تخت پادشاهی خود را به رقیب واگذار نخواهد کرد.
با این‌همه Go آمده است که C قرن بیست و یکم باشد و Go از طرف همان کسانی عرضه شده است که روزگاری زبان C و یونیکس را عرضه کرده بودند. Go در سال ۲۰۰۹ و به سفارش گوگل متولد شد و در سال ۲۰۱۲ اولین نسخه پایدار آن تحت مجوز BSD انتشار يافت.
این زبان به همان راهی می‌رود که روزگاری C رفت. برای طراحی قسمت‌های مختلف زبان وقت زیادی صرف شده، هر چیز در اوج سادگی قرار گرفته، بسیاری از قابلیت‌های زبان‌های مدرن مثل برنامه‌نویسی تابعی و شی‌‌گرایی حذف شده است. Go یک زبان شی‌‌گرا نیست و این یک نقطه ضعف برای یک زبان برنامه‌نویسی نیست. واقعیت این است که دوران تقدس شی‌‌گرایی رو به پایان است و این را طراحان Go به‌خوبی می‌دانند. Go زبان کوچکی است درست مانند C، تنها اجزای ضروری را در خود جای داده است و دایره واژگان کلیدی کوچکی دارد، باز هم مانند C. همه تمرکز روی همروندی (Concurrency) و مدیریت جایگزین‌های کلاس‌های شی‌گرا (Go-routines) بوده است و کامپایلری منعطف دارد، باز هم درست مانند C ‌و یک کتابخانه کامل. اما Go هم مانند C از رابط‌های گرافیکی کاربری پشتیبانی نمی‌کند، اما چه کسی گفته نمی‌توان برای برنامه‌های نوشته‌شده با آن رابط گرافیکی داشت. Go ساخته شده تا پردازش‌های موازی همروند را روی خوشه‌های توزیع‌شده از پردازشگرهای چندهسته‌ای به‌صورت دینامیک در زمان اجرا مدیریت کند، اما نیاز به مواردي نظیر JVM زبان برنامه‌نویسی JAVA ندارد، چون مانند جاوا مفسری نیست. در یک کلام Go زبان آینده است. مواردی که در این شماره و شماره‌های گذشته بر شمرده شدند، تنها ۱۲ نمونه از صدها نمونه از زبان‌های برنامه‌نویسی هستند که توسط جامعه نرم‌افزارهای آزاد/متن‌باز توسعه یافته و به دنیا عرضه شده‌اند. توسعه برنامه‌های کاربردی و سیستمی در دنیای نرم‌افزارهای آزاد، تکرار طاقت‌فرسای بلوک‌های پیچیده کدهای نامفهوم و كلنجار رفتن با محیط‌های توسعه محدود و غیرکاربردی نیست. دنیای برنامه‌نویسی آزاد، تجربه‌ای است از آزادی در انتخاب ابزارهای هیجان‌انگیز و دنیایی است سرشار از شگفتی و موضوعات جدید برای یادگرفتن و شکوفا کردن خلاقیت عاشقان کامپیوترها و فرصتی برای کشفی تازه در هر لحظه و هر روز.


مطالب مرتبط
نظرات کاربران

ارسال نظر در مورد این مطلب:
نام شما : *
آدرس ایمیل : *
متن نظر : *
کد امنیتی :
Refresh Code

لطفا عبارت درج شده در تصویر بالا را در کادر زیر بنویسید

*
 


کليه حقوق اين سایت متعلق به ICTNEWS است.
انتشار مطالب با ذکر منبع و لینک به سایت مجاز است.
تماس با ما: 88946450  فرم تماس با ما
این پرتال قدرت گرفته از :
سیستم مدیریت پرتال و خبرگزاری دیاسافت
ارتباط با ما : 1000030200