وقتی صحبت از «اتریوم» به میان میآید، شاید اولین چیزی که به ذهنتان میرسد، قرارداد هوشمند باشد. اگر خیلی با قراردادهای هوشمند آشنا نیستید باید بدانید، قراردادهای هوشمند برنامههایی هستند که روی بلاک چین اتریوم قرار دارند. بهوسیله چنین قراردادهایی میتوان برنامههایی غیرمتمرکز ساخت که بدون هیچ واسطه، کنترل و توقفی تا ابد به کار خود ادامه میدهند. در این مقاله با زبان برنامهنویسی سالیدیتی که زبان مخصوص اتریوم برای قراردادهای هوشمند است، آشنا میشوید.
درست مانند برنامههای رایانهای، قراردادهای اتریوم به یک زبان برنامهنویسی نوشته میشوند که «سالیدیتی» (Solidity) نام دارد. لازم به ذکر است که زبانهای برنامهنویسی دیگری هم وجود دارند که میتوان برای ایجاد قراردادهای هوشمند در شبکه اتریوم، از آنها استفاده کرد، اما این روزها انتخاب اکثر برنامهنویسان این حوزه سالیدیتی است. در ادامه قصد داریم به شما بگوییم زبان برنامهنویسی سالیدیتی چیست و چطور میتوانید برنامهنویسی با زبان سالیدیتی را یاد بگیرید.
سالیدیتی بهعنوان یک زبان برنامهنویسی
امروزه بیشتر برنامه نویسان از یک یا چند نمونه از شاخههای زبانهای برنامهنویسی استفاده میکنند. مثلاً برخی از شاخه زبانهای C که خود شامل چندین زبان C#، C++ و …است، پایتون یا جاوا و … استفاده میکنند. سالیدیتی بهنوعی طراحیشده که یادگیریاش برای برنامهنویسانی که با یک یا چند زبان برنامهنویسی کار کردهاند، آسان باشد.
اگر قبلا فقط در دوران دانشگاه با زبانی مانند «ویژوال بیسیک» کار کردهاید، یادگیری سالیدیتی برایتان کمی مشکل خواهد بود و اما اگر با زبانهایی همچون پایتون یا C کار کرده باشید، سالیدیتی تا حد زیادی برای شما آشنا خواهد بود.
سالیدیتی از مفاهیم بسیاری استفاده میکند که در دیگر زبانهای برنامهنویسی دیگر مشابه آنها را دیدهاید. برای مثال سالیدیتی دارای متغیرها، توابع، کلاسها، عملیاتهای محاسباتی، رشتهها و … است. در حالی که در یک زبان برنامهنویسی مانند C، برنامهنویس نوعی تابع اصلی مانند {int main(arg۱, arg2) { //code ایجاد میکند، سالیدیتی دارای مفهومی با عنوان «قرارداد» (Contract) است که طی روندی مشابه ساخته میشود.
همانطور که در تصویر بالا مشاهده میکنید، کدهای سالیدیتی شباهت بسیاری به کدهای C++ یا C# و حتی جاوا اسکریپت دارند. برنامه نویسان پایتون نیز در هنگام کار با سالیدیتی متوجه میشوند که نوع متغیرها در این زبان باید بهطور صریح تعیین شوند.
سالیدیتی جدید است با منابع آموزش محدود
معمولاً اگر کسی بخواهد یک زبان برنامهنویسی جدید را فرا بگیرد، میتواند از میان بینهایت منابع و کتابی که در آن زمینه وجود دارد، انتخاب کند. برای مثال اگر شما بخواهید جاوا اسکریپت یاد بگیرید، صدها کتاب مختلف وجود دارند که میتوانید بهطور خودآموز از آنها استفاده کنید. در اکثر این منابع تمرینها و مطالبی وجود دارند که میتوانید بدون نیاز به کلاس یا دوره خاص از آنها استفاده کنید. برای تعیین کیفیت هر یک نیز میتوانید به صفحه خرید آن کتاب در اینترنت مراجعه و نظرات دیگران را در موردش مطالعه کنید.
با وجود اینکه مستندات و منابع بسیاری در خصوص یادگیری کدهای سالیدیتی وجود دارد، یادگیری این زبان برای کسی که کاملاً با آن ناآشناست و به زبان برنامهنویسی دیگری هم مسلط نیست، آنهم از روی چنین مستنداتی مشکل و گاها حتی غیرممکن خواهد بود. بهعبارتدیگر از این جزوهها و منابع باید همانند یک فرهنگ لغت استفاده و در هنگام نیاز به آنها رجوع کرد و نمیتوان برای یادگیری یک زبان ابتدا به سراغ فرهنگ لغت آن رفت.
اگر فردی وقت کافی برای یادگیری نگذارد و صبر کافی نیز به خرج ندهد، و از طرف دیگر پیشزمینه برنامهنویسی نیز نداشته باشد، یادگیری سالیدیتی اصلاً آسان نخواهد بود. اما اگر پشتکار داشته باشید، حتی از روی مستندات و کدهای موجود هم میتوانید این زبان را یاد بگیرید.
دورهها و آموزشهای سالیدیتی
برای آن دسته از افراد که تجربه برنامهنویسی دارند، یکی از گزینههای مناسب برای یادگیری سالیدیتی استفاده از وبسایت «کریپتو زامبی» (Crypto Zombies) است. این وبسایت که شباهت بسیاری با پلتفرم «کد آکادمی» دارد، تکالیف کوچکی را در اختیارتان میگذارد که میتوانید بهصورت مستقیم در مرورگرتان آنها را انجام دهید. درست یا غلط بودن و اشکالات شما نیز بهصورت آنی برای شما نمایش داده خواهد شد. این وبسایت به شما کمک میکند که با استفاده از زبان سالیدیتی یک بازی زامبی بسازید.
انجام فصل اول آموزش چیزی در حدود دو ساعت زمان لازم دارد و اندکی نیز سخت است اما با کمی صبر و دقت میتوانید از پس آن بر بیایید. توسعهدهندگان این وبسایت هر چند هفته یکبار تکالیف جدیدی را برای کاربران مهیا میکنند. با به اتمام رساندن تمامی تکالیف، میتوانید یک بازی کامل بر پایه سالیدیتی داشته باشید.
صد البته ساخت چنین بازیای نمیتواند شما را به یک برنامهنویس حرفهای سالیدیتی تبدیل کند، اما برای شروع کار و ایجاد یک پیشزمینه ذهنی در ارتباط با این زبان، عالی است چرا که بسیاری از نکات کلیدی و حیاتی که باید برای کار با سالیدیتی بدانید را به شما گوشزد میکند.
در صورتی که تجربه خاصی در خصوص برنامهنویسی ندارید میتوانید از دورههای رایگان سایت CodeAcademy، استفاده کنید. به یاد داشته باشید که در صورت تسلط بر پایتون یا جاوا اسکریپت، میتوانید بهراحتی از کریپتو زامبی استفاده کنید.
اگر به دورههای پیشرفتهتری در این خصوص نیاز داشته باشید، میتوانید از وبسایت «بلاک گیکس» (Block Geeks) استفاده کنید.
دورههای غیر رایگان سالیدیتی و گواهینامههای آنلاین
در سالهای اخیر، وبسایت های بسیاری دورههای غیر رایگان خود را در خصوص یادگیری زبان برنامهنویسی سالیدیتی برگزار میکنند. «بیت دگری» (BitDegree) ازجمله این وبسایتهاست که با هدف بالا بردن اطلاعات عموم و آموزشهای حوزه بلاک چین، فعالیت میکند. بهوسیله این وبسایت مهارت آموزان میتوانند در دورههای آنلاین شرکت کنند و در نهایت با به اتمام رساندن آنها، مدرکی آنلاین دریافت کنند که بر روی بلاک چین اتریوم ثبت میشود. دورههای بیتدگری در زمینهی سالیدتی بین ۱۰ تا ۸۰ دلار قیمت دارند. البته شاید دورههای رایگان یا با تخفیف قابلتوجه هم در آن پیدا کنید.
از دیگر وبسایت ها در این زمینه میتوان به udemy.com اشاره کرد که دورههای ویدیوئی زیادی در زمینههای مختلف ارائه میکند. هزینه دوره سالیدیتی در این وبسایت ۲۰۰ دلار است که بهتازگی نیز با تخفیف ۹۰ درصدی عرضه میشود، البته همیشه این میزان تخفیف را ندارد. این دوره در سایت کورسمارکس بررسی شده و امتیاز ۷.۴ از ۱۰ دریافت کرده است.
گزینه دیگر که با قیمت بسیار بالاتری دورههای سالیدیتی برگزار میکند B9LAB.com است. دورههای توسعه اتریوم این وبسایت طی ۹ هفته و هفتهای ۶ تا ۱۰ ساعت طول میکشد و هزینهای بالغ بر ۱۴۵۰ یورو یا ۱۷۵۰ دلار روی دستتان خواهند گذاشت. بهعلاوه یک دوره رایگان کار با اتریوم با عنوان Ethereum ۱۰۱ نیز در این وبسایت موجود است که میتوانید با گذراندن آن بیشتر با روشهای تدریس و شیوهی آموزشی آنها آشنا شوید.
آیا سالیدیتی ارزش یادگیری دارد؟
اگر به دنبال یادگیری سالیدیتی برای شغل خود هستید، پیش از یادگیری باید بدانید به چه مهارتهای دیگری نیاز دارید. بااینکه یاد گرفتن مهارتهای مربوط به بلاک چین بسیار ارزشمند است، احتمالا لازم باشد کسی که میخواهد به این حوزه وارد شود به یکی از زبانهای برنامهنویسی تسلط کامل داشته باشد. مثلا در یک آگهی شغلی در این زمینه عنوان شده است کسی را میخواهند که نهتنها با سالیدتی، بلکه به زباهای ترافل، نودجیاس و گولنگ هم آشنا باشد.
اگر حاضرید سالها وقت خود را صرف یادگیری سالیدیتی کنید، میتوانید امیدوار باشید که در سالهای آینده به شغلی مناسب نیز دست یابید.
در کنار سالیدیتی زبان برنامهنویسی دیگری با عنوان «سرپنت» (Serpent) نیز وجود دارد که بر پایه پایتون ساختهشده است. از آنجایی که پایتون زبانی ساده برای یادگیری است، اگر به دنبال چنین زبانی برای ایجاد قراردادهای هوشمند دارید میتوانید از سرپنت استفاده کنید. این مسئله را نیز به یاد داشته باشید که کدهای نگارش شده بهوسیله سالیدیتی و سرپنت را میتوانید بهراحتی برای اتریوم کلاسیک و RSK و دیگر پلتفرمهای قراردادهای هوشمند نیز ترجمه کنید.
در حال حاضر سالیدیتی پادشاه زبانهای برنامهنویسی مرتبط با قراردادهای هوشمند است و یادگیری آن میتواند به یادگیری دیگر زبانهای قراردادهای هوشمند نیز کمک کند.