پیش از هر چیزی باید بگوییم که زبان برنامه نویسی وایپر به صورت Vyper نوشته میشود و نه به صورت Viper و جایگزینی برای زبان برنامه نویسی سالیدیتی نخواهد بود.
Vyper در حقیقت کلمه جایگزینی برای لغت منسوخ Serpent بوده و هماکنون این زبان برنامه نویسی آماده انتشار عمومی نیست و در حال حاضر در دست توسعه و گسترش بیشتر است. زبان برنامه نویسی وایپر به منظور گرفتن جای سالیدیتی ساخته نشده است بلکه تنها به خاطر تکمیل روند کاری این حوزه در کنار سالیدیتی در نظر گرفته شده است. دلیل این امر به اشتراک گذاری بایت کدهای یکسان و همانند سالیدیتی در راستای افزایش امنیت است.
آیا به زبان برنامه نویسی وایپر احتیاج داریم؟
با وجود تمام نقاط قوت و نکتههای مثبتی که تا کنون در مورد زبان برنامه نویسی وایپر مورد بررسی قرار گرفتهاند، برخی از افراد نیاز به زبان برنامه نویسی جدیدی برای نوشتن قراردادهای هوشمند را زیر سوال میبرند و سایرین معتقدند که اتفاقا باید توجه ویژهای به مشکلات موجود در حوزه امنیت معطوف شود.
زبان برنامه نویسی وایپر از نظر منطقی بسیار شبیه به سالیدیتی بوده اما از نظر ساختار سینتکس همانند زبان پایتون است. این امر بسیاری از الگوها یا همان پارادایمهای برنامه نویسی شیگرا را حذف میکند و به همین دلیل در زمینه برنامه نویسی، حوزه معاملات دیجیتال نیاز به تعریف پارادایمهای جدید دارد. همین ویژگی موجب از سر راه برداشتن قابلیت وراثت کلاس، اضافه بار توابع یا عملگرهای برنامه، بارگذاری بیش از اندازه اپراتور و توابع بازگشتی شده و از نظر فنی وجود هیچ یک از اینها برای ساختن یک زبان تورینگ کامل ضروری نیست.
آیا لازم است که ما زبان برنامه نویسی Vyper را به جای سالیدیتی بیاموزیم؟
جواب این سوال بسیار پیچیده است. اگر شما قصد دارید تا در این حوزه در اسرع وقت استخدام و مشغول به کار شوید، بهترین راه یادگیری سالیدیتی است. در حال حاضر زبانی که به صورت گسترده مورد حمایت و پشتیبانی برای نوشتن قراردادهای هوشمند است سالیدیتی بوده و زبانی بسیار منسجم، مستند و پایدار است. اگر در این زمینه با مشکلی مواجه شوید، انجمن و جامعه بزرگ زبان برنامه نویسی وایپر برای پشتیبانی کردن و راه انداختن شما و رفع مشکلتان در این حوزه فعال هستند.
اگر شما فردی هستید که از شجاعت لازم برای تجربه کردن یک زبان برنامه نویسی جدید برخوردار است و به ساده بودن کدی که مینویسید اهمیت نمیدهید، بهتر است از زبان برنامه نویسی وایپر استفاده کنید. این زبان، نسبتا جدید به حساب میآید و شما بدون داشتن پشتیبانی فضا و جامعه و مستنداتی که سالیدیتی در اختیارتان قرار میدهد میتوانید قراردادهای هوشمند ایمنتری ایجاد کنید.
افرادی که در زمینه برنامه نویسی در فضای پایتون تخصص دارند با زبان وایپر ارتباط بیشتری برقرار میکنند. زبان برنامه نویسی Vyper ویژگیهای بسیاری در راستای افزایش قابلیت آزموده شدن دارد. قراردادهای هوشمند باید تا حد امکان خوانا و ساده نوشته شوند و دلیل این امر، غیرقابل تغییر بودن چنین قراردادهایی است و در صورت بروز یک خطای کوچک و جزئی ممکن است فاجعههای مالی بزرگی در مقیاس گسترده پیش بیایند.
به دلیل وجود همین مسائل، زبان برنامه نویسی وایپر ویژگیهای خاصی را برای ارائه کردن مد نظر دارد:
- محدودیتها و چک کردن سرریز یا همان Overflow
- پشتیبانی اینتجرها یا همان اعداد صحیح علامت دار و تعداد نقاط ثابت اعشاری
- قابلیت تجزیه پذیری
- قابلیت تایپ قوی و قدرتمند
- کد کامپایلر مختصر و قابل درک
- پشتیبانی محدود از توابع خالص
۱۰ توصیه امنیتی که در توسعه یک قرارداد هوشمند اتریوم باید رعایت کنید!
وایپر جای سالیدیتی را میگیرد؟
اکثر توسعه دهندگان معتقدند که زبان برنامه نویسی وایپر در آینده در کنار سالیدیتی مورد استفاده قرار میگیرد. هنگامی که وایپر به صورت کامل منتشر شود این شما هستید که تصمیم میگیرید تا از وایپر و یا سالیدیتی استفاده کنید. آیا از شنیدن و خواندن چنین موضوعاتی کمی گیج شدهاید؟ ما هم همینطور! اتریوم تا به امروز هیچ تاییدیهای در رابطه با همزیستی وایپر و سالیدیتی منتشر نکرده است. با توجه به اطلاعاتی که هماکنون در این فضا وجود دارند میدانیم که اتریوم قصد دارد تا از زبان برنامه نویسی وایپر برای اکثر قراردادهای هوشمند آینده خود استفاده کند.
تا زمانی که بحث از مقوله امنیت مطرح باشد زبان وایپر از سالیدیتی جلوتر بوده و از نظر شفافیت کیفیت بالاتری را ارائه میکند و نقاط بسیار کمتری برای حمله به آن وجود دارند. قراردادهای هوشمند در برابر حملات آسیب پذیر هستند و اشکالات امنیتی زیادی دارند. زبان برنامه نویسی وایپر نقشی اساسی در آینده و امنیت اتریوم بازی میکند.
با در نظر گرفتن سادگی و امنیت زبان برنامه نویسی وایپر باید بدانیم که این ویژگیها از این زبان حذف شدهاند:
- نقطه ثابت باینری (دودویی)
- نقطه اعلام بازگشتی
- اضافه بار یا همان سرریز اپراتور
- وراثت طبقاتی
- اسمبلی داخلی
- سرریز بار توابع یا همان عملگرها
- لوپها یا همان حلقههای با طول بینهایت
- اصلاح کنندهها
آیا بعد از تمام مطالبی که بیان کردیم منتظر جوابی از سمت ما هستید؟ حقیقتا نمیدانیم! در حال حاضر فکر نمیکنیم که کسی هم جواب قطعی و پاسخ درست را در رابطه با زبان برنامه نویسی وایپر و سالیدیتی بداند. هنوز زمان زیادی تا انتشار نهایی وایپر باقی مانده و یادتان باشد که در این حوزه همیشه کارآمدترینها دوام میآورند و باقی میمانند. بیایید صبور باشیم و ببینیم که این زبان تازه از راه رسیده چه چیزهایی را برای ما به ارمغان میآورد.
منبع: