Move dilinin babası ile röportaj: Neden Sui Move akıllı sözleşmeler dili Web3 ürünleri inşa etmek için uygundur?
Son günlerde, Mysten Labs'ın teknik direktörü ve Move programlama dilinin yaratıcısı Sam Blackshear ile Sui Move adındaki yeni akıllı sözleşmeler programlama dilini neden geliştirdiğini, Sui'nin genişleyebilirlik özelliklerini ve merkeziyetsiz teknolojinin inşaatçılara sağladığı faydaları tartıştık.
Aşağıda bu röportajın içeriği bulunmaktadır:
S1, Öncelikle, programlama dillerinin ne olduğunu, geliştiricilerin bir programlama dili seçerken en çok hangi niteliklere odaklandığını ve kendi programlama dilinizi geliştirmenizi sağlayan şeyin ne olduğunu özetleyebilir misiniz?
Programlama dilleri, bilgisayarlarla dostane, güvenli, etkili ve net bir etkileşim aracı olarak işlev görür; bu, bilgisayarlar için özellikle önemlidir. Bilgisayarlarla doğal dilde iletişim kuramayız çünkü doğal dilin tüm anlamı zenginlik ve ifade yeteneğine sahiptir. Eğer kelimeleri biraz farklı bir tonla veya ince farklılıklar seçerek ifade ederseniz, cümleniz veya paragrafınızın anlamı tamamen değişebilir.
Programlama dillerinde en önemli olan, kesin tanımlı bir anlamın olmasıdır. Bir program yazdığınızda, onun ne yapacağını bilirsiniz. Eğer üzerinde küçük bir ayarlama yaparsanız, bu değişikliğin ne sonuç vereceğini bilirsiniz. Bu durum, birçok düzeyde korunmalıdır; örneğin, bir kaynak dil kullanarak kod yazabilir ve bunun bir anlamı vardır, sonra başka bir biçime dönüştürüldüğünde, aynı anlamı taşımalıdır ve makinenin işleme modülüne ulaşana kadar da böyle olmalıdır.
Bence, doğal dillerden farklı olarak, programlama dillerinin doğası belirli bir alan veya belirli bir görev için hedeflenmiştir. Aksi takdirde, sadece bir programlama dili ile tüm görevler tamamlanabilir. Ancak birçok programlama dilinin var olmasının nedeni, tüm alanlarda iyi performans gösteremeyecek olmamamızdır. Onlar belirli sorun alanlarına hedeflenmeye çalışıyor ve bu sorunları çözmeye odaklanıyor. Örneğin, Sui blok zincirini yazmak ve Mysten'de gerçekleştirilen diğer sistemlerin çoğu için kullandığımız Rust programlama diline bakarsanız, hızlı ve yüksek performanslı kod yazmaya odaklanırken güvenliği de sağlamaktadır. Bu, size bellek, iş parçacığı yapısı veya eşzamanlılık gibi alt düzey detaylara erişim sağlarken, önceki diller (C veya C++ gibi) gibi hata yapmanıza izin vermez.
Bu nedenle, Move'un hikayesi buna çok benziyor. Onu yarattığımda, yeni bir dil yaratmak amacıyla hareket etmedim. Daha önce, geliştiricilerin bir dilde ne aradığını belirtmiştin. "Bu dil, başarmak istediğim görev için uygun mu?" diye sorarlar. Ama bence daha önemli bir soru var: "Bu dilin büyük bir topluluğu var mı? Kullanılabilir birçok veri tabanı var mı? Birçok programcı kullanıyor mu? İyi eğitim kaynakları var mı?" Bunlar çok önemli, bu nedenle yeni bir dil yaratmanın eşiği çok yüksek olmalıdır; bu dil kendisi daha iyi olsa bile, eğer bu faktörlere sahip değilse, o zaman avantajları anlamsız hale gelir. Sıfırdan büyük ve canlı bir topluluk oluşturmak oldukça zordur.
S2, Move ile ilgili daha fazla bilgi paylaşabilir misiniz?
Move, Facebook'un Libra projesinden kaynaklanmaktadır. O dönemdeki görevim yeni bir dil oluşturmak değildi, "Libra'nın akıllı sözleşmelere ihtiyacı var, bu yüzden ne yapmamız gerektiğini bulmalıyız." Çeşitli şeylere baktım. EVM'de Solidity kullanabilir miyiz? Libra için genel bir dil, örneğin WASM veya JVM kullanmalı mıyız? Yoksa kendi şeyimizi mi yaratmalıyız?
Kendi şeylerimizi yaratma kararı, mevcut akıllı sözleşmelerin araştırılmasına, programcıların ne yapmaya çalıştığını anlamaya ve bazı dillerin onlara yardım etme ve hayal kırıklığına uğratma konusundaki yerlerine dayanıyordu. Sonuç olarak, birçok durumda mevcut akıllı sözleşme dillerinin gerçekten hayal kırıklığına neden olduğunu düşündüm.
Bu, Solidity'nin kötü güvenlik geçmişinden açıkça görülebilir, ancak daha temel olarak, bu akıllı sözleşmeler geleneksel program türleri değildir. Solidity, insanların şu anda yaptığı şeyler için inşa edilmiş bir dil değildir. Bunu eleştirmek istemiyorum, çünkü bu ilk akıllı sözleşme dilidir ve insanların bununla ne yapmak istediklerini henüz bilmiyordu. İnsanların bununla ne yapmaya çalıştıklarını gördüğünüzde, bence açık olan, farklı bir soyutlama ve programlama araçları setine ihtiyaç duyduğunuzdur ve Solidity dili bunu sağlayamamaktadır.
Bu nedenle, bu akıllı sözleşmeler oldukça basittir, esasen iki şey yaparlar. Varlıkların türünü tanımlarlar; varlıkların ne zaman transfer edilebileceği, onlarla ne yapabileceğiniz, kimlerin onlara erişebileceği ve kimlerin bunlar üzerinde yazma yetkisi olduğu gibi kuralları içerir. Ayrıca erişim kontrol politikalarını kontrol ederler, kimin bu varlığa sahip olduğunu, kimin onu kullanmasına izin verildiğini ve kimin üzerinde işlem yapmasına izin verildiğini belirlerler. Her şey varlık etrafında döner; bu varlıkların fiziksel varlıklarla aynı özelliklere sahip olmasını istersiniz. Eğer bir şeyi sana teslim edersem, o zaman sen ona sahip olmalısın, ben artık ona sahip olmamalıyım.
Akıllı sözleşmelerde mülkiyet ve mülkiyet devri kavramları vardır, ancak bilgisayarda her şey sadece sayılar ve baytlar ve serbestçe kopyalanabilir. Ayrıca, biliyorsunuz ki, bu kavramlar gerçek dünyada mevcut değildir. Bu nedenle, mülkiyet ve homojenlik hakkında iyi bir soyutlama sağlayacak bir dil istiyorsunuz. Gerçek dünyada olduğu gibi, ancak programcıları yeniden icat etmeye zorlamadan. Temel güvenlik garantileri almak istiyorsunuz.
Move'nin işlevi ve neden bu yeni dili oluşturduğumuz budur. Bu görevler, akıllı sözleşmeler programlaması için temeldir. Bunları, mevcut akıllı sözleşme dilleri de dahil olmak üzere, diğer dillerde yeniden oluşturmak zordur. Programcıların güvenli ve verimli bir şekilde kod yazabilmeleri için bu temel işlevleri sunan bir dil etrafında tasarım yapmayı umuyoruz; böylece her seferinde bazı kodlar yazmayı düşündüklerinde tekerleği yeniden icat etmek zorunda kalmazlar.
Q3, Sui, Move'un bir varyantını kullanıyor, buna Sui Move denir. Bu değişikliklere ne sebep oldu? Sui Move'un Web3'te ürün geliştirmek için hangi özellikleri oldukça uygundur?
Bu değişiklikleri tetikleyen birkaç faktör var, bunlardan biri başlangıçta Libra projesinin amacının uyumlu bir ödeme ağı inşa etmek olmasıdır. Bu nedenle, Move'u genel bir dil olarak tasarlamaya çalıştık. Ancak bazı şeyleri bilinçli olarak yaptık çünkü Libra bazı kısıtlamalara sahip olmayı arzuluyordu. Bu kısıtlamalardan biri, insanların belirli varlıkları herhangi bir yere göndermelerini istememeleriydi. İnsanların açıkça bir hesap oluşturmasını ve hesap oluşturulurken bazı kurallar belirlemesini istiyorlar, örneğin hesap sahibinin KYC doğrulamasından geçmesi gerekiyor. Ya da hesabı oluşturmak için ücret ödenmesi gerekebilir, ya da sadece hesap oluşturma yetkisine sahip bir grup insanın hesap oluşturmasına izin verilebilir. Tüm amacın Libra'nın uyumlu ödemeler ve uyumlu akıllı sözleşmeler gerçekleştirmek istemesi nedeniyle bu kısıtlamalar var. Ancak daha genel Web3 alanında durum tam tersidir. Temel düzeyde uyumlu olmaması gerek, bu akıllı sözleşmelerin konseptidir. İşlerin mümkün olduğunca serbest olmasını, bir şeyi herhangi bir adrese gönderebilmenizi istersiniz. Sonra açık bir hesap oluşturma işlemi yapmamalısınız çünkü bu çeşitli kullanım durumlarını engeller. Bu önemli bir faktördür.
Diğer bir faktör, Move'da varlıklara odaklanmamıza rağmen, o zamanlar Libra'da varlıkların dikkatini işlemin kendisine nasıl getireceğimizi düşünmemiş olmamızdır. Bu nedenle, işlem düzeyine geldiğinizde, hala sadece bu API'ye sahipsiniz; burada sayılar ve varlık olmayan boolean değerleri gibi şeyler giriyorsunuz. Ardından, Move'da bu sayıları kullanarak hesaplardan varlık çıkarıyorsunuz ve diğer işlemleri gerçekleştiriyorsunuz. Gerçek şu ki, çalıştırdığınız kodların çoğu, bu can sıkıcı defter işlerini içeriyor; buradan bir şey alıyorsunuz, oradan bir şey alıyorsunuz, diğer şeyleri çıkarıyorsunuz, iyi, istediğim tüm varlıkları aldım. İşte burada, stüdyomda, şimdi bazı anlamlı şeyler yapmaya başlayabilirim. Ardından, bu sürecin sonunda, belki şöyle diyorsunuz: "Tamam, bu varlıkları şu hesaba geri koy, onları şu hesaba geri koy, yeniden organize et."
Sui'de her programın bu şekilde başlayıp bitirmesi durumunda, bunu soyutlayabilir miyiz diye derinlemesine düşündük. Dolayısıyla, işlemleri işlemek için gereken mantık, programcılar için bu işlemi tamamlayacak; programcılar açısından bakıldığında, yalnızca gerekli varlıkları hazırlamaları yeterli olacak ve hemen ilginç işlere başlayabilecekler. İşte Sui'de var olan nesne merkezli veri modeli. Orijinal Move'da, hesaplara dayalı bir veri modeline sahibiz; varlıklar hesap altında saklanıyor ve programcılar bunları açıkça çıkarmak zorunda. Ancak Sui'de, işlemin Move kısmına girdiğinde, varlıklar Sui çalışma zamanında alınmış oluyor. Bu, programcılar için daha kullanışlı çünkü tüm bu öncesi ve sonrası defter tutma işlerini yapmak zorunda değiller ve bu aynı zamanda, bir işlemin başka bir işlemi paralel bir şekilde yürütüp yürütemeyeceğini belirlememizi, Sui'yi yatay olarak ölçeklendirmemizi ve diğer bazı işlemleri daha verimli bir şekilde gerçekleştirmemizi sağlayan gizli silahımız.
Ayrıca nesne tabanlı veri modeli kullanarak programlanabilir işlem blokları üzerinde bazı çok ilginç çalışmalar yaptık. Bu daha teknik bir konu ve bunu derinlemesine tartışmaktan memnuniyet duyarım. Ancak bu iki faktör, orijinal Move ile olan ayrışmanın ana motivasyonudur.
S4, programlanabilir ticaret blokları ve bunların işlevleri hakkında daha fazla bilgi paylaşabilir misiniz?
Ben bir benzetme kullanmayı seviyorum, diğer blok zincirleri bir alışveriş merkezinin yiyecek mahallesi gibidir. Dondurma yemek isterseniz, dondurma tezgahına gidersiniz ve kredi kartınızı çıkarıp ödeme yaparsınız. Ama eğer bir hamburger de yemek isterseniz, hamburger tezgahına gidersiniz ve tekrar ödeme yaparsınız. Ben açgözlü biri değilim ama eğer sekiz şey yemek istiyorsam, sekiz ayrı işlem yapmak zorundayım. Ama Sui, bir açık büfe gibi, her işlem sadece bir şey değil. Bir kez açık büfe ücretini ödediğinizde, ekstra harcama yapmadan birçok şey yapabilirsiniz. Dondurma yiyebilirsiniz, hamburger yiyebilirsiniz, bunları karıştırabilirsiniz.
Bu konsepti daha somut hale getirmek için, basit bir durumda, eğer 100 NFT çıkarmak için 100 işlem gönderecekseniz, 100 NFT çıkaran bir işlem gönderebilirsiniz. Bu tür bir maliyet, bir NFT çıkarmanın maliyetiyle neredeyse aynıdır. Ayrıca, heterojen işlem paketleri yapabilirsiniz; örneğin, bloktaki ilk işlem çoklu imza cüzdanınızdan bir Mario karakteri alırken, ikinci işlem bir Mario talep edebilir ve size oyunu oynama izni verebilir. Eğer oyunu kazanır ve bir kupa alırsanız, belki de üçüncü işlem kupayı bir arkadaşla paylaşılan bir kupa dolabına yerleştirir. Harika olan şey, programlanabilir işlem bloklarının, programcıların bu şekilde kod yazmasına izin vermesidir; oyun, çoklu imza cüzdanının veya Mario'nun nasıl depolandığını bilmek zorunda değildir, ayrıca kupa dolabınızın veya uygulama şeklinin ne olduğunu da bilmek zorunda değildir.
Programlanabilir işlem blokları, giriş ve çıkış nesnelerine sahip işlemlerden oluşur. Eğer bir giriş nesnesine ihtiyacınız varsa, bu nesneyi nereden geldiğini düşünmeden alabilir ve ardından çıktısını ona ihtiyacı olan nesneye aktarabilirsiniz, aynı şekilde nereye aktaracağınızı da düşünmenize gerek yoktur. Diğer blok zincirlerinde, bağlantı daha güçlüdür, bu nedenle oyunların çoklu imza cüzdanları ve ödül vitrinleri ile entegre olması gerekir ya da hepsinin bazı ortak arayüzleri uygulaması ve daha güçlü bir bağlantıya sahip olması gerekir. Sui, sözde geçici kombinasyonları daha kolay hale getiriyor. Tıpkı, eğer boru hatları eşleşiyorsa, bir işlemde tamamlayabiliriz.
S5, Programlanabilir ticaret bloğunun kullanıcılar için ne gibi faydaları var?
Kullanıcılar için programlanabilir ticaret bloklarının faydaları arasında daha düşük gas ücretleri bulunmaktadır, çünkü tüm işlemleri tek bir işlemde paketleyebilirsiniz, ayrı ayrı işlemler yapmak yerine. Ayrıca, onaylanması gereken işlem sayısı da azalır. Kullandığınız sistem işlem onayı gerektiriyorsa, sadece bir kez onay vermeniz yeterlidir ve ardından tüm işlemler tek seferde tamamlanır. Diğer bir fayda ise atomikliktir; eğer üç farklı şey yapmak istiyorsanız ve üçüncü işlemin yalnızca ilk iki işlem başarılı olduktan sonra başarılı olmasını istiyorsanız, bu işlemler bağımsız işlemler olmak zorundaysa bunu başaramazsınız. Ancak hepsini tek bir işlemde birleştirebiliyorsanız, bunu kolayca gerçekleştirebilirsiniz.
S6, Sui üzerinde geliştirme yapmanın programcılar için harika bir deneyim olduğunu ve bunun önemli olduğunu sizden ve diğerlerinden duyduğumu biliyorum. Deneyimli ve yeni Web3 programcılarının Sui Move kullanmaya başlamasıyla ilgili paylaşabileceğiniz anekdotlar var mı?
Diğer Web3 programlama dillerinden gelen geliştiriciler için, Move ve Sui Move üzerindeki geliştirme deneyimi gerçekten daha verimli ve daha güvenli. Yeni bir Bucket Protocol hakkında bir podcast programına katıldım, Sui üzerinde bir non
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
6 Likes
Reward
6
2
Repost
Share
Comment
0/400
MoonlightGamer
· 13h ago
move gelecektir
View OriginalReply0
LiquidationWatcher
· 13h ago
ahh bir başka gün bir başka akıllı sözleşme dili... sadece solana gibi istismar edilmemesini umuyorum
Move dilinin babası Sui Move'un avantajlarını analiz ediyor: Web3 ürünleri inşa etme aracı
Move dilinin babası ile röportaj: Neden Sui Move akıllı sözleşmeler dili Web3 ürünleri inşa etmek için uygundur?
Son günlerde, Mysten Labs'ın teknik direktörü ve Move programlama dilinin yaratıcısı Sam Blackshear ile Sui Move adındaki yeni akıllı sözleşmeler programlama dilini neden geliştirdiğini, Sui'nin genişleyebilirlik özelliklerini ve merkeziyetsiz teknolojinin inşaatçılara sağladığı faydaları tartıştık.
Aşağıda bu röportajın içeriği bulunmaktadır:
S1, Öncelikle, programlama dillerinin ne olduğunu, geliştiricilerin bir programlama dili seçerken en çok hangi niteliklere odaklandığını ve kendi programlama dilinizi geliştirmenizi sağlayan şeyin ne olduğunu özetleyebilir misiniz?
Programlama dilleri, bilgisayarlarla dostane, güvenli, etkili ve net bir etkileşim aracı olarak işlev görür; bu, bilgisayarlar için özellikle önemlidir. Bilgisayarlarla doğal dilde iletişim kuramayız çünkü doğal dilin tüm anlamı zenginlik ve ifade yeteneğine sahiptir. Eğer kelimeleri biraz farklı bir tonla veya ince farklılıklar seçerek ifade ederseniz, cümleniz veya paragrafınızın anlamı tamamen değişebilir.
Programlama dillerinde en önemli olan, kesin tanımlı bir anlamın olmasıdır. Bir program yazdığınızda, onun ne yapacağını bilirsiniz. Eğer üzerinde küçük bir ayarlama yaparsanız, bu değişikliğin ne sonuç vereceğini bilirsiniz. Bu durum, birçok düzeyde korunmalıdır; örneğin, bir kaynak dil kullanarak kod yazabilir ve bunun bir anlamı vardır, sonra başka bir biçime dönüştürüldüğünde, aynı anlamı taşımalıdır ve makinenin işleme modülüne ulaşana kadar da böyle olmalıdır.
Bence, doğal dillerden farklı olarak, programlama dillerinin doğası belirli bir alan veya belirli bir görev için hedeflenmiştir. Aksi takdirde, sadece bir programlama dili ile tüm görevler tamamlanabilir. Ancak birçok programlama dilinin var olmasının nedeni, tüm alanlarda iyi performans gösteremeyecek olmamamızdır. Onlar belirli sorun alanlarına hedeflenmeye çalışıyor ve bu sorunları çözmeye odaklanıyor. Örneğin, Sui blok zincirini yazmak ve Mysten'de gerçekleştirilen diğer sistemlerin çoğu için kullandığımız Rust programlama diline bakarsanız, hızlı ve yüksek performanslı kod yazmaya odaklanırken güvenliği de sağlamaktadır. Bu, size bellek, iş parçacığı yapısı veya eşzamanlılık gibi alt düzey detaylara erişim sağlarken, önceki diller (C veya C++ gibi) gibi hata yapmanıza izin vermez.
Bu nedenle, Move'un hikayesi buna çok benziyor. Onu yarattığımda, yeni bir dil yaratmak amacıyla hareket etmedim. Daha önce, geliştiricilerin bir dilde ne aradığını belirtmiştin. "Bu dil, başarmak istediğim görev için uygun mu?" diye sorarlar. Ama bence daha önemli bir soru var: "Bu dilin büyük bir topluluğu var mı? Kullanılabilir birçok veri tabanı var mı? Birçok programcı kullanıyor mu? İyi eğitim kaynakları var mı?" Bunlar çok önemli, bu nedenle yeni bir dil yaratmanın eşiği çok yüksek olmalıdır; bu dil kendisi daha iyi olsa bile, eğer bu faktörlere sahip değilse, o zaman avantajları anlamsız hale gelir. Sıfırdan büyük ve canlı bir topluluk oluşturmak oldukça zordur.
S2, Move ile ilgili daha fazla bilgi paylaşabilir misiniz?
Move, Facebook'un Libra projesinden kaynaklanmaktadır. O dönemdeki görevim yeni bir dil oluşturmak değildi, "Libra'nın akıllı sözleşmelere ihtiyacı var, bu yüzden ne yapmamız gerektiğini bulmalıyız." Çeşitli şeylere baktım. EVM'de Solidity kullanabilir miyiz? Libra için genel bir dil, örneğin WASM veya JVM kullanmalı mıyız? Yoksa kendi şeyimizi mi yaratmalıyız?
Kendi şeylerimizi yaratma kararı, mevcut akıllı sözleşmelerin araştırılmasına, programcıların ne yapmaya çalıştığını anlamaya ve bazı dillerin onlara yardım etme ve hayal kırıklığına uğratma konusundaki yerlerine dayanıyordu. Sonuç olarak, birçok durumda mevcut akıllı sözleşme dillerinin gerçekten hayal kırıklığına neden olduğunu düşündüm.
Bu, Solidity'nin kötü güvenlik geçmişinden açıkça görülebilir, ancak daha temel olarak, bu akıllı sözleşmeler geleneksel program türleri değildir. Solidity, insanların şu anda yaptığı şeyler için inşa edilmiş bir dil değildir. Bunu eleştirmek istemiyorum, çünkü bu ilk akıllı sözleşme dilidir ve insanların bununla ne yapmak istediklerini henüz bilmiyordu. İnsanların bununla ne yapmaya çalıştıklarını gördüğünüzde, bence açık olan, farklı bir soyutlama ve programlama araçları setine ihtiyaç duyduğunuzdur ve Solidity dili bunu sağlayamamaktadır.
Bu nedenle, bu akıllı sözleşmeler oldukça basittir, esasen iki şey yaparlar. Varlıkların türünü tanımlarlar; varlıkların ne zaman transfer edilebileceği, onlarla ne yapabileceğiniz, kimlerin onlara erişebileceği ve kimlerin bunlar üzerinde yazma yetkisi olduğu gibi kuralları içerir. Ayrıca erişim kontrol politikalarını kontrol ederler, kimin bu varlığa sahip olduğunu, kimin onu kullanmasına izin verildiğini ve kimin üzerinde işlem yapmasına izin verildiğini belirlerler. Her şey varlık etrafında döner; bu varlıkların fiziksel varlıklarla aynı özelliklere sahip olmasını istersiniz. Eğer bir şeyi sana teslim edersem, o zaman sen ona sahip olmalısın, ben artık ona sahip olmamalıyım.
Akıllı sözleşmelerde mülkiyet ve mülkiyet devri kavramları vardır, ancak bilgisayarda her şey sadece sayılar ve baytlar ve serbestçe kopyalanabilir. Ayrıca, biliyorsunuz ki, bu kavramlar gerçek dünyada mevcut değildir. Bu nedenle, mülkiyet ve homojenlik hakkında iyi bir soyutlama sağlayacak bir dil istiyorsunuz. Gerçek dünyada olduğu gibi, ancak programcıları yeniden icat etmeye zorlamadan. Temel güvenlik garantileri almak istiyorsunuz.
Move'nin işlevi ve neden bu yeni dili oluşturduğumuz budur. Bu görevler, akıllı sözleşmeler programlaması için temeldir. Bunları, mevcut akıllı sözleşme dilleri de dahil olmak üzere, diğer dillerde yeniden oluşturmak zordur. Programcıların güvenli ve verimli bir şekilde kod yazabilmeleri için bu temel işlevleri sunan bir dil etrafında tasarım yapmayı umuyoruz; böylece her seferinde bazı kodlar yazmayı düşündüklerinde tekerleği yeniden icat etmek zorunda kalmazlar.
Q3, Sui, Move'un bir varyantını kullanıyor, buna Sui Move denir. Bu değişikliklere ne sebep oldu? Sui Move'un Web3'te ürün geliştirmek için hangi özellikleri oldukça uygundur?
Bu değişiklikleri tetikleyen birkaç faktör var, bunlardan biri başlangıçta Libra projesinin amacının uyumlu bir ödeme ağı inşa etmek olmasıdır. Bu nedenle, Move'u genel bir dil olarak tasarlamaya çalıştık. Ancak bazı şeyleri bilinçli olarak yaptık çünkü Libra bazı kısıtlamalara sahip olmayı arzuluyordu. Bu kısıtlamalardan biri, insanların belirli varlıkları herhangi bir yere göndermelerini istememeleriydi. İnsanların açıkça bir hesap oluşturmasını ve hesap oluşturulurken bazı kurallar belirlemesini istiyorlar, örneğin hesap sahibinin KYC doğrulamasından geçmesi gerekiyor. Ya da hesabı oluşturmak için ücret ödenmesi gerekebilir, ya da sadece hesap oluşturma yetkisine sahip bir grup insanın hesap oluşturmasına izin verilebilir. Tüm amacın Libra'nın uyumlu ödemeler ve uyumlu akıllı sözleşmeler gerçekleştirmek istemesi nedeniyle bu kısıtlamalar var. Ancak daha genel Web3 alanında durum tam tersidir. Temel düzeyde uyumlu olmaması gerek, bu akıllı sözleşmelerin konseptidir. İşlerin mümkün olduğunca serbest olmasını, bir şeyi herhangi bir adrese gönderebilmenizi istersiniz. Sonra açık bir hesap oluşturma işlemi yapmamalısınız çünkü bu çeşitli kullanım durumlarını engeller. Bu önemli bir faktördür.
Diğer bir faktör, Move'da varlıklara odaklanmamıza rağmen, o zamanlar Libra'da varlıkların dikkatini işlemin kendisine nasıl getireceğimizi düşünmemiş olmamızdır. Bu nedenle, işlem düzeyine geldiğinizde, hala sadece bu API'ye sahipsiniz; burada sayılar ve varlık olmayan boolean değerleri gibi şeyler giriyorsunuz. Ardından, Move'da bu sayıları kullanarak hesaplardan varlık çıkarıyorsunuz ve diğer işlemleri gerçekleştiriyorsunuz. Gerçek şu ki, çalıştırdığınız kodların çoğu, bu can sıkıcı defter işlerini içeriyor; buradan bir şey alıyorsunuz, oradan bir şey alıyorsunuz, diğer şeyleri çıkarıyorsunuz, iyi, istediğim tüm varlıkları aldım. İşte burada, stüdyomda, şimdi bazı anlamlı şeyler yapmaya başlayabilirim. Ardından, bu sürecin sonunda, belki şöyle diyorsunuz: "Tamam, bu varlıkları şu hesaba geri koy, onları şu hesaba geri koy, yeniden organize et."
Sui'de her programın bu şekilde başlayıp bitirmesi durumunda, bunu soyutlayabilir miyiz diye derinlemesine düşündük. Dolayısıyla, işlemleri işlemek için gereken mantık, programcılar için bu işlemi tamamlayacak; programcılar açısından bakıldığında, yalnızca gerekli varlıkları hazırlamaları yeterli olacak ve hemen ilginç işlere başlayabilecekler. İşte Sui'de var olan nesne merkezli veri modeli. Orijinal Move'da, hesaplara dayalı bir veri modeline sahibiz; varlıklar hesap altında saklanıyor ve programcılar bunları açıkça çıkarmak zorunda. Ancak Sui'de, işlemin Move kısmına girdiğinde, varlıklar Sui çalışma zamanında alınmış oluyor. Bu, programcılar için daha kullanışlı çünkü tüm bu öncesi ve sonrası defter tutma işlerini yapmak zorunda değiller ve bu aynı zamanda, bir işlemin başka bir işlemi paralel bir şekilde yürütüp yürütemeyeceğini belirlememizi, Sui'yi yatay olarak ölçeklendirmemizi ve diğer bazı işlemleri daha verimli bir şekilde gerçekleştirmemizi sağlayan gizli silahımız.
Ayrıca nesne tabanlı veri modeli kullanarak programlanabilir işlem blokları üzerinde bazı çok ilginç çalışmalar yaptık. Bu daha teknik bir konu ve bunu derinlemesine tartışmaktan memnuniyet duyarım. Ancak bu iki faktör, orijinal Move ile olan ayrışmanın ana motivasyonudur.
S4, programlanabilir ticaret blokları ve bunların işlevleri hakkında daha fazla bilgi paylaşabilir misiniz?
Ben bir benzetme kullanmayı seviyorum, diğer blok zincirleri bir alışveriş merkezinin yiyecek mahallesi gibidir. Dondurma yemek isterseniz, dondurma tezgahına gidersiniz ve kredi kartınızı çıkarıp ödeme yaparsınız. Ama eğer bir hamburger de yemek isterseniz, hamburger tezgahına gidersiniz ve tekrar ödeme yaparsınız. Ben açgözlü biri değilim ama eğer sekiz şey yemek istiyorsam, sekiz ayrı işlem yapmak zorundayım. Ama Sui, bir açık büfe gibi, her işlem sadece bir şey değil. Bir kez açık büfe ücretini ödediğinizde, ekstra harcama yapmadan birçok şey yapabilirsiniz. Dondurma yiyebilirsiniz, hamburger yiyebilirsiniz, bunları karıştırabilirsiniz.
Bu konsepti daha somut hale getirmek için, basit bir durumda, eğer 100 NFT çıkarmak için 100 işlem gönderecekseniz, 100 NFT çıkaran bir işlem gönderebilirsiniz. Bu tür bir maliyet, bir NFT çıkarmanın maliyetiyle neredeyse aynıdır. Ayrıca, heterojen işlem paketleri yapabilirsiniz; örneğin, bloktaki ilk işlem çoklu imza cüzdanınızdan bir Mario karakteri alırken, ikinci işlem bir Mario talep edebilir ve size oyunu oynama izni verebilir. Eğer oyunu kazanır ve bir kupa alırsanız, belki de üçüncü işlem kupayı bir arkadaşla paylaşılan bir kupa dolabına yerleştirir. Harika olan şey, programlanabilir işlem bloklarının, programcıların bu şekilde kod yazmasına izin vermesidir; oyun, çoklu imza cüzdanının veya Mario'nun nasıl depolandığını bilmek zorunda değildir, ayrıca kupa dolabınızın veya uygulama şeklinin ne olduğunu da bilmek zorunda değildir.
Programlanabilir işlem blokları, giriş ve çıkış nesnelerine sahip işlemlerden oluşur. Eğer bir giriş nesnesine ihtiyacınız varsa, bu nesneyi nereden geldiğini düşünmeden alabilir ve ardından çıktısını ona ihtiyacı olan nesneye aktarabilirsiniz, aynı şekilde nereye aktaracağınızı da düşünmenize gerek yoktur. Diğer blok zincirlerinde, bağlantı daha güçlüdür, bu nedenle oyunların çoklu imza cüzdanları ve ödül vitrinleri ile entegre olması gerekir ya da hepsinin bazı ortak arayüzleri uygulaması ve daha güçlü bir bağlantıya sahip olması gerekir. Sui, sözde geçici kombinasyonları daha kolay hale getiriyor. Tıpkı, eğer boru hatları eşleşiyorsa, bir işlemde tamamlayabiliriz.
S5, Programlanabilir ticaret bloğunun kullanıcılar için ne gibi faydaları var?
Kullanıcılar için programlanabilir ticaret bloklarının faydaları arasında daha düşük gas ücretleri bulunmaktadır, çünkü tüm işlemleri tek bir işlemde paketleyebilirsiniz, ayrı ayrı işlemler yapmak yerine. Ayrıca, onaylanması gereken işlem sayısı da azalır. Kullandığınız sistem işlem onayı gerektiriyorsa, sadece bir kez onay vermeniz yeterlidir ve ardından tüm işlemler tek seferde tamamlanır. Diğer bir fayda ise atomikliktir; eğer üç farklı şey yapmak istiyorsanız ve üçüncü işlemin yalnızca ilk iki işlem başarılı olduktan sonra başarılı olmasını istiyorsanız, bu işlemler bağımsız işlemler olmak zorundaysa bunu başaramazsınız. Ancak hepsini tek bir işlemde birleştirebiliyorsanız, bunu kolayca gerçekleştirebilirsiniz.
S6, Sui üzerinde geliştirme yapmanın programcılar için harika bir deneyim olduğunu ve bunun önemli olduğunu sizden ve diğerlerinden duyduğumu biliyorum. Deneyimli ve yeni Web3 programcılarının Sui Move kullanmaya başlamasıyla ilgili paylaşabileceğiniz anekdotlar var mı?
Diğer Web3 programlama dillerinden gelen geliştiriciler için, Move ve Sui Move üzerindeki geliştirme deneyimi gerçekten daha verimli ve daha güvenli. Yeni bir Bucket Protocol hakkında bir podcast programına katıldım, Sui üzerinde bir non