برنامه نویسی بلاک چین برای توسعه دهندگان تازه کار – بخش دوم


بهترین زبان برای شروع به کار در حوزه برنامه نویسی بلاک چین کدام است؟ این سؤالی است که در بخش نخست این مقاله تلاش کردیم به آن پاسخ دهیم. پیش از آن که اقدام به فهرست کردن زبانهای مختلف بکنیم در بخش نخست مقاله تلاش کردیم تا برخی مفاهیم مهم را معرفی میکنیم. ابتدا سه مسیر اصلی که فرد میتواند در زمینه مشارکت در صنعت رمزپولها انتخاب کند را معرفی کردیم. سپس با چند تعریف اساسی علوم رایانه که برای درک مزایا و معایب زبانهای مختلف ضروری است آشنا شدیم.
چشمانداز زبانی
در نهایت نوبت به اساسیترین بخش موضوع این نوشته رسیده است که معرفی سطح بالا و بررسی زبانهای ممکن برای برنامهنویسی بلاک چین است. در هر بخش به اختصار زبان را معرفی میکنیم و مقصود مورد نظر آن را در محیط بلاک چین جمعبندی میکنیم و هر پروژه یا فریمورکی که در حال حاضر با آن زبان در حال توسعه است را مرور کرده و منابع یادگیری موجود را برای کسب اطلاعات بیشتر ارائه میکنیم.
++C
اگر بخواهیم این فهرست را به ترتیب سن زبانها تنظیم کنیم، باید ابتدا از زبان قدیمی ++C آغاز کنیم. این زبان نخستین بار در سال 1985 از سوی آقای «بیارنه استراستروپ» (Bjarne Stroustrup) به عنوان افزونهای برای زبان موجود C ارائه شد. ایده وی این بود که انعطافپذیری، امنیت و کارایی C را حفظ کند؛ اما زبان را برای پردازشهای شیءگرا بهبود بخشد. از این رو ++C به یک زبان پیشرو در زمینه شیءگرایی تبدیل شد در حالی که C همچنان پردازش محور باقی ماند. ++C یک زبان بسیار قدرتمند، قدیمی و با دامنه عمومی است که برای برنامهنویسی سطح پایین بلاک چین بسیار محبوب است.
با این وجود، باید به برنامهنویسان تازهکار در مورد استفاده از این زبان هشدار داد. این زبان به عنوان یک زبان با نوعبندی صریح با دستور زبان تقریباً منسوخ شده در مقایسه با همتایانش دارای شیب یادگیری بسیار تندی است. در واقع میتوان آن را دشوارترین زبان برنامهنویسی برای توسعهدهندههای تازهکار معرفی کرد. با این حال باید اشاره کرد که دانش بنیادی که از طریق تحمل زحمت یادگیری این زبان به دست میآید، در هیچ زبان دیگری وجود ندارد. همان طور که پیشتر اشاره کردیم، دنیای بلاک چین استفادههای زیادی از ++C کرده است و در زمینه یادگیری این زبان با کمبود منابع مواجه نیستیم:
- «بیتکوین کور» (Bitcoin Core): وبسایت (+)
- «ریپل» (Ripple Daemon): وبسایت (+)
- راهنمای ++C: وبسایت (+)
جاوا اسکریپت
جاوا اسکریپت یک زبان برنامهنویسی اسکریپتی با نوعبندی سست برای وب است که از سوی همه مرورگرهای عمده پشتیبانی میشود. این زبان اولین زبان برنامهنویسی برای بهبود صفحههای HTML و CSS به صورت UI-های با امکانات کامل محسوب میشود. برخی از این بهبودهای رابط کاربری شامل انیمیشنها، صفحههای تازه شونده، منوهای کاربر و کادرهای گفتگو، نقشههای تعاملی و موارد دیگر هستند.
این زبان امکان رفتارهای صفحات وب در مرورگرهای مدرن را فراهم ساخته است. هرگز نمیتوان تصور کرد که جاوا اسکریپت لایه سطح بالای وب اپلیکیشنها را ترک کند. با این وجود نمیتوان انکار کرد که یادگیری جاوا اسکریپت برای افراد مبتدی به مدت زمان زیادی نیاز دارد. با در نظر گرفتن Node.js که جاوا اسکریپت را به سمت سرور برده است و سپس فریمورکهای Angular/React/Vue که پشته HTML/CSS را در سمت کلاینت به کلی بازنویسی میکنند، میتوان گفت که یادگیری کل جاوا اسکریپت کار بسیار پرزحمتی محسوب میشود. البته اگر نخواهیم در همه موارد فوق زیاد عمیق شویم، در خوشبینانهترین حالت باید گفت که برخی از برنامهنویسان کهنهکار از چنین توصیهای ناخشنود خواهند بود. با این که این ناخوشنودی شاید دلیل موجهی داشته باشد؛ اما موجب نمیشود که این استدلال درست نباشد: جاوا اسکریپت برای مبتدیان کاملاً مناسب است، در حال بلوغ است و اینک در همه بخشهای مجموعه وب مدرن تثبیت شده است.
نخستین پروژه بلاک چین که به طور عمده از جاوا اسکریپت پشتیبانی میکند Lisk نام دارد. صفحه فرود این پروژه گویای باور آنها در مورد ساخت یک اکوسیستم کامل بر مبنای جاوا اسکریپت است:
«Lisk امکان ساخت و انتشار اپلیکیشنهای بلاک چین به زبان جاوا اسکریپت را برای افراد مبتدی آسانتر ساخته است.»
منابع یادگیری:
- Lisk: وبسایت (+)
پایتون
پایتون به عنوان یک زبان برنامهنویسی نسبتاً مدرن غالباً مورد علاقه تازهکارها قرار میگیرد و دلیل خوبی برای این مسئله وجود دارد. پایتون از سوی گیدو فان روسوم (Guido van Rossum) با اولویت دادن به سادگی دستور زبان و خوانایی طراحی شده است. پایتون از زمان انتشار به عنوان یک زبان ساده؛ اما قدرتمند به همراه یک جامعه پشتیبانی کننده بزرگ مطرح شده است که باعث شده پایتون تقریباً در همه جا از کتابخانههای UI وب مانند Flask تا ابزارهای یادگیری ماشین مانند NumPy حضور داشته باشد.
با این که فرد با بهرهگیری از پایتون به تنهایی، از نظر فنی نمیتواند در بلاک چینهای موجود مشارکت کند، اپلیکیشنهای توزیع یافته بنویسد یا ICO برگزار کند؛ اما کنار گذاشتن پایتون از این فهرست کار نادرستی است، زیرا همه اکوسیستمهای بلاک چین یک یا چند ابزار عمومی دارند که با پایتون و یا برای پایتون نوشته شده است.
منابع یادگیری
GO
زبان برنامهنویسی GO که اختصاری برای عبارت GOLang است، یک زبان با دامنه عمومی نسبتاً مدرن محسوب میشود که در سال 2007 در گوگل توسعه یافته و در سال 2012 برای استفاده عموم منتشر شده است. GO به عنوان یک زبان مستحکم و چندمنظوره طراحی شده و در آن تلاش شده که دستور زبان و کاربرپسند بودن زبانهای مدرن مانند پایتون و جاوا اسکریپت در نظر گرفته شود و از مزیت عملکرد و امنیت زبانهای کامپایل شونده قدیمیتر مانند C نیز استفاده شود.
GO یک زبان کامپایل شونده است و این به آن معنی است که به صورت مستقیم درون یک سیستم عامل اجرا میشود. این ویژگی امکان بیشترین انعطافپذیری را هنگام استفاده از GO برای بخشهای مختلف پروژههای بلاک چین فراهم کرده است. اگر میخواهید مستقیماً در یک بلاک چین موجود مشارکت کنید، اتریوم یک SDK پروتکل دارد که به زبان GO نوشته شده است. اگر میخواهید در یک قرار داد هوشمند مشارکت داشته باشید، بلاک چین Hyperledger Fabric بنیاد لینوکس چنین کاری را صورت داده است.
منابع یادگیری
Solidity
Solidity یک زبان با دامنه خاص شبیه به جاوا اسکریپت است که از سوی تیم اتریوم برای ایجاد اپلیکیشنهای توزیع یافته روی پلتفرم اتریوم ساخته شده است. این زبان با فاصله زیادی DSL اصلی پذیرفته شده از سوی عموم توسعهدهندگان بلاک چین است که به عنوان یک مورد پذیرش مثالزدنی در میان جامعه اتریوم و صنعت بلاک چین مطرح شده است.
Solidity برای هر کسی که میخواهد یک dApp توسعه دهد یا یک ICO برگزار کند، یکی از سرراستترین روشها برای ورود مستقیم به اساسیترین به موضوع است. از آنجا که توسعه Solidity پیش از هاردفورک اتریوم آغاز شده است، این فورک هیچ تأثیر مهندسی بر عدم تمایل مردم نداشته است، چون Solidity هم از سوی اتریوم کلاسیک و هم خود اتریوم پشتیبانی میشود. به علاوه تیم Cardano اخیراً اعلام کرده است از Solidity پشتیبانی میکند و بدین ترتیب Solidity به تنها زبان برنامهنویسی بلاک چین DSL تبدیل شده است که از سوی چند بلاک چین پشتیبانی میشود.
خود این زبان با اولویتدهی به پذیرش توسعهدهنده ایجاد شده است که منجر به این نکته شده که دستور زبان آن عامدانه مشابه جاوا اسکریپت محبوب طراحی شود و البته برخی تفاوتها نیز وجود دارد.
منابع یادگیری
سخن پایانی
فناوری بیتکوین و بلاک چین همچنان به تحول روش انتقال دادهها و داراییها ادامه میدهند و بدیهی است که تأثیر آن جهانی است و محدود به این صنعت نخواهد ماند. مهم نیست که از کجا آغاز کنید، همین قدر که نخستین گام را در مسیر یادگیری یکی از این زبانها بردارید، مهمترین قدم را برداشتهاید. عدم وجود موازنه بین عرضه و تقاضا در این زمینه گزافهگویی محسوب نمیشود.
بالاترین تخمینها تعداد توسعهدهندههای فعال بلاک چین را در سراسر دنیا برابر با حدود 20 میلیون نفر برآورد کردهاند. با این وجود آمارهای تخمینی در سطح این صنعت مشخص ساختهاند که کمتر از 1 در 1000 نفر از توسعهدهندههای فعال حس میکنند آن قدر مهارت دارند که بتوانند خود را برنامهنویس بلاک چین قلمداد کنند و برای موقعیتهای شغلی مختلف درخواست بفرستند. از دید ریاضی این وضعیت به آن معنی است که تقریباً در حدود 20 هزار برنامهنویس بلاک چین در سراسر دنیا وجود دارند.
اگر فکر میکنید این تعداد بالا است دقت کنید که مایکروسافت تقریباً 100 هزار کارمند دارد. حتی اگر به ازای هر مهندس نرمافزار یک کارمند پشتیبانی نیز در نظر بگیریم باز هم مایکروسافت 50 هزار برنامهنویس دارد. در سوی دیگر غول بانکداری «گلدمن ساکس» (Goldman Sachs) در حدود 9 هزار برنامهنویس و مهندس استخدام کرده است.
نکته مهم این است که این کمبود برنامهنویس بلاک چین بسیار واقعی است و پاسخی به این شبهه است که «آیا برای شروع یادگیری بلاک چین از صفر دیر نشده است؟» در واقع از منظر توسعهدهندهها، سرمایهگذاران، رگولاتورها و هر کس دیگری که در این صنعت مشارکت دارد، ما هنوز در روزهای اولیه توسعه این صنعت قرار داریم.
اگر این مطلب برایتان مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- تفاوت های بلاک چین های عمومی و خصوصی — به زبان ساده
- مجموعه آموزشهای پروژهمحور برنامهنویسی
- مجموعه آموزشهای علوم اقتصادی و مالی
- آموزش ساخت بلاک چین (Blockchain) با پایتون — راهنمای جامع و ساده
- بلاک چین چگونه کار میکند؟ — به زبان ساده
- دستگاه ماینر بیت کوین چیست و چگونه کار می کند؟ | گام به گام و به زبان ساده
- آموزش طرز کار بلاک چین با PHP و JSON — راهنمای مقدماتی
==
سلام من میخواستم بدونم چگونه میشه بلاک چین رو به صورت انبوه و صنعتی تولید کرد
بسیار ممنون میشم لطفا پاسخ بدید
اگر هم قادر نبودید به ایمیل پیام بدید
با سلام
برای این کار لازم است یک تیم برنامه نویسی بلاکچین استخدام کنید.