Move dilinin babasıyla 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 baş teknoloji sorumlusuyla, Move programlama dilinin yaratıcısı Sam Blackshear ile bir görüşme gerçekleştirdik. Görüşmede Sui Move adlı yeni akıllı sözleşmeler programlama dilini neden geliştirdiğini, Sui'nin genişleyebilirlik özelliklerini ve merkeziyetsiz teknolojinin yapıcı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 dikkat ettiklerini ve kendi programlama dilinizi geliştirmenizi neyin teşvik ettiğini özetleyebilir misiniz?
Programlama dilleri, bilgisayarlarla dostane, güvenli, verimli ve açık bir etkileşim kurmanın bir aracıdı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.
Programlama dillerinde en önemli şey, kesin bir şekilde tanımlanmış bir anlama sahip olmaktır. Bir program yazdığınızda, ne yapacağını bilirsiniz. Eğer ona küçük bir ayar yaparsanız, bu değişikliğin ne sonuçlar doğuracağını bilirsiniz.
Bence, doğal dillerden farklı olarak, programlama dillerinin doğası belirli bir alan veya belirli bir görev için yöneliktir. Aksi takdirde, sadece bir programlama dili kullanarak tüm görevleri tamamlayabilirsiniz. Ancak birçok programlama dilinin var olmasının sebebi, her alanda iyi performans gösteremeyecek olmanızdır. Onlar, belirli sorun alanlarına yönelik hedef belirlemeye çalışıyorlar ve bu sorunları çözmeye odaklanıyorlar.
Bu nedenle, Move'un hikayesi buna çok benziyor. Onu yarattığımda, yeni bir dil yaratmak amacıyla değildi. Geliştiriciler bir dil seçerken şunları sorarlar: "Bu dil, tamamlamak istediğim görev için uygun mu?" Ama bence daha önemli olan şu: "Bu dilin büyük bir topluluğu var mı? Kullanılabilir birçok veri tabanı var mı? Birçok programcı bunu kullanıyor mu? İyi eğitim kaynakları var mı?" Bunlar son derece önemlidir, bu yüzden yeni bir dil yaratmanın eşiği çok yüksek olmalıdır.
Q2, Move'un geliştirilmesi hakkında daha fazla bilgi paylaşabilir misiniz?
Move, Facebook'un Libra projesinden kaynaklanmaktadır. O zaman benim 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 olan WASM veya JVM'i mi kullanmalıyız, yoksa kendi şeyimizi mi yaratmalıyız?
Kendi şeylerimizi yaratma kararı, mevcut akıllı sözleşmeler üzerine yapılan araştırmalara, programcıların ne yapmaya çalıştıklarını anlamaya ve bazı dillerin onlara yardım ettiği yerler ile hayal kırıklığına uğrattığı yerleri incelemeye dayanıyor. Sonuç olarak, birçok durumda mevcut akıllı sözleşme dillerinin gerçekten hayal kırıklığı yarattığını düşünüyorum.
Bu durum, Solidity'nin kötü güvenlik kaydından açıkça görülebilir, ancak daha temel bir nokta var ki, bu akıllı sözleşmeler çok geleneksel program türleri değildir. Solidity, insanların şu anda yaptığı şeyler için inşa edilmiş bir dil değildir.
Bu nedenle bu akıllı sözleşmeler çok basittir, esasen iki şey yaparlar. Varlık türünü tanımlarlar, varlıkların ne zaman transfer edilebileceği, bunlarla ne yapılabileceği, kimlerin bunları okuyabileceği, kimlerin bunlara yazabileceği kurallarını belirlerler. Ayrıca erişim kontrol politikalarını kontrol ederler, varlığa kimin sahip olduğunu, kimin bunu kullanmasına izin verildiğini ve kimin bununla 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.
Akıllı sözleşmelerde mülkiyet ve mülkiyet devri kavramları bulunmaktadır, ancak bilgisayarda her şey sadece sayılar ve baytlar olup 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ğlayan bir dil olmasını istiyorsunuz. Gerçek dünyada olduğu gibi, ancak programcıları bunu yeniden icat etmeye zorlamadan. Temel güvenlik garantileri almak istiyorsunuz.
Bu, Move'un işlevi ve neden bu yeni dili yarattığımızdır. Bu görevler, akıllı sözleşmeler programlaması için temeldir. Diğer dillerde yeniden oluşturulması zordur, mevcut akıllı sözleşme dilleri dahil. Bu temel işlevleri sağlayan bir dil etrafında tasarım yapmayı hedefliyoruz, böylece programcılar her seferinde kod yazarken tekerleği yeniden icat etmek zorunda kalmadan güvenli ve verimli bir şekilde kod yazabilirler.
Soru 3, 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 inşa etmek için hangi özellikleri son derece uygundur?
Bu değişikliklere yol açan birkaç faktör var, bunlardan biri ilk Libra projesinin amacının uyumlu bir ödeme ağı kurmak olmasıdır. Bu nedenle, Move'u genel bir dil olarak tasarlamaya çalıştık. Ancak, Libra'nın bazı kısıtlamalara sahip olmasını istediği için bilinçli olarak bazı şeyler yaptık. Önemli şeylerden biri, insanların belirli varlıkları istedikleri yere göndermelerini istememeleridir. İnsanların açıkça bir hesap oluşturmasını ve hesap oluşturulduğunda bazı kurallar belirlemesini istiyorlar, örneğin hesap sahibinin KYC doğrulamasından geçmesi gerektiği gibi. Ya da hesap oluşturmak için ücret ödenmesi gerekebilir veya hesap oluşturma yetkisine sahip olan sadece bir avuç kişi tarafından hesap oluşturulabilir. Tüm amaç Libra'nın uyumlu ödeme ve uyumlu akıllı sözleşmeler gerçekleştirmek istemesi olduğundan, bu kısıtlamalar vardır. Ancak daha genel Web3 alanında durum tam tersidir. Temel düzeyde uyumlu olmayı istemezsiniz, bu akıllı sözleşmelerin kavramıdır. İşlerin mümkün olduğunca özgür olmasını istersiniz, bir şeyi herhangi bir adrese tamamen gönderebilmelisiniz. Bu nedenle, açıkça 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.
Başka 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 seviyesine ulaştığınızda, hala sadece bu API'ye sahip oluyorsunuz; burada sayılar ve varlık olmayan boolean değerleri gibi şeyler giriyorsunuz ve ardından Move'da bu sayıları kullanarak hesaplardan varlık çekme ve diğer işlemleri yapıyorsunuz. Gerçek şu ki, çalıştırdığınız kodların çoğu, bu rahatsız edici defter işlerini içeriyor; bu şeyleri almak, o şeyi almak, diğer şeyleri almak, tamam, istediğim tüm varlıklara sahibim. Bunlar burada, çalışma odamdalar, şimdi anlamlı bir şey yapmaya başlayabilirim. Sonra bu sürecin sonunda, belki de şöyle diyorsunuz: "Tamam, bu varlıkları şu hesaba geri koyun, onları o hesaba geri koyun, yeniden düzenleyin."
Sui'de, her programın bu şekilde başlaması ve bitmesi durumunda bunu soyutlayıp soyutlayamayacağımızı derinlemesine düşündük. Bu nedenle, işlemleri işlemek için gerekli olan mantık programcılar tarafından gerçekleştirilecektir; programcılar açısından bakıldığında, yalnızca ihtiyaç duyulan varlıkları hazırlamaları yeterlidir ve hemen ilginç işlere başlayabilirler. İşte Sui'de var olan nesne merkezli veri modeli. Orijinal Move'da, hesap tabanlı bir veri modelimiz vardı; varlıklar hesap altında depolanıyordu ve programcıların bunları açıkça çıkarması gerekiyordu. Ancak Sui'de, varlıklar işlem için Move kısmına girdiğinde, Sui çalışma zamanı tarafından zaten alınmıştır. Bu, programcılar için daha kullanışlıdır çünkü tüm bu öncesi ve sonrası defter tutma işlerini yapmak zorunda kalmazlar ve bu, bir işlemi diğer işlemlerle paralel olarak çalıştırıp çalıştıramayacağımızı belirlememizi, Sui'yi yatay olarak ölçeklendirmemizi ve daha verimli bir şekilde diğer bazı işlemleri gerçekleştirmemizi sağlayan gizli silahımızdır.
Başka bazı oldukça ilginç çalışmalar da gerçekleştirdik, örneğin, nesne tabanlı veri modelleri kullanarak programlanabilir işlem blokları oluşturmak. Bu daha teknik bir konu ve bunu derinlemesine tartışmaktan memnuniyet duyarım. Ancak bu iki faktör, orijinal Move ile olan farklılıkların ana itici gücüdür.
S4, programlanabilir ticaret blokları ve işlevleri hakkında daha fazla bilgi paylaşabilir misiniz?
Bir analoji kullanmayı seviyorum açıklamak için, diğer blok zincirleri bir alışveriş merkezinin yiyecek mahallesi gibidir. Bir dondurma yemek istiyorsanız, dondurma tezgahına gidersiniz, kredi kartınızı çıkarıp ödeme yaparsınız. Ama eğer bir hamburger daha yemek isterseniz, hamburger tezgahına gidersiniz, tekrar ödeme yaparsınız. Ben obur biri değilim ama eğer sekiz şey yemek istiyorsam, sekiz ayrı işlem yapmak zorundayım. Oysa Sui, bir açık büfe gibi, her işlem sadece bir şey değildir. Bir kez açık büfe ücretini ödedikten sonra, ek bir masraf olmadan birçok şey yapabilirsiniz. Dondurma yiyebilirsiniz, hamburger yiyebilirsiniz, bunları birbirine karıştırabilirsiniz.
Bu kavramı daha somut hale getirmek için, basit bir durumda, 100 NFT basmak için 100 işlem göndermeniz gerekiyorsa, 100 NFT basan bir işlem gönderebilirsiniz. Böyle bir maliyet, bir NFT basmanın maliyeti ile neredeyse aynıdır. Ayrıca, 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 oynamanıza izin verebilir. Eğer oyunu kazanır ve bir kupa alırsanız, belki de üçüncü işlem kupayı bir arkadaşlarınızla paylaştığınız kupa dolabına yerleştirir. İlginç olan, programlanabilir işlem bloklarının, programcıların bu şekilde kod yazmasına izin vermesidir; oyun çoklu imza cüzdanını veya Mario'nun depolama yöntemini bilmek zorunda değildir, ayrıca kupa dolabınızı veya onun uygulanma şekli hakkında bilgi sahibi olmasına da gerek yoktur.
Programlanabilir işlem blokları, giriş ve çıkış nesneleri olan işlemlerden oluşur. Eğer bir giriş nesnesine ihtiyacınız varsa, bu nesneyi elde edebilir ve nereden geldiğini düşünmeden, çıktısını onu ihtiyaç duyan nesneye iletebilirsiniz; aynı şekilde, nereye iletileceğini de 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 dolapları ile entegre olması gerekir veya hepsinin bazı ortak arayüzleri uygulaması ve daha güçlü bir bağlantıya sahip olması gerekir. Sui, sözde geçici birleşimleri daha kolay hale getirir. Tıpkı, eğer borular eşleşiyorsa, bir işlemde tamamlayabiliriz.
S5, Programlanabilir ticaret bloğu kullanıcılar için ne gibi faydalar sağlar?
Kullanıcılar için programlanabilir işlem bloklarının avantajları arasında, tüm işlemleri tek bir işlemde toplayabileceğiniz için daha düşük gas ücretleri bulunur; bu, ayrı ayrı işlem yapmaktan kaçınmanızı sağlar. Ayrıca, onay gereksinimlerinin sayısı da azalır. Kullandığınız sistem işlem onayı gerektiriyorsa, yalnızca bir kez onay vermeniz yeterlidir ve ardından tüm işlemler tek seferde gerçekleşir. Diğer bir avantaj ise atomikliktir; eğer üç farklı şeyi yapmak istiyorsanız ve üçüncü işlemin yalnızca ilk iki işlem başarılı olduğunda başarılı olmasını istiyorsanız, bu işlemler bağımsız işlemler olmalıysa bunu başaramazsınız. Ancak, hepsini tek bir işlemde toplarsanı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 duyduğunuzu duydum. Deneyimli ve yeni Web3 programcılarının Sui Move kullanmaya başlamasıyla ilgili paylaşabileceğiniz herhangi bir anekdot 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 podcast'ine katıldım, Sui üzerinde çok havalı bir DeFi projesi inşa ediyorlar. Sistem mimarisini gösterirken, farklı bileşenlerin nasıl birlikte çalıştığını anlattılar. Eğer bu projeyi Solidity ile yazsalardı, muhtemelen sekiz ay sürecekti, ancak Sui Move ile sadece iki ayda tamamladılar ve güvenliği konusunda oldukça eminler. Bu dilin çalışma şekli, projeleri için kafalarında olan kombinasyon fikirlerine çok yakın. Solidity alanında ise bu bağlantı o kadar doğrudan değil.
Bu sadece bir örnek, ama benzer birçok durum duyduk; insanlar bu dildeki geliştirme hızlarının daha hızlı olduğunu ve tamamlandıktan sonra daha fazla güven duyduklarını söylüyorlar. Bunu duyduğumda mutlu oldum. Ama bir bakıma bu şaşırtıcı değil; Solidity'i araştırdık ve içindeki sorunları anladık. Bunu daha güvenli ve daha hızlı hale getirme konusunda açıkça tasarlanmış planlar yaptık. Bu dili kullanan geliştiricilerin ne yapmaya çalıştıklarını inceledik ve mevcut duruma uyum sağlamaktan çok, ihtiyaçlarına uygun bir dil tasarlamaya çalıştık. Bu dil, insanların karşılaştığı sorunlar için tasarlandı, bu yüzden geçiş yaptıklarında bu dili gerçekten çok takdir edecekler.
Onlar ilk hareket etmenin çok önemli olduğunu söylüyor, ama ben bu durumda sonradan hareket etmenin daha önemli olduğunu düşünüyorum.
Evet, tam olarak böyle.
 and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
15 Likes
Reward
15
5
Repost
Share
Comment
0/400
DegenWhisperer
· 08-18 15:44
Kara bu sefer iyi konuştu.
View OriginalReply0
BearMarketBro
· 08-18 06:41
Yeni enayiler, lütfen gelmeyin.
View OriginalReply0
OnchainDetective
· 08-17 04:31
move inanılmaz sui takip et Aya doğru
View OriginalReply0
GateUser-44a00d6c
· 08-17 04:22
Zaten takip ediyordum Move inanılmaz
View OriginalReply0
AirdropHuntress
· 08-17 04:22
Sui'nin kod iterasyon hızı sorgulanıyor, veriler Ana Ağ'ın aktiflik seviyesinin standartları karşılamadığını gösteriyor.
Move dili kurucusunun açıklamaları: Neden Sui Move Web3 ürünleri geliştirmek için daha uygundur
Move dilinin babasıyla 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 baş teknoloji sorumlusuyla, Move programlama dilinin yaratıcısı Sam Blackshear ile bir görüşme gerçekleştirdik. Görüşmede Sui Move adlı yeni akıllı sözleşmeler programlama dilini neden geliştirdiğini, Sui'nin genişleyebilirlik özelliklerini ve merkeziyetsiz teknolojinin yapıcı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 dikkat ettiklerini ve kendi programlama dilinizi geliştirmenizi neyin teşvik ettiğini özetleyebilir misiniz?
Programlama dilleri, bilgisayarlarla dostane, güvenli, verimli ve açık bir etkileşim kurmanın bir aracıdı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.
Programlama dillerinde en önemli şey, kesin bir şekilde tanımlanmış bir anlama sahip olmaktır. Bir program yazdığınızda, ne yapacağını bilirsiniz. Eğer ona küçük bir ayar yaparsanız, bu değişikliğin ne sonuçlar doğuracağını bilirsiniz.
Bence, doğal dillerden farklı olarak, programlama dillerinin doğası belirli bir alan veya belirli bir görev için yöneliktir. Aksi takdirde, sadece bir programlama dili kullanarak tüm görevleri tamamlayabilirsiniz. Ancak birçok programlama dilinin var olmasının sebebi, her alanda iyi performans gösteremeyecek olmanızdır. Onlar, belirli sorun alanlarına yönelik hedef belirlemeye çalışıyorlar ve bu sorunları çözmeye odaklanıyorlar.
Bu nedenle, Move'un hikayesi buna çok benziyor. Onu yarattığımda, yeni bir dil yaratmak amacıyla değildi. Geliştiriciler bir dil seçerken şunları sorarlar: "Bu dil, tamamlamak istediğim görev için uygun mu?" Ama bence daha önemli olan şu: "Bu dilin büyük bir topluluğu var mı? Kullanılabilir birçok veri tabanı var mı? Birçok programcı bunu kullanıyor mu? İyi eğitim kaynakları var mı?" Bunlar son derece önemlidir, bu yüzden yeni bir dil yaratmanın eşiği çok yüksek olmalıdır.
Q2, Move'un geliştirilmesi hakkında daha fazla bilgi paylaşabilir misiniz?
Move, Facebook'un Libra projesinden kaynaklanmaktadır. O zaman benim 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 olan WASM veya JVM'i mi kullanmalıyız, yoksa kendi şeyimizi mi yaratmalıyız?
Kendi şeylerimizi yaratma kararı, mevcut akıllı sözleşmeler üzerine yapılan araştırmalara, programcıların ne yapmaya çalıştıklarını anlamaya ve bazı dillerin onlara yardım ettiği yerler ile hayal kırıklığına uğrattığı yerleri incelemeye dayanıyor. Sonuç olarak, birçok durumda mevcut akıllı sözleşme dillerinin gerçekten hayal kırıklığı yarattığını düşünüyorum.
Bu durum, Solidity'nin kötü güvenlik kaydından açıkça görülebilir, ancak daha temel bir nokta var ki, bu akıllı sözleşmeler çok geleneksel program türleri değildir. Solidity, insanların şu anda yaptığı şeyler için inşa edilmiş bir dil değildir.
Bu nedenle bu akıllı sözleşmeler çok basittir, esasen iki şey yaparlar. Varlık türünü tanımlarlar, varlıkların ne zaman transfer edilebileceği, bunlarla ne yapılabileceği, kimlerin bunları okuyabileceği, kimlerin bunlara yazabileceği kurallarını belirlerler. Ayrıca erişim kontrol politikalarını kontrol ederler, varlığa kimin sahip olduğunu, kimin bunu kullanmasına izin verildiğini ve kimin bununla 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.
Akıllı sözleşmelerde mülkiyet ve mülkiyet devri kavramları bulunmaktadır, ancak bilgisayarda her şey sadece sayılar ve baytlar olup 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ğlayan bir dil olmasını istiyorsunuz. Gerçek dünyada olduğu gibi, ancak programcıları bunu yeniden icat etmeye zorlamadan. Temel güvenlik garantileri almak istiyorsunuz.
Bu, Move'un işlevi ve neden bu yeni dili yarattığımızdır. Bu görevler, akıllı sözleşmeler programlaması için temeldir. Diğer dillerde yeniden oluşturulması zordur, mevcut akıllı sözleşme dilleri dahil. Bu temel işlevleri sağlayan bir dil etrafında tasarım yapmayı hedefliyoruz, böylece programcılar her seferinde kod yazarken tekerleği yeniden icat etmek zorunda kalmadan güvenli ve verimli bir şekilde kod yazabilirler.
Soru 3, 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 inşa etmek için hangi özellikleri son derece uygundur?
Bu değişikliklere yol açan birkaç faktör var, bunlardan biri ilk Libra projesinin amacının uyumlu bir ödeme ağı kurmak olmasıdır. Bu nedenle, Move'u genel bir dil olarak tasarlamaya çalıştık. Ancak, Libra'nın bazı kısıtlamalara sahip olmasını istediği için bilinçli olarak bazı şeyler yaptık. Önemli şeylerden biri, insanların belirli varlıkları istedikleri yere göndermelerini istememeleridir. İnsanların açıkça bir hesap oluşturmasını ve hesap oluşturulduğunda bazı kurallar belirlemesini istiyorlar, örneğin hesap sahibinin KYC doğrulamasından geçmesi gerektiği gibi. Ya da hesap oluşturmak için ücret ödenmesi gerekebilir veya hesap oluşturma yetkisine sahip olan sadece bir avuç kişi tarafından hesap oluşturulabilir. Tüm amaç Libra'nın uyumlu ödeme ve uyumlu akıllı sözleşmeler gerçekleştirmek istemesi olduğundan, bu kısıtlamalar vardır. Ancak daha genel Web3 alanında durum tam tersidir. Temel düzeyde uyumlu olmayı istemezsiniz, bu akıllı sözleşmelerin kavramıdır. İşlerin mümkün olduğunca özgür olmasını istersiniz, bir şeyi herhangi bir adrese tamamen gönderebilmelisiniz. Bu nedenle, açıkça 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.
Başka 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 seviyesine ulaştığınızda, hala sadece bu API'ye sahip oluyorsunuz; burada sayılar ve varlık olmayan boolean değerleri gibi şeyler giriyorsunuz ve ardından Move'da bu sayıları kullanarak hesaplardan varlık çekme ve diğer işlemleri yapıyorsunuz. Gerçek şu ki, çalıştırdığınız kodların çoğu, bu rahatsız edici defter işlerini içeriyor; bu şeyleri almak, o şeyi almak, diğer şeyleri almak, tamam, istediğim tüm varlıklara sahibim. Bunlar burada, çalışma odamdalar, şimdi anlamlı bir şey yapmaya başlayabilirim. Sonra bu sürecin sonunda, belki de şöyle diyorsunuz: "Tamam, bu varlıkları şu hesaba geri koyun, onları o hesaba geri koyun, yeniden düzenleyin."
Sui'de, her programın bu şekilde başlaması ve bitmesi durumunda bunu soyutlayıp soyutlayamayacağımızı derinlemesine düşündük. Bu nedenle, işlemleri işlemek için gerekli olan mantık programcılar tarafından gerçekleştirilecektir; programcılar açısından bakıldığında, yalnızca ihtiyaç duyulan varlıkları hazırlamaları yeterlidir ve hemen ilginç işlere başlayabilirler. İşte Sui'de var olan nesne merkezli veri modeli. Orijinal Move'da, hesap tabanlı bir veri modelimiz vardı; varlıklar hesap altında depolanıyordu ve programcıların bunları açıkça çıkarması gerekiyordu. Ancak Sui'de, varlıklar işlem için Move kısmına girdiğinde, Sui çalışma zamanı tarafından zaten alınmıştır. Bu, programcılar için daha kullanışlıdır çünkü tüm bu öncesi ve sonrası defter tutma işlerini yapmak zorunda kalmazlar ve bu, bir işlemi diğer işlemlerle paralel olarak çalıştırıp çalıştıramayacağımızı belirlememizi, Sui'yi yatay olarak ölçeklendirmemizi ve daha verimli bir şekilde diğer bazı işlemleri gerçekleştirmemizi sağlayan gizli silahımızdır.
Başka bazı oldukça ilginç çalışmalar da gerçekleştirdik, örneğin, nesne tabanlı veri modelleri kullanarak programlanabilir işlem blokları oluşturmak. Bu daha teknik bir konu ve bunu derinlemesine tartışmaktan memnuniyet duyarım. Ancak bu iki faktör, orijinal Move ile olan farklılıkların ana itici gücüdür.
S4, programlanabilir ticaret blokları ve işlevleri hakkında daha fazla bilgi paylaşabilir misiniz?
Bir analoji kullanmayı seviyorum açıklamak için, diğer blok zincirleri bir alışveriş merkezinin yiyecek mahallesi gibidir. Bir dondurma yemek istiyorsanız, dondurma tezgahına gidersiniz, kredi kartınızı çıkarıp ödeme yaparsınız. Ama eğer bir hamburger daha yemek isterseniz, hamburger tezgahına gidersiniz, tekrar ödeme yaparsınız. Ben obur biri değilim ama eğer sekiz şey yemek istiyorsam, sekiz ayrı işlem yapmak zorundayım. Oysa Sui, bir açık büfe gibi, her işlem sadece bir şey değildir. Bir kez açık büfe ücretini ödedikten sonra, ek bir masraf olmadan birçok şey yapabilirsiniz. Dondurma yiyebilirsiniz, hamburger yiyebilirsiniz, bunları birbirine karıştırabilirsiniz.
Bu kavramı daha somut hale getirmek için, basit bir durumda, 100 NFT basmak için 100 işlem göndermeniz gerekiyorsa, 100 NFT basan bir işlem gönderebilirsiniz. Böyle bir maliyet, bir NFT basmanın maliyeti ile neredeyse aynıdır. Ayrıca, 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 oynamanıza izin verebilir. Eğer oyunu kazanır ve bir kupa alırsanız, belki de üçüncü işlem kupayı bir arkadaşlarınızla paylaştığınız kupa dolabına yerleştirir. İlginç olan, programlanabilir işlem bloklarının, programcıların bu şekilde kod yazmasına izin vermesidir; oyun çoklu imza cüzdanını veya Mario'nun depolama yöntemini bilmek zorunda değildir, ayrıca kupa dolabınızı veya onun uygulanma şekli hakkında bilgi sahibi olmasına da gerek yoktur.
Programlanabilir işlem blokları, giriş ve çıkış nesneleri olan işlemlerden oluşur. Eğer bir giriş nesnesine ihtiyacınız varsa, bu nesneyi elde edebilir ve nereden geldiğini düşünmeden, çıktısını onu ihtiyaç duyan nesneye iletebilirsiniz; aynı şekilde, nereye iletileceğini de 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 dolapları ile entegre olması gerekir veya hepsinin bazı ortak arayüzleri uygulaması ve daha güçlü bir bağlantıya sahip olması gerekir. Sui, sözde geçici birleşimleri daha kolay hale getirir. Tıpkı, eğer borular eşleşiyorsa, bir işlemde tamamlayabiliriz.
S5, Programlanabilir ticaret bloğu kullanıcılar için ne gibi faydalar sağlar?
Kullanıcılar için programlanabilir işlem bloklarının avantajları arasında, tüm işlemleri tek bir işlemde toplayabileceğiniz için daha düşük gas ücretleri bulunur; bu, ayrı ayrı işlem yapmaktan kaçınmanızı sağlar. Ayrıca, onay gereksinimlerinin sayısı da azalır. Kullandığınız sistem işlem onayı gerektiriyorsa, yalnızca bir kez onay vermeniz yeterlidir ve ardından tüm işlemler tek seferde gerçekleşir. Diğer bir avantaj ise atomikliktir; eğer üç farklı şeyi yapmak istiyorsanız ve üçüncü işlemin yalnızca ilk iki işlem başarılı olduğunda başarılı olmasını istiyorsanız, bu işlemler bağımsız işlemler olmalıysa bunu başaramazsınız. Ancak, hepsini tek bir işlemde toplarsanı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 duyduğunuzu duydum. Deneyimli ve yeni Web3 programcılarının Sui Move kullanmaya başlamasıyla ilgili paylaşabileceğiniz herhangi bir anekdot 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 podcast'ine katıldım, Sui üzerinde çok havalı bir DeFi projesi inşa ediyorlar. Sistem mimarisini gösterirken, farklı bileşenlerin nasıl birlikte çalıştığını anlattılar. Eğer bu projeyi Solidity ile yazsalardı, muhtemelen sekiz ay sürecekti, ancak Sui Move ile sadece iki ayda tamamladılar ve güvenliği konusunda oldukça eminler. Bu dilin çalışma şekli, projeleri için kafalarında olan kombinasyon fikirlerine çok yakın. Solidity alanında ise bu bağlantı o kadar doğrudan değil.
Bu sadece bir örnek, ama benzer birçok durum duyduk; insanlar bu dildeki geliştirme hızlarının daha hızlı olduğunu ve tamamlandıktan sonra daha fazla güven duyduklarını söylüyorlar. Bunu duyduğumda mutlu oldum. Ama bir bakıma bu şaşırtıcı değil; Solidity'i araştırdık ve içindeki sorunları anladık. Bunu daha güvenli ve daha hızlı hale getirme konusunda açıkça tasarlanmış planlar yaptık. Bu dili kullanan geliştiricilerin ne yapmaya çalıştıklarını inceledik ve mevcut duruma uyum sağlamaktan çok, ihtiyaçlarına uygun bir dil tasarlamaya çalıştık. Bu dil, insanların karşılaştığı sorunlar için tasarlandı, bu yüzden geçiş yaptıklarında bu dili gerçekten çok takdir edecekler.
Onlar ilk hareket etmenin çok önemli olduğunu söylüyor, ama ben bu durumda sonradan hareket etmenin daha önemli olduğunu düşünüyorum.
Evet, tam olarak böyle.
![Move dilinin babasıyla röportaj: Neden Sui Move akıllı sözleşmeler dili Web3 ürünleri inşa etmek için uygun?](