Learn · concepts
GraalVM JavaScript Betikleme Nedir?
GraalVM JavaScript, JVM üzerinde çalışan hızlı bir JS motorudur. Java uygulamalarının JavaScript yerleştirmesini sağlayarak, kullanıcıların özellikleri betik olarak yazmasına ve bunları anında yeniden yüklemesine olanak tanır.
GraalVM JavaScript nedir?
GraalVM JavaScript, JVM üzerinde çalışan, GraalVM projesinin bir parçası olan, hızlı ve standartlara uygun bir JavaScript motorudur. Java uygulamaları bunu yerleştirir, böylece kullanıcılar, ana programa çağrı yapabilen ve anında yeniden yükleyebilen JavaScript kodu yazabilir. Bir Java uygulamasında bu, Java kodunu yeniden derlemeden JavaScript'te davranış eklemeyi veya değiştirmeyi ifade eder.
Bunu özellik eklemek için bir oyun alanı olarak düşünebilirsiniz. Uygulama, belirli nesneleri ve yöntemleri bir betiğe sunar ve betik, uygulama içinde iş yapmak için bu yöntemleri çağırır. Betiği değiştirdiğinizde ve kaydettiğinizde, motor bunu hemen yeniden yükler, yeniden başlatmaya gerek yoktur
Uygulamaların betik motorlarını neden yerleştirdiği
Minecraft istemcileri gibi uygulamalar, birkaç pratik neden dolayı JavaScript motorları yerleştirir:
- Sıcak yeniden yükleme: bir betiği değiştirin ve yeniden başlatma veya yeniden derleme olmadan sonucu görün.
- Güvenli bir ortam: ana program tam olarak hangi nesnelerin ve Java sınıflarının bir betik tarafından erişilebilir olduğunu belirler.
- Hızlı yineleme: yeni davranışları derleme süresinin dakikaları yerine saniyeler içinde test edin.
- Kullanıcı özelleştirmesi: oyuncuların tanıdık bir dilde kendi özelliklerini yazmalarına izin verin
Bir müşteride nasıl göründüğü
GraalVM JavaScript'i yerleştiren bir istemci genellikle komut dosyalarını kaydetmek için bir giriş noktası verir ve ardından JavaScript'i programın iç kısımlarına bağlayan küçük bir proxy nesneleri kümesi sağlar. Kullanıcılar bir komut dosyası yazar, bir komut dosyaları klasörüne bırakır ve motor onu yükler. Bu sayede istemci, bir mod derlemek yerine JavaScript ile özellikler eklemeye izin verebilir.
GraalVM JavaScript ve Node.js
| Özellik | GraalVM JavaScript | Node.js |
|---|---|---|
| Çalışma Zamanı | JVM üzerinde çalışır | Bağımsız V8 tabanlı çalışma zamanı |
| Kullanım Alanı | Java uygulamalarına gömülü | Sunucu tarafı JavaScript veya CLI araçları |
| Başlangıç | Ana işlemin bir parçası | Ayrı bir işlem |
| Erişim | Ana işlem belirli nesneleri sunar | Tam işletim sistemi erişimi |
| Performans | JIT derlenmiş, çok hızlı | Aynı zamanda çok hızlı, farklı ödünleşimler |
Her ikisi de JavaScript çalıştırmada mükemmeldir; farklı bağlamlar için tasarlanmışlardır. GraalVM, bir Java uygulamasının kullanıcıların JavaScript ile betik yazmasına izin vermek istediğinizde doğru çözümdür.
Sıkça Sorulan Sorular
Hayır. Her ikisi de JavaScript çalıştırır, ancak GraalVM'nin motoru bir JVM uygulaması içine gömülmek üzere tasarlanmıştır, Node.js ise V8 üzerine kurulu bağımsız bir çalışma zamanıdır.
Genellikle değil. Ana uygulama tarafından sunulan nesnelere karşı JavaScript yazarsınız. Bu nesnelerin neye karşılık geldiğini bilmek ileri düzey kullanım için yardımcı olur, ancak temel betikler yalnızca JavaScript gerektirir.
Yineleme hızı. Bir betik anında yeniden yüklenirken, derlenmiş bir modun yeniden oluşturulup yeniden başlatılması gerekir. Hızlı özellik testleri veya kişisel otomasyon için betik yazma çok daha hızlıdır.
Evet, ana uygulama bir script'in hangi nesnelere ve sınıflara dokunabileceğini kesin olarak belirler. Bir istemci, oyun durumunu, oyuncu verilerini ve diğer dahili yapıları bu vekil nesneler aracılığıyla sunabilir.