يعد التعامل مع تطوير Ethereum أمرًا صعبًا بدرجة كافية ، لكن اللغة التي تختارها هي قرار مهم. تأكد من أنك تخطط وفقًا لذلك.
Ethereum هي واحدة من أكبر منصات blockchain. يمكنك استخدامه لبناء تطبيقات لامركزية وعقود ذكية ومنظمات مستقلة لامركزية (DAOs).
ستحتاج إلى لغة يمكنك البرمجة بها ، للبناء على سلسلة Ethereum blockchain. على الرغم من أن لديك العديد من الخيارات لتطوير Ethereum ، إلا أن Solidity و Vyper هما الأكثر شعبية.
لغة برمجة Solidity
Solidity هي لغة برمجة عالية المستوى شائعة الاستخدام لتطوير Ethereum. إنها لغة موجهة للكائنات مع نظام بيئي متكامل للمكتبات يمكنك استخدامه لبناء تطبيقات معقدة. تشترك Solidity في بعض أوجه التشابه مع JavaScript فيما يتعلق بالكتابة الثابتة والتعبيرات والكلمات الرئيسية و البرمجة الشيئية. هنا بسيط مرحبا بالعالم برنامج في Solidity:
// SPDX-License-Identifier: MIT
براغماصلابة ^0.8.18;
عقد HelloWorld {
// يخلقوظيفةليعود"مرحبا بالعالم"
وظيفةمرحبا بالعالم() عامنقيعائدات (ذاكرة السلسلة) {
يعود"مرحبا بالعالم";
}
}
يحدد البرنامج أعلاه أ مرحبا بالعالم() وظيفة. ال مرحبا بالعالم() ترجع الدالة سلسلة ؛ في هذه الحالة ، عبارة "Hello world." إليكم نتيجة تشغيل برنامج Hello World على
ريمكس IDE:ما هي لغة برمجة Vyper؟
Vyper هي لغة أحدث لتطوير Ethereum. تم إصداره في عام 2018 ؛ مثل Solidity ، فإن Vyper هي لغة مكتوبة بشكل ثابت.
تمت كتابة Vyper بنفس الصيغة التي تستخدمها لغة برمجة Python ، وهي أبسط من كود Solidity. تركز اللغة على أمان العقود الذكية. هنا بسيط مرحبا بالعالم برنامج مكتوب بلغة Vyper:
# @ الإصدار> = 0.2.16
@خارجي
@منظر
# تعريف دالة تقوم بإرجاع سلسلة نصية
defمرحبا بالعالم() -> سلسلة [24]:
يعود"مرحبا بالعالم!"
مثل مثال Solidity ، يعرّف هذا البرنامج ملف مرحبا بالعالم() الدالة التي ترجع سلسلة. في هذه الحالة ، ترجع الدالة مرحبا بالعالم!
إليك نتيجة تشغيل برنامج Vyper Hello World على Remix:
الاختلافات بين الصلابة وفايبر
على الرغم من وجود حالات استخدام متشابهة لـ Solidity و Vyper ، إلا أن هناك اختلافات بين اللغات التي تريد وضعها في الاعتبار عند اختيار لغة لتطوير Ethereum.
فيما يلي بعض الاختلافات بين Solidity و Vyper.
تركيب اللغة
يحتوي Vyper على بناء جملة بسيط ، بينما يحتوي Solidity على بنية معقدة مشابهة لـ C ++. تسهل صيغة Solidity على المطورين بناء تطبيقات معقدة. من ناحية أخرى ، لدى Vyper صياغة أكثر تقييدًا. لا يدعم المعدلات أو الواجهات أو الوراثة المخصصة.
فيما يلي بعض الاختلافات المحددة بين تركيب اللغتين.
يستخدم Vyper المسافة البادئة لتحديد كتل التعليمات البرمجية ، بينما يستخدم Solidity الأقواس المتعرجة. هنا برنامج Vyper بسيط:
defامتحان() -> لا شيء:
لو x> 5:
# قم بعمل ما
آخر:
# افعل شيئا اخر
إليك نفس البرنامج في Solidity:
وظيفةامتحان() عام{
إذا (x> 5) {
// قم بعمل ما
} آخر {
// يفعل شئ ما آخر
}
}
يعتبر إعلان المتغير والوظيفة في Solidity أكثر تعقيدًا منه في Vyper لأنه يتعين عليك تحديد الرؤية وموقع التخزين وما إلى ذلك. إليك برنامج بسيط يعرّف متغيرًا ووظيفة في Solidity:
عقد MyContract {
// إعلان متغير في Solidity
uint256 عام العاشر ؛
// إعلان الوظيفة في Solidity
وظيفةmyFunc(uint256 _x) عامعائدات (uint256) {
// يفعل شئ ما مع _x
يعود العاشر ؛
}
}
إليك برنامج بسيط يعرّف متغيرًا ووظيفة في Vyper:
عقد MyContract:
# إعلان متغير في Vyper
س: uint256
# إعلان وظيفة في Vyper
defmyFunc(_x: uint256) -> uint256:
# افعل شيئًا مع _arg
يعود النفس. x
عادةً ما يكون كود Vyper أسهل في القراءة من كود Solidity.
أمن العقود الذكية
يضمن Vyper مستوى عالٍ من الأمان للعقود الذكية. يحتوي Vyper على ميزات أقل من Solidity ، مما يجعله أقل عرضة للتهديدات الأمنية.
يحتوي Solidity على ميزات مثل الوراثة ودعم المعدِّلات المخصصة وأنواع البيانات المتقدمة مثل التعيينات. لا تتوفر هذه الميزات بسهولة في Vyper ، ويمكن أن يؤدي استخدامها بلا مبالاة في Solidity إلى تهديدات أمنية خطيرة.
اعتماد اللغة ومعرفة المطور
تعتبر Solidity أكثر شعبية ومقبولة على نطاق واسع من Vyper. تمتلك Solidity دعمًا مجتمعيًا جيدًا وموارد متاحة للمبتدئين.
من ناحية أخرى ، لم يتم قبول Vyper على نطاق واسع ويفتقر إلى دعم المجتمع ، لذلك يجب على المبتدئين اكتشاف العديد من الأشياء بأنفسهم.
إذا كنت قد عملت مع لغات برمجة مثل Python ، فستجد أنه من الأسهل نسبيًا تعلم Vyper. من ناحية أخرى ، إذا كنت معتادًا على لغات البرمجة مثل Java و C ++ ، فستجد أن Solidity أسهل في التعلم.
كفاءة الغاز
يستهلك Vyper غازًا أقل من Solidity لأن صيغة Vyper تجعل الأمر أسهل بالنسبة لـ آلة إيثريوم الافتراضية (EVM) ليقرأ. نظرًا لأن Solidity لها بنية أكثر تعقيدًا ، فإن العقود المكتوبة مع Solidity ستستهلك المزيد من الغاز وبالتالي ينتج عنها رسوم غاز إيثريوم أعلى.
إذا كان إنشاء تطبيقات آمنة باستخدام غاز أقل هو من أولوياتك ، فإن Vyper هو خيارك الأفضل. تعتبر Solidity عمومًا أقل كفاءة في استهلاك الغاز وأمانًا من Vyper نظرًا لميزاتها العديدة التي يمكن أن تزيد من رسوم الغاز. يمكنهم أيضًا جعل عقدك عرضة لنقاط الضعف.
ما اللغة التي يجب عليك استخدامها لتطبيقات Ethereum؟
ضع في اعتبارك الاختلافات بين اللغتين ، وحدد واحدة بناءً على متطلبات مشروعك وتفضيلاتك الخاصة. يعد Vyper خيارًا أفضل للعقود الذكية نظرًا لمستوى الأمان العالي وسهولة التركيب. سوف تكتشف الجانب السلبي لاستخدام Vyper عند إنشاء تطبيقات معقدة لأن Vyper لديه ميزات أقل من Solidity.
Solidity مفيد للمشاريع المعقدة ، ومجتمع الصلابة المتزايد باستمرار والعديد من الميزات تجعل Solidity مفضلة. ومع ذلك ، إذا اخترت Solidity ، فستحتاج إلى مراجعة تطبيقك كثيرًا لاكتشاف الأخطاء ونقاط الضعف الأمنية.
اسمح لمواصفات مشروعك بالتأثير على اختيارك
يعتمد اختيارك للغة للتطوير على Ethereum بشكل أفضل على ميزات ومواصفات مشاريعك. تتمتع Vyper و Solidity بإيجابياتها وسلبياتها ، لذلك ، بناءً على مشروعك ، سترغب في اختيار لغة يمكنك تجنب عيوبها بسهولة.