ألق النِّظْرة على ثلاث لغات برمجة مختلفة لشبكات blockchain وكيفية مقارنتها.
جلبت شبكة Ethereum العقود الذكية إلى عالم blockchain، مما أتاح مفاهيم مثل التمويل اللامركزي (DeFi).
يمكن للعقود الذكية تنفيذ الإجراءات تلقائيًا بمجرد استيفاء شروط معينة، ومع تطور هذه التقنية الجديدة، تم تطوير لغة ترميز جديدة تسمى Solidity.مع استمرار نمو صناعة blockchain وظهور شبكات blockchain جديدة، يتم إدخال لغات برمجة أخرى في الفضاء، خاصة Vyper و Scrypto.
كيفيه مقارنه لغات العقد الذكية Scrypto وVyper وSolidity
لغة البرمجة هي مجموعة من القواعد لتحويل سلاسل النص والأرقام إلى كود يمكن للآلة قراءته. بعبارات بسيطة، تمكن لغات البرمجة أجهزة الحاسوب من فهم التعليمات التي يدخلها البشر. عندما يتعلق الأمر بصناعة blockchain، فإن Solidity و Python و Javascript هي بعض اللغات الأكثر استخدامًا، لكنها تعمل جميعًا بشكل مختلف.
ما هي Solidity !
Solidity هي لغة برمجة عالية المستوى موجهة للكائنات لبناء عقود ذكية على Ethereum blockchain وشبكات blockchain الأخرى مثل BNB Smart Chain و Avalanche. تم تطوير اللغة في عام 2014، وهي تشترك في أوجه التشابه مع لغات البرمجة مثل JavaScript و C ++ و Python.
نظرًا لأن Solidity هي لغة عالية المستوى، تتم كتابة كود الحاسوب بطريقة يسهل فهمها وقراءتها من البشر، بدلاً من كتابتها في الآحاد والأصفار. على سبيل المثال، سيحتوي كود Solidity على كلمات وعبارات مثل الوظيفة و العقد بالإضافة إلى الأقواس المتعرجة والأقواس المتعرجة.
باعتبارها لغة ترميزية موجهة للكائنات، فإن Solidity تدور حول استخدام الكائنات، أي مقتطفات من التعليمات البرمجية التي يمكن إعادة استخدامها لإنشاء مقتطفات تشبه المقتطفات دون إعادة كتابة الكود الأصلي في كل مرة.
تستخدم Solidity أيضًا مترجمًا لتحويل التعليمات البرمجية عالية المستوى الذي يمكن قراءتها بواسطة الإنسان إلى رمز يمكن قراءته آليًا يعمل على جهاز Ethereum Virtual Machine (EVM).
ما هُو Vyper !
Vyper هي لغة برمجة عقود ذكية ثورية مصممة للاستخدام مع EVM. تم تصميم اللغة لتحسين Solidity بواسطة جعل الكود أكثر أمانًا وقابلية للقراءة. يركز Vyper بشكل كبير على الاستماع إلى التعليمات البرمجية الخاصة به. لذا فإن أحد مبادئها هو أن البشر يجب أن يكونوا قادرين على قراءة أكبر قدر ممكن من كود Vyper.
تم تصميم Vyper أيضًا لجعل كتابة التعليمات البرمجية المضللة صعبة قدر الإمكان. تعد بساطة القراء (أي المراجعين) أكثر أهمية من بساطة المؤلفين (أي المطورين). بهذه الطريقة، يسهل فهم الشفرة الخبيثة في العقود الذكية أو التطبيقات اللامركزية (DApps).
ما هُو Scrypto !
Scrypto هي لغة عقد ذكية موجهة للأصول. تم تطويره بواسطة Radix واستند إلى Rust، وهو يحتفظ بمعظم ميزات Rust مع إضافة وظائف معينة وبناء جملة إلى Radix Engine v2. نظرًا لأن Scrypto موجه نحو الأصول، فيمكنه التفاعل مع الأصول مثل الرموز المميزة، التي تعد موردًا بلغة ما.
في لغات الترميز مثل Solidity، توجد رموز ERC-20 كعقود ذكية على EVM. الأصول في Scrypto هي موارد في حاويات وخزائن. بعبارات بسيطة، يشبه الأمر امتلاك دلو (حاوية) وملئه بالعملات المعدنية (الأصل) التي يمكن تخزينها في بَنْك أصبع (آمن).
يركز Scrypto أيضًا على كونه صديقًا للمطورين، مما يسمح لهم بكتابة الكود الضروري فقط في أثناء التفاعل مع الحاويات والموارد لتمكين الوظائف في DApps. الأمان هو مبدأ آخر، ويمكن للمطورين تقديم إرشادات محددة إلى DApps بدلاً من منح أذونات شاملة.
كيف تقارن لغات العقود الذكية !
تمتلك Solidity مجموعة واسعة من موارد التعلم عبر الإنترنت والكثير من دعم المجتمع نظرًا لاستخدامها في شبكات blockchain الرئيسية مثل Ethereum. تتمتع Solidity أيضًا بوظائف واسعة مأخوذة من البرمجة الموجهة للكائنات (OOP)، مما يجعلها معيارية وسهلة لاستكشاف الأخطاء وإصلاحها عندما تسوء الأمور. على سبيل المثال، إذا فشل كائن من فئة ما، فيمكن إرجاعه إلى أصل تلك الفئة.
هذا لأن Solidity تستخدم التغليف، مما يعني أن كل كائن قائم بذاته وأن كل وظيفة تعمل بشكل مستقل. تسمح وحدة لغة الترميز أيضًا للمطورين بالعمل على كائنات متعددة في نفس الوقت، مما يسمح بإنشاء العقود الذكية وإصلاحها ونشرها بكفاءة أكبر.
Vyper هي لغة ترميز أبسط من Solidity، مما يؤكد على الشفافية وبساطة بنية اللغة وإمكانية السمع. يحتوي Vyper أيضًا على ميزات أقل من Solidity، التي تم تصميمها عن قصد لأسباب أمنية. تعمل مجموعة الميزات المحدودة على تقليل عدد الثغرات الأمنية التي يمكن للجهات الخبيثة استغلالها.
على سبيل المثال :
تستخدم Solidity مُعدِّلات للإشارة إلى إجراء الفحوص قبل وبعد تنفيذ الإجراء. ومع ذلك، لا يستخدم Vyper المعدلات لأن المطورين يعتقدون أنه من السهل كتابة تعليمات برمجية مضللة. وهو إلى ذلك يشجع الأفراد على تطوير رمز يرتد حول المِلَفّ، مما يجعل احتمال سماعه أقل. نظرًا لعدم وجود معدِّلات في Vyper، فمن المستحيل إضافة أي تغييرات حالة في الكود.
مِيزة أخرى يستبعدها Vyper هي الميراث. في Solidity، يمكن أن ترث عقود متعددة وظائف العقد الرئيس. إذا كان هناك خلاف، فهناك حاجة أيضًا إلى فهم فردي لمعايير الأولوية. لا يستخدم Vyper وراثة الفئة لأنه يزيل مصدرًا محتملًا للتعقيد في الكود، مما يساعد في الاستماع.
عمومًا، تعد Vyper لغة ترميزية أبسط تتعامل مع بعض الميزات لتحسين الأمان وفحص أفضل لقاعدة التعليمات البرمجية الخاصة بها لحماية مستخدمي العقود الذكية المستندة إلى Vyper بشكل أفضل.
في حين أن Solidity ربما تكون واحدة من أشهر لغات البرمجة وأكثرها شهرة في فضاء blockchain، فإن بعض اللغات لديها منحنى تعليمي أسهل للمطورين. أيضًا، تسهل لغات البرمجة الأبسط جذب مطورين جدد إلى الصناعة.
قال آدم سيمونز، كبير المسؤولين الإستراتيجيين في RDX Works، المطور وراء Radix، إن امتلاك الأدوات المناسبة للوظيفة يحدث فرقًا كبيرًا - وفي الوقت الحالي، لا يمتلك مطورو blockchain الأدوات المناسبة. اللغة أبسط، ولكنه يجعل أدوات المطورين سهلة الاستخدام وآمنة، تتمة:
على الرغم, من مستويات النمو المرتفعة التي لوحظت في مجال التمويل اللامركزي، إلا أن عدد المطورين لم ينمو ليلائم الطلب. وفقًا لسيمونز، قد يجد المطورون صعوبة في انتقال Solidity إلى تطوير blockchain:
إن امتلاك اللغة والأدوات المناسبة سيمكن المطورين من تنمية الصناعات كُلََّها بشكل أسرع. تمامًا كما أعطت محركات الألعاب للمطورين الأدوات لإحداث ثورة في إنتاج ألعاب الفيديو في التسعينيات، فإن لغة وأدوات Web3 الصحيحة ستمكن المطورين من تسريع نمو Web3.
يركز Scrypto أيضًا على الأمان والبساطة وسهولة الاستخدام. يركز تداول العملات المشفرة على الأصول. يحددون كيف يريد المستخدمون تخصيص موارد النظام. يمكن أن يشير أيضًا إلى كيفية معالجة مورد تم إرجاعه بواسطة مستخدم أو مكون آخر في معاملة متعددة المكونات.
عادةً ما تكون المعاملات على Ethereum عباره عن دعوات لعقود ذكية (نظرًا لأن DApps والرموز على Ethereum هي عقود ذكية). على النقيض من ذلك، تتضمن المعاملات على Scrypto نقل الأصول من مكون إلى آخر.
على سبيل المثال:
إذا أراد المستخدم (أ) إرسال رموز مخصصة (ب 10) للمستخدم، فستظهر معاملته أنه يحاول سحب 10 رموز من المتجر الذي يحتوي عليها. ستظهر المعاملة أيضًا أنهم يرسلون هذه الرموز إلى طريقة الإيداع الخاصة بمكون حساب المستخدم ب. نظرًا لأن المورد (في هذه الحالة الرمز المميز) يجب أن يكون في مكان ما، فسيتم استخدام حاوية (حاوية) لنقل الرمز المميز من المستخدم أ إلى المستخدم ب.
في المثال أعلاه، يقوم المستخدم بنقل الحاوية التي تحتوي على المورد (الرمز المميز) إلى طريقة إيداع المستخدم الثاني، بدلاً من استدعاء العقد الذكي مع الرمز المميز. على غرار كيفية عمل تفاعلات DApp، يستخرج المستخدمون الرموز المميزة من حساباتهم ويمررون إلى المكونات ذات الصلة التي يرغبون في التفاعل معها.
باختصار، يتخذ Scrypto نهجًا قائمًا على الأصول حيث يقوم المستخدمون بتخزين الأصول المادية ونقلها. يسهل النهج القائم على الأصول أيضًا للمطورين كتابة DApps، حيث يسهل التفاعل مع الرموز (الموارد)، ومجموعات الرموز (الخزانات)، والمستخدمين (المكونات).
على سبيل المثال:
إذا كان DApp (مثل Uniswap) يستخدم تشفير Scrypto، فإن المطورين يحتاجون فقط إلى كتابة طرق تداول البورصة. أولاً، يحتاج DEX إلى تحديد حاوية المستخدم الوارد من الرمز A، ثم حساب سعر الصرف. سيتم بعد ذلك إيداع الرموز المميزة الواردة وسيقوم DEX بإرسال المبلغ الصحيح من الرمز B إلى المستخدم.
ما هي لغة البرمجة التي يجب أن يختارها مطور blockchain !
يمكن للمطورين استخدام لغات البرمجة التقليدية (C ++ و Python و JavaScript) لتطوير blockchain، أو استخدام حلول مخصصة مثل Solidity و Vyper و Scrypto وما إلى ذلك. يمكن أن تكون لغات البرمجة المتعددة مفيدة لمساحة blockchain لأنها توفر للمطورين مجموعة من الأدوات التي يمكنهم استخدامها.
على سبيل المثال
قد يجد المطورون المطلعون على C ++ و JavaScript و Python أن Solidity جذابة. قد ينجذب المطورون الذين يعرفون لغة Python إلى Vyper، بينما قد يختار المطورون المطلعون على Rust استخدام Scrypto.
في تصريح وافق Simmons، مع وصول المزيد من اللغات إلى Web3، من المحتمل أن نرى عددًا قليلاً من الأساليب المتنافسة لفترة من الوقت. نظرًا لأن هذه اللغات تجد طريقها إلى المطورين والأهم من ذلك، أنها تمكن هؤلاء المطورين لبناء DApps قوية ومفيدة وآمنة، لذلك من المحتمل أن نرى الصناعة تنجذب نحو DApps التي تقدم أفضل النتائج.
Solidity هو خِيار طبيعي للمطورين الذين يرغبون في العمل على Ethereum وشبكات blockchain المماثلة. وفي الوقت نفسه، يمكن أن يجذب Vyper و Scrypto المطورين الذين يفضلون البساطة والأمان الإضافي. قد يفضل المطورون أيضًا Scrypto نظرًا لنهجها الأبسط والموجه نحو الأصول.
إرسال تعليق