مؤسس Move يكشف: كيف تساعد Sui Move في تطوير منتجات Web3

مقابلة مع مؤسس لغة Move: لماذا تعتبر لغة العقود الذكية Sui Move مناسبة لبناء منتجات Web3؟

مؤخراً، تحدثنا مع كبير مسؤولي التقنية في Mysten Labs ومؤسس لغة البرمجة Move، سام بلاكشير، حول سبب تطويره للغة البرمجة الجديدة للعقود الذكية Sui Move، والقدرات القابلة للتوسع لـ Sui، وفوائد التكنولوجيا اللامركزية للبناة.

فيما يلي محتوى هذه المقابلة:

Q1، أولاً، هل يمكنك تقديم لمحة عامة عن ما هي لغات البرمجة، وما هي الصفات التي يهتم بها المطورون عند اختيار لغة البرمجة، وما الذي دفعك لتطوير لغتك البرمجية الخاصة؟

تعتبر لغة البرمجة أداة للتفاعل الودي والآمن والفعال والواضح مع الحواسيب. وهذا الأمر مهم بشكل خاص بالنسبة للحواسيب. لا يمكننا التواصل مع الحواسيب باستخدام اللغة الطبيعية، لأن المعنى الكامل للغة الطبيعية يكمن في غناها وقدرتها على التعبير. عندما تستخدم نغمة مختلفة قليلاً أو تختار طريقة مختلفة قليلاً للتعبير عن الكلمات، يمكن أن يتغير معنى جملتك أو فقرتك تماماً.

في لغات البرمجة، الأهم هو وجود دلالات محددة بدقة. عندما تكتب برنامجًا، أنت تعرف بالضبط ما سيقوم به. إذا قمت بإجراء تعديلات طفيفة عليه، فأنت تعرف ما هي النتائج التي ستنتج عن هذا التغيير. يجب الحفاظ على هذا الأمر على عدة مستويات، مثل أنه يمكنك كتابة الكود بلغة مصدر واحدة، لها دلالة معينة، ثم يتم تحويلها إلى أشكال أخرى، ويجب أن تحتفظ بنفس المعنى، حتى تصل إلى وحدة المعالجة الخاصة بالآلة.

أعتقد أنه، على عكس اللغة الطبيعية، فإن جوهر لغات البرمجة مخصص لمجالات معينة أو مهام معينة. خلاف ذلك، يمكن استخدام لغة برمجة واحدة لإكمال جميع المهام. ولكن السبب في وجود لغات برمجة متعددة هو أنك لا تستطيع أن تكون بارعًا في جميع المجالات. فهي تعمل على استهداف مجالات المشاكل المحددة، وتركز على حل هذه المشاكل. على سبيل المثال، إذا نظرت إلى لغة البرمجة Rust التي نستخدمها لكتابة سلسلة كتل Sui ومعظم الأنظمة الأخرى التي تعمل في Mysten، فإنها تركز على كتابة كود سريع وعالي الأداء، مع ضمان الأمان. إنها تتيح لك الوصول إلى التفاصيل الأساسية مثل الذاكرة وهياكل الخيوط أو التزامن، ولكنها لا تجعلك ترتكب أخطاء كما كانت اللغات السابقة (مثل C أو C++).

لذلك، فإن قصة Move مشابهة جدًا لهذا. عندما أنشأته، لم يكن الهدف هو إنشاء لغة جديدة. لقد ذكرت سابقًا ما يبحث عنه المطورون في لغة معينة. سيتساءلون، "هل هذه اللغة مناسبة للمهام التي أريد إنجازها؟" لكنني أعتقد أن ما هو أكثر أهمية هو، "هل لهذه اللغة مجتمع ضخم؟ هل هناك الكثير من قواعد البيانات المتاحة؟ هل هناك الكثير من المبرمجين الذين يستخدمونها؟ هل هناك موارد تعليمية جيدة؟" كل هذه الأمور مهمة جدًا، وبالتالي يجب أن تكون عتبة إنشاء لغة جديدة مرتفعة جدًا، حتى لو كانت هذه اللغة نفسها أفضل، ولكن إذا لم تحتوي على هذه العوامل، فإن ميزتها تصبح بلا معنى. من الصعب جدًا بناء مجتمع كبير ونشيط من الصفر.

Q2، هل يمكنك مشاركة المزيد حول حالة تطوير Move؟

نشأت Move من مشروع ليبرا الخاص بفيسبوك. كانت مهمتي في ذلك الوقت ليست إنشاء لغة جديدة، بل "تحتاج ليبرا إلى العقود الذكية، لذا اكتشف ما يجب علينا فعله." نظرت إلى مجموعة متنوعة من الأشياء. هل يمكننا استخدام Solidity في EVM؟ هل يجب علينا استخدام لغة عامة تقليدية، مثل WASM أو JVM، واستخدامها مع ليبرا؟ أم يجب علينا إنشاء شيء خاص بنا؟

إن قرار إنشاء شيء خاص بنا يعتمد على دراسة العقود الذكية الحالية، وفهم ما يحاول المبرمجون القيام به، والأماكن التي تساعدهم فيها بعض اللغات والأماكن التي تخيب أملهم. استنتاجي هو أنه في كثير من الحالات، فإن لغات العقود الذكية الحالية تخيب آمالهم فعلاً.

يمكن أن يتضح ذلك من سجل الأمان السيء لـ Solidity، ولكن الأهم من ذلك، أن هذه العقود الذكية ليست نوعًا تقليديًا جدًا من البرامج. لم تُبنى Solidity كلغة للأشياء التي يقوم بها الناس الآن. لا أريد انتقادها، لأنها كانت أول لغة لعقود ذكية، ولم تكن تعرف بعد ما الذي يريد الناس فعله بها. بمجرد أن ترى ما يحاول الناس فعله بها، أعتقد أنه من الواضح أنك بحاجة إلى مجموعة مختلفة من التجريدات وأدوات البرمجة، والتي لا توفرها لغة Solidity.

لذا فإن هذه العقود الذكية بسيطة للغاية، فهي تقوم بشكل أساسي بشيئين. إنها تعرف نوع الأصول، بما في ذلك متى يمكن نقل الأصول، وما يمكنك القيام به بها، ومن يمكنه قراءتها، ومن يمكنه كتابة القواعد الخاصة بها. كما تتحقق من سياسات التحكم في الوصول، لتحديد من يمتلك الأصل، ومن يُسمح له باستخدامه، ومن يُسمح له بالتصرف فيه. كل شيء يدور حول الأصول، وتريد أن تمتلك هذه الأصول نفس خصائص الأصول المادية. إذا سلمت شيئًا لك، يجب أن تمتلكه، حيث أنني لم أعد أمتلكه.

تتضمن العقود الذكية مفهوم الملكية وتحويل الملكية، ولكن على الكمبيوتر، كل شيء هو مجرد أرقام وبتات، ويمكن نسخه بحرية. وأنت تعرف، هذه المفاهيم غير موجودة في العالم الحقيقي. لذلك، أنت تريد لغة توفر لك تجريدًا جيدًا حول الملكية والتشابه. تمامًا كما في العالم الحقيقي، ولكن دون الحاجة إلى إجبار المبرمجين على إعادة اختراعه. أنت ترغب في الحصول على ضمانات أمان أساسية.

هذا هو دور Move ولماذا أنشأنا في النهاية هذه اللغة الجديدة. هذه المهام أساسية لبرمجة العقود الذكية. من الصعب إعادة إنشائها في لغات أخرى، بما في ذلك لغات العقود الذكية الحالية، ونأمل أن نصمم اللغة بأكملها حول توفير هذه الوظائف الأساسية حتى يتمكن المبرمجون من كتابة الكود بأمان وكفاءة دون الحاجة إلى إعادة اختراع العجلة في كل مرة يريدون فيها كتابة بعض الأكواد.

س3، استخدمت Sui نوعًا معدلاً من Move، يسمى Sui Move. ما الذي دفع هذه التغييرات؟ ما هي الميزات في Sui Move التي تجعلها مناسبة جدًا لبناء المنتجات في Web3؟

العوامل التالية أدت إلى هذه التغييرات، أحدها هو أن الهدف الأصلي لمشروع Libra كان بناء شبكة دفع متوافقة. لذلك، حاولنا تصميم Move كلغة عالمية. ولكننا قمنا أيضًا بوعي ببعض الأمور، لأن Libra كانت تأمل في وجود قيود. ومن الأمور المهمة أنهم لا يريدون من الناس إرسال أصول معينة إلى أي مكان. كانوا يريدون من الناس إنشاء حسابات بشكل واضح، وتحديد بعض القواعد عند إنشاء الحساب، مثل ضرورة أن يقوم مالك الحساب بإجراء عملية KYC. أو قد يحتاجون إلى دفع رسوم لإنشاء الحساب، أو يمكن إنشاء الحساب فقط من قبل مجموعة صغيرة من الأشخاص الذين لديهم صلاحية إنشاء الحساب. نظرًا لأن الهدف الكامل هو أن Libra ترغب في إجراء مدفوعات متوافقة والعقود الذكية المتوافقة، فهناك هذه القيود. ولكن في مجال Web3 الأكثر عمومية، الوضع هو عكس ذلك تمامًا. لا ترغب في أن تكون هناك توافق على المستوى الأساسي، هذه هي فكرة العقود الذكية. تريد الأمور أن تكون حرة قدر الإمكان، ويمكنك تمامًا إرسال شيء ما إلى أي عنوان. ثم لا ينبغي عليك إنشاء حسابات بشكل صريح، لأن ذلك سيعيق مختلف حالات الاستخدام. هذه هي نقطة مهمة.

عامل آخر هو أنه على الرغم من تركيزنا على الأصول في Move، إلا أننا لم نفكر في كيفية إدخال التركيز على الأصول في المعاملات نفسها في ذلك الوقت في Libra. لذلك، عندما تصل إلى مستوى المعاملة، لا يزال لديك هذا API، حيث تدخل أرقامًا وقيمًا منطقية وما إلى ذلك، وهي أشياء ليست أصولًا، ثم في Move، تستخدم هذه الأرقام لاستخراج الأصول من الحسابات والقيام بأشياء أخرى. اتضح أن معظم الكود الذي تقوم بتشغيله هو نوع من الأعمال المحاسبية المزعجة، التي تتضمن استخراج هذا الشيء، واستخراج ذلك الشيء، واستخراج أشياء أخرى، حسنًا، لقد حصلت على جميع الأصول التي أريدها. إنها هنا، في استوديوي، والآن يمكنني البدء في القيام بشيء ذي معنى. ثم في نهاية هذه العملية، قد تقول: "حسنًا، أعد هذه الأصول إلى هذا الحساب، وأعدها إلى ذلك الحساب، وأعد تنظيمها.

في Sui، فكرنا مليًا، إذا كان يمكن لكل برنامج أن يبدأ وينتهي بهذه الطريقة، هل يمكننا تجريد ذلك؟ لذلك، فإن المنطق المستخدم لمعالجة المعاملات سيقوم به المبرمج، ومن وجهة نظر المبرمج، عليهم فقط إعداد الأصول المطلوبة، وبدء العمل الممتع على الفور. هذه هي نموذج البيانات القائم على الكائنات الموجود في Sui. في Move الأصلية، كان لدينا نموذج بيانات مستند إلى الحساب، حيث يتم تخزين الأصول تحت الحساب، ويجب على المبرمج استخراجها بشكل صريح. أما في Sui، يتم الحصول على الأصول عندما تدخل جزء Move من المعاملة بواسطة وقت تشغيل Sui. هذا أكثر ملاءمة للمبرمجين، لأنهم لا يحتاجون إلى القيام بكل هذا العمل المحاسبي قبل وبعد، وهو أيضًا سلاحنا السري الذي يسمح لنا بتحديد ما إذا كان يمكن تشغيل معاملة واحدة بالتوازي مع أخرى، وتوسيع Sui أفقيًا، وتنفيذ بعض العمليات الأخرى بشكل أكثر كفاءة.

لقد قمنا أيضًا ببعض الأعمال المثيرة للاهتمام، مثل استخدام نماذج البيانات القائمة على الكائنات لإنشاء كتل تجارية قابلة للبرمجة. هذه مسألة تقنية إلى حد ما، وأنا سعيد بالتعمق في المناقشة حولها. لكن هذان العاملان هما الدافعان الرئيسيان وراء الانحراف عن Move الأصلي.

س4، هل يمكنك مشاركة المزيد من المعلومات حول بلوك التداول القابل للبرمجة ووظائفه؟

أحب استخدام تشبيه لشرح ذلك، حيث تشبه سلاسل الكتل الأخرى ركن الطعام في مركز تجاري. إذا كنت تريد تناول الآيس كريم، تذهب إلى كشك الآيس كريم وتخرج بطاقتك الائتمانية للدفع. ولكن إذا قررت أنك تريد أيضًا تناول همبرغر، تذهب إلى كشك الهمبرغر وتدفع مرة أخرى. أنا لست شخصًا شغوفًا بالطعام، ولكن إذا أردت تناول ثمانية أشياء، يجب أن أقوم بثماني معاملات منفصلة. بينما Sui تشبه أكثر البوفيه، حيث لا تقتصر كل معاملة على شيء واحد فقط. بمجرد أن تدفع ثمن البوفيه، يمكنك القيام بالعديد من الأشياء دون تكاليف إضافية. يمكنك تناول الآيس كريم، يمكنك تناول الهمبرغر، يمكنك مزجهما معًا.

لجعل هذا المفهوم أكثر وضوحًا، في حالة بسيطة، إذا كنت تريد إرسال 100 عملية لإصدار 100 NFT، يمكنك إرسال عملية واحدة لإصدار 100 NFT. تكاليف هذه العملية قريبة من تكلفة إصدار NFT واحد. يمكنك أيضًا تجميع عمليات غير متجانسة، مثل أن تأخذ العملية الأولى في الكتلة شخصية ماريو من محفظتك متعددة التوقيعات، بينما تطلب العملية الثانية ماريو، مما يسمح لك بلعب اللعبة. إذا ربحت اللعبة وحصلت على الكأس، ربما ستقوم العملية الثالثة بوضع الكأس في خزانة الكؤوس المشتركة مع أصدقائك. المثير في الأمر هو أن كتل العمليات القابلة للبرمجة تسمح للمبرمجين بكتابة الكود بهذه الطريقة، حيث لا تحتاج اللعبة إلى معرفة كيفية تخزين المحفظة متعددة التوقيعات أو ماريو، ولا تحتاج إلى معرفة خزانة الكؤوس الخاصة بك أو كيفية تنفيذها.

تتكون كتل التداول القابلة للبرمجة من المعاملات التي تحتوي على كائنات الإدخال والإخراج. إذا كنت بحاجة إلى كائن إدخال، يمكنك الحصول على هذا الكائن دون الحاجة إلى القلق بشأن مصدره ثم تمرير مخرجه إلى الكائن الذي يحتاج إليه، دون الحاجة أيضًا إلى القلق بشأن المكان الذي سيتم تمريره إليه. في سلاسل الكتل الأخرى، تكون التوافقية أكثر قوة، لذلك يجب أن تتكامل الألعاب مع المحفظة متعددة التوقيعات وخزائن الجوائز، أو يجب أن تنفذ جميعها بعض الواجهات المشتركة وتكون لديها توافقية أقوى. تجعل Sui ما يسمى بالتجميع المؤقت أسهل بكثير. تمامًا كما لو كان الأنابيب متطابقة، يمكننا إكمال ذلك في معاملة واحدة.

Q5، ما هي فوائد البلوك القابل للبرمجة للمستخدمين؟

بالنسبة للمستخدمين، فإن فوائد كتل التداول القابلة للبرمجة تشمل انخفاض رسوم الغاز، لأنه يمكنك تجميع جميع العمليات في صفقة واحدة، بدلاً من إجراء صفقات منفصلة. بالإضافة إلى ذلك، ستقلل أيضًا من عدد الموافقات المطلوبة. إذا كان النظام الذي تستخدمه يتطلب الموافقة على الصفقة، فستحتاج فقط إلى إجراء موافقة واحدة، ثم سيتم تنفيذ جميع العمليات مرة واحدة. فائدة أخرى هي الذرية، إذا كنت ترغب في القيام بثلاثة أشياء مختلفة وترغب في أن تنجح العملية الثالثة فقط إذا نجحت العمليتان الأوليان، وإذا كانت هذه العمليات يجب أن تكون صفقات مستقلة، فلن تتمكن من تحقيق ذلك. ولكن، إذا كان بإمكانك وضعها جميعًا في صفقة واحدة، فيمكنك تحقيق ذلك بسهولة.

Q6، لقد سمعتك تتحدث مع الآخرين، أن التطوير على Sui هو تجربة رائعة للمبرمجين، وهذا مهم. هل لديك أي قصص تود مشاركتها حول بدء استخدام Sui Move للمبرمجين ذوي الخبرة والمبتدئين في Web3؟

بالنسبة للمطورين القادمين من لغات البرمجة Web3 الأخرى، فإن تجربة التطوير على Move وSui Move أصبحت أكثر كفاءة وأمانًا. لقد حضرت للتو برنامج بودكاست حول بروتوكول Bucket، وهم يبنون شيئًا رائعًا على Sui.

MOVE1.46%
SUI0.89%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 7
  • مشاركة
تعليق
0/400
GasOptimizervip
· 07-18 07:39
تحركوا!
شاهد النسخة الأصليةرد0
GasOptimizervip
· 07-17 16:03
tps سيكون أسرع من ETH بمعدل 8.64 مرة وقد تم الحساب
شاهد النسخة الأصليةرد0
AirdropHuntressvip
· 07-15 22:08
مرة أخرى، تسويق مثير، من الذي درس الشفرة العقدية المبكرة؟
شاهد النسخة الأصليةرد0
HodlKumamonvip
· 07-15 22:04
يبدو أن البيانات غير صحيحة يا Move ديدي
شاهد النسخة الأصليةرد0
CryptoAdventurervip
· 07-15 22:02
الجميع مشارك就完事 太久没看move了
شاهد النسخة الأصليةرد0
Degen4Breakfastvip
· 07-15 21:57
move مرة أخرى جاء ليتفاخر
شاهد النسخة الأصليةرد0
NftPhilanthropistvip
· 07-15 21:54
همم مؤسس ويب 3 آخر يحاول إنقاذنا بتقنية التكنولوجيا الخاصة بهم
شاهد النسخة الأصليةرد0
  • تثبيت